Shopify Integration
The Shopify Connector pulls the orders from Shopify and creates Sales Order against them in ERPNext.
While creating the sales order if Customer or Item is missing in ERPNext the system will create new Customer/Item by pulling respective details from Shopify.
How to Setup Connector?
Shopify Connector is moved out from ERPNext and available through a Frappe App on Frappe Cloud Marketplace
Note to users of old Shopify Connector
If you have not setup Shopify Connector on your ERPNext site you can proceed to next step.
If you are using old Shopify integration that's provided in ERPNext then you will have to disable the connector before proceeding. After installing the app, it will migrate existing data e.g. unique product_id for items to separate doctype. Once you are done configuring new integration, you can confirm the status of migration by going to "Ecommerce Integration Log" doctype.
App Installation
- If you are hosting your ERPNext site on Frappe Cloud, you can quickly install the app by going to your site Dashboard. The app is available in Frappe Cloud Marketplace
- If your site is hosted by Frappe, please raise a support ticket to get the app installed on your site.
- If you are self hosting ERPNext you can install the app using Frappe bench. Refer bench documentation for installing Frappe Apps.
bench get-app ecommerce_integrations --branch main
The repository for app is hosted on GitHub: http://github.com/frappe/ecommerce_integrations/
Create A Custom App in Shopify
Click on Apps in menu bar
Click on Develop apps for your store to create custom app
Create New app
Fill up the details and create app. The each app has its own API key, Password and Shared secret
Allow following permissions to the app.
- Draft Orders - Read and Write
- Orders - Read and Write
- Location - Read
- Customers - Read
- Assigned fulfillment orders - Read and Write
- Products - Read and Write
- Product listings - Read and Write
- Inventory - Read and Write
your final admin scopes should look like this:
Install the app on your site
Setting Up Shopify on ERPNext:-
Once you have created a Private App on Shopify, setup App Credentials and other details in Shopify Settings in ERPNext.
To access Shopify Settings, go to: Awesome search bar > Shopify Setting
Fill-up Shopify site URL, Access Token and API Secret from Shopify's Private App.
Setup Customer, Company and Inventory configurations.
Setup Sync Configurations. The system pulls Orders from Shopify and creates Sales Order in ERPNext. You can configure ERPNext system to capture payment and fulfilments against orders.
Setup Tax Mapper. Prepare tax and shipping charges mapper for each tax and shipping charge you apply in Shopify. You can find name of your taxes from your Shopify Admin page.
After setting up all the configurations, enable the Shopify sync and save the settings. This will register the API's to Shopify and the system will start Order sync between Shopify and ERPNext.
Syncing Old Orders From Shopify
Once you are done with the Shopify configuration and have enabled Shopify Syncing, you also get a provision to sync your old orders from Shopify into ERPNext. This syncing will happen in background and can take few hours depending on number of orders you have.
- Enable "Sync Old Shopify Orders"
- Enter the From and To dates between which the orders need to be synced
Inventory Sync
You can update your inventory with Shopify for items that are synced from Shopify. Inventory sync is done every hour with a scheduled job. Inventory levels of items that have changed since last sync are pushed to Shopify. Inventory levels of ERPNext warehouses are mapped 1 to 1 with Shopify locations.
- To enable inventory sync click on the checkbox, this will show you a table to map ERPNext warehouse with Shopify Location.
- Select sync frequency. 30 to 60 minutes is recommended frequency.
- Click on "Fetch Shopify Locations" button to populate Shopify locations in the table.
- Link each location with ERPNext warehouse.
- Save the settings.
Note: This connector assumes that ERPNext is main source of information about inventory levels, any changes done to Shopify inventory levels will be overwritten by ERPNext if ERPNext inventory levels change.
Note: Shopify does not support fractional quantity. If fractional quantity is found in ERPNext, the inventory level on Shopify will be set by rounding it down to nearest whole number.
Item Sync
You can enable sync of new ERPNext items to Shopify by checking "Upload new ERPNext items to Shopify".
You can also update Shopify item upon updating ERPNext item.
Following fields are uploaded / updated:
ERPNext Field | Shopify Field |
---|---|
Item Name | Title |
Item Code | SKU |
Description body | Description |
Item Group | Product Type |
Weight per Unit | Weight |
Weight UOM | Weight UOM |
By default all items are marked as Draft on Shopify and not published in any store.
Purpose of providing this functionality is to sync items with Shopify. It's not possible to map every fields 1-to-1. Upon creation of item on Shopify using this method, it's linked with ERPNext, this eliminates possibility of duplication. You can modify items on Shopify later to add more details.
Note: This feature is not supported in data import or for variant / template items.
Cancellation of Orders
This connector handles various cancellation scenario in following manner:
- If Order on Shopify is cancelled and it doesn't have invoice or Delivery note linked against it then ERPNext Sales Order is cancelled.
- If ERPNext Sales Order does have any linked document, then status of order on Shopify is added to the respective document. Cancellation and preparation of appropriate documents has to be done by user based on this information.