spree-pricing
Installation
SKILL.md
Spree Pricing
A price in Spree 6 is always an amount plus a currency on a variant — there is no implicit "the" price. On top of the base prices sit price lists (conditional overrides), resolved per request from a pricing context.
Variant ── Price (price_) × n
├── base prices: price_list_id = nil, one per currency (what everyone pays by default)
└── list prices: price_list_id = pl_…, per currency, optional min_quantity (quantity breaks)
PriceList (pl_) ── PriceRule × n (STI: MarketRule, ChannelRule, VolumeRule, …)
└── optionally owned by one Catalog (cat_) → audience = the catalog's assignments
Price ── PriceHistory × n (base-price changes, for EU Omnibus)
Tax-inclusive vs exclusive display and VAT restatement live in spree-taxes.