Skip to main content
QCSQuick Courier ServiceQCS — Quick Courier Service, home

Store connectors

Shopify

Install the QCS app, map your fields, run a test order, and let paid orders become parcels automatically.

Shopify merchants and their developers4 min readPrintable handbook

The Shopify connector books a QCS parcel when an order is placed, pushes the tracking number back onto the Shopify fulfilment, and cancels the parcel if the order is cancelled before collection. Setup is at /m/integrations/stores.

Installing

  1. 01Start from the portalOpen /m/integrations/stores, choose Shopify, and enter your shop domain in the form yourshop.myshopify.com.
  2. 02Approve the permissionsShopify shows the permissions QCS asks for: read_orders, write_orders, read_fulfillments, write_fulfillments, read_products. Orders and fulfilments are needed to read an order and write a tracking number back.
  3. 03Come back to QCSShopify returns you to the portal and the connection is stored with its access token encrypted at rest. QCS talks to the Admin API at version 2025-07.
  4. 04Subscribe the webhooksQCS registers its own webhook subscriptions on your shop so order creation, payment, cancellation and refund arrive without polling.

Deciding when a parcel is created

Connection settings that matter most
SettingWhat it does
Fallback cityUsed when a Shopify order has no recognisable city. Lahore today, and a mismatch is reported rather than guessed.
Cash on delivery onlyWhen on, QCS only books orders whose Shopify payment method is cash on delivery. Prepaid orders are ignored.
Book on paid, or book on createdBook on paid is safer for prepaid shops. Book on created suits cash on delivery, because a COD order is never marked paid up front.
Default serviceStandard, or express where you have the volume to clear the 13:00 cut-off.
Tracking write-backWhen on, the QCS tracking number and tracking URL are written to the Shopify fulfilment, so your customer sees it in their account and in Shopify’s own emails.

Mapping fields

The mapping editor shows a real order from your shop beside the QCS fields, so you can see exactly what will be read. Most shops need no change; the common corrections are weight, where shops vary between grams and kilograms, and the COD amount, where a shop may hold it on a custom attribute.

  • Consignee name, phone and address come from the shipping address.
  • Weight comes from the order’s total weight when your products carry weights, and from your mapped field when they do not.
  • Cash to collect comes from the order total for a COD order, and is zero for a prepaid one.
  • Your Shopify order name, such as #1042, becomes your own order reference on the parcel, which is what makes a repeated push safe.

Testing before you go live

  1. 01Pull a test orderThe connection page can fetch a recent order and show how it maps, without booking anything.
  2. 02Book it into sandboxA sandbox booking proves the mapping end to end. A sandbox parcel cannot be collected or delivered, so nothing operational happens.
  3. 03Check the go-live checklistThe checklist on the connection page lists what is still missing: store connected, fallback city chosen, fields mapped, test order accepted, cash rule set, write-back decided.
  4. 04Switch the connection liveFrom then on, every qualifying order books a real parcel.

What happens to a cancelled order

  • Cancelled or refunded in Shopify before collection cancels the QCS parcel automatically. Nothing is charged.
  • Cancelled after a rider has collected it becomes a return to you, and the merchant-induced cancellation exception in the tariff may apply.
  • A partially refunded order does not change the COD amount on a parcel already booked. Contact support if the amount must change before delivery.

Questions we get asked

Can I run two Shopify stores on one QCS account?Yes. Each store is its own connection, with its own mapping and its own settings, and parcels from both land in the same portal.
An order did not book and I cannot see why.Open /m/integrations/logs and find the order. Every rejection carries the reason, usually an unrecognised city, a missing phone number or a weight QCS could not read.
I uninstalled the app by accident.Reinstall from the portal. Parcels already booked are unaffected, because they live in QCS, not in Shopify.

Next

Shopify — QCS documentation · QCS