---
title: Custom checkouts: GoKwik, ShipRocket, Shopflo
slug: custom-checkout-tracking
description: How Personizely tracks checkout starts and purchases from GoKwik, ShipRocket and Shopflo checkouts on Shopify with no custom pixel, and which goals to set up.
docTags: 
createdAt: 2026-10-16T19:45:44.086Z
---

If your Shopify store uses GoKwik, ShipRocket or Shopflo for checkout, Personizely tracks checkout starts and purchases from those checkouts automatically. **You don't need a custom pixel.** Personizely's own Shopify web pixel, installed with the app, receives the events these checkouts publish and records them with the order value, shipping and products. You only need to create goals for the events you want to measure.

**Available on:** Shopify.

## How it works

1. **The visitor browses your storefront.** The Personizely snippet tracks them and assigns them to campaigns as usual.
2. **They start a custom checkout.** GoKwik, ShipRocket and Shopflo publish checkout events to Shopify. Personizely's web pixel receives them and records a checkout-start event for the visitor.
3. **They complete the purchase.** The pixel records a purchase event with the order total, the shipping charge, the products and the checkout's order ID.
4. **Goals are reached and attributed.** Event goals set to these event names are reached, and credited to every campaign and widget the visitor saw within the [Revenue attribution](docId\:jpQKiTTVFyptseo8UEQOD).

## Events

| Checkout   | Checkout start event | Purchase event |
| ---------- | -------------------- | -------------- |
| GoKwik     | `gk_checkout_start`  | `gk_purchase`  |
| ShipRocket | `sr_checkout_start`  | `sr_purchase`  |
| Shopflo    | `sf_checkout_start`  | `sf_purchase`  |

These are deliberately separate events from Shopify's built-in **Purchase**, because these checkouts don't send a standard Shopify purchase. Use the purchase event that matches the checkout your store actually uses as your primary goal.

Each purchase event carries:

- **Value:** the order total as reported by the checkout, in the currency the customer paid in. Unlike Shopify's Purchase goal, which always records your store currency, these values aren't converted. If you sell in several currencies through the custom checkout, compare revenue for one currency at a time.
- **Shipping:** the shipping charge.
- **Products:** product and variant IDs, prices and quantities.
- **Order ID:** shown as **Remote ID** when you view a variation's goal hits in a report.

## Set up goals

1. Go to **Settings → Goals → New goal**.
2. Set **Action** to **Event**, choose **Custom**, and enter the event name, for example `gk_purchase`.
3. Leave **Value** empty. Purchase events carry the real order value.
4. Save. Repeat for the checkout start event if you want to measure it.
5. Add the goal to your campaigns and widgets. Star the purchase goal for the checkout your store uses as the **primary goal**.

| Goal name (suggested)     | Action | Event               |
| ------------------------- | ------ | ------------------- |
| GoKwik purchase           | Event  | `gk_purchase`       |
| GoKwik checkout start     | Event  | `gk_checkout_start` |
| ShipRocket purchase       | Event  | `sr_purchase`       |
| ShipRocket checkout start | Event  | `sr_checkout_start` |
| Shopflo purchase          | Event  | `sf_purchase`       |
| Shopflo checkout start    | Event  | `sf_checkout_start` |

Reports treat the three purchase events like Shopify purchases: revenue per visitor, AOV and the list of individual orders per variation all work.

## Behavior details and limitations

- **No extra script or pixel.** The events arrive through Personizely's web pixel, which is part of the Personizely Shopify app. Keep the app installed and its theme app embed on.
- **Your checkout must publish its standard events to Shopify.** These checkouts do this by default. If you've turned off their Shopify event tracking, Personizely doesn't receive anything.
- **Visitor consent.** Shopify only runs web pixels that collect analytics when the visitor's privacy settings allow it. Where your consent banner applies and a visitor declines analytics, their custom-checkout events aren't received.
- **The visitor must have browsed your storefront.** Events are linked to the visitor the Personizely snippet tracked on your store. Checkouts opened from elsewhere, for example a link in a WhatsApp message to someone who never loaded your storefront, aren't recorded.
- **Separate from the built-in Purchase goal.** GoKwik, ShipRocket and Shopflo don't send a standard Shopify purchase, so their purchases are recorded as `gk_purchase`, `sr_purchase` and `sf_purchase` rather than under **Purchase** (see [Shopify order tracking and profit](docId\:hS2Gsx3K3YcJ2NRssNAmX)). Pick the event that matches the checkout you actually use as the primary goal.
- **Product and tag filters** on goals are only available for the built-in Purchase, Add to cart and Checkout start events. Custom-checkout goals count every order.
- **Values come from the checkout provider.** Personizely records the total, shipping and items as the checkout reports them. Small differences from the final Shopify order (for example after a COD fee or an edit) are possible.

## Troubleshooting

- **No `gk_purchase`, `sr_purchase` or `sf_purchase` hits** → check that the goal's event name is spelled exactly, in lowercase, and that the goal is added to the campaign. Then place a test order after browsing your storefront in the same browser.
- **Fewer hits than orders** → visitors who declined analytics consent, or who reached the checkout without browsing your storefront first, can't be tracked.

## Related

- [Goals](docId\:XSkE1LjM1yiNhLBzpr1B1)
- [Shopify order tracking and profit](docId\:hS2Gsx3K3YcJ2NRssNAmX)
- [Revenue attribution](docId\:jpQKiTTVFyptseo8UEQOD)
- [Install Personizely on Shopify](docId\:KKBkXcEXtFXCVJdjXvQ74)
- [Reading campaign reports](docId\:Xb9pSvXG7zF45wIEXc7Sp)
