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í¶
- Stáhne a rozbalí všechny 3 ZIP soubory.
- Před
sklad.xmlTRUNCATujeimport_pelikanaimport_pelikan_nizka_marze_kody. - Parsuje každý soubor přes
XML_parser_pelikan— typ feedu určuje, co parser uloží. - Loguje 3× do
import_log(typPP, jeden záznam na soubor). - 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 funkceroundPeckamodel)cena_b/cena_c= MOC (maloobchodní cena bez slevy)cena_nakup= dealer cena (velkoobchod)- Pro výrobce v seznamu
manufacturersWithoutSalesse 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.
neprepsatpří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— vimport_loglze dohledat historii.