Frequently Asked Questions

Is ShipScout compatible with my Shopify theme?

ShipScout should work with every Shopify theme. If you are seeing an issue with your theme please contact us at [email protected] and we will help you out.

Is ShipScout compatible with Shopify Scripts?

Yes. You can do some pretty cool stuff with Shopify Scripts and ShipScout rates are visible to a Script just like any other shipping rate. You can identify a ShipScout shipping rate in a Shopify Script by checking the "source" property which will be "ShipScout".

Can I restrict which destinations I offer ShipScout shipping rates in?

Yes, when you set up the test in ShipScout select the appropriate zones and that test's rates will only be offered to shipping destinations in those countries/provinces. If you modify a Shipping Zone in Shopify it will not change the destinations of any already-created ShipScout tests.

Can I restrict which products get offered ShipScout rates?

No, not currently.
But if you are on Shopify Plus and would like to exclude some products from ShipScout shipping rates you could achieve this with some product tags and a Shipping Shopify Script like the one below. But, make sure you have rates for these items provided by Shopify or another shipping app.
1
# default enable ShipScout rates
2
shipscout_rates_enabled = true
3
4
# check for any products tagged with "heavy"
5
Input.cart.line_items.each do |line_item|
6
if line_item.variant.product.tags.include?('heavy')
7
shipscout_rates_enabled = false
8
break
9
end
10
end
11
12
# hide ShipScout shipping rates
13
if shipscout_rates_enabled === false
14
Input.shipping_rates.delete_if do |shipping_rate|
15
shipping_rate.source === 'ShipScout'
16
end
17
end
18
19
Output.shipping_rates = Input.shipping_rates
Copied!

How can I show a top bar advertising the free shipping rate or threshold to a visitor?

In the ShipScout dashboard you can configure a top bar without needing to write any code.
You can also use the Javascript SDK to display the current threshold and/or shipping rate for the test the user is in.
Note that this will be displayed to all users, even ones outside the zones of the test. This is because we don't know a visitor's shipping destination until they enter it during checkout.

Can I continue to offer some other shipping rates (e.g. Expedited Shipping) along with the ShipScout rates?

Yes. Just leave those other rates enabled and they will appear alongside the ShipScout rate.

Is ShipScout compatible with Shopify checkout apps?

It should be, yes. ShipScout uses Shopify's CarrierService API to provide shipping rates

I am seeing some strange "_sc" text on my cart page and other places on my website

Most themes should hide hidden line item properties that start with an underscore. But if you see it you will need to modify your cart.liquid or cart-template.liquid (or any other file) to include a check for hidden line item properties.
Example liquid:
1
{%- for p in properties -%}
2
{%- unless p.last == blank or p.last-%}
3
{{ p.first }}:{{ p.last }}
4
{%- endunless -%}
5
{%- endfor -%}
Copied!
Change it to check for hidden properties:
1
{%- for p in properties -%}
2
{%- unless p.last == blank or p.first == "_sc" -%}
3
{{ p.first }}:{{ p.last }}
4
{%- endunless -%}
5
{%- endfor -%}
Copied!

Is ShipScout compatible with other Shopify shipping apps?

ShipScout will not modify shipping rates provided by other Shopify shipping apps. This means if you have another app providing shipping rates they will appear alongside the ShipScout shipping rates. This will likely confuse customers so we recommend disabling other shipping rates while running a ShipScout test. However, there are cases where you might want to keep these other rates active, like if one of them is an "Expedited Shipping" rate or you are also offering UPS rate-shopped rates and you'd like all of these paid options to appear alongside the ShipScout rates.

If I don't have any tests live will ShipScout still show customers a shipping rate?

Yes, it can if you enable the Default Shipping Rate in ShipScout.

Will the same customer see a different ShipScout shipping rate when they re-visit the website?

Every visitor's browser is tracking their variant using Cookies and as long as they are on the same device & browser they will see the same shipping rate for the entire lifetime of a ShipScout test. If somebody visits on their phone and then on their laptop they can be placed in different variants. However, if a visitor returns to the website via and abandoned cart email link on a different device or browser, they will see the same shipping rate they originally saw since the variant has been stored in the cart attributes.

Why are customers getting free shipping even though they aren't spending enough to meet the free shipping threshold?

This is most likely because of discount codes. By way of example: You set free shipping for orders $50 and above. A customer completes checkout on a $44 order and gets free shipping. The threshold is calculated *before* discounts are applied so if the customer had a $55 order they qualified for free shipping even if though they applied a 20% discount code at checkout bringing their total down to $44.
This is not always ideal even though it averages out and still creates accurate test results. The reason for this behavior is that Shopify does not pass shipping apps like ShipScout any details on the discounts applied.
If you are on Shopify Plus you can change this behavior to base the threshold off the subtotal after the discount code has been applied: https://docs.shipscout.app/shopify-scripts/discount-codes

Does ShipScout use discount codes to provide different shipping rates?

No.
This is important because Shopify only allows the use of 1 discount code at a time so if we used discount codes then your visitors would not be able to use any other discount code.

How can I preview my top banner integration?

If you'd like to test the top banner & Javascript API implementation you can append this URL parameter to any URL on your website: ?shipscout_preview=yes
Then, as long as ShipScout is installed, it will display a preview banner. You do not need to have a test live for this to work.
It will also return the following preview parameters in "response" callback documented here: https://docs.shipscout.app/javascript-api. This makes it possible to do a full test of the banner and also test any custom theme integration with the JS API before you go live.
1
testType: 'threshold',
2
threshold: true,
3
freeShippingThresholdCents: 0,
4
testId: 'preview',
5
variant: 'A',
6
shippingPriceCents: 500
Copied!

How can I run ShipScout on a subdomain?

If you have Shopify primary store at https://shop.mystore.com and a marketing site at https://mystore.com and you'd like to have ShipScout run on both you need to include some additional code.
Include the following code snippet in your Shopify store's theme.liquid just before {{ content_for_header }}
1
<script>
2
window._shipScout = window._shipScout || [];
3
_shipScout.cookieDomain = 'mystore.com';
4
/*
5
Replace mystore.com with the top level domain of your shopify store
6
but do not include any subdomain or leading dot
7
*/
8
</script>
Copied!
Add the following snippet on your marketing site. We recommend placing it just before the closing </head> tag.
1
<script>
2
//Include in theme.liquid before {{ content_for_header }}
3
4
window._shipScout = window._shipScout || [];
5
window.Shopify = window.Shopify || {};
6
7
Shopify.shop = 'mystore.myshopify.com';
8
/*
9
Replace mystore.mystore.com with the Shopify domain (should always include
10
".myshopify.com") excluding https://
11
*/
12
13
_shipScout.cookieDomain = 'mystore.com';
14
/*
15
Replace mystore.com with your domain but do not include
16
a leading dot or the subdomain
17
*/
18
</script>
19
<script async src="https://web.shipscout.app/app.min.js"></script>
Copied!

How can I run ShipScout on a headless store?

You will need to include the ShipScout JS file on your website (we recommend before the closing </head> tag).
1
<script>
2
3
window._shipScout = window._shipScout || [];
4
window.Shopify = window.Shopify || {};
5
6
/*
7
Replace mystore.mystore.com with the Shopify domain (should always include
8
".myshopify.com") excluding https://
9
*/
10
Shopify.shop = 'mystore.myshopify.com';
11
12
/*
13
Replace mystore.com with your domain but do not include
14
a leading dot or the subdomain
15
*/
16
window.shipScoutCookieDomain = 'mystore.com';
17
18
</script>
19
<script async src="https://web.shipscout.app/app.min.js"></script>
Copied!
Then, when adding an item to the cart you will need to make sure it passes the ShipScout custom attribute (line item property) on every item.
You can determine the current user ID, test number and the variant the user is in by checking the cookies:
1
2
//these values can be fetched from cookies that are set by ShipScout after the app.min.js file is included
3
//note that there may be a race condition where these cookies are not set yet by the time a user adds to cart
4
//it's recommended you wait and check for these cookie values when the visitors adds an item to the cart and not on first page load
5
const userId = Cookies.get('_sc_uuid');
6
const testNumber = Cookies.get('_sc_test');
7
const testVariant = Cookies.get('_sc_' + testNumber)
Copied!
Then you will need to pass all 3 of these values as a customAttribute when adding any item to the cart:
1
//this is an illustration of the customAttributes section of the graphQl query
2
//if the above cookies exist then pass in those values as a customAttribute
3
4
customAttributes: [
5
//any existing custom attributes go here
6
//and add the new ShipScout custom attribute like this:
7
{
8
key: '_sc',
9
value: userId + '_' + testNumber + '_' + testVariant
10
}
11
]
Copied!
Lastly, if your headless store is using the GraphQL Storefront API to manage the cart state you will need to inform ShipScout when to track the "Add to cart" event. This can be done by calling this global ShipScoutTrackAddToCart function. You can call this function repeatedly on every add to cart and only the initial event will be tracked.
If your headless store uses the /cart.js Shopify cart instead of the GraphQL Storefront API cart then "Add to cart" is tracked automatically and you can ignore this last piece of code.
1
// Track the "Add to cart" event
2
if(typeof window.ShipScoutTrackAddToCart === "function") {
3
window.ShipScoutTrackAddToCart()
4
}
Copied!

How can I test my existing shipping rates (without a free shipping threshold) against the same rates with a free shipping threshold?

For example:
  • Variant A: Current shipping rates without a free shipping threshold
  • Variant B: Current shipping rates but free shipping over $60
To set this up you can create a Threshold test in ShipScout. Set the threshold for variant A to $10,000 and set the threshold for variant B to $60.
The threshold in variant A is so high that no customer will reach it and therefore will never see the free shipping rate.
When the visitor is in a variant with a free shipping threshold $10,000 or higher the ShipScout top banner & widget will have a special CSS class of "shipscout-extra-high-threshold" placed on it. You can hide the top banner for variant A visitors in this example by adding this code to your theme's CSS:
1
.shipscout-extra-high-threshold {
2
display: none;
3
}
Copied!

How can I avoid the brief layout flicker as the top banner appears?

It takes a second for the ShipScout script to load (since we don't want it to block the loading of anything else on your page) and you will notice that the appearance of top banner is slightly delayed. You can fix this by adding this element to the area you'd like the top bar to appear:
<div class="shipscout-placeholder" style="min-height: 36px; background: red;"></div>
That example will show an empty red top bar with a height of 36px until the ShipScout banner gets placed inside that element.

How can I load ShipScout faster?

ShipScout will load asynchronously on your store so that it doesn't block any other assets. This is the recommended practice from Shopify. If you'd like to have ShipScout load synchronously and sooner then you can add this code just before the closing </head> tag. It's important that it comes after the {{ content_for_header }} liquid code.
1
<!-- Start ShipScout Code -->
2
<script src="https://web.shipscout.app/app.min.js"></script>
3
<!-- End ShipScout Code -->
4
5
</head>
Copied!

Is ShipScout compatible with Recharge?

Recharge with Shopify Checkout
If you are on the newer Shopify Checkout version of Recharge everything will work as expected.
Recharge with legacy Recharge Checkout
If you are on the legacy Recharge though your customers will be excluded from the Orders and Checkout data in ShipScout test results.
Here's what you can expect depending on your version of Recharge:
  • Shopify Checkout Integration
    Your customers will pass through the Shopify checkout. First time subscription orders will be placed in a ShipScout variant and will receive the relevant shipping rate. Subscription renewal orders will not be included in your test results.
  • Recharge Checkout on Shopify (legacy Recharge, before Nov 2nd, 2020)
    These customer will have their Visit and Add to Cart events tracked in your test results.
    In the Recharge dashboard if you have the Shipping Setup set to "Get all rates from Shopify" then the customer will see the Variant A shipping rate of the current test as a fallback rate. They won't be included in the test results though.
    In the Recharge dashboard if you have the Shipping Setup set to "Use Recharge zones, rates and integrations" then the customer will not see any ShipScout shipping rates and will also not be included in the test results.
    All Recharge customers will be excluded from Checkout and Order events.
Last modified 25d ago