CRM

The Shopify plugin provides the ability to pull all Shopify products into CRM and push variant metafields back to Shopify automatically.

The Shopify cart page must then be manually edited to send products to a checkout page connected to the CRM.


Step 1 - Login to your Shopify Admin site and follow these instructions

Navigate to Shopify Admin → Apps and then click “Develop apps for your store”

Click “Allow custom app development”

Click “Allow custom app development” again

Click “Create an app”

You will be prompted to specify a name for the app (ProductSync) and a developer email (prefilled with the current logged in Shopify user).

Next, configure the scopes for the Admin API and give Read/Write access for all fields.

After the scopes have been configured, click “API Credentials” and then “Install” to install the custom app to your store.

After the custom app has been installed on your store you should see your API Access Token which is needed for Step 2.

You will only be able to reveal the token one time. After clicking “Reval token once” you will see your Access Token value. BE SURE TO SAVE THIS, YOU CANNOT VIEW IT AGAIN. IF YOU LOST YOUR ACCESS TOKEN YOU WILL HAVE TO CREATE A NEW APP.

Still have Shopify Private Apps? Click here!

1. When logged into the Admin site, click on “Apps”

3. From the Private Apps screen, click on the “Create a new private app” button.

4. In the App Details screen, enter a name for the app and a contact email. Please set the permissions for all boxes to “Read and write” and make sure you choose the latest version of Shopify’s API. Please expand the permission scope in the StoreFront API section to allow the CRM to send order data to your shopify store. Once done hit the purple “Save” button.

5. Once the app has been saved your API key and Password will become visible. Please save these as they are required for the plugin setup in the CRM.

After this is complete, please proceed to Step 2.

Step 2 - Setup the CRM Plugin

Navigate to Admin Plugins Data Sources and click on the green “+Activate” button on the Shopify tile.

When the funnel visualizer is displayed, you can click the gear icon on the Shopify page to make plugin adjustments and/or resync Shopify products.

storeURL = Required. Shopify store URL (minus the https://). This is NOT the custom domain assigned to the store.

(This url will always end in .myshopify.com. Do NOT use the URL of your live store/Custom Domain)

AccessToken = Required for Custom Apps. Generated in Step 1 above

API_key = Required for Private Apps. Generated in Step 1 above

API_password = Required for Private Apps. Generated in Step 1 above

campaignId = Optional. In most cases leave this blank to assign the Shopify products to a new funnel/campaign. Enter a campaignId if you want to sync products into an existing campaign.

billerId = Optional. The merchant account to assign to the CRM campaign products that will be created from the Shopify products. Entering a value here will save the effort of manually editing the campaign products to assign a merchant account. Use the CRM to find your merchant account on the MID List (CRM > Merchants > MID List).

sendInitialOrders = Optional. Use this to automatically send successful new orders back to the Shopify. This will send all successful new orders on the campaign. It is advised to use the campaign for Shopify orders only, if sending orders back to Shopify.

sendRebillOrders = Optional. Use this to automatically send successful rebill orders back to the Shopify. This will send all successful rebill orders on the campaign.

sendTracking = Optional. Use this to populate Shopify with tracking numbers from Checkout Champ. Do not use this in conjunction with pullTracking. Fulfillment must be done in one platform only.

pullTracking = Optional. Use this to populate Checkout Champ with tracking numbers from Shopify. If products are going to ship from Shopify, set those products to System Fulfillment in Checkout Champ. This option will then pull the tracking numbers from Shopify and mark the products as Shipped in Checkout Champ. Must have sendOrders checked to pull tracking from Shopify

pullVariantAsProduct = Optional. The CRM will pull all Shopify variants in as their own base products.

sendEmailReceipt = Optional. If checked we will send a tag to Shopify letting them know to send the email confirmation.

doNotSendRefund = Optional. If checked then CheckoutChamp will not send refund data back to Shopify.

taxPercent = Optional. Tax percentage that should be taken off Shopify base price when syncing products. This is for stores with tax embedded in product price, such as VAT. In most cases a corresponding sales tax profile must be created on the CRM campaign to calculate the tax at checkout.

orderTags = Optional. Use this to tag orders exported to Shopify. Multiple tags can be entered separated by commas. Include “product_tags” to send the tags from each product to Shopify. Include “page_name” and “funnel_name” to send the page name and funnel name to Shopify.

secretKey = Optional. Value from Shopify which allows CheckoutChamp to listen for refunds triggered within Shopify so that CheckoutChamp can perform the refund.

updateInventory = Optional. Choose to decrement Shopify inventory when an order is sent. Choose to decrement always or to follow inventory policy at Shopify. This does not restock inventory when a refund or cancellation is done in CheckoutChamp.

If there is no gatewayId on the plugin when you resync you will need to manually apply a gateway to the new products.

With sendInitialOrders enabled, Shopify orders will export to Shopify immediately after the customer reaches your Thank You page, or once the customer closes out the funnel. Rebill orders will also send to Shopify immeditely. Beyond that, CheckoutChamp has a task that runs every 12 minutes to export orders to Shopify that still need to be exported.

If a customer does not reach the Thank You page (including manual Order Entry orders) then CheckoutChamp holds the order for 20 minutes (from the order date) before the export task can export the order. This means that when the export task runs, it will only pick up Shopify orders that are older than 20 minutes. Once the order IS older than 20 minutes the export task will pick it up.

Since the export task runs every 12 minutes, that means the orders who didn’t reach the Thank You page (or didn’t close the funnel) will export, on average, about 6.5 minutes AFTER the 20 minute hold.

If you decide to send your orders back to Shopify, please note that Shopify’s API may reject the order. In this case we will send notification emails to the emails listed in the Notify Email Account Settings. These notifications will send out every 20 minutes until the issue is fixed. This is to ensure you are aware of any issues with your orders reaching Shopify so they can be addressed.

Step 3 - Synchronize Products

This process will pull your Shopify products into CRM and push the variant metafields back to your Shopify store.

Edit the Shopify plugin, verify the information entered, and press the blue “Sync Products” button

The Shopify Plugin contains a Synchronization Status which updates as the Shopify Sync progresses. The following statuses will show in the Synchronization field.

Submitted: Shopify sync has been submitted but has not started yet. THis happens as soon as you hit the blue “Sync Products” button.

In Progress: Shopify sync has started and is currently in progress. At this point your shopify products should be importing into CheckoutChamp.

Completed: Shopify sync is completed. All shopify products have been pulled into CheckoutChamp and variant metafields have been updated in Shopfiy.

Failed: This status will display if the Shopify sync fails for any reason. Most cases it is due to the merchant client app not granting CheckoutChamp proper permissions to hit their API.

Depending on how many products reside inside Shopify, it may take a little time for them to all be pulled in.

When the sync is finished, navigate to CRM Products. Edit one of the Shopify Products. The Shopify variants are in the Product Variants section.

Variant Product prices can be overridden. By selecting Override Price, you can define an alternate price for your product variant. Be sure to Update.

Shopify variants are view-only in CheckoutChamp besides the price. If any changes are needed besides the price, make the changes in Shopify and Sync Products again via the plugin in CheckoutChamp.

See here for Checkout Redirect instructions.

Shopify Checkout Redirect Guide