Historie změn feedů: proč ji uchovávat a jak na to
Cena v e-shopu je najednou o třetinu nižší a nikdo neví proč. Bez historie feedů hádáte, s historií to víte za dvě minuty. Ukážeme, co ukládat, jak dlouho a k čemu všemu se to hodí.
Pondělí ráno. Polovina katalogu jednoho dodavatele je v e-shopu o třetinu levnější než v pátek. Chyba dodavatele? Chyba přepočtu měny? Někdo změnil přirážku? Bez historie feedů odpověď hádáte. Voláte dodavateli, ten tvrdí, že u něj je všechno v pořádku, a vy nemáte čím doložit opak.
S historií otevřete záznam změn a za dvě minuty víte, že cenu změnil dodavatelův feed v neděli ve 3:12 a že to bylo u všech produktů jedné značky. Tohle je nejčastější důvod, proč historii feedů uchovávat. Není ale jediný.
Co historie feedů řeší
Aktuální stav v e-shopu říká, jak věci jsou. Historie říká, jak se k tomu došlo. Konkrétně pomáhá v těchto situacích:
| Situace | Bez historie | S historií |
|---|---|---|
| Chybná cena nebo sklad v e-shopu | Hádání, ruční kontrola | Dohledání zdroje a času změny |
| Špatný import smazal nebo přepsal data | Ruční oprava, obnova ze zálohy celého e-shopu | Návrat dotčených polí do stavu před importem |
| Spor s dodavatelem o cenu nebo dostupnost | Tvrzení proti tvrzení | Doklad, co feed v daný den obsahoval |
| Oznámení slevy | Nejistota, jaká byla nejnižší cena | Nejnižší cena za 30 dní z dat |
| Hodnocení dodavatele | Pocit | Počet výpadků, změn cen, vyprodání |
Návrat po špatném importu
Dodavatel pošle useknutý feed. Nebo feed, kde je u všech produktů sklad nula. Nebo změní strukturu a místo popisů přijdou prázdné řetězce. Dobré zpracování většinu z toho zachytí kontrolami, které popisujeme v článku XML feedy: jak fungují a jak je zpracovat. Ale ne všechno.
Když chyba projde až do e-shopu, historie rozhodne, jak rychle ji opravíte. Pokud víte, která pole který import změnil, můžete vrátit přesně je. Bez toho zbývá obnova celé zálohy e-shopu, a ta přepíše i objednávky a úpravy, které mezitím vznikly. Nebo ruční oprava stovek produktů.
Ceny, slevy a 30 dní
Tady historie přestává být technický luxus. Podle § 12a zákona o ochraně spotřebitele musí oznámení o slevě obsahovat nejnižší cenu, za kterou jste zboží nabízeli a prodávali během 30 dnů před slevou. Pravidlo platí pro kamenné obchody i e-shopy a podle ČOI se týká slev v jakékoli podobě, včetně označení „akce". U postupně zvyšované slevy lze podle ČOI uvádět nejnižší cenu za 30 dní před první slevou.
Pokud prodejní ceny nastavujete ručně, e-shop si je obvykle pamatuje sám. Pokud je ale počítáte automaticky z nákupní ceny ve feedu a přirážky, cena se může měnit několikrát denně. Pak potřebujete vlastní záznam prodejních cen po dnech, abyste nejnižší cenu uměli spočítat a doložit. Jak automatické přeceňování nastavit, rozebíráme v článku Automatické přeceňování podle marže.
Historii cen sleduje i Heureka. Slevu na produktu podle svých pravidel označí sama, jen když ji ověří z vlastní historie cen, a produkt k tomu musí mít aspoň 30denní historii. Přeškrtnutá cena na e-shopu, která neodpovídá vývoji ceny, je vidět v grafu na detailu produktu.
Data pro nákup a jednání s dodavateli
Historie feedů je zároveň levný zdroj dat, který se často bez užitku zahazuje. Z uložených změn zjistíte:
- jak často dodavatel mění nákupní ceny a o kolik,
- jak často a na jak dlouho mu dochází sklad u vašich nejprodávanějších produktů,
- kolikrát feed nepřišel, přišel pozdě nebo neprošel kontrolou,
- které produkty dodavatel tiše vyřadil nebo vrátil do nabídky.
To jsou argumenty pro jednání o podmínkách i pro rozhodnutí, u koho produkt objednávat, když ho má víc dodavatelů. Jak kvalitu dat od dodavatelů měřit a vyžadovat, popisujeme v článku Kvalita dat od dodavatelů.
Co ukládat a jak dlouho
Nemusíte ukládat všechno navždy. Osvědčily se nám tři vrstvy:
- Syrové soubory. Přesně to, co přišlo od dodavatele, komprimované. Slouží k dohledání chyb a k důkazu vůči dodavateli. Typicky stačí týdny, u problematických dodavatelů déle.
- Záznam změn. U každé změny produkt, pole, stará hodnota, nová hodnota, čas a zdroj. Vzniká při porovnání s minulým stavem, které stejně děláte v rámci ETL zpracování. Je malý, protože obsahuje jen změny, a vyplatí se ho držet dlouho.
- Denní přehled cen a skladu. Pro každý produkt nejnižší a nejvyšší cenu a dostupnost za den. Z toho se počítá nejnižší cena za 30 dní a statistiky dodavatelů.
Modelový záznam změny může vypadat takto (ilustrační příklad):
| Produkt | Pole | Stará hodnota | Nová hodnota | Čas | Zdroj |
|---|---|---|---|---|---|
| TS-100-BLK-M | nákupní cena | 189,00 | 129,00 | neděle 3:12 | feed dodavatele A |
| TS-100-BLK-M | prodejní cena | 399,00 | 279,00 | neděle 3:15 | přepočet přirážky |
Z takových dvou řádků je hned vidět, že prodejní cenu nezměnil člověk, ale automatický přepočet po změně nákupní ceny. A že oprava patří do feedu, ne do nastavení přirážky.
Pro syrové soubory stačí objektové úložiště s verzováním. Například Amazon S3 umí podle dokumentace pravidly životního cyklu staré verze po nastaveném počtu dní přesunout do levnější třídy úložiště nebo smazat a ponechat jen určitý počet posledních verzí. Záznam změn patří do databáze, kde se dá dotazovat.
Délku uchovávání určete podle účelu, ne podle místa na disku. Pokud z dat dokládáte cenu pro slevy, musí historie vždy pokrýt aspoň 30 dní před každou slevou. Pokud je používáte pro jednání s dodavatelem, dává smysl aspoň rok.
Historie jako základ pro monitoring
Záznam změn je přesně to, co potřebují upozornění na chyby. Pokud víte, jak se feed choval včera a minulý týden, poznáte anomálii: o polovinu méně položek, cenový skok u celé značky, sklad nula u všeho. Bez historie nemáte s čím porovnávat. Jak na tom postavit alerty, popisujeme v článku Monitoring a alerty na chyby feedů.
Na stejných datech stavíme i AI správce feedů, který neobvyklé změny vyhodnocuje dřív, než se dostanou do e-shopu.
Jak na to prakticky
Checklist pro zavedení historie feedů:
- Ukládejte každý stažený feed do vlastního úložiště před zpracováním.
- Při porovnání s minulým stavem zapisujte změny po polích se zdrojem a časem.
- U prodejních cen držte denní přehled aspoň pro 30 dní zpětně, raději déle.
- Nastavte pravidla uchovávání pro každou vrstvu zvlášť.
- Připravte postup pro vrácení změn z konkrétního importu.
- Napojte na historii kontroly a upozornění.
- Jednou za čtvrtletí se podívejte na statistiky dodavatelů.
Historii změn stavíme jako součást napojení v rámci služby napojení dodavatelů a feedů. Jednorázová implementace začíná od 3 000 Kč za dodavatele, správa běží měsíčním paušálem. Pokud už feedy máte napojené a historii ne, doplníme ji do stávajícího řešení.
Potřebujete s tím pomoct?