Skip to main content
When an order completes, your backend reports it to Whatmore so purchases can be attributed to the videos that drove them. This is a single authenticated call.

Endpoint

Payload

Each order_items[] entry:

What’s inside the video-view / add-to-cart signals

whatmore_video_view and whatmore_add_to_cart are JSON-encoded strings (not objects) — the App SDK / widget produces them and you pass them straight through from localStorage. You don’t build these by hand. Decoded, the string is an array of small objects:
The product_id you send in order_items[] must be the same identifier your catalog uses for that product (your client_product_id) — otherwise the item can’t be matched to the video signal.
A successful call returns HTTP 200 with an empty body ({}). An item that matches no video signal is simply left unattributed — it is not an error.

Ready-to-use snippet (web)

On a web storefront the video widget records viewed / added-to-cart products into localStorage. Call this once on your order-confirmation page — it reads those signals and reports the order:
Build orderItems from your order (product_id, item_id, sku, price, quantity, currency per line), then call sendOrderTrackingRequest({ orderId, orderItems, storeId, token }).

How attribution works

  • Whatmore matches each order item to the SDK signals by product_id (your client_product_id).
  • Attribution is therefore per line item — items driven by a video are attributed; items bought independently are not. A single order can mix both.
  • whatmore_video_view and whatmore_add_to_cart carry the widget_info that identifies which surface/video is credited.

Idempotency & retries

  • Orders are de-duplicated by order_id. If an order is submitted twice, the duplicate is rejected with HTTP 404 (Order Id already exists.) rather than double-counted.
  • This makes retries safe: re-sending the same order_id after a network failure cannot create a duplicate. Use a stable order_id and treat the duplicate response as success.
  • Full status-code list is on Errors & Conventions.
Send one tracking call per completed order. The whatmore_video_view / whatmore_add_to_cart strings are produced by the App SDK and passed through your checkout — see App SDK → attribution.

Cart tracking (optional)

Cart events can additionally be reported to power funnel analytics between video view and purchase. Nice-to-have, not required for attribution — scope confirmed during onboarding.