Pricing¶
Úloha modulu¶
pricing drží vše, co souvisí s cenou, regionem, daní a slevami.
Hlavní entity¶
regionprice_setpricetax_ratepromotionpromotion_productpromotion_brandpromotion_category
Jak pricing funguje¶
- Varianta má vazbu 1:1 na
price_set. - V
price_setje skupina cen pro různé regiony, měny, typy cen nebo množstevní prahy. pricedrží konkrétní cenové záznamy.tax_ratedrží daňovou logiku po regionech.promotion*tabulky určují, na co se akce vztahuje.
Supplier trace¶
Tabulka pricing.price nově nese i supplier_id, aby bylo možné dohledat, který dodavatel cenu zapsal nebo změnil.
To je důležité hlavně při:
- importech od více dodavatelů,
- auditování změn ceny,
- vysvětlování, proč vznikla konkrétní historická cena.
Proč není cena přímo na variantě¶
Protože jedna varianta může mít:
- různé ceny pro různé regiony,
- původní a akční cenu,
- časovou platnost,
- množstevní cenu,
- speciální cenový typ.
Jedna kolona price by tento model rozbila.
Důležitá implementační poznámka¶
Migrace explicitně říká, že zápis do pricing.price má jít přes proceduru pricing.price_upsert(), která zavírá konfliktní otevřené záznamy.
Retence historie¶
Historie cen v pricing.price může při importech a častých změnách růst do milionů řádků.
Proto se uzavřená cenová historie drží jen po omezenou dobu:
- cleanup maže záznamy starší než
7dní, - provádí ho procedura
pricing.price_cleanup(), - scheduling je provozní detail podle prostředí deploymentu.