Skip to content

Pohoda — import produktů (ERP)

Stav k 2026-06-21.


Účel

Pohoda je zdrojem pravdy pro produkty vlastního skladu (od = 'Pecka'). Importuje ceny, zásoby na skladech, EAN a základní data. Běží ve dvou režimech — noční plný import a průběžný inkrementální diff každých 20 minut.


Zdroj dat

Pohoda sama exportuje XML soubory přes FTP do PRENOSY/Z_POHODY/. Parsovací skript si je odtamtud vyzvedne — žádné stahování, soubor je tam v momentě spuštění.

Typ importu se pozná podle názvu souboru:

Název souboru Režim
začíná DIFF inkrementální — jen změny
ostatní plný — celý sklad

Spouštění

Krok Skript Kdy
Parsování + import cron/pohoda_parsovani.php každých 10 min, 3:00–21:00
Parsování + import (plný) cron/pohoda_parsovani_full.php 1:15 denně

Import (pohoda_import.php) se nevolá samostatně — parsovací skript ho includuje hned po úspěšném parsování.


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

  1. Najde XML soubor v Z_POHODY/ a rozhodne full vs. diff.
  2. TRUNCATuje import_produkty.
  3. Parsuje XML přes XML_parser_pecka (lib/eshop/class.parser.php).
  4. Rotace záloh — drží 80 generací (pohoda-import-00000001_…).
  5. Loguje typ P do import_log.
  6. Po plném importu pošle e-mail adminovi.
  7. Spustí import.

Co se děje při importu

Import je rozdělen do sady sub-skriptů v cron/pohoda-import/. Pořadí je důležité.

Přípravná fáze — úprava cen v import_produkty před zápisem

Probíhá vždy (diff i full):

Skript Co dělá
ceny-pouze-ze-zlatnicke.php speciální logika pro zlatnický sortiment (jen CZ)
produkty-bez-5procent.php vrátí cenu na MOC výrobcům bez slevy (manufacturersWithoutSales) a kódům FOX*
srovnat-ceny-od-dodavatelu.php klíčový — pro produkty současně v Pohodě i u dodavatele překryje cenu v import_produkty cenou z dodavatelské staging tabulky (Astra, Pelikán, Hacker, Corfix, Modelimex)
nizke-marze-od-dodavatelu.php označí nizka_marze=1 v import_produkty pro kódy s nízkou marží (z import_astra_cenik a import_pelikan_nizka_marze_kody)

Základní import — zakladni-import.php

Pro každý záznam z import_produkty:

  • Existující produkt → UPDATE: ceny, EAN, MJ, import=1, od='Pecka', dostupnost=0
  • Nový produkt → INSERT: novy=1, zobrazovat=0 (skrytý, dokud admin nezařadí)
  • Zásoby → UPDATE/INSERT do eshop_produkty_sklady_mnozstvi

Speciální chování: - KOM sklad — komise se přičítá k množství na SZLAT (zákazník vidí součet) - PHE sklad — nastaví skupina_phe=1 a phe_kod - Doprodej — pokud produkt nemá zásoby na žádném skladu, schová se (zobrazovat=0) - U inkrementálního importu se zásoby SZLAT zpracují vždy, KOM jen pokud byl v diffu přítomen SZLAT pro daný kód

Fáze jen pro plný import

Skript Co dělá
nezobrazovat-polozky-co-nejsou-ve-skladech-pohody.php skryje produkty, které v Pohodě vůbec nejsou
skryt-polozky-s-nizkou-marzi.php skryje produkty s nizka_marze=1
kopie-tabulky-full-importu.php kopie dat pro srovnání / audit
aktualizace-novinek.php označí nové produkty

Závěrečná fáze (vždy)

Skript Co dělá
srovnat-ceny-od-corfix.php doladění cen z Corfixu
aktualizovat_produkty_na_ceste.php aktualizuje produkty označené jako „na cestě"
aktualizace-akce-s-dostupnosti.php propíše dostupnost do probíhajících akcí

Sklady (CZ)

Zkratka Popis
SZLAT hlavní sklad (zlatnická)
KOM komise — přičítá se k SZLAT
PHE příslušenství (jiný typ produktu)
Hypernova, Karolina, Letnany, SESTKA pobočkové sklady

Migrace

Co si pohlídat

  • srovnat-ceny-od-dodavatelu.php je kritický — finální cena produktu může pocházet z Pohody, Astry, Pelikána, Hackera, Corfixu nebo Modelimexu v závislosti na tom, kdo má daný kód v nabídce. Tato logika musí být v novém systému explicitní.
  • Inkrementální vs. plný import — diff zpracuje jen změněné zásoby SZLAT. Plný import navíc schová produkty mimo Pohodu a vyhodnotí marže. Nový systém musí oba režimy rozlišovat.
  • KOM sklad má hardcoded patch storage_id 5→555 kvůli řazení zpracování. Při migraci tuto závislost eliminovat.
  • Celá sada skriptů v pohoda-import/ tvoří jeden logický celek — nelze je přenášet odděleně.