Intermediate · 28 min · 600 points

Orders, Channels & Stock

Connect products, customers, locations and financial outcomes in one order record.

Open interactive lesson and quiz

What you will learn

  • Create a channel and set location-level stock
  • Record an order and see its product cost and margin
  • Understand coupon redemption and stock reversal

A retailer sells the same SKU online and in a physical store. It needs to know what is available in each location and which channel produced the profit.

Lesson 1

Separate channels and locations

A Sales Channel represents where an order happens: an ecommerce site, POS location, marketplace or store. Enter its site address or physical location to distinguish it from another channel with the same products. Channel stock holds available, reserved, sold, returned and reorder quantities for each SKU and site. A low-stock recommendation appears when available units reach the configured reorder level. A product catalog price is the default order price, while its catalog cost supplies expected COGS.

Lesson 2

Read an order before drawing conclusions

An Order links a channel with one or more product lines, and may link a Contact, Company and coupon. The order stores prices and costs at the moment of sale so a later catalog change does not rewrite history. Expected profit subtracts product cost, discounts, tax, shipping and commission from the order total. Actual profit appears when an order is fulfilled. Cancellation or return reverses channel inventory and coupon usage; review the ledger rather than editing historic line quantities directly.

Lesson 3

Connect external commerce systems safely

An integration source receives a secret key once. Keep it on the ecommerce server or middleware, never in checkout-page JavaScript. POST an order with a stable external ID to the BU-specific commerce endpoint and include its channel and SKU lines. Repeating the same source and external ID will not create another order. Send stock as an absolute stock quantity by channel and SKU; retrying an absolute stock update is safe. Inspect delivery logs for failed requests and check the mapped Contact, Product and Order records.

Lesson 4

Find commerce objects and fields

Open Objects & fields and search Product, Sales Channel or Channel Stock. Product is a standard object; the managed commerce catalog also lists Sales Channel and Channel Stock with their field API names and types. Manage Sales Channels and channel-specific inventory under Revenue → Sales channels & stock, where existing commerce validation updates product totals. Use the authenticated commerce ingestion endpoint for external order and stock data. The navigation visibility setting can hide a module from the sidebar but does not revoke object access.

Lesson 5

Choose columns and save a reusable dataset

An audience can be used as a live segment or as the source for a stored dataset. Display & snapshot fields lets you select up to 30 columns from the primary and related objects. Preview shows those columns in a scrollable table; the estimated count describes all matching primary records while the visible rows are only a sample. Column selection does not restrict the permitted fields available for email personalization.

Save records as custom object creates an independent point-in-time copy of up to 1,000 matching records, not just the preview rows. Give it a meaningful name such as September renewal review. A source record ID is retained for traceability, and selected related values become ordinary fields on the new object. The copy does not automatically refresh when the source changes, and it does not grant new marketing consent. You need configuration, custom-record creation, and export access to every source object. If you want continuously evaluated targeting, keep using the original audience instead of sending from an old snapshot.

Lesson 6

Assign a unique code in a Send Flow

Start in Offers & coupons: create an offer with a future expiry and generate at least one single-use code per intended recipient. Build a Ready email and use Insert personalization → Assigned coupon to insert {{Coupon.Code}}. The available fields also include the offer name and expiry. On the email step of a Send Flow, select the same offer. Review the audience and availability before activation. Each actual recipient receives a reserved code; a retry or later step using that offer reuses the same code for that email address. Test sends do not reserve or display a live coupon. If the offer has too few codes, generate more before activating.

The assigned coupon ledger in Offers shows the recipient email and, after a successful marketing send, its Subscriber ID. “Assigned” means reserved for that person, not used. A matching Contact redeeming the code on an Order marks it Claimed and links the Order. Another Contact cannot redeem an assigned code. Cancellation or return reverses usage and clears the claim while keeping the original recipient assignment; expiry and offer limits still apply. Never bulk-mail an exported list of codes or treat an email open as proof of redemption.

Lesson 7

Choose an offer that matches the audience

In Email settings, choose a coupon offer before inserting Coupon.Code, Coupon.OfferName or Coupon.ExpiresAt. General offers can be used with any audience. An offer restricted to one audience can only be used with that same Send Flow audience. A step may select the same offer as an override for an older email; conflicting choices are rejected before activation. The preview shows the offer name and expiry; a selected subscriber with an existing assignment also sees that assigned code. Otherwise it shows PREVIEW-ONLY. Previewing never reserves codes. A test send reserves a live code only when Assign a real coupon is enabled for an eligible recipient. Review code capacity before activation; each real recipient receives one reserved code.

Lesson 8

Search records within an object

Open an object such as Contacts, Companies or Products and use the search field beside its view selector. It searches only that object’s current records by useful fields such as name, email, title or SKU. The same field works in Standard view and Paged table, and changing objects starts a separate search. Use the Records per page selector to switch to a paged table and choose 10, 25, 50 or 100 rows. The pager shows the visible range and keeps its buttons aligned on narrow screens. Saved views can also retain a separate search across their selected columns.

Practice · Run a two-channel sale

  1. Create two Sales Channels: an online site and a retail location.
  2. Set stock for the same product in each channel and note the reorder levels.
  3. Create a Contact and an Order with the contact, channel, product and quantity.
  4. Compare the order total, cost and expected profit in Orders. Check the channel stock.
  5. Cancel a practice order and verify that its stock is restored.
  6. Create two consenting Contacts using addresses you control, generate two codes and add Coupon.Code to a Ready email. In a Send Flow, select the Offer on the email step and review its code availability. Send, then confirm distinct assignments and Subscriber IDs in the Offers ledger. Place an Order with one matching Contact and code; verify Claimed and the linked Order.
Take the quiz and earn Commerce Operator