Standalone Inventory menu program that walks an operator through preparing a
special sale, previewing calculated sale prices, backing up the current
oc_product_special rows, and making the new offers live. Sale
definitions are stored in pd_special_sale. New rows are written as
working drafts (live = W) so they can be previewed and deleted
before a live cutover (live = L). Products listed in
pd_special_sales_excluded_products, plus disabled, out-of-stock,
discontinued, or part-flagged catalog rows, are omitted from the offer set.
Each customer group receives its own special price: the regular Base Price
comes from oc_product_discount (quantity 1) when present,
otherwise from oc_product.price, then the sale takes a
percentage of that group's remaining profit and clamps % off that same base.
PREPARE NEW SPECIAL OFFERS:
MAKE NEW SPECIAL OFFERS LIVE:
store_id parks only products assigned in oc_product_to_store)
and adjust their dates for after the special sale.