Custom stores: quickstart
Any stack — Next.js, Rails, Laravel, Django, Shopify headless, hand-rolled PHP. Two additions, about an hour.
Your store slug and signing secret are in your dashboard under Store setup. Or use “Email the steps to my developer” on the Overview page.
- 1Tell the app which order was placedOn your order confirmation page, call
EasyVial.trackOrder(). The object only exists inside the app, so this does nothing on your normal site.order confirmation page<script> (function () { function send() { window.EasyVial.trackOrder({ id: "{{ order.number }}", orderKey: "{{ order.secret_key }}" }); } if (window.EasyVial) send(); else window.addEventListener("easyvial:ready", send, { once: true }); })(); </script>orderKeyis any per-order secret you already store (an order access token or a random string saved with the order). Never use the customer's email or anything guessable. Full SDK reference → - 2Report the order from your serverWhen the order is created and every time its status changes, send a signed JSON request:Field reference → · Signing examples (Node, PHP, Python, Ruby, Go) →POST
https://easyvial.app/api/v1/orders?store=YOUR_SLUG Content-Type: application/json X-EasyVial-Signature: <hex HMAC-SHA256 of the raw body, keyed with your signing secret> { "id": "10423", "order_key": "same secret you passed to trackOrder", "status": "processing", "total": "129.98", "refunded_total": "0", "currency": "USD", "created_at": "2026-11-08T14:00:00Z" } - 3Test itOpen your app link on a phone, place a small order, and check it in App orders. Then mark it shipped and confirm the notification arrives. Testing checklist →
Optional, but recommended
Save utm_source, utm_medium and utm_campaignfrom the landing URL onto the order and send them in step 2. That attributes app orders even if step 1 didn't run (for example, a customer who completes payment on an external page).
Use window.EasyVial?.isAppto hide your own “download our app” banner inside the app. You can also skip your site's age gate in the app — the app asks the age question itself before customers enter your store.