For Support
What users will ask
"I can't receive my order into stock"
By far the most likely ticket. receiveTradeOrder requires every product line on the order to already be linked to a matching stock item via the shared catalog (catalogProductId) — and it's all-or-nothing, no partial receive. If any product isn't linked, the whole action is blocked and the error message names exactly which products need linking. Ask the customer to check the error text — it lists the unmatched product names directly. There's no self-service "map this product" flow surfaced in this milestone; that mapping happens on the InventorySubItem (catalogProductId field) — escalate to engineering if a customer needs help identifying the right stock item to map to a supplier's listing.
Also check: the order must be SHIPPED or DELIVERED status (ask what status shows on their Orders tab) — it can't be received while still PLACED/ACCEPTED/PREPARING. And it can only be received once — if inventoryOrderId is already set, a second attempt throws "Order has already been received into stock."
"The supplier can't ship/cancel my order"
The seller-side status buttons are state-dependent — a supplier only sees the buttons for statuses reachable from where the order currently sits. Notably: a supplier cannot cancel an order after marking it Shipped — only "Delivered" is available at that point. If a supplier needs to cancel a shipped order, there is currently no supported in-app path to do so (this is a known gap — see Order Lifecycle & Accounting for the technical detail); escalate rather than promise a workaround.
"I don't see RFQs / Accounting in my supplier portal"
Expected if the vendor's plan is on the free tier — both are gated behind a paid entitlement (RFQ response and standalone accounting are Tier 1+). The portal shows these as locked with an upsell message rather than hiding them outright, so if a customer says they see a lock icon rather than the feature, that's working as intended, not a bug. Confirm their plan tier before escalating.
"I hit a listing limit and can't add more products"
Also expected — each plan caps the number of listings (maxListings); the UI disables "+ Add listing" and shows an inline message once the cap is reached. This is an upsell conversation (higher tier or a quota override), not a bug report.
"My order total looks different from what I expected"
Every price/tax/total is computed server-side from the live listing price and the vendor's tax rate at the moment the order is placed — the buyer's cart never sends trusted totals. If a listing's price changed after the buyer added it to cart but before placing the order, the order reflects the price at placement time, not what was shown when added to cart (there's no price-lock on cart items in this milestone).
Where to look when investigating
- Order status/history:
TradeOrder.status, visible on both the supplier's Orders page and the buyer's Orders tab — same record, two views. - Whether an order was received:
TradeOrder.inventoryOrderId— null means not yet received; once set, it points at theInventoryOrdercreated by the receive bridge. - Accounting posting failures: posting is decoupled from the status change (
safePost) — a GL misconfiguration doesn't block the operational status update, but it does mean the revenue entry might be delayed/parked for retry rather than missing forever. If a supplier reports "my order shows Delivered but I don't see the revenue in my books yet," that's the likely cause — check with engineering whether the posting retry queue has a parked entry for that order before assuming data loss. - Vendor's current plan/tier and quota: the
supplierEntitlementsquery result, visible on the seller portal's Dashboard page under "Plan."
What is genuinely not supported yet
Set expectations accordingly rather than troubleshooting as if broken:
- Multi-vendor cart / one order split across suppliers — each order goes to exactly one vendor.
- RFQ creation or awarding (from the buyer side) — the buyer can't yet ask multiple suppliers to bid through the UI.
- Delivery fees or discounts on a direct marketplace order (
delivery/discountare always 0 on this path) — those fields exist on the data model for the RFQ-offer path, not the direct-buy path. - Partial receiving of an order (receive some lines now, the rest later).