Next Commerce

Campaigns App guide

v1.8Updated Sep 4, 2026

Set up the commercial side of a NEXT campaign: markets, payments, packages, offers, shipping, domains, analytics, and the handoff to Map Builder and the page build.

Quick start

A Campaign holds the products, prices, payment methods, shipping options, and reporting used by a sales funnel.

PresellOptional warm-up
LandingProduct and offer
CheckoutPackage and payment
UpsellOptional one-click offer
ConfirmationOrder summary

Install Campaigns App from the Apps menu if it is not already in the NEXT sidebar, then use this order:

Create the Campaign

Set its name, currencies, language, shipping countries, payment methods, gateway group, and optional statement descriptor.

Configure commerce

Add the product packages, subscription terms, shipping methods, automatic Offers, and Codes the funnel needs.

Allow the build domains

Add non-local preview and production origins under Campaigns App Settings. These store-level lists apply to every Campaign.

Open Developer

Open the Campaign, choose Developer, and copy the Campaign API key or tracking snippet. This panel also links to Map Builder and Activity Logs.

Map, build, and verify

Approve the funnel in Map Builder, hand off the build inputs, deploy to an allowed domain, and test every checkout and post-purchase path before traffic starts.

What each tool owns

ToolSource of truth forNot responsible for
Campaigns AppAll Campaign setup, including offers, domains, analytics, and API activity.Page design or funnel routing.
Campaigns Admin APICreate and update Campaigns, packages, subscription packages, Offers, and shipping methods from server-side tools.Domain settings or browser checkout calls.
Campaign Map BuilderApproved funnel topology, page roles, branches, package and Offer/Code references, and build intent.Editing Campaigns App commerce data or deploying pages.
Campaign Cart SDK / APICart, checkout, payment, upsell, and receipt behavior on the deployed pages.Pricing decisions or design approval.
Campaigns OSBuild, polish, deployment checks, and browser QA.Changing the approved design or commerce behavior without approval.

Routing ownership

Map Builder defines the intended paths. The deployed pages and SDK configuration implement them. Campaigns App does not edit routing.

Campaign settings

From the Campaigns list, choose New Campaign. Open an existing Campaign and choose Settings to update it.

FieldUse
NameInternal reference. It is not customer-facing.
Default CurrencyBase campaign currency. It cannot be changed after creation.
Additional CurrenciesExtra selling currencies. Enable currencies in store Localization first, then verify package and shipping prices in each currency. Removing a currency deletes its Campaign package and shipping prices.
LanguageDefault language for checkout-related content. It must be enabled on the store.
Available Shipping CountriesCountries returned by the Campaign Cart API. Keep this aligned with page copy, shipping methods, and payment support.
Payment Gateway GroupCampaign-specific gateway group. Leave blank to use the store default.
Available Payment MethodsStandard checkout methods, such as card.
Available Express Payment MethodsSupported express options, such as PayPal, Apple Pay, or Google Pay.
PayPal AccountCampaign-specific PayPal account. Leave blank to use the store default.
Statement DescriptorOptional card-statement text on gateways that support dynamic descriptors. Coordinate custom descriptors with NEXT Alerts and confirm the result with a test transaction.
Enable Package Retail Price & QuantityCompatibility switch for older Campaigns. Leave off for new or updated Campaigns and model price tiers with Offers. Before disabling it, set every package quantity to 1; disabling clears the Campaign's saved package retail prices.

Changing a live Campaign

Package, offer, payment, and shipping changes affect the API immediately. Coordinate live pricing changes with the funnel owner and retest the affected carts before continuing paid traffic.

Domains & developer access

Allow every page origin

The domain lists under Settings apply to every Campaign on the store. A browser page on an unlisted non-local origin cannot call the Campaign Cart API. Add preview and staging origins as Development when their analytics should be suppressed, and add live origins as Production. localhost and 127.0.0.1 work automatically on any port. This is browser-origin control, not server-side API authorization.

EnvironmentOrdersAnalyticsUse
DevelopmentAcceptedNot recordedLocal development and staging.
ProductionAcceptedRecordedLive and production-preview traffic that should appear in reports.

Development is not an order sandbox

A Development origin can still create orders; only analytics collection changes. Enter only origins controlled by the merchant, name an owner and reviewer for live-domain changes, and remove obsolete preview or staging origins after the build.

Use the Developer panel

Open a Campaign and choose Developer. This panel contains:

  • the Campaign API key and API documentation link;
  • a Go to Map link with the Campaign and store prefilled;
  • the session-tracking snippet for custom pages;
  • a direct link to filtered Activity Logs; and
  • a shortcut back to Campaign Settings.

The Campaign API key is safe to ship in browser code. Admin API, store, and payment-gateway tokens are not.

There is no separate Integration or Integrations tab in the current Campaign view.

Automating setup

The Campaigns Admin API can create and update Campaigns, packages, subscription packages, Offers, and shipping methods. It requires a server-side OAuth token. Configure authorized domains in Campaigns App.

Packages, subscriptions & shipping

A Package identifies what the customer can buy: usually one product or variant at its base price. The page sends its package ID and quantity to the Campaign Cart API; Offers calculate the discount.

The governing rule

Packages identify the product or variant. Offers decide the price. Do not create separate packages only to express Buy 1, Buy 2, and Buy 3 pricing.

Add a package

  1. Open the Campaign and choose Packages → Add Package.
  2. Select the product and variant.
  3. Use a customer-safe Package Name, such as Wireless Charging Pad or Open-Ear Headphones - Grey.
  4. For modern Campaigns, keep Quantity at 1 and enter the base Package Price. Express multi-unit tiers through cart quantity and Offers.
  5. Save, then repeat only for genuinely different products, variants, subscriptions, or add-ons.

Package names, prices, and images may appear on live pages and cart summaries. Avoid internal shorthand. After changing a package, test with a fresh browser session and confirm every page or Campaign Map reference still points to the intended package ID.

Subscriptions

Enable Package is Subscription, then set the interval, interval count, and recurring price. The Package Price is the initial charge; Offers and Codes affect this initial charge only. Recurring Price controls later renewals. Confirm the page clearly discloses both amounts, then verify the subscription and order records.

Additional currencies

Packages and shipping methods receive prices for the Campaign's configured currencies. When editing one, choose Recalculate Prices for All Currencies only when you intend to refresh the other currency prices from the submitted currency. Review the resulting prices before launch; do not assume an exchange-rate conversion matches the advertised market price.

Shipping methods

On the Packages tab, choose Add Shipping Method, select a store shipping method, set its Campaign price, and save. Add every option the checkout should expose, including a zero-priced option when the offer promises free shipping. Shipping methods and Available Shipping Countries must agree.

The selector only shows methods already configured in store Fulfillment Settings. If it is empty, create or correct the store-level method first. Multi-currency Campaigns also need a store shipping price for every selling currency.

Offers & codes

An Offer is a pricing rule with three parts: how it is triggered, which cart qualifies, and what discount is applied.

Type in Campaigns AppApplies onTypical use
Offer - Always apply when the order meets the criteriaCheckoutQuantity tiers and other automatic pricing.
Code - Apply only when the code is usedCheckout and post-purchasePromotions, upsells, downsells, and exit-pop discounts.

Post-purchase pages require Codes

Use a Code for upsell, downsell, and exit-pop discounts. An automatic Offer does not apply on those pages.

Create an Offer or Code

  1. On Packages, find Offers & Discounts and choose Add Offer. Give it a clear internal name.
  2. Select the Type. If you select Code, enter a short, uppercase, self-documenting code such as CHARGINGPAD50.
  3. Choose the condition: Any criteria or Package quantity greater than or equal to. Enter the threshold when quantity is selected.
  4. Set package scope separately. Select All Packages only if every current and future package should qualify; otherwise choose the intended packages.
  5. Choose the incentive: percentage off qualifying packages, percentage off shipping, or percentage off the whole order. Enter the percentage and optional Discount Price Rounding.
  6. Save, then test the qualifying and non-qualifying carts.

The Campaign Cart SDK handles customer-entered Code casing. A direct Campaign Cart API build must normalize input to the stored casing and test lowercase and mixed-case entries.

Common patterns

GoalTypeCondition and scopeExample name
Checkout tierOfferMinimum package quantity; scope only to the product or variant family.Open Ear - Buy 2 - 55%
Checkout promotionCodeAny criteria or minimum quantity; scope to the intended packages.Launch - 10%
Upsell or downsellCodeAny criteria; scope to the post-purchase package.Charging Pad - 50%
Exit popCodeScope to the packages shown in the recovery offer.Exit Pop - 10%
Free shippingOffer or CodeUse the shipping-percentage incentive at 100% with the intended trigger.Free Shipping

Stacking and exact prices

When an automatic Offer and a package-percentage Code both apply, the automatic Offer adjusts the package first and the Code discounts that adjusted price. If creative promises an exact unit or bundle price, calculate from the offer-adjusted price, account for Discount Price Rounding, and confirm the final line total on a real cart. Cent rounding means some bundle totals cannot be reached exactly.

Setup mistakes to avoid

  • Creating duplicate packages only for quantity tiers.
  • Using legacy Package Retail Price and Quantity for a new Campaign.
  • Using an automatic Offer on an upsell, downsell, or exit-pop page.
  • Leaving All Packages enabled when accessories should remain full price.
  • Assuming a Code percentage is applied to the base package price when an automatic Offer already applies.
  • Changing or deleting package IDs and Codes before removing their page and Campaign Map references.

Legacy Campaigns

Analytics & activity logs

Analytics

Open a Campaign on the Analytics tab. Reports can be filtered by date and broken down by page, device, browser, country, and state.

CVR (Conversion Rate)

Orders divided by new sessions for the selected period.

AOV (Average Order Value)

Total campaign revenue divided by order count.

Sessions (New Sessions)

Distinct campaign sessions recorded in the selected period.

Carts (Carts Created)

Carts initiated through the Campaign Cart API.

Events by Page shows unique visitors, carts, orders, upsells, sales, and conversion rates for each URL. Use it with device and browser reports to locate the page and environment where performance changes.

SDK and Page Kit builds include session tracking. For a custom implementation, copy the tracking snippet from Developer and add it to every funnel page. Development domains do not record analytics.

Activity Logs

Choose Developer → Open Activity Logs to inspect Campaign and Admin API requests. Filter by method, Campaign, payment method, referrer, date, email address, and success or failure status. For a failed order, start with Campaign + Status: Failed + the customer's email, then inspect the request and response.

Keep logs access-controlled. Before copying a request, screenshot, or agent prompt, redact customer names, emails, addresses, IP and user-agent data, session and order references, and payment or card tokens.

Shopify Shop Sync

If the NEXT store is connected to Shopify, Shop Sync can push Campaign orders, upsells, and subscription renewals to Shopify. If Product Sync is enabled, product catalogue changes belong in Shopify, while Campaign package presentation and pricing remain in Campaigns App.

See the Shop Sync merchant guide for connection, Product Sync settings, and troubleshooting.

Build handoff

Approve the funnel in Map Builder

Use Campaign Map Builder to define pages, branches, package and Offer/Code assignments, promo inputs, and exit-intent bindings. Share or export the map for approval. The page build still implements the routes.

Choose the build from the strongest source

Start from the strongest approved source. A template is one option, not the default.

Assembly modeWhen to use it
Existing HTMLAdapt an approved HTML funnel or page set.
Full custom FigmaBuild the complete funnel from an approved Figma design.
HybridUse HTML or Figma where supplied and templates only for named gaps.
Template-ledUse a maintained template when it is the best available source.

Whatever the source, keep SDK-owned cart, checkout, payment, post-purchase, and receipt behavior unless an exception is approved.

Hand off complete build inputs

Give the builder or agent:

  • Campaign Map ID or exported CampaignSpec, which is Map Builder's versioned funnel plan, with package and Offer/Code references, promo inputs, and exit-intent bindings;
  • the approved Campaign Build Brief and Campaign API key;
  • the public route slug and target repository;
  • approved HTML, Figma, assets, copy, and template contributions, mapped to the pages or components they govern;
  • preview and deployment target;
  • the owner of domain allowlisting; and
  • the required QA depth and launch approver.

Agent-led build

Follow the Campaigns OS guide to prepare or check the Build Packet, build from the approved sources, polish, deploy, and run browser QA.

For a developer-led build, start with the Campaign Cart SDK. Use the Campaign Cart API directly only for custom server-side or backend flows the SDK does not cover.

Launch checklist

Requirement
Campaign settings match the intended currencies, shipping countries, payment methods, gateway, and statement descriptor.
Packages use customer-safe names; quantity tiers use Offers, not duplicate packages.
Subscriptions disclose and test both initial and recurring prices.
Shipping methods cover every promised market and currency.
Checkout tiers use automatic Offers; upsells, downsells, and exit pops use Codes.
Each Offer and Code has the right condition, package scope, discount, and rounding rule.
The Map, Build Brief, and source assignments are approved with no dangling package or Offer/Code references.
Non-local preview and production origins are allowlisted with the intended environment.
Every checkout, payment, currency, post-purchase, decline, and confirmation path has browser evidence. Use the NEXT typed-card test values; never use real customer or card data for QA.
A declined payment recovers on retry without duplicating the order, and both attempts appear in Activity Logs.
Campaign analytics appear on a Production domain. Any external analytics also receives the correct test events, Campaign IDs, and purchase values.

On this page