> For the complete documentation index, see [llms.txt](https://help.checkoutchamp.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://help.checkoutchamp.com/funnel-builder/redirect-storefront-to-checkoutchamp/pass-data-to-checkoutchamp-funnel-via-the-url.md).

# Pass data to CheckoutChamp funnel via the URL

This document reviews how to pass various pieces of data to your CheckoutChamp funnels. This may be useful in several ways, such as prefilling a form with data you've already captured from the customer, or routing an external sales funnel to CheckoutChamp for checkout.

***

### Acquire your Checkout Page URL <a href="#redirectexternalfunneltocheckoutchampcheckout-acquireyourcheckoutpageurl" id="redirectexternalfunneltocheckoutchampcheckout-acquireyourcheckoutpageurl"></a>

Redirect a button or link on your shopping site to the full URL of your CheckoutChamp checkout page.

This can be found by opening the checkout page’s settings within the [Funnel Visualizer.](/funnel-builder/creating-and-editing-funnels-pages/funnel-visualizer-and-page-builder/funnel-visualizer.md)

<figure><img src="/files/G6CvjsLDXWvTYq9n5pRJ" alt=""><figcaption></figcaption></figure>

Example:

`https://checkout.mysite.com/checkout`

***

### Products <a href="#redirectexternalfunneltocheckoutchampcheckout-products" id="redirectexternalfunneltocheckoutchampcheckout-products"></a>

If there are products to pass, such as from a filled shopping cart, include the “products” parameter. The syntax is

`?products=campaignProductId:quantity`

Include a variant by adding a period and variantId to the campaignProductId

`?products=campaignProductId.variantId:quantity`

Use an external product id by putting EXT in front of the external id.  This method must use the external product id on the base product in CheckoutChamp.  That external product id was set when the product was synced into CheckoutChamp.  It is not editable.  This method should NOT use the CheckoutChamp campaignProductId.

`?products=EXTexternalId:quantity`

{% hint style="info" %}
campaignProductId and variantId are the unique IDs for your products within your CheckoutChamp campaign. Reminder that this is NOT your product id. If you have questions about this, please reach out to your account manager for clarity.\
\
Quantity is required. Separate multiple products with a semi-colon.

`?products=campaignProductId.variantId:quantity;campaignProductId.variantId:quantity`
{% endhint %}

Examples:

`https://checkout.mysite.com/checkout?products=234:1`

`https://checkout.mysite.com/checkout?products=234:1;235:2`

`https://checkout.mysite.com/checkout?products=87.45:3;79:2`

`https://checkout.mysite.com/checkout?products=87.45:1;87.46:2`

`https://checkout.mysite.com/checkout?products=87.45:1`

`https://checkout.mysite.com/checkout?products=EXT463432010:1`

<details>

<summary>How to locate your campaignProductId and variantId</summary>

The campaignProductId is found within your offers/upsells list within your campaign.

<figure><img src="/files/LdudkWtAgBjeTZ1jDMSl" alt=""><figcaption></figcaption></figure>

The variantId is found within the base product that the offer/upsell was built with. You can determine the base productId by editing the offer/upsell configuration, then use the Product Search page to edit the base product and view the list of variants, with their associated Ids.

<figure><img src="/files/vNS5hPl9VaCVd3txPWLy" alt=""><figcaption></figcaption></figure>

**Note**: If you’re using Woocommerce see this guide [here](/funnel-builder/redirect-storefront-to-checkoutchamp/woocommerce-plugin/woocommerce-checkout-redirect.md).

</details>

#### Item-Level Custom Fields (Line Item Properties)

It is possible to pass custom fields that can be stored at the item level. This is generally used to personalize an item, or to facilitate Subscribe & Save product selections. To do this, follow the same product syntax but pass `|lineItemProperty` before the quantity for that product.

For Subscribe & Save product selections, pass the subscription billing interval information immediately after the product (separated by a vertical bar/pipe).&#x20;

`?products=campaignProductId|subscriptionInformation:quantity`

`https://checkout.mysite.com/checkout?products=4899|Delivery every month:1`

When offering staggered fulfillment or staggered payment options, pass the delivery interval and charge interval within the subscriptionInformation data.&#x20;

* If the two numbers within the subscriptionInformation data are different and the delivery interval is greater than the charge interval, this will trigger the staggered fulfillment option.
* If the two numbers within the subscriptionInformation data are different and the delivery interval is less than the charge interval, this will trigger the staggered payment option.

{% hint style="info" %}

* **Stagger Fulfillments:** You bill more frequently than you send fulfillment. For example, you send a 3-month supply but still bill monthly.
* **Stagger Payments:** You ship fulfillments more frequently than you bill. For example, you send monthly supplies but bill yearly.
  {% endhint %}

`https://checkout.mysite.com/checkout?products=4899|Delivery every 20 days, Charge every 40 days:1`

If there are products to pass with item-level custom fields, the syntax is a second bar, the custom field name, a tilde, and the custom value:

`?products=campaignProductId||lineItemProperty~value:quantity`

`https://checkout.mysite.com/checkout?products=4899|Delivery every month|Pet's Name~Fido:1`

Include a variant by adding a period and variantId after the campaignProductId, but before the line item property.

`?products=campaignProductId.variantId||lineItemProperty~value:quantity`

`https://checkout.mysite.com/checkout?products=4899.6000|Delivery every month|Pet's Name~Fido:1`

Multiple item-level custom fields can be passed using repeated syntax

`?products=campaignProductId.variantId||lineItemProperty1~value|lineItemProperty2~value|lineItemProperty3~value:quantity`

`https://checkout.mysite.com/checkout?products=4899.6000|Delivery every month|Pet's Name~Fido|Fav Color~Red|Pet's Bday~6/10:1`

\
More information on Subscribe & Save configuration:&#x20;

{% embed url="<https://help.checkoutchamp.com/crm/crm-setup/campaign-setup/subscribe-and-save-profiles>" %}

{% hint style="info" %}
campaignProductId and variantId are the unique IDs for your products within your CheckoutChamp campaign. Reminder that this is NOT your product id. If you have questions about this, please reach out to your account manager for clarity.\
\
Quantity is required. Separate multiple products with a semi-colon.

`?products=campaignProductId.variantId|lineItemProperty:quantity;campaignProductId.variantId|lineItemProperty:quantity`
{% endhint %}

***

### Coupons <a href="#redirectexternalfunneltocheckoutchampcheckout-coupons" id="redirectexternalfunneltocheckoutchampcheckout-coupons"></a>

To route to CheckoutChamp with automatic coupon application, include the couponCode parameter. Coupons can be passed with or without products. Coupons must first be entered on the funnel campaign to be recognized. It is not required to pass couponCode to a checkout page. couponCode can also be passed to any page prior to checkout, and will be maintained until the cardholder completes checkout.

Examples:

[https://checkout.mysite.com/checkout?products=234:1\&couponCode=HALFOFF](/funnel-builder/redirect-storefront-to-checkoutchamp/pass-data-to-checkoutchamp-funnel-via-the-url.md)

[https://checkout.mysite.com/checkout?couponCode=10OFF](/funnel-builder/redirect-storefront-to-checkoutchamp/pass-data-to-checkoutchamp-funnel-via-the-url.md)

***

### Form Fields <a href="#redirectexternalfunneltocheckoutchampcheckout-formfields" id="redirectexternalfunneltocheckoutchampcheckout-formfields"></a>

Prefill the the standard form fields on your CheckoutChamp forms by including the value(s) on the query string.

Examples:

[https://checkout.myfunnelsite.com/checkout?\&emailAddress=jd@emaildomain.com](/funnel-builder/redirect-storefront-to-checkoutchamp/pass-data-to-checkoutchamp-funnel-via-the-url.md)

[https://checkout.myfunnelsite.com/checkout?products=234:1\&couponCode=HALFOFF\&firstName=John\&lastName=Doe\&emailAddress=jd@emaildomain.com](/funnel-builder/redirect-storefront-to-checkoutchamp/pass-data-to-checkoutchamp-funnel-via-the-url.md)

***

### Order-Level Custom Fields (Custom Fields and UTMs)

Capturing custom fields at the order level can be useful in many ways, including storing a value to indicate which ad the customer clicked on to place that order, or the sessionId from an external tracking platform. UTMs are also stored to the orders as Order-Level Custom Fields.

CheckoutChamp tracks the moment a customer lands on a CheckoutChamp page and associates a sessionId to the purchasing session. The URL the customer clicked on to land on the CheckoutChamp page (requestUri) is used to capture custom field values, and the URL the shopper came from (httpReferer) will capture UTM values.

Order-Level Custom Fields will export as note attributes to Shopify, along with the rest of the order information.

#### Custom Fields

In order for CheckoutChamp to recognize that a custom parameter should be stored as an order custom field, the value in the URL must contain `cc_custom_[valueName]=[customValue]`

* (replace bracketed items with your own valueName and value)

`https://www.example.com/lead?cc_custom_[valueName]=[customValue]`

More information on Custom Fields:&#x20;

{% embed url="<https://help.checkoutchamp.com/funnel-builder/creating-and-editing-funnels-pages/funnel-visualizer-and-page-builder/page-builder-2.0/page-building-tips/applying-custom-fields-to-inputs>" %}

{% embed url="<https://help.checkoutchamp.com/crm/crm-setup/campaign-setup/custom-fields>" %}

#### UTMs

In order for CheckoutChamp to recognize the UTMs that should be stored to the order (as an order-level custom field), the URL must contain at least one of the standard UTM tracking values: utm\_source, utm\_medium, utm\_campaign, utm\_term, & utm\_content\
\
`https://www.example.com/lead?utm_source=[UTMSOURCE]&utm_medium=[UTMMEDIUM]&utm_campaign=[UTMCAMPAIGN]&utm_term=[UTMTERM]&utm_content=[UTMCONTENT]`

Example:

Below is a URL where CheckoutChamp stored the custom “fb\_ad\_id” value of "123456789", along with the utmSource value of "fb", the utmMedium value of "cpc" and utmCampaign value of "checkoutchamp"

`https://secure.checkout.com/lead?cc_custom_fb_ad_id=123456789&utm_source=fb&utm_medium=cpc&utm_campaign=checkoutchamp`

<figure><img src="/files/BxDDKUNY2pB7ATB1k95F" alt=""><figcaption></figcaption></figure>

Info on UTM Reporting:&#x20;

{% embed url="<https://help.checkoutchamp.com/crm/reports/utm-filters>" %}

{% hint style="info" %}
UTM values are also saved from the referring URL - the page or ad that was in the browser prior to the first page in the CheckoutChamp site.
{% endhint %}


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://help.checkoutchamp.com/funnel-builder/redirect-storefront-to-checkoutchamp/pass-data-to-checkoutchamp-funnel-via-the-url.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
