Skip to content

Pelikán — import produktů

Stav k 2026-06-21.


Účel

Plný produktový import — ceny, texty, obrázky, dostupnost. Pelikán je jeden z hlavních dodavatelů.


Zdroj dat

Pelikán poskytuje B2B API (autentizace tokenem v URL). Parsovací skript stahuje 3 samostatné soubory ve formátu ZIP/XML:

Soubor URL Obsah
sklad.xml https://www.pelikandaniel.com/b2b/export/?access=537c7080f13E4c2766d0&synctype=xmlstock hlavní katalog — produkty, ceny, zásoby
relace.xml …&synctype=xmlrel vazby mezi produkty (díly, sady)
dostupnost.xml …&synctype=xmlavail aktuální dostupnost

Token 537c7080f13E4c2766d0 je součástí URL — při změně přístupu aktualizovat v pelikan_parsovani.php.

Zálohy v _PELIKAN/ se drží 7 dní.


Spouštění

Krok Skript Kdy
Parsování cron/pelikan_parsovani.php 23:10
Import cron/pelikan_import.php 23:30

Import je samostatný cron (ne require jako u JK Model). Jako pojistka kontroluje, že parsování proběhlo v posledních 4 hodinách — pokud ne, zastaví se s chybou do logu.


Co se děje při parsování

  1. Stáhne a rozbalí všechny 3 ZIP soubory.
  2. Před sklad.xml TRUNCATuje import_pelikan a import_pelikan_nizka_marze_kody.
  3. Parsuje každý soubor přes XML_parser_pelikan — typ feedu určuje, co parser uloží.
  4. Loguje 3× do import_log (typ PP, jeden záznam na soubor).
  5. Invaliduje DB cache (clear_db_cache()).

Co import mění v DB

Import projde všechny záznamy z import_pelikan s nenulovou cenou a řeší 3 případy:

1. Produkt neexistuje → INSERT do eshop_produkty (novy=1, zobrazovat='' — produkt je skrytý, dokud ho admin nezařadí).

2. Produkt existuje, od = 'Pelikán' → UPDATE: ceny, texty, obrázky, dostupnost. Pole chráněná příznakem neprepsat se přeskakují.

3. Produkt existuje, od = 'Pecka' → omezený UPDATE: jen cena_c (MOC), dostupnost, obrázky z dodavatele. Název, popis a od zůstanou Pecka.

Po hlavním cyklu projde produkty s vazbami (sum_parts > 0) a doplní záznamy do eshop_produkty_souvisejici.

Produkty, které v importu chybí (zmizely u dodavatele): dostupnost = 0, dostupnost_dodavatel = 0.

Cenotvorba

  • cena_a = prodejní cena zákazníka (po rabátu funkce roundPeckamodel)
  • cena_b / cena_c = MOC (maloobchodní cena bez slevy)
  • cena_nakup = dealer cena (velkoobchod)
  • Pro výrobce v seznamu manufacturersWithoutSales se neaplikuje sleva, prodává se za MOC. Viz Výrobci bez slev.
  • Dva konkrétní kódy jsou natvrdo zakázané: YUNTYHBPEU, YUNTYHBREU.

Migrace

Co si pohlídat

  • 3 soubory místo jednoho — Pelikán má oddělený feed dostupnosti. V novém systému je nutné stahovat a zpracovávat všechny tři, jinak bude dostupnost zastaralá.
  • od = 'Pecka' logika — produkty přebraté do Pecka feedu se chovají jinak. Tato priorita musí být zachována nebo explicitně rozhodnuta při migraci.
  • neprepsat příznak — ručně editované produkty mají ochranu před přepsáním. Sylius musí mít ekvivalent (např. příznak „chráněno").
  • Import loguje typ IP, parsování PP — v import_log lze dohledat historii.