Operator context
Longer answer
Discount codes are operationally simple on the surface but rule-complex underneath. The migration involves moving the code itself (the string the customer enters), the discount value or percentage, the applicable products or collections, the customer eligibility rules, the usage limits, and the expiration date. Matrixify handles the bulk load of standard discount codes cleanly.
Complex stacking rules are where migrations slip. Source platforms often allow specific discount combinations ("free shipping plus 10% off" or "loyalty discount plus first-order discount") through custom logic. Shopify's native discount handling has improved significantly but does not match every source-platform stacking pattern. For brands with complex rules, Shopify Functions covers the gaps.
The pre-migration audit inventories active discount codes by category: standard percentage/amount discounts, BOGO and quantity-based, customer-segment-specific, stackable, automated (no code required). For each category, decide the Shopify-side implementation pattern: native discounts, Shopify Functions, or app-managed via Discounts apps like Bold Discounts or Avada.
Customer-facing communication matters less for discount codes than for gift cards because codes are typically entered intentionally rather than discovered passively. Brands sometimes pause the issuance of new codes during the cutover window to simplify the migration; ongoing campaigns can resume after stabilisation.