–Hidden comment

Use attributes in format region_from and region_to= to change the languages showing in language switcher.
Available regions are:
europe_from europe_to
asia_from asia_to
mideast_from mideast_to
america_from america_to

Example:
europe_from=0 europe_to=22 will put all languages (ordered in language switcher settings) from 1 to 21 to Europe region:
asia_from=22 asia_to=25 will put all languages from 23 to 24 (so only 2) into Asia region.

Shopify

A leading cloud-based, multichannel commerce platform designed for small and medium-sized businesses.

To integrate your Shopify store, you can use the official built-in plugin but first, you need to create a private app in your Shopify store.

In case you would like to create a dedicated staff account for our support to set this up for you, the staff account will need to have the following permissions:
Orders, Customers, Manage and install apps and channels, Manage settings, View apps developed by staff and collaborators, Develop apps.

1. Log in to your Shopify admin panel and navigate to Apps > Develop apps for your store (a link at the bottom)

Shopify

2. Allow custom app development and create a new custom app

Shopify

3. Name the app as you like, select your App developer account to be notified in case of problems and create the app. After that you need to click Configure Admin API scopes

Shopify

And enable the following permissions with read/write access:

Script tags (READ and WRITE access) > Access scopes:

read_script_tags, write_script_tags

Orders (READ access) > Access scopes:

read_orders

Customers (READ access) > Access scopes:

read_customers

If you wish to utilize the option to create a customer account in Shopify for every new affiliate then you also need the write_customers permission.

Do not change anything else and install the app.

Shopify

4. Once the app is installed, you need to Reveal token once, then copy the access token, API key, and your store’s URL address.

Shopify

5. Now you need to navigate to your Post Affiliate Pro merchant panel and to Configuration > Plugins section:

Shopify

6. You need to find the Shopify API and notification handling plugin and activate it.

Shopify

7. Once activated you need to click on Configure next to it and enter your store URL, API key, and access token (Password field) and configure how you want the integration to behave.

Shopify

8. Save the configuration and if no error pops up you are done and your site should start tracking.

If for some reason, you cannot use the plugin and you want to integrate your Shopify site manually, you can use the following steps.

Login and navigation

Login to your admin panel. Navigate to Settings > Checkout and scroll down to Additional Content & Scripts in the section Order processing.

Code

The sale tracking code to track one commission per order is this:

<script id="pap_x2s6df8d" src="https://URL_TO_PostAffiliatePro/scripts/trackjs.js" type="text/javascript"></script>
<script type="text/javascript">
	if (window.location.href.indexOf('/thank_you') > 0) {
		PostAffTracker.setAccountId('Account_ID');
		var sale = PostAffTracker.createSale();
		sale.setTotalCost('{{subtotal_price | money_without_currency | replace: ',', '' }}');
		sale.setOrderID('{{order_number}}');
		sale.setProductID('{{product_ids}}');

		PostAffTracker.register();
	}
</script>

And now just save it and you are ready to track the sales now.

If you would want to use also Lifetime Commissions plugin you need to add the following line right under ‘sale.setProductID(‘{{product_ids}}’);‘ to add the customer’s email address to the order:

sale.setData1(Shopify.checkout.email);

Or you can use customer ID instead of email, to keep it private:

sale.setData1(Shopify.checkout.customer_id);

Per product integration

In case you want to track per product commissions, you should use this integration code instead of the one from step 2.

<script id="pap_x2s6df8d" src="https://URL_TO_PostAffiliatePro/scripts/trackjs.js" type="text/javascript"></script>
<script type="text/javascript">
if (window.location.href.indexOf('/thank_you') > 0) {
    PostAffTracker.setAccountId('Account_ID');
    var discountpercent = 1;
    var discountcoupon = '';
    if (Shopify.checkout.discount != null && typeof Shopify.checkout.discount.amount != 'undefined') {
        var total = Number(Shopify.checkout.discount.amount.replace(',', '')) + Number(Shopify.checkout.subtotal_price.replace(',', ''));
        discountcoupon = Shopify.checkout.discount.code;
        discountpercent = 1 - (Shopify.checkout.discount.amount.replace(',', '') / total);
    }
    var giftcard = 0;
    if ((typeof Shopify.checkout.gift_cards != 'undefined') && (Shopify.checkout.gift_cards.length > 0) && (Shopify.checkout.gift_cards != null) && (Shopify.checkout.gift_cards != '') && (Shopify.checkout.gift_cards[0].amount_used > 0)) {
        giftcard = Shopify.checkout.gift_cards[0].amount_used;
    }

    var item = 0;
    while (typeof Shopify.checkout.line_items[item] != 'undefined') {
        var subtotal = Shopify.checkout.line_items[item].line_price.replace(',', '') * discountpercent;
        if (giftcard > 0) {
            var rest = giftcard - subtotal;
            subtotal = subtotal - giftcard;
            giftcard = rest;
        }
        if (giftcard < 0) {
            giftcard = 0;
        }
        if (subtotal < 0) {
            subtotal = 0;
        }
        var sale = PostAffTracker.createSale();
        sale.setTotalCost(subtotal);
        sale.setOrderID(Shopify.checkout.order_id + '(' + (item + 1) + ')');
        sale.setCurrency(Shopify.checkout.currency);
        var papProductId = Shopify.checkout.line_items[item].sku;
        if (papProductId == '') {
            papProductId = Shopify.checkout.line_items[item].product_id;
        }
        sale.setProductID(papProductId);
        if (Shopify.checkout.line_items.length != (item + 1)) {
            if (typeof sale.doNotDeleteCookies === 'function') {
                sale.doNotDeleteCookies();
            }
            PostAffTracker.register();
        } else {
            if (typeof PostAffTracker.registerOnAllFinished === 'function') {
                PostAffTracker.registerOnAllFinished();
            } else {
                PostAffTracker.register();
            }
        }
        item++;
    }
}
</script>

You are done, this is all needed. Save your changes and you are ready to use the integration.

If you would want to use also Lifetime Commissions plugin you need to add the following line right under sale.setCurrency(Shopify.checkout.currency); to add the customer’s email address to the order.

sale.setData1(Shopify.checkout.email);

Additional info can be found here:
https://docs.shopify.com/themes/liquid/objects/order

Do not forget to integrate your shop with the click tracking code.

Click tracking

Log in to your Shopify admin panel, go to the Online store section and click on Themes. In this section click on the Actions button in your Live theme preview, and choose Edit code from the drop-down menu.

In the Layout directory, find a file called theme/liquid. Insert the click tracking code from your Post Affiliate Pro merchant panel > Tools > Integration > Clicks tracking right above </BODY> tag in that file and save it.

Back to Integrations Create account for FREE

Our website uses cookies. By continuing we assume your permission to deploy cookies as detailed in our privacy and cookies policy.

×

Schedule a one-on-one call and discover how Post Affiliate Pro can benefit your business.

We’re available on multiple dates

Schedule a call