Commerce applications / Case 15
Designing an order-request flow for variable-weight products before payment
Products sold by real prepared weight needed the merchant to confirm availability and final quantity before charging the customer.
Plain-English summary
What this solved for the business or user
The customer can request what they need without being charged for an estimated weight that may change during preparation. The store reviews the request, adjusts the final quantity, and only then sends the customer a payment link.
01 / Real situation
What was happening
A commerce migration had fixed-weight products that could map cleanly to variants, but also products where customers could request arbitrary grams or kilos. The final prepared weight might differ from the requested amount, so immediate payment at the initial estimate could create refunds, manual corrections, and customer confusion.
02 / Constraint
Why the obvious solution was not enough
The storefront still needed a familiar ordering experience, but payment had to happen after the merchant reviewed availability and final weight. The design also needed to carry customer details, shipping information, line-item notes, and order comments into the review step.
03 / Implementation
How the solution works
- Keep standard fixed weights as normal variants whenever the catalog can express them accurately.
- Use a bounded custom quantity UI only for products that genuinely require arbitrary weight input.
- Validate requested weight and pricing rules in the application layer rather than trusting a browser-calculated total.
- Create a Draft Order as the merchant's reviewable order request instead of immediately creating a paid order.
- Attach customer, shipping, line-item, and order-note context so staff do not need to reconstruct the request from a separate message.
- Allow the merchant to adjust unavailable items or the final prepared weight inside the Draft Order.
- After review, send the platform invoice or checkout link so the customer pays the confirmed amount through the configured payment method.
- Use a dedicated 'Order Request Received' confirmation before payment so the customer understands that the request is waiting for review.
04 / Release checks
What should be verified before shipping
- Test fixed-weight variants and arbitrary-weight products separately.
- Reject zero, negative, malformed, and unreasonable custom weight values before creating the request.
- Confirm customer, address, notes, and requested weight are readable in the merchant review view.
- Edit final weight and availability before invoicing and verify the payment request reflects the updated amount.
- Confirm successful payment converts the reviewed request into the expected paid order and fulfillment flow.
- Test unavailable items so the customer is not asked to pay for merchandise the merchant removed during review.
05 / Result
What changed
The architecture separates customer intent from final billable quantity, giving the merchant a controlled review step before payment. This case is documented as a feasibility and system-design pattern rather than claiming a production launch that was not part of the study.
Reusable lessonWhen the final quantity is not known at add-to-cart time, forcing immediate payment creates downstream correction work. Model the uncertainty explicitly with a reviewable order state.
