Skip to content

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í

  1. Smaže záznamy starší 30 dní z import_log.
  2. Najde sklad.xml v _JKMODEL/.
  3. TRUNCATuje staging tabulku import_jkmodel.
  4. Parsuje XML, plní import_jkmodel (kód, název, EAN, počty, ceny, typ skladu…).
  5. Přejmenuje zpracovaný soubor na sklad-import-1_YYYYMMDD_HHiiss — rotace drží 3 generace záloh.
  6. Zapíše do import_log (typ PJKM).
  7. 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) = code z XML (uppercase).
  • count v 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_jkmodel obsahuje více polí (nákupní cena, prodejní cena, EAN, typ skladu…) než se aktuálně importuje — v budoucnu lze využít.