Magento Open Source price rules and promotions: when a campaign needs a planned build
Marketing and merchandising leads usually need one answer before a sale: can the team set up this campaign's discounts in the admin, or does the build need a partner first? Magento Open Source handles most promotional discounting through two built-in tools, catalog price rules and cart price rules, both managed under the Marketing menu. Whether a campaign can be run in-house depends less on the discount itself and more on how the discounts will stack, which customer groups and websites they apply to, and how the store's catalog, tax and integration setup reacts when several rules match the same order.
The admin areas involved are Catalog Price Rules, Cart Price Rules, and the coupon code settings attached to each cart rule. Catalog price rules change the price a shopper sees on product pages, category listings and in the cart, and they are evaluated by customer group, website and date range. Cart price rules apply at checkout and can carry coupon codes, minimum subtotals, shipping discounts and "discard subsequent rules" behavior. Rule priority numbers determine the order in which rules are applied, and that order is what decides the final price. Teams should confirm the exact stacking behavior for their own rule combinations in a staging store before any rule goes live, rather than assuming the default order matches the campaign they designed.
Scope depends on the store's catalog, tax and integration setup, so the first planning step is an inventory of what will interact with the promotion. Product types (simple, configurable, bundle, and others), attribute sets and category structure determine which products a rule can target cleanly. Tax configuration determines whether discounts are applied before or after tax and how prices display. Multi-source inventory or a separate ERP can change which products are eligible at a given time, and payment or shipping integrations can affect which discounts are visible at checkout. Each of these areas adds test cases, and the campaign plan should list them before the build starts.
Some campaign requirements fall outside what Magento Open Source provides. Audience targeting beyond customer groups, and scheduled staging of promotions across content and pricing, are features that Adobe documents for Adobe Commerce rather than the open source edition. Confirm the current feature boundary for your release in Adobe's documentation, because the edition comparison is the authority for what ships. If a campaign depends on those capabilities, the decision is between a manual process run by the team, custom module development, or a different platform edition, and each option carries a different one-time and recurring cost.
Ask a partner for a written quote that lists the rules to be built, the stacking tests to be run, the integrations to be checked, and the handover tasks for your team. Cost drivers include the number of rule combinations, the number of customer groups and websites involved, any custom discount logic, and the test effort needed before launch. Ongoing costs usually come from rule maintenance after each campaign and from retesting when the store is upgraded or a tax or integration change lands. Ask who owns each test result and who signs off before the promotion goes live.
What the Magento Open Source promotion tools do
Magento Open Source handles promotions through four admin tools that interact with each other. Each one applies a different kind of discount at a different point in the shopper's path, so their settings need to be planned together. Confirm each behavior against the documentation for the exact release you run before you design campaigns.
Catalog price rules
Catalog price rules change the price of matching products before a shopper adds anything to the cart. You set conditions on products and categories, the customer groups and websites they apply to, a date range, and a discount action. Because they run against the catalog, they affect category pages, search results and product pages alike. Check how the rules are reindexed in your release and how discounted prices display when a sale starts or ends, since large rule sets can slow indexing on busy catalogs.
Cart price rules
Cart price rules apply discounts to the whole cart or to selected items once conditions are met, such as subtotal, item quantity, shipping method or customer group. They can also be limited by total uses or uses per customer. Because they are evaluated at checkout, test them with mixed carts, including products already discounted by a catalog rule. Confirm how the discount is calculated and labeled on the resulting order.
Coupon codes
Coupon codes are attached to a cart price rule. A campaign can use one specific code that you enter yourself, or a batch of auto-generated codes for campaigns that need many unique codes. Usage limits and expiry settings determine whether a code can be redeemed again. Confirm how generated codes are exported and reconciled, how codes behave in guest checkout, and how the use count is recorded when an order is canceled or refunded.
Rule priority and stacking
Each catalog and cart price rule has a priority number, and rules are applied in that order. Priority decides which discount takes effect when several rules touch the same product or cart, and some cart rules can stop further rules from being processed. Keep a written priority map for every active campaign, because a rule added later with a lower number can change prices that were already promoted. Verify stacking with test orders for each combination you plan to run.
Basic ecommerce scope
The magento/magento2 README describes Magento Open Source as providing basic ecommerce capabilities for building an online store. Promotion tools are part of that core, but the edition does not include the audience targeting or scheduled staging that Adobe Commerce adds in this area. Treat each capability above as a starting point, and check it against the documentation for the exact release in use before you commit to a campaign design.
How catalog and cart price rules stack, and where priority decides the final price
The most important thing to settle before you build a campaign is which rule wins when several apply to the same product or basket. In Magento Open Source, catalog price rules change the price a shopper sees on product, category and search pages, and cart price rules then act on the basket total, shipping and item discounts at checkout. The two rule types are evaluated at different points in the purchase path, so a shopper can see a discounted price on a product page and still receive a different final amount in the cart. Your team should document the intended result for each campaign as a worked example, then check that the store produces exactly that result.
Priority is the setting that decides the order in which rules are applied within each type. Lower numbers are generally treated as higher priority, but you should confirm this convention, and the exact handling of ties, in the current Open Source documentation before you write any internal guidance. Pay attention to the discard subsequent rules option as well. When it is enabled on a rule that matches, later rules with lower priority should not be applied to that item. Whether this option applies across catalog rules, cart rules or both, and how it interacts with a stacked coupon, are points to verify in a test store rather than assume from memory of earlier releases.
Scope limits which shoppers and sites a rule can touch. Each rule is assigned to one or more customer groups and one or more websites, so a retail promotion and a wholesale price change can coexist in the same catalog without leaking into each other. Scope errors are a common source of incidents: a rule assigned to the wrong customer group can discount B2B orders, and a rule that is not assigned to a website in a multi-store setup will never fire there. Build a scope matrix listing every rule, group, website and date window, and have a reviewer sign it off before launch.
Coupon usage limits add a second layer of control for cart price rules. A rule can be restricted by total uses across all customers and by uses per customer, and a rule can be set to generate coupon codes or to require a single shared code. Limits are counted when orders are placed, so you should test what happens when a shopper holds a coupon in an open cart while the limit is reached by others. Ask your implementation team to confirm how usage counts are recorded under your checkout and payment setup, and to plan how support will handle a customer who reports a rejected code.
Illustrative example: a store runs a 10 percent catalog rule for a category at priority 1 and a fixed amount cart rule for orders over a set value at priority 2, both assigned to the retail group on the main website. A test script should record the product price shown, the cart subtotal, the discount lines at checkout and the final total for a retail shopper, a wholesale shopper and a guest, then compare each result with the written expected values. Repeat the test after any change to priority, scope or the discard option, because these settings often change the outcome in ways that are not obvious from the admin screens.
Which rule type, coupon model and priority scheme fits each campaign
This table compares the main configuration choices for Magento Open Source price rules and promotions: rule type, coupon model, discount visibility, priority numbering and reporting. Read each row as a decision: check when the option fits, then review its risks and the records to prepare before saving any rule. Overlap and margin erosion are the most common causes of mispriced orders, so document your register of active rules first.
| Option | When it fits | What it risks | Document before configuring |
|---|---|---|---|
| Catalog price rule | Product-level markdowns on defined categories or SKUs, such as seasonal clearance offered to a customer group | Stacks with other rules, erodes margin on affected SKUs, and changes product prices before cart totals are calculated | Target categories or SKUs, discount basis, customer groups, start and end dates, and the minimum margin each product must keep |
| Cart price rule | Basket-level offers such as spend thresholds, free shipping or a percentage off the subtotal | Discount depends on basket contents, so per-SKU margin is harder to track and customers may miss conditions at checkout | Subtotal threshold, excluded products, eligible shipping methods, and whether the offer may stack with catalog rules |
| Single-use coupons | One-off recovery, win-back or personalized offers where each code should redeem only once | Code generation and distribution need controls, and leaked codes are hard to trace without a naming scheme | Code format, generation batch owner, usage limit per code, expiry date, and the channel where codes are issued |
| Generic coupon codes | Public campaigns such as a newsletter or event code shared with a broad audience | The code can spread beyond the intended audience, and without a total use cap redemptions may exceed the budget | Total uses allowed, per-customer limit, whether the code is public or restricted, and who may retire it |
| Auto-applied discounts | Offers meant to reach every eligible buyer without entering a code, such as a threshold promotion | Customers may expect discounts that conflict with other rules, and overlaps are harder to spot at checkout | Eligibility conditions, customer-facing message text, and the rules that must not stack with the offer |
| Code-entered discounts | Partner, affiliate or channel campaigns that need attribution to a specific source | Customers who cannot find a code may abandon checkout, and codes may appear on coupon sites | Source tagging convention, code owner, and how redemptions will be reported to each partner |
| Priority numbering | Overlapping campaigns where one rule must win or where rules must apply in a predictable order | Unclear ordering produces wrong prices, and changing a number later can alter prices on live carts | A numbered register of active rules, the ordering convention confirmed for your version, and an approver for new priorities |
| Campaign reporting | Any campaign that must show revenue, margin or redemptions by promotion | Rule names alone may not separate overlapping discounts in standard reports, so gaps appear after launch | Naming convention, reporting owner, and the order fields used to match orders to rules, checked against your version's reports |
What Magento Open Source lacks for audience targeting and scheduled staging
The main constraint for a promotions calendar is that Magento Open Source does not provide the audience targeting and scheduled staging controls that Adobe Commerce documents for campaign work. Catalog price rules and cart price rules in the open source edition can be limited by customer group, website, date range and coupon code. They do not offer the segment-based personalization that Adobe Commerce documents, and they cannot prepare a set of rules and related content in a staging area and publish them together at a chosen time. Before you commit to a launch plan, confirm the current feature coverage for each item against the Open Source documentation and the release notes for the exact version you will run, because edition boundaries can change between releases.
Each gap affects the launch calendar in a different way. Without scheduled staging, every rule must be entered with its own start and end dates, and a campaign made up of several price rules, coupons and promotional blocks cannot be reviewed as one unit and switched on together. Changes made during review can go live immediately if they are saved in the admin. Without segment-based targeting, an offer for a specific shopper group has to be modeled as a customer group or a distributed coupon, which means someone maintains group membership and coupon exports. Rule priority and the option to stop processing later rules also interact with dates, so overlapping campaigns need a written order of precedence that the calendar owner approves.
Teams usually choose one of three workarounds. Time-boxed rules managed by staff keep everything inside the existing admin: rules are created with fixed dates and staff enable or disable them at set times. The trade-off is ongoing staff time, the risk of errors around time zones and missed switch-offs, and a weak approval trail unless you add a written process. Custom development can add segment logic or a scheduler in a custom module. This gives the most control but carries build and test cost, and Adobe's upgrade guide names customizations as a driver of upgrade effort, so each patch cycle will need regression checks. A separate campaign tool can own audiences and schedules and push prices or coupons into the store through an integration. This adds an integration to build and maintain, a data sync between the tool and the cart, and another access model to review, including whether the tool touches payment-adjacent data in your PCI DSS scope.
Before you choose, list every campaign on the calendar and mark which edition feature it needs. Ask each candidate partner for a quote that separates one-time build work from recurring costs such as maintenance, retesting after patches and staff training, and ask who owns the rules after launch. Test overlapping dates, time zone boundaries and coupon limits in a non-production environment that matches your production version. Record the decision and the owner for each workaround so that the next campaign does not depend on one person's memory of how the rules were set up.
How to build and test Magento Open Source price rules and promotions before launch
This sequence moves a promotion calendar from a campaign list to a tested, signed-off set of catalog and cart price rules, so each rule behaves as intended for every customer group, website and tax setting before it reaches shoppers. Each step closes with a named artifact that the team keeps for launch and for audits.
Build the campaign inventory and rule map
Marketing, merchandising and finance list every planned promotion for the next campaign window, with its discount logic, eligible products, customer groups, websites, start and end dates, and whether it should be a catalog price rule or a cart price rule with an optional coupon code. The developer or platform lead maps each entry to a rule type and flags anything that depends on audience targeting or scheduled staging, which the open source edition does not provide, so the team can decide how those campaigns will be handled. The output is a rule register: one row per rule with owner, purpose, scope, priority, and the approver for changes. The step is done when every campaign has a row and no campaign lacks an owner.
Set up customer groups and websites
Before any rule is saved, the team confirms the customer groups, store websites and store views that the register references, and creates any missing ones in the non-production store. Catalog price rules are scoped to customer groups and websites, so a mismatch here will silently exclude shoppers or apply a discount to the wrong audience. The platform lead records the group IDs, website IDs and the currency and tax configuration of each website in a short reference sheet that the testers use later. The step is complete when the sheet matches the rule register and a tester can log in as one account from each group.
Configure rules and coupons in a non-production store
The developer enters each rule from the register into a staging copy of the production configuration, starting with catalog price rules and then cart price rules, and sets conditions, actions, discount amounts, dates, usage limits and coupon settings exactly as written. Coupon codes are generated or imported with their usage limits, and any custom logic is reviewed against Adobe's developer documentation for the installed version. Each rule is saved with its register ID in the description field so that reports and support tickets can be traced back. The output is a configured staging store and a change log that records who entered each rule and when. The step is done when every register row has a matching rule in staging.
Test priority and stacking behavior
Testers run a test matrix that combines rules across priority values, the discard-subsequent-rules setting, coupon and non-coupon rules, and multiple customer groups. For each combination they record the expected final price, the discount line in the cart, and the order total at checkout, then compare the actual results against the expected values. Where two rules overlap, the team confirms which one wins and whether the outcome matches the business intent in the register. The output is a completed test matrix with pass or fail results, defect tickets for each failure, and a list of rule pairs that must not run together. The step is done when every matrix row has a result and all failures are either fixed or accepted in writing by the rule owner.
Verify tax and price display
Testers confirm that price rules produce the right net and gross amounts for each tax zone and display setting the store uses, including whether prices show with or without tax in the catalog and cart. They check that discounts apply before or after tax as the configuration expects, that fixed product taxes are included where they apply, and that invoices and order emails show the same figures as the cart. Tax settings are documented in the tax configuration guide and should be confirmed with the finance team, who own the tax treatment. The output is a tax and display sign-off checklist with a screenshot or export for each tested zone. The step is done when finance has reviewed the checklist and no figure differs between cart, checkout and the order record.
Check cache and indexing behavior
The team confirms that price changes appear on storefront pages, category listings, search results and the cart within the time the business expects, and that expired rules stop applying at their end date. This check covers full-page caching, block caching and any indexers that feed price data to the storefront, and it runs against the same cache layer used in production, such as Varnish for a self-managed installation. The tester reloads pages as anonymous and logged-in customers, clears caches the way the operations runbook specifies, and records what was stale and for how long. The output is a cache and index verification log and a cache-clearing procedure that operations can follow at launch. The step is done when the log shows correct prices on every tested page type after the documented steps.
Get staff sign-off and write the rollback plan
Marketing, finance, customer service and the platform owner review the rule register, test matrix, tax checklist and cache log together, and each one signs off on the rules they own. The team also writes a rollback procedure that states how to disable each rule or coupon, the order in which to do it, who has the authority to act, and how orders placed under a rule will be handled if it is withdrawn. Customer service receives a short brief on expected discount wording and common questions. The output is a signed launch checklist and a rollback procedure stored with the runbook. The step is done when every sign-off is recorded and the rollback steps have been walked through once in staging.
Monitor the first hours after go-live
After the rules go live, the team watches order volume, discount totals, coupon usage counts, checkout error rates and support tickets for the first period agreed in the launch checklist. They compare the observed discount amounts with the expected values in the test matrix and investigate any order where the applied discount differs from the register. If a rule misbehaves, the team uses the rollback procedure rather than editing live rules ad hoc, then records the cause in the defect log. The output is a go-live monitoring log with the decisions taken and a short post-campaign review that feeds back into the rule register for the next campaign. The step is done when the agreed monitoring window ends with no open discount defects.
Testing promotions before launch: stacking, cache and tax checks
Start the pre-launch test plan with overlapping rules, because that is where most promotion errors appear. List every catalog price rule and cart price rule that will be live during the campaign window, then record each rule's priority, customer groups, websites and whether it stops later rules from applying. Build test carts that trigger two or more rules at once, and confirm that the discount Magento Open Source applies matches the written expectation for each combination. Next, test coupon limits: total uses per coupon, uses per customer, and what happens when a coupon is applied to a cart that has already reached its limit. Run each case as a guest and as a logged-in customer in each relevant customer group, since group membership changes which rules match.
Full-page caching is the step teams most often skip. For self-managed installations, Adobe documents Varnish as the full-page cache accelerator, so your team must configure it and purge it whenever promotions change. If Varnish serves a cached product or category page after a rule goes live, shoppers see the old price even though the rule is correct in the admin. Test this in staging by publishing a rule, purging the affected cache, and then loading the same pages as a guest and as a logged-in customer, since cached responses can differ by visitor type. Adobe's requirements for 2.4.8-p5 list Varnish 8, so confirm the version and cache configuration for your release against the Varnish documentation and the Adobe cache guide before you rely on the test results.
Tax-inclusive price display changes how a promotion looks to the shopper. Test each promotion on the product page, in the mini cart, in the cart totals and at checkout, with price display set to include tax, and compare the discounted price with the tax shown in the order summary. Use test addresses in each tax zone the store sells into, because the same rule can produce different displayed totals once tax is calculated on the discounted amount. Check that the order total, the invoice and the confirmation email all agree. Tax class and rate setup belongs to the tax configuration work, so this check covers only how promotions interact with it. Record the expected net, tax and gross figures for every test cart before you run it, so reviewers can compare the output with a fixed reference.
Where the store runs more than one website or currency, add those cases to the matrix. Price rules are scoped to websites and customer groups, so confirm that a rule on one website does not appear on another, and that discounted prices convert correctly in each displayed currency. Confirm with your implementation team whether the discount is calculated in base or display currency in your configuration, and test both paths if the answer is unclear. Document the expected result for each test case before execution, keep a retest log after every cache purge or rule change, and name one owner who approves the promotion for launch. In a quote, ask how many test cases, environments and retest cycles are included in the scope.
What drives promotion effort and cost, and how to keep it down
This table lists the main drivers of Magento Open Source promotion effort and cost, with the direction each one pushes spend, a way to reduce it and the question to put to a partner. Read it before requesting a quote, since the answers to the final column set the written scope. Most drivers compound, so limiting campaigns and rule logic usually saves the most.
| Driver | Why it moves cost or effort | How to keep it down | Question to ask in a quote |
|---|---|---|---|
| Concurrent campaigns | Each overlapping campaign adds rules to test, monitor and roll back, which raises effort. | Schedule campaigns in sequence and cap the number of live promotions at once. | How many campaigns will run at the same time, and how many rule sets must be tested for each? |
| Rule overlap and priority | Catalog and cart rules that stack or conflict need a priority map and extra test cases. | Document one priority order and keep stackable rules to a short, named list. | Which rule combinations must be tested together, and who approves the priority map? |
| Custom discount logic | Logic beyond native conditions and actions needs custom code, review and upgrade maintenance. | Use native cart and catalog conditions first and justify each custom rule in writing. | Which discounts need code beyond native conditions, and who maintains that code after launch? |
| Extension count | Each promotion extension adds compatibility checks on every patch and upgrade. Adobe's upgrade guide names extension count as a driver of upgrade effort. | Keep one maintained promotion path and remove unused extensions before scoping. | Which extensions touch pricing or promotions, and what does each add to upgrade testing? |
| Tax configuration | Discounts interact with tax calculation and price display, so each tax case needs verification. | Limit tax rules to the markets you sell in and test one order for each tax case. | Which tax rules and price display settings does the promotion test plan cover? |
| ERP or order-system reporting | Discount codes and rule identifiers must reconcile with ERP or order records, adding mapping and reporting work. | Agree the discount reporting fields before build and reuse existing order fields where possible. | Which discount data must reach the ERP, in what format, and how is it reconciled? |
| Test environment parity | A staging store with different data, prices or extensions hides rule conflicts, so test cycles grow. | Keep staging on the same release, extensions and representative catalog data as production. | Does the quote include a staging environment that matches production, and who refreshes its data? |
| Stakeholder sign-off | Each approver adds review rounds for rule designs, offers and test results, which lengthens the schedule. | Name one owner for promotion decisions and use a fixed approval checklist. | How many approval rounds does the quote assume, and who must approve each campaign? |
How promotions connect to tax, cache, catalog and order data
A promotion is only as correct as the data it touches. Each card below names one system that changes how a catalog price rule or cart price rule calculates, displays or records a discount, and the check to agree with the team that owns it before launch.
Tax configuration and price display
Catalog and cart price rules work on prices that Magento displays either including or excluding tax, as set in the tax configuration. A rule can look correct on a product page and still produce a different discounted total at checkout if tax classes, rates or the display setting differ from what the campaign team assumed. Confirm with the tax owner which display setting applies to each storefront, and how the discounted amount is taxed for each customer group and destination country.
Catalog structure and product types
Rule conditions depend on categories, attributes, SKUs and product types, and each type responds differently to a discount. A configurable parent may match a rule while its child simple products do not, and bundle or grouped items can receive the discount in ways the campaign did not intend. Confirm with the catalog owner which product types are in scope, which attributes drive conditions, and whether category assignments will change during the campaign window.
Stock sources and salable quantity
An offer on a product that is stocked in one source only can appear available on the storefront while the source that would fulfill the order has no units left. Promotional demand can exceed the salable quantity of the source chosen by priority or distance, which leads to cancellations after payment. Confirm with the inventory owner which sources and stocks feed each storefront, how source selection works for discounted orders, and when stock imports from the ERP run during a sale.
Full-page cache and price freshness
Adobe documents Varnish as the full-page cache accelerator for self-managed installations, so cached pages can serve prices and promotional messages from before a rule started or after it ended. Cache flushes at campaign start and end may not reach every node in a multi-server setup. Confirm with the platform owner the Varnish version and configuration for your release, the invalidation steps at each rule boundary, and how customer-specific cart totals are kept out of shared cache.
Discounted order exports to ERP
Order totals, discount amounts, coupon codes and tax lines pass to the ERP or accounting system through an integration. If the export sends only a net price, or a coupon code that the ERP cannot map, revenue, tax and bank reconciliation will not agree with the storefront. Confirm with the finance owner whether discounts arrive at line level or order level, which fields carry rule and coupon identifiers, and how refunds and partial shipments of discounted orders are posted.
Promotion performance reporting
Campaign reports need rule identifiers, coupon codes and discount amounts stored on each order, along with one agreed definition of gross and net revenue. Without these, reports can double-count discounts, attribute orders to the wrong rule after a priority change, or lose orders placed under a rule that was later disabled. Confirm with the analytics owner which order fields are extracted, whether rule names are preserved after edits, and which timezone defines the campaign start and end.
Questions buyers ask before hiring help with promotions
What does help with Magento promotions cost, and what drives it?
Cost follows from the written scope. DeployOpen does not publish a price list, and a quote is built from the rules, integrations and testing you need. The main components are discovery of your campaign model, configuration of catalog and cart price rules, custom code where standard rules cannot express a promotion, test coverage and documentation. The initial build is one-time. Recurring costs appear when campaigns change every season, when someone must maintain rules, or when a patch or upgrade touches custom discount logic. Costs rise with the number of discount types, stacking and exclusion rules, customer-group logic, integrations with an ERP or loyalty system and the number of test cases. Ask for a quote that separates build, testing and post-launch support, and that names who maintains the rules after go-live.
How long does promotion setup take in Magento Open Source?
Duration depends on rule complexity and on how ready your inputs are. A store with a few catalog price rules and standard coupon codes is a shorter job than one with stacked rules, per-customer limits and an external promotion source. Delays usually come from margin rules nobody has approved, inconsistent product data and late decisions about which discounts may combine. Testing adds time because each rule interacts with tax, shipping and other rules. Ask for a plan that lists the input dates the work depends on, the test cycles and a go-live window that avoids your next campaign. A duration should appear only in a written scope, after the rule inventory is complete.
What must our team provide before promotion work starts?
Your team supplies the business decisions and access. Most delays trace back to missing inputs, so prepare these before work starts:
- Campaign calendar: dates, channels, expected overlaps and blackout periods.
- Margin rules: price floors, approved discount limits and any products that must never be discounted.
- Product data: clean SKUs, category assignments, attribute values and existing tier prices.
- Customer groups: who qualifies for each offer and how groups are assigned.
- Test accounts: one per customer group, plus admin users with the roles that approve and publish rules.
- Environments: a staging instance that matches production configuration closely enough to test pricing.
- Owners: a named person who approves each rule before it goes live.
Can one internal Magento developer set up promotions alone?
A capable developer can configure simple catalog and cart price rules and coupon codes without outside help, provided they understand rule priority, stacking, indexing and cache behavior. The risks are concentration and review. One person often knows the rules, the test results and the exceptions, so knowledge leaves with them. Stacking surprises are also easier to miss without a second reviewer. Keep the work in-house if the rules are standard and a peer reviews each change against a written test matrix. Bring in outside help for custom discount logic, integration with another system, test automation or an upgrade that affects existing promotions. Confirm your developer's experience with the Magento pricing modules before deciding.
Does Magento Open Source include scheduled staging for promotions?
Plan on no. Scheduled staging is a capability associated with Adobe Commerce, the commercial edition, and it should not be assumed in Open Source. Confirm the current feature set against the Magento Open Source release notes and Adobe's edition comparison before you finalize the design. Open Source does support the start and end dates on catalog and cart price rules, which covers many time-limited campaigns. If you need previewing a bundle of changes on a schedule, the usual options are a separate staging instance, a documented manual publishing step or custom scheduling code. Custom scheduling needs its own testing and review, and it adds a maintenance item to every upgrade. Audience targeting beyond customer groups is also limited, so confirm the exact targeting you need early.
How should we handle promotions during a platform upgrade?
Adobe's upgrade guide recommends applying patches every cycle and names customizations, third-party integrations and coding practices as drivers of upgrade effort. Promotions are often custom-heavy, so treat them as a priority in the upgrade plan. Export a full inventory of rules, coupons and custom discount code before you start. Freeze campaign changes during the upgrade window and schedule the upgrade outside campaign periods. Run the Upgrade Compatibility Tool, then test every active rule on staging with the target version, including stacking, customer groups, tax and shipping. Check indexing, cache and any Varnish invalidation, so customers do not see stale prices. Keep a rollback plan that covers the database and code together.
What should a written scope for promotion work include?
Most engagements are fixed-scope, with scope, deliverables and timelines agreed in writing before work starts. Ask that the document contains:
- Rule inventory: each rule's type, priority, stacking behavior, customer groups and date range.
- Systems in scope: the storefront, admin, ERP or loyalty connections and any custom modules.
- Test matrix: the scenarios, test accounts, devices and acceptance criteria for each rule.
- Environments and handover: where testing happens and what documentation you receive.
- Responsibilities: what your team provides, what the partner delivers and who signs off.
- Change control: how later campaign changes are requested, estimated and approved.
- Post-launch terms: support window, patch handling and any retainer.
- Exclusions and assumptions: anything not covered, including features unavailable in Open Source.
How DeployOpen works on this
DeployOpen plans and builds catalog price rules, cart price rules and coupon codes in a Magento Open Source store that runs in infrastructure you control. Work follows a written scope, is tested against your campaign calendar before launch, and is handed over with documentation your team can run.
How we scope
- Inventory of existing catalog price rules, cart price rules and coupon codes, with the campaigns each one supports
- Written list of the promotion types in scope, including any manual or external discount logic that sits outside core rules
- Rule priority and stop-further-processing decisions documented before any rule is created in the admin
- Explicit statement of what the open source edition does not provide for audience targeting or scheduled staging, and the agreed workaround if one is needed
How we build
- Configure catalog and cart price rules in a non-production environment that matches your production Magento Open Source version
- Test coupon combinations, rule priority conflicts and customer group eligibility against scripted test orders
- Review performance impact of large rule sets on indexing and cache behavior with your hosting team
- Build any custom module or extension work to Magento's PSR-4 module structure, with code review and version control
How we hand over
- Pre-launch test report listing each promotion scenario, expected result and observed result
- Runbook covering how to create, pause and retire rules and coupons without breaking active campaigns
- Administrator training for the marketing and store operations staff who will manage rules day to day
- Written record of custom code, configuration changes and known limits, delivered with the project files
How we support
- Fixed-scope engagements are agreed in writing, with deliverables and timelines confirmed before work starts
- Ongoing support, upgrades and continuous testing are available as a retainer after handover
- Retested promotion scenarios whenever you apply a Magento patch or move to a newer 2.4.x release
- Ask for a quote based on the written scope, which sets out the work, the deliverables and the recurring support terms

