Shopify integration
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 Settings > Apps and sales channels > Develop apps for your store (a link at the bottom)
2. Allow custom app development and create a new custom app
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
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.
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.
5. Now you need to navigate to your Post Affiliate Pro merchant panel and to Configuration > Plugins section:
6. You need to find the Shopify API and notification handling plugin and activate it.
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.
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. Do NOT use both methods!!!
Login and navigation
Login to your admin panel. Navigate to Settings > Checkout and scroll down to Additional Content & Scripts in the section Order status page.
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 (3 dots) in your current 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.