Shopify

Attribute sales to creators on Shopify — Server-side via a read-only orders webhook. No theme edits.

Yonto attributes sales to the individual creator who drove them. On Shopify that works several ways, and the honest summary is that platform webhook does most of the work:

Platform webhook — primary on this platform
The store tells us about the order directly, server to server. Nothing depends on the shopper's browser.
Discount code
The shopper types the creator's code at checkout. Works on every platform and survives a refused cookie, but only catches shoppers who use it.
Browser pixel
A small script on your confirmation page reports the order. Depends on the shopper accepting cookies and not blocking scripts.

Setting it up#

Every campaign has its own tracking code. The snippets below use YOUR_TRACKING_CODE as a placeholder — copy the real ones from the campaign's Setup screen, which fills them in for you.

Conversions are reported from: Nowhere — Shopify tells us server-side.

  1. 1
    Connect your store
    Enter your myshopify.com domain on the setup screen and approve the install. Yonto asks for read_orders and nothing else — it cannot edit products, customers or orders.
  2. 2
    Create the discount code
    In Shopify → Discounts, create a code named exactly as shown on your campaign's setup screen. Any type works. It must be a code the customer enters, not an automatic discount.
  3. 3
    Nothing else
    Orders reach us through the orders/create webhook. There is no script to paste, no theme edit, and no checkout.liquid — which Shopify deprecated anyway.
Warning.on a sale campaign, value and id are both required. The order id is what makes a retry or a refreshed confirmation page idempotent instead of a second sale. A call missing either is rejected — see the Conversion endpoint reference.

What this can and cannot see#

Attribution is never complete, on any platform. You are about to pay a creator on the strength of these numbers, so here is exactly what is behind them on Shopify.

Counted
  • Every order, server-side, regardless of cookies or ad blockers.
  • Orders that used the creator's discount code, whatever the shopper's cookie settings.
  • Refunds, as reversals — the only platform where this is automatic.
  • The order's own currency, not the campaign's.
Not counted
  • Orders placed before you connected the store.
  • Orders that match neither the discount code nor a recorded click.
  • Draft orders and POS sales, which never fire orders/create the same way.

This is why every figure Yonto reports is described as a confident floor rather than a total. The sales in the right-hand column happened; we simply cannot prove the creator caused them, and we would rather undercount than invent.

Worth knowing#

  • Attribution by discount code is tried before click id, and the first matching campaign wins — so do not reuse one code across campaigns.

Making it more accurate#

  • Ask the creator to lead with the discount code. It is the only method that survives a shopper refusing cookies, and it converts better anyway.
  • Use one discount code per campaign. Codes are matched before click ids, and a code shared across campaigns resolves to whichever matches first.