JK Model — import dostupnosti¶
Stav k 2026-06-21.
Účel¶
Aktualizuje dostupnost produktů JK Model v e-shopu — zda je produkt skladem u dodavatele. Ceny ani texty se z tohoto importu nepřebírají.
Zdroj dat¶
JK Model pushuje skladový XML soubor přes HTTP POST na endpoint cron/jkmodel_sklad.php (čte php://input). Soubor se uloží jako content/files/PRENOSY/_JKMODEL/sklad.xml. Princip stejný jako u Pohody (dodavatel aktivně posílá), protokol jiný — HTTP místo FTP.
Formát je Stormware/Pohoda lStk:listStock (existují dvě verze XML jmenného prostoru: starší lst:, novější lstk:). Parser zvládá obě.
Spouštění¶
| Krok | Skript | Kdy |
|---|---|---|
| Push od dodavatele | cron/jkmodel_sklad.php |
na vyžádání JK Modelem |
| Parsování + import | cron/jkmodel_parsovani.php |
8:44, 10:44, 14:44, 18:44 |
jkmodel_import.php není samostatný cron — parsovací skript ho na konci includuje přes require.
Co se děje při parsování¶
- Smaže záznamy starší 30 dní z
import_log. - Najde
sklad.xmlv_JKMODEL/. - TRUNCATuje staging tabulku
import_jkmodel. - Parsuje XML, plní
import_jkmodel(kód, název, EAN, počty, ceny, typ skladu…). - Přejmenuje zpracovaný soubor na
sklad-import-1_YYYYMMDD_HHiiss— rotace drží 3 generace záloh. - Zapíše do
import_log(typPJKM). - Spustí import.
Co import mění v DB¶
UPDATE eshop_produkty p
JOIN import_jkmodel i ON i.code = p.kod
SET p.dostupnost_dodavatel = CASE WHEN i.count > 0 THEN 2 ELSE 0 END,
p.od_puvodni = 'JK Model'
- Shoda produktů přes
kod(kód v eshopu) =codez XML (uppercase). countv staging tabulce je already snížen o rezervace (count - max(0, reservation)).- Výsledkem je buď 2 (skladem) nebo 0 (není skladem).
- Zápiší se jen produkty, které v eshopu existují — neznámé kódy se ignorují.
Migrace¶
Co si pohlídat
- Import aktualizuje jen dostupnost, ne ceny. Odkud pochází cena produktů JK Model je nutné dohledat jinde (pravděpodobně ruční ceník nebo Pohoda).
- Push endpoint (
jkmodel_sklad.php) musí zůstat funkční nebo JK Model musí přejít na jiný protokol — aktuálně používají Pohoda/Stormware XML. - Staging tabulka
import_jkmodelobsahuje více polí (nákupní cena, prodejní cena, EAN, typ skladu…) než se aktuálně importuje — v budoucnu lze využít.