Video chapters
- 0:00 Welcome
- 0:09 Overview: the life of an order
- 0:43 Part 1 · Orders come in: explained
- 0:54 Ava buys on the website
- 1:59 Her order in Order Center
- 2:24 Part 2 · Read an order: explained
- 2:37 Take it, then read Ava's order
- 3:03 Part 3 · Fulfil and ship: explained
- 3:16 Process, ship in one click, deliver, complete
- 4:34 Part 4 · A phone order: explained
- 4:50 Marcus's order: deposit, hold, cancel
- 6:15 Part 5 · After the sale: explained
- 6:27 A note, a reply and a partial refund
- 7:44 Wrap-up
Written guide
Overview
Follow one order through payment and fulfilment, keeping the buyer’s purchase, money records and stock movements connected.
Before you start
Have the customer's order number or the invoice's linked order reference ready. Work in the organization that owns that record. The screenshots below are historical local records: GKEJ9KIXU is the catalogue gift-card order; J33TEUEWE came from a separate manual quote. They are not interchangeable examples of the same purchase. No fresh collection or physical shipment is claimed in this update.
An order has separate operational status, payment history and shipping history. Check all three before changing it: “Completed” does not mean a carrier delivered it, and “Partially Refunded” does not necessarily mean the customer owes more.
01. Find the same order
Why this matters
A buyer purchase, staff order and converted invoice can originate differently while arriving in Order Management.
Follow these steps
- Expand Storefront, open Order, then select Order Management.
- Enter the order number in Search orders…. Compare customer, address and total before opening a row; a similar customer name is insufficient.
- Use the row's view control to open the order. Confirm the drawer heading contains the same order number.
- Open Items and compare SKU, selected variant and quantity with the customer's receipt or originating invoice. Then inspect Pricing, Shipping and Payments without switching records.

Historical list after refund rehearsals. The $55 manual quote order is a different record from the $30 catalogue orders; do not combine their outcomes.
Check the result
A manual free-text line is not automatically a stock-backed catalogue item. Preserve SKU and variant identity when stock matters.
02. Customer details and operational state
Why this matters
Correct contact and address information supports fulfilment; payment state must still be inspected independently.
Follow these steps
In Overview inspect Customer, Addresses and Timeline. Use Edit Contact or Edit Billing/Shipping Address to correct the intended fields, save and reopen. Review the available status operations from the current state: confirm/process, hold, ship/deliver/complete or cancel as offered. Read the dialog before confirming and supply the reason where requested.
Check the result
Marking an order operationally complete does not establish provider payment. The timeline records transitions, not proof that a carrier delivered a parcel.
03. Take payment and reconcile
Why this matters
A payment record needs a result and reference, not just a new order badge.
Follow these steps
Open Payments and inspect existing payments first. Choose Take Payment, select the configured method and amount, complete the controlled payment, then refresh. Compare total paid, remaining balance, currency and payment reference. For partial payment repeat only for the remaining intended amount and inspect both payment records.
Check the result
If the operation times out, refresh before retrying. Never mark an order Paid manually as a substitute for provider confirmation.

For GKEJ9KIXU, $30 gross collected, $5 refunded and $25 net retained coexist with $0 uncollected balance. The original payment remains Paid; the refund does not create a new collection request.
Read Uncollected balance before choosing Take Payment. In this example there is no unpaid balance to collect even though the header says Partially Refunded. Open the existing payment row to inspect its reference instead of creating another transaction. For your own partial payment, verify the remaining amount after each successful collection and stop if the result is unclear.
04. Fulfil, communicate and recover
Why this matters
Shipping, customer messages, private notes and workflow history have different audiences and effects.
Follow these steps
Open Shipping and create or inspect the linked shipment. Verify tracking on the shipment and customer-facing order where available. Use Messages for the intended communication, Notes for internal context, History for audit and Workflow for the configured process. For a return/refund open the linked records and compare paid/refunded amounts and inventory decisions.
Check the result
Refund money and restock goods independently. A failed handoff stays unresolved until the destination record is inspected; a note saying refunded cannot replace the refund record.
Leave a useful internal handoff
- Open the same order's Notes tab.
- Enter a concise factual handoff in Add a note…, such as what was checked and what the next colleague should do. Do not describe an unperformed shipment as completed.
- Choose Add once. Wait for the result; if it fails, preserve the error and check existing notes before retrying.
- Close and reopen the order. Verify the note text and author in Notes, then inspect History separately for recorded changes.

This local note documents a training dispatch reference and warns against creating another shipment. It is an internal note, not a sent customer message or carrier confirmation.
Choose the right surface: Messages is for communication, Notes is internal context, History is the record audit and Workflow is its configured process. Saving text in Notes does not send it to the buyer. Reopen Payments and Shipping after a handoff if its wording concerns either record.
Detailed instructions
The following retained material documents earlier local work. Its pending checks remain pending; historical successful outcomes are not claims of a fresh execution. Use the source-authored instructions above to prepare the new recording, and preserve these references for comparison.
E18: Complete the buyer’s purchase
Worked example
Choose A4, quantity one, and Add to cart. Open the cart: twenty-five for the print plus five delivery makes thirty. Choose Checkout. Enter the buyer's email and Continue, then their full name, street, city, state and ZIP. Keep Use same address for billing selected and continue to payment. Open Gift card and apply the issued code. It covers thirty and leaves twenty on the card; applying the quote hasn't spent it yet. Choose Place order — paid with gift card. The receipt now shows Paid, thirty dollars and the card ending J P S 3. Keep the order number to find this purchase in Studio Manager.
Included controls: buyer payment, success/order handoff, order number, cart clearing, product SKU/options, contact/address, total, payment reference, paid balance.
Limitations and checks: The reserve email/name/address are course fixtures, not signup requirements. External processor settlement/mixed or insufficient tender are separate gaps.
Check the result: Same buyer/catalogue order/transaction/total on both sides and actual state; record stock settlement.
Recovery / evidence caution: If payment exists but order does not, retain reference and inspect order/transaction before retry; capture smallest actual recovery without second charge.
Implementation reference: CheckoutSuccess.tsx, storefront.checkout.service.ts.
Next-batch matching evidence: SF47-buyer-gift-purchase.webm.
E19: Fulfil and reconcile the same order
Worked example
Back in Studio Manager, open Storefront, Orders and our buyer's order. Check the delivery address, then Actions and Start Processing. The immediate header changes to Processing. When we reopen it, the drawer still says Paid: a recorded status-display inconsistency. That isn't another payment request; our original thirty-dollar collection remains. Quick Ship records an arranged shipment and ships all remaining items. Choose the carrier, enter tracking and Ship; our rehearsal uses Other with a training reference. For partial shipments, use Shipping instead. After actual delivery, choose Actions, Mark Delivered and Complete Order. Reload and reopen to check the saved result: Completed, Delivered, one of one A4 items shipped. Payments still shows thirty collected, with no balance owing.
Included controls: Order Overview, Items, Pricing, Shipping, Payments, stock movement, transaction, receipt, customer notice, fulfilment status.
Limitations and checks: The recorded Processing→reopenedPaid mismatch is now taught explicitly, with the actual final full-reload Completed/Delivered1of1 check; it is not hidden or described as repaired. Exact cache causality and a persisted Processing-stage recovery are unverified. Do not invent a reload that restored Processing, repeat Start Processing, recreate GKE or duplicate its shipment. A learner facing this symptom should refresh and check the saved record before repeating a lifecycle action; this recording proves the final completed-state readback only. Merchant fulfilment is locally recorded, not physical carrier delivery. Stock auto-deduction/cost movements and customer notification remain unproved and are not narrated.
Check the result: GKEJ9KIXU: one recorded A4 allocation, Delivered1of1, Completed before concession; original30 collection unchanged. No stock deduction or outbound notice claim.
Implementation reference: order-details.tsx, storefront.order.service.ts.
Next-batch matching evidence: SF49-quickship-allocated-lines.webm, SF50-shipping-normalization-readback.webm.
Advanced
A12: Handle an order as a working record
Learner draft — pending demonstration:
An order is more than its status badge. Start with Overview and Items to understand the job, Pricing and Payments to reconcile the money, and Shipping for delivery. Keep internal Notes separate from customer Messages. History records what changed; Workflow and its operations belong to the order's handling process. Use the customer purchase throughout these views so a change of screen does not lose the order's identity.
Included controls: Dashboard, Order Management, Overview, Items, Pricing, Shipping, Payments, Actions, Messages, Notes, History, Workflow, Workflows.
Limitations and checks: Open an actual buyer order. Review its tabs, action menu and workflow state. Add a permitted internal note or customer message, update status or ownership where available, and inspect the saved history.
Check the result: Every exposed nested view/action demonstrated with linked state/history result.
Implementation reference: order-details.tsx, order-workflow-center.tsx.
A13: Partial payments and failed handoffs
Learner draft — pending demonstration:
A payment can be partial, complete or more than the balance. Check amount paid and amount remaining as well as the status. If the buyer paid but the order handoff failed, preserve the payment reference and look for an existing order before asking for another payment. Cancellation and refund also need separate money checks. The right recovery changes the failed part of the workflow without duplicating the successful part.
Included controls: partial payment, overpayment, cancel, duplicate/reload, payment complete/order incomplete, refund, balance reconciliation.
Limitations and checks: Authorized isolated test cases: partial/full/overpayment where supported, cancel, repeated/reload handoff, payment-complete/order-incomplete. Check the actual result; verify any provider refund separately.
Check the result: References, balances, idempotency/duplicate boundaries and recovery outcome actual.
Implementation reference: storefront.checkout.service.ts, storefront.payment.service.ts.
A14: Prepare and track a shipment
Learner draft — pending demonstration:
The five-dollar delivery offer priced the purchase. Now Shipping manages the parcel. Start from the matching order, confirm the ship-from location and packed measurements, then use the supported shipment method. If a connected carrier provides a quote or label, compare it with the intended parcel before purchase. Follow the shipment's tracking and history separately from the order's payment state.
Included controls: Dashboard, Shipments, Create Shipment, ship from, packaging, weight/dimensions, provider quote, label, tracking, manual status.
Limitations and checks: Actual Create Shipment fields/navigation→supported shipment, provider test quote/label if available, tracking and manual state. Resolve/log automatic tracking404 with retest; do not assert status equals physical delivery.
Check the result: Order/address/parcel/label or manual-shipment reference agree; tracking source/states explained.
Implementation reference: shipping-create.tsx, shipping-tracker.tsx, shipping-auto-tracking.tsx.
A16: Receive a return and decide its condition
Learner draft — pending demonstration:
A returned print raises two questions: can the shop sell it again, and should the customer receive money back? Start with the original order and line. Inspect the returned item, then choose the supported stock treatment for sellable or damaged goods. The original location and cost history matter for reconciliation. A manual invoice line without a catalogue stock link is not a substitute for that history.
Included controls: Dashboard, Returns, Manage, return request, original order/line, inspection, sellable restock, damaged goods, origin stock/cost, return label, history.
Limitations and checks: E18 paid/stock-settled order prerequisite. Exact request/receive/inspect/restock controls, sellable/damaged comparisons, original cost/location guard, labels/history. Capture cannot-return boundary when stock snapshot absent.
Check the result: Return linked to original catalogue line; sellable balance changes correctly/damaged does not silently restock.
Implementation reference: return-stock-dialog.tsx, return-content.tsx.
A17: Refund money independently of stock
Worked example
A refund changes money; it doesn't put the print back into stock. We'll give this buyer a five-dollar delivery concession. Open the same order, check Payments, then Actions. Enter five in refund Amount, explain the concession in Reason and choose Process Refund. Reopen Payments after the confirmation. Thirty was collected, five refunded and twenty-five retained; the original gift-card payment remains below. Now open that card in Gift Card Center. Its balance rises from twenty to twenty-five, and the timeline links the refund to our order. The order and original tender agree on where the money went.
Included controls: Refunds, full/partial refund, provider rejection, stock-only return, money-only refund, both, refund reconciliation.
Limitations and checks: Full refund, stock return and provider rejection are separate unfinished branches. The reason is a delivery concession, not proof of refund allocation to financial lines or a carrier refund. Home revenue0 is current UX09, not corrected analytics; do not narrate dashboard success here.
Check the result: GKEJ9KIXU order Payments30gross/5refunded/25net, originalGCT-TM5H-Y4SW-Q677 preserved, +5card refundGCT-PWBV-3D8C-LMW4 linked same order.
Implementation reference: refund-list.tsx, storefront.payment.service.ts.
Next-batch matching evidence: SF48-partial-refund.webm.
Limitations and checks
Current UI entry and editor: . Corresponding SDK storefront schemas and the retained AppEngine references define fields and consumer boundaries. Provider calls, external delivery, payments and financial mutations were not performed for this writing task.
Next steps
You can now follow the module from its configuration to the record that proves the result. Use the relevant chapter to revisit an alternative or troubleshoot the exact failed handoff.
Appmint Carts: shopper basket and saved-cart management — supporting guide
Overview
Build the customer cart, inspect server-calculated totals and find the same cart from the operator side.
Before you start
Have a published customer product page with a known SKU/variant and a configured delivery method. Keep one shopper browser session for the exercise; switching to an unrelated private window can create another cart. The historical examples below use Cedar Botanical Print: A4 $25 or A3 $35, with $5 delivery. The cart is a pre-order record; its total is not a payment receipt.
01. Build and change a cart
Why this matters
A cart preserves the buyer’s product and option choices before the order exists.
Follow these steps
Open the actual customer product page, select a valid variant and quantity and choose Add to Cart. Open the cart, inspect product/variant/price, change quantity and remove an item. Add it again and reload the page to check the retained state.
Check the result
Do not use the admin product editor as proof of a buyer cart. Required options and unavailable products need their own rejected-input checks.
Follow one variant into the cart
- Open your site's actual View link, open the product and select the intended size before Add to Cart.
- Open the cart control. Compare the selected option, quantity and unit price with the product page.
- Use the line's quantity controls, wait for recalculation and inspect the product subtotal separately from shipping. Remove the item with its remove control, add it again and reload the same browser page to check persistence.

Historical A3 cart result totals $40. It verifies the recorded selection/calculation, not current stock allocation or payment.
02. Delivery, codes and totals
Why this matters
Delivery and discount eligibility can change with the destination, item and buyer.
Follow these steps
Apply an eligible code and inspect the changed lines, then remove it. Enter contact and shipping details through Checkout → Continue and inspect the displayed options and selected delivery total. Compare an eligible and ineligible destination. Use a configured gift-card tender only after payment configuration, then inspect balance and total.
Check the result
An address typed into checkout does not prove account ownership. A subtotal is not the final delivered total.
03. Find the staff cart
Why this matters
A cart record is distinct from a completed order and from a recovery campaign.
Follow these steps
Open Storefront → Cart, find the corresponding cart by its actual customer/session context and open details. Compare items, totals, contact/address and lifecycle with the shopper view. Complete a controlled checkout and inspect the related order rather than treating the cart as the purchase.
Check the result
Anonymous and signed-in sessions may have different identities. Use independent sessions deliberately and do not assume a typed email restores another person’s basket.
Read the staff record without confusing guest identity
- Open Storefront → Cart and use Search carts… to locate the recorded customer/session context. A row labelled Guest is not proof that a buyer has signed in.
- Open the cart identifier. Compare SKU, chosen options, quantity, subtotal, shipping and last-updated time with the shopper session.

Historical cart977ae174 holds A4 and totals$30. It is deliberately not presented as the same A3 cart pictured earlier; match your own cart identity before reconciling.
- Do not describe the staff cart as a paid order. After a successful controlled checkout, use the resulting order number and its Payments records for collection evidence.
- If no corresponding record is clear, preserve the shopper's SKU, time and session context before searching further. Typing a customer's email into checkout does not authorize access to that person's other carts.
04. Recover a failed checkout
Why this matters
Resolve the failing product, offer, shipping or payment condition before repeating checkout.
Follow these steps
Read the exact rejection, inspect the product’s current availability, code dates/usage and shipping eligibility, then recalculate the cart. For payment errors inspect existing payment/order results before retrying. If a cart is labelled abandoned, inspect the available recovery action and actual recipient delivery separately.
Check the result
An abandoned badge does not prove outreach was sent.
Detailed instructions
The following retained material documents earlier local work. Its pending checks remain pending; historical successful outcomes are not claims of a fresh execution. Use the source-authored instructions above to prepare the new recording, and preserve these references for comparison.
E14: Read the customer’s price
Worked example
Before taking payment, check the size and the delivered total separately. Choose A3 in the customer product page: the ten-dollar option raises the print from twenty-five to thirty-five. Add it and open the cart. Delivery is still five, so this size totals forty. Our buyer will choose A4 for the purchase: twenty-five plus five, or thirty.
Included controls: public catalogue, product detail, A4/A3, Add to Cart, open cart, option value, reload, subtotal/shipping/total.
Check the result: A4 25+5=30; A3 35+5=40; current app repaired totals, no stale hidden-DOM claim.
Retained evidence: capture/SF20-shopper-shipping-corrected.webm.
Implementation reference: app.tsx.
Next-batch matching evidence: SF32-designed-store-size-and-checkout.webm, SF47-buyer-gift-purchase.webm.
E15: Capture the buyer’s delivery details
Worked example
Choose Checkout. Complete contact details and Continue, then enter the shipping address and Continue. Our rehearsal uses fictional contact details. Check that the summary still shows the chosen A3 print at thirty-five dollars and five dollars shipping, total forty. The contact address tells us where to communicate about this order. Typing an email does not establish ownership of a customer's stored balance; we’ll handle account-based payment separately.

Included controls: Checkout, contact, shipping address, Continue, summary, identity boundary.
Check the result: Capture exact current contact/address details and summary matching basket; no invented authenticated customer.
Retained evidence: capture/SF16-coupon-shipping-complete.webm, capture/SF20-shopper-shipping-corrected.webm.
Implementation reference: Checkout.tsx.
E18: Complete the buyer’s purchase
Worked example
Choose A4, quantity one, and Add to cart. Open the cart: twenty-five for the print plus five delivery makes thirty. Choose Checkout. Enter the buyer's email and Continue, then their full name, street, city, state and ZIP. Keep Use same address for billing selected and continue to payment. Open Gift card and apply the issued code. It covers thirty and leaves twenty on the card; applying the quote hasn't spent it yet. Choose Place order — paid with gift card. The receipt now shows Paid, thirty dollars and the card ending J P S 3. Keep the order number to find this purchase in Studio Manager.
Included controls: buyer payment, success/order handoff, order number, cart clearing, product SKU/options, contact/address, total, payment reference, paid balance.
Limitations and checks: The reserve email/name/address are course fixtures, not signup requirements. External processor settlement/mixed or insufficient tender are separate gaps.
Check the result: Same buyer/catalogue order/transaction/total on both sides and actual state; record stock settlement.
Recovery / evidence caution: If payment exists but order does not, retain reference and inspect order/transaction before retry; capture smallest actual recovery without second charge.
Implementation reference: CheckoutSuccess.tsx, storefront.checkout.service.ts.
Next-batch matching evidence: SF47-buyer-gift-purchase.webm.
A18: Inspect carts from the owner’s side
Worked example
The shopper’s cart holds choices; the owner’s Carts screen lets us inspect their saved context. Open Carts from Storefront and select the recorded guest cart ending nine seven seven a e one seven four. Its detail shows one A4 botanical print at twenty-five dollars, five dollars shipping and thirty total, with Created and Last updated timestamps. Compare those item and delivery lines with the shopper’s cart. The guest label and basket total do not prove the customer signed in or paid. A cart is not an order; check a matching order and Payments before treating these thirty dollars as collected. This demonstration inspects a saved cart. It does not restore a signed-in basket, change quantities from the owner’s screen or establish that every older guest basket is an abandoned sale.
Included controls: staff Carts list, detail, customer/items/totals, timestamps, active/abandoned, quantity/remove, anonymous/signed-in, restored cart, mixed rental/product.
Verified scope / remaining work: Actual guest cart detail/timestamps/items/totals inspection. Owner quantity/remove, sign-in restore and mixed rental/product cart pending.
Check the result: Correct shopper cart matched; no false order or identity claim.
Implementation reference: app.tsx, Checkout.tsx.
Actual evidence: SF40-cart-analytics.webm, SF40-01-cart-detail.png.
A02: Diagnose why an offer does not apply
Worked example
A success toast is not the calculation check; inspect the deduction and total. A nonexistent code gives Discount code not found. Correct the entered code before changing the offer. When a training promotion is finished, return to its row actions and Deactivate. Reload checkout with PRINT10: Discount is inactive appears, the deduction is removed and the total returns to forty dollars. An inactive offer needs a deliberate status decision, not repeated clicks on Apply Coupon.

Included controls: unknown coupon, inactive coupon, Deactivate, eligibility inspection, cleanup, negative result.
Check the result: Unknown-code/inactive errors; final couponInactive and total40.
Retained evidence: capture/SF19-coupon-deactivation-check.webm.
Implementation reference: discount.service.ts.
T07: Pay from an existing customer balance
Learner draft — pending demonstration:
Account-balance payment belongs to an identified customer account, not to whoever types that customer's email. Start with the correct signed-in account and inspect the eligible balance. Compare a purchase the balance covers with one it cannot cover, then check the debit and order transaction. This is an alternative tender with an identity prerequisite.
Included controls: AccountBalance identity, eligible balance, debit, insufficient balance, order tender, customer account association.
Limitations and checks: Inspect actual authenticated account/credit setup entry; controlled customer balance fixture, full/insufficient and any split supported path; capture debit/order/refund behavior.
Check the result: Correct account balance debited and linked order; unrelated typed email cannot impersonate.
Implementation reference: PaymentGateways.tsx, storefront.payment.service.ts.
Limitations and checks
Current UI entry and editor: . Corresponding SDK storefront schemas and the retained AppEngine references define fields and consumer boundaries. Provider calls, external delivery, payments and financial mutations were not performed for this writing task.
Next steps
You can now follow the module from its configuration to the record that proves the result. Use the relevant chapter to revisit an alternative or troubleshoot the exact failed handoff.


