Pricing schema¶
Tabulky¶
regionprice_setpricetax_ratepromotionpromotion_productpromotion_brandpromotion_category
Klíčové vazby¶
price_set.variant_id -> catalog.product_variant.idprice.price_set_id -> price_set.idprice.region_id -> region.idtax_rate.region_id -> region.id- promo vazby směřují na produkt, brand nebo kategorii
Klíčová pravidla¶
price_setje 1:1 na variantu,amountje integer v minor units,tax_rate.ratejenumeric(5,2),- jen jedna defaultní daňová sazba na region,
valid_tomusí být později nežvalid_from.
Procedura¶
pricing.price_upsert() je součást databázové logiky. Dnes zavírá konfliktní otevřené cenové záznamy a vkládá nový zápis.
pricing.price_cleanup(p_days int DEFAULT 7) maže staré uzavřené cenové záznamy, které už přesahují retenční okno.
Retence a cleanup¶
Cleanup lze spouštět ručně nebo plánovaně:
- ručně nebo přes DB scheduler:
CALL pricing.price_cleanup(7);- přes externí cron:
psql -c "CALL pricing.price_cleanup(7);"
Samotná procedura je čistá databázová logika a funguje nezávisle na způsobu schedulingu. To, jestli se použije pg_cron, system cron, nebo jiný deployment scheduler, je provozní rozhodnutí podle možností hostingu.