Pole od a od_puvodni¶
Stav k 2026-06-21.
Dvě pole v eshop_produkty s podobným názvem ale odlišnou rolí. Obě jsou enum se seznamem dodavatelů:
'Pecka','Pelikán','Astra','Corfix','Hacker','JETI','Proxxon','Modelimex',
'Special Hobby','MPM','Conquest','Eduard','JK Model','Cherks'
Výchozí hodnota: 'Pecka' (tj. produkt vytvořen ručně, bez importu).
od — aktuální vlastník produktu¶
Říká, kdo produkt v současnosti spravuje — kdo má právo přepisovat jeho data.
Při každém importu, kdy importer produkt zpracuje (přidá nebo aktualizuje), zapíše své jméno do od. Pokud tentýž produkt zná více dodavatelů, vyhraje ten, kdo importoval naposledy.
Kde se používá:
neprepsatlogika — import respektujeneprepsat = 1jen pro "svůj" produktjeProduktNedostupnyDotaz()— produkty od Astra/Pelikán/Corfix zobrazují "cena na dotaz" pokud nejsou skladem (kontrolujeodiod_puvodni)- Pohoda import — rozhoduje o přepsání ceny vs. zachování ceny z dodavatele
od_puvodni — původní/první importer¶
Říká, kdo produkt do systému jako první přinesl. Jednou zapsáno, nemění se (při dalších importech se nepřepíše, pokud produkt existuje).
Klíčové použití: reset dostupnosti na začátku importního runu
Každý importer na začátku resetnuje dostupnost_dodavatel = 0 pro všechny "své" produkty:
UPDATE eshop_produkty SET dostupnost_dodavatel = 0
WHERE web_id = ? AND od_puvodni = 'Corfix'
Tím se označí, že dodavatel zatím nic nepotvrdil. Pak pro každý produkt ve feedu nastaví správnou dostupnost. Na konci produkty s dostupnost_dodavatel = 0 jsou nedostupné u dodavatele.
Proč od_puvodni a ne od?
Protože produkt může přejít pod jiného dodavatele (přepíše od), ale pro účely resetování dostupnosti je potřeba vědět, kdo ho původně přinesl. Jinak by reset zasáhl i produkty přiřazené jinému dodavateli.
Jak od a od_puvodni spolupracují¶
1. Importer X zpracovává feed
→ UPDATE dostupnost_dodavatel = 0 WHERE od_puvodni = 'X' ← reset
2. Pro každý produkt ve feedu:
→ pokud produkt neexistuje: INSERT, od = 'X', od_puvodni = 'X'
→ pokud existuje: UPDATE, od = 'X' (od_puvodni se nemění)
3. Produkty s od_puvodni = 'X' a dostupnost_dodavatel = 0
→ nejsou ve feedu → nedostupné u dodavatele
Zvláštní případ: produkt u více dodavatelů¶
Pokud stejný produkt (stejný EAN nebo kód) dodává více dodavatelů:
od_puvodni= kdo ho přinesl jako první (historická hodnota)od= kdo importoval naposledyod_puvodniresetuje dostupnost jen "svého" dodavatele — ostatní dodavatelé nejsou ovlivněni
To umožňuje, že produkt může být dostupný u dodavatele B i když ho momentálně "vlastní" dodavatel A.
Dopad na migraci do Sylius¶
od a od_puvodni nemají ekvivalent v Sylius
Sylius nezná koncept "vlastníka produktu" per dodavatel. Importní worker pro Sylius musí tuto logiku implementovat vlastní vrstvou — pravděpodobně jako custom atribut nebo supplier-channel vazbu.
Reset dostupnosti per dodavatel
Vzor "reset WHERE od_puvodni = X → zpracuj feed → nedostupné = co zbylo s 0" musí importní worker pro Sylius replikovat jiným způsobem — například per-supplier staging tabulkou nebo timestamp-based detekcí.