# 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](/funnel-builder/redirect-storefront-to-checkoutchamp/pass-data-to-checkoutchamp-funnel-via-the-url.md)

***

### 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](/funnel-builder/redirect-storefront-to-checkoutchamp/pass-data-to-checkoutchamp-funnel-via-the-url.md)

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

[https://checkout.mysite.com/checkout?products=87.45:3;79:2](/funnel-builder/redirect-storefront-to-checkoutchamp/pass-data-to-checkoutchamp-funnel-via-the-url.md)

[https://checkout.mysite.com/checkout?products=87.45:1;87.46:2](/funnel-builder/redirect-storefront-to-checkoutchamp/pass-data-to-checkoutchamp-funnel-via-the-url.md)

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

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

<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).

`?products=campaignProductId|subscriptionInformation:quantity`

<https://checkout.mysite.com/checkout?products=4899|Delivery> every month: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`

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

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

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

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

\
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\
\
&#x20;`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: 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.
