ARTICLE

Shopify Plus Scripts vs Adobe Commerce Price Rules: Promotion Engines Compared

Shopify Plus Scripts vs Adobe Commerce Price Rules: Promotion Engines Compared

The promotion engine is one of the most underappreciated platform differences between Shopify Plus and Adobe Commerce. Both platforms let you run sales. Both let you offer percentage discounts, dollar-off discounts, free shipping, and buy-one-get-one promotions. The mechanics of how you build the more nuanced promotions, and how the platform behaves when promotions interact with each other, differ enough that a merchandising team that is comfortable on one platform can find the other quite frustrating.

This piece is a side-by-side comparison of how Shopify Plus Scripts and Shopify Functions handle promotions versus how Adobe Commerce Price Rules handle them. The framing is what each platform makes easy, what each platform makes hard, and what to think about if your promotions are sophisticated enough that the choice actually matters.

Bemeir’s Adobe Commerce engineering practice and Shopify Plus practice have built promotion engines on both sides. The framing below is the one we use when the platform-selection conversation gets specific about merchandising mechanics.

What “promotion engine” actually means

A promotion engine on a commerce platform is the set of rules and logic that determines pricing adjustments based on cart contents, customer attributes, and contextual factors. The simple case is “10 percent off all orders this weekend.” The complex case is “if the customer is in the gold loyalty tier and the cart contains at least one item from the spring collection, apply a tiered discount based on cart subtotal, but exclude items that are already discounted, and the discount stacks with the free shipping threshold but not with any other coupon code.”

The two platforms approach this complexity differently. Adobe Commerce exposes Cart Price Rules and Catalog Price Rules as the primary configuration surface, with conditions and actions configured through the admin UI. Shopify Plus historically exposed Scripts, a Ruby-based scripting environment for line item, shipping, and payment customizations, and is migrating those capabilities to Shopify Functions, a more modern Rust or AssemblyScript-based system.

The administrative experience differs significantly. Adobe Commerce promotions are admin-configured by merchandisers without engineering involvement, within the capability bounds of the conditions and actions UI. Shopify Plus promotions beyond the basics typically require a developer to write code, with the Shopify Functions model formalizing this rather than the older Scripts approach.

Catalog versus cart pricing

Adobe Commerce distinguishes two kinds of price rule. Catalog Price Rules adjust the displayed price of products based on conditions, before any cart interaction. Cart Price Rules adjust the cart total or specific line items based on conditions that depend on cart contents.

This distinction matters because catalog-level discounts and cart-level discounts behave differently from a customer perspective. A catalog discount shows the discounted price on the product page. A cart discount shows the original price on the product page and applies the discount at the cart.

Shopify Plus does not have the same explicit distinction. Discounts are generally applied at the cart level, with the exception of compare-at pricing which serves a similar function to catalog discounts. The result is that merchandising teams accustomed to Adobe Commerce often miss the catalog-level rule when working in Shopify, and merchandising teams accustomed to Shopify sometimes overuse Adobe Commerce catalog rules.

For businesses where the displayed product price is part of the merchandising strategy, Adobe Commerce’s two-tier model is the more flexible system. For businesses where most discounts are cart-level and the displayed price is the “regular” price, Shopify’s simpler model is sufficient.

The Adobe Commerce price rules documentation and the Shopify Plus Scripts documentation cover the platform-specific mechanics.

Conditions: what each platform lets you express

The condition surface determines what promotions you can actually build.

Adobe Commerce Cart Price Rules support conditions on customer attributes (customer group, customer registration date, custom customer attribute), cart attributes (subtotal, weight, payment method, shipping method, country, shipping address, billing address), product attributes (category, attribute set, custom product attribute), and time (start date, end date, day of week, time of day).

Shopify Plus Scripts and Functions support broader programmatic conditions. Because the platform exposes code, you can write any condition that can be expressed in Ruby (for Scripts) or Rust or AssemblyScript (for Functions). The trade-off is that the conditions live in code rather than configuration, and changes require engineering effort.

The pragmatic test is whether your promotions live within the Adobe Commerce condition surface or push beyond it. If they live within, Adobe Commerce is the cleaner experience for merchandisers because no engineering is required. If they push beyond, Shopify’s programmatic model is the more capable system.

The table below summarizes the condition comparison.

Condition type Adobe Commerce Shopify Plus
Customer group Yes, native Yes, via tags
Cart subtotal threshold Yes, native Yes, programmatic
Specific product or category Yes, native Yes, programmatic
Day of week or time of day Yes, native Programmatic
Custom customer attribute Yes, native Via metafields
Loyalty tier Via custom attribute Via metafields or apps
External API condition Via custom module Programmatic in Functions

Actions: what each platform lets you do

The action surface is what the promotion actually changes when its conditions are met.

Adobe Commerce supports a set of standard actions: percentage discount, fixed amount discount, fixed amount for whole cart, buy X get Y free, free shipping, and a few combinations. The actions are configurable in the admin UI.

Shopify Plus Scripts and Functions can perform almost any action on line items, shipping methods, and payment methods that the platform’s API exposes. Custom discount logic, line item splitting, payment method filtering, and shipping method filtering are all in scope. The flexibility comes with the cost that the actions live in code.

For most standard promotions, both platforms are sufficient. For complex promotions that combine multiple discount types or that interact with shipping and payment methods, Shopify’s programmatic model has a higher ceiling.

Stacking and exclusion

The most operationally important difference between the two platforms is how promotions stack and exclude each other.

Adobe Commerce supports a Priority attribute on Cart Price Rules and a Stop Further Rules Processing flag. The priority orders the rules. The stop flag terminates evaluation if a rule matches. The combination lets merchandisers build a layered promotion structure where higher-priority rules win.

Shopify Plus does not have an explicit priority system at the platform level. Stacking behavior is determined by the rules themselves and by the Scripts or Functions logic the developer writes. The system can be made to behave like Adobe Commerce’s priority model, but the discipline is in the code rather than the configuration.

For businesses with many concurrent promotions, Adobe Commerce’s priority model is the cleaner experience. For businesses with simpler promotional structures or with engineering ownership of the promotion logic, Shopify’s model is workable.

Discount codes versus automatic discounts

Both platforms support both discount codes (the customer enters a code at checkout) and automatic discounts (the discount applies without customer action when conditions are met).

Adobe Commerce treats both as Cart Price Rules with a flag for whether a code is required. The configuration surface is the same, which is operationally efficient.

Shopify Plus treats them as separate concepts: Discount Codes and Automatic Discounts. The configuration is slightly different for each. For developers using Shopify Functions, the API surface is consistent across both types.

For merchandisers running campaigns where the same promotion is sometimes coupon-driven and sometimes automatic, Adobe Commerce’s unified model is operationally simpler. For Shopify, the separation produces clean campaign-level reporting at the cost of slightly more configuration.

Reporting and analytics

The reporting on promotion performance is meaningful for understanding which campaigns actually drive incremental revenue versus discount cannibalization.

Adobe Commerce exposes promotion performance reports through the admin, with breakdowns by rule, by date, by customer group, and by product category. The reports are sufficient for most merchandising analysis, with the option to push more sophisticated analysis into business intelligence tools.

Shopify Plus exposes campaign-level reporting through the admin and integrates with Shopify’s broader analytics suite. The reporting is more polished from a UX perspective and supports comparison across campaigns more naturally.

For most operational use cases, both platforms produce sufficient reporting. For sophisticated promotion analysis like incrementality testing, both platforms require integration with external analytics tools.

When each platform fits

The platform-selection conversation usually comes down to four questions when promotions are a meaningful factor.

How sophisticated are your standard promotions? If they fit within Adobe Commerce’s condition and action surface, the platform’s admin-configurable model is operationally cleaner. If they require custom logic beyond what the conditions and actions UI exposes, Shopify’s programmatic model is the more capable system.

How many concurrent promotions do you run? If many, Adobe Commerce’s priority and exclusion model is the cleaner system. If few, both platforms are sufficient.

Who owns the promotion logic operationally? If merchandisers own promotion configuration without engineering involvement, Adobe Commerce is the more accessible platform. If engineering owns or co-owns promotion logic, Shopify’s programmatic approach can be the cleaner fit.

How important is the displayed product price as part of the strategy? If you use the displayed price as a merchandising tool, Adobe Commerce’s catalog rules are the right fit. If displayed price is just the “regular” price and discounts are cart-level, Shopify’s model is sufficient.

Both platforms can run sophisticated promotional businesses. The wrong choice is to assume the promotion engine is platform-agnostic. The right choice is to map your specific promotional patterns against each platform’s model and ask which one fits more naturally. Bemeir builds promotion logic on both platforms regularly, and the framing above is the one we use when the conversation gets specific. If you are also looking at Shopware or BigCommerce as alternatives, the same questions translate, and the answers will be specific to how each platform handles the underlying surfaces of conditions, actions, stacking, and reporting.

Let us help you get started on a project with Shopify Plus Scripts vs Adobe Commerce Price Rules: Promotion Engines Compared and leverage our partnership to your fullest advantage. Fill out the contact form below to get started.

more articles about ecommerce

Read on the latest with Shopify, Magento, eCommerce topics and more.