Shopify & ERPAG integration

In order to enable ERPAG users to sell through Shopify services, ERPAG has enabled the connection between these two services using the API (Application Programming Interface).

The era of the overall digitization and transition of the paper business to digital media has brought many benefits and accelerated the development of companies. The emergence of the CLOUD Internet service and the enabling of business without physically present borders additionally contributed to development. Sales on the Internet have been growing over the years and the number of services that enable these types of sales every day is increasing. Shopify is one of such services and distinguishes itself from its quality.

In order to enable ERPAG users to sell through Shopify services, ERPAG has enabled the connection between these two services using the API (Application Programming Interface).

By connecting ERPAG and Shopify, the user receives the following benefits:

1) Complete Inventory Management (Sales, Procurement, Stock Status, Production, Ordering, Packaging and Shipping) on the ERPAG page

2) ONLINE and POS sales from Shopify

3) Updating items in Shopify (sending from ERPAG)

4) Updating quantities (stock) in Shopify (sending from ERPAG)

5) Update items in ERPAG (download from Shopify)

6) Downloading Sales Order from Shopify in ERPAGIn the synchronization process, ERPAG relies solely on the SKU. So, if you already have items defined in Shopify, check that each product and its variation have a unique SKU number.

Preparing and setting up Shopify

The first step for successful linking is to define the API keys in Shopify. In the browser, open the https://www.shopify.com page and log in using your Shopify account. 

Then click on the develop apps or Develop apps for your store as it is shown in this image:

Which will guide you to Create an app button

Enter the name of the Application (eg ERPAG) and enter your email address.

In the overview section go to Configure Admin API scopes, which will lead you to the window where you will select permissions for this app.

ADMIN API ACCESS SCOPES

Note: In the case that the Admin API access settings are not set up correctly, ERPAG will check and tell you which permissions are not set correctly when connecting to your Shopify. In that case, it’s enough to go back to the settings and in the Admin API section rectify the permissions.

When you finish saving your application, next step would be to Install app, and Shopify will generate the API key and API password.

Create a text file with the following information as you will need them to enter ERPAG :

1)API KEY AND SECRET KEY

2)ADMIN API ACCESS TOKEN

3)ADMIN URL

IMPORTANT NOTE:

When you click on reveal token once it is important to save it somewhere, because token will appear only once, and token is necessary and needed to connect Erpag and Shopify.

Preparing and setting up ERPAG In order for ERPAG to communicate with your Shopify store, the previously obtained API keys must be entered in ERPAG.

Log into ERPAG using your ERPAG account and activate the “Web Shops” option from the Administration> WEB SHOP menu.

In the following form, besides entering the Shopify API  keys, you will make settings for the synchronization mode. How data synchronization will take place depends on your business process and varies from case to case. That’s why we will explain each option in detail, and you will decide for yourself which model suits you best !

The Warehouse field will only appear if more than one warehouse is defined in ERPAG. Choose the default warehouse. Enter the name of your Shop in the Description field. This name will later be displayed through the synchronization process, and you will know which Shopify account you are synchronizing with.

In the Synchronized field, enter the starting date and time from which ERPAG will begin to download Sales Orders. Later, at each synchronization, ERPAG will correct this information on the date of the last Sales Order taken over. In the Status field, you can turn on or temporarily turn off sync with Shopify.

In the Variable Products field, you can activate to work with the variations that are on your Shopify. Namely, if there are variations in your shop, it is desirable that this option is set to Active so that ERPAG will be able to download products with all variations. However, if you do not have variations on your shop, this option can remain Inactive. Some shops have installed plugins that, based on variations, allow you to define different prices for the same product. Since this is the case with the same product (and not the variation), this option should remain Inactive.

In the Update Qty to web shop box, select whether you want ERPAG to update the stock status in your shop.

Panel – API-SETTINGS- enter the API Key and SECRET KEY (in the API keys field in ERPAG), Admin API ACCESS TOKEN (in the API Password) and the URL (In the URL section) and then press the VERIFY button to verify that the API data is entered correctly.

When connecting to your Shopify, ERPAG will check whether you have correctly set up the permissions that you defined through the API Admin panel in Shopify (described in Preparing and Setting Shopify).Panel – CONFLICT RESOLVER

At the beginning of this blog, we said that ERPAG synchronizes with Shopify by searching products based on their SKU. When the SKUs are different, the following processes will be performed:

– In case the SKU exists in Shopify and does not exist in ERPAG, ERPAG will download and create a new Product in the Product and Services list;– In case the SKU exists in ERPAG and does not exist in Shopify, ERPAG will create a new product in your Shopify, Conflict resolver is essential in the situation where identical SKUs are found on both sides. In the Product field, you can choose which side will win, or which data will be valid:– ERPAG wins – means that the product found in ERPAG will be considered valid and the product in Shopify will be overwritten with the one from ERPAG;– Web shop wins – means that the product that is in Shopify will be considered valid and the product in ERPAG will be overwritten with the one that is in Shopify. In the Price field, you can choose which side will win as far as the selling price is concerned:– ERPAG wins – means that the selling price for the product found in ERPAG will be considered valid and the selling price for the same product in Shopify will be overwritten with the ERPAG price;– Web shop wins – means that the selling price for the product that is in Shopify will be considered valid and the selling price for the same product in ERPAG will be overwritten with the price from Shopify. Panel – Relations between Shopify location and ERPAG warehouse


This panel will only appear when you have multi-location in your Shopify account. Then you can define a relationship between a single location in Shopify and a warehouse in ERPAG.

By defining these relations ERPAG will, when downloading Sales Order, create documents in the appropriate ERPAG warehouse, which means that all your sales from any Shopify location will be transferred to ERPAG in an exactly-defined warehouse. Also, if you have defined that ERPAG updates the amount of inventory, it will be in line with locations in Shopify. When you have completed all the necessary settings (in the same way as the Shop specifically needs), you need to click on the SAVE button to record the changes.

Set up items for synchronization in ERPAG

ERPAG allows you to create and select the products you want to synchronize with your Shopify store.

Creating products in ERPAG is already described on the following link: https://learn.erpag.com/project/create-new-product-1/untitled-4/basic-definition and in this blog, we will only show details related to Shopify.

So enter the Products and Services list and activate the product you want to synchronize with your Shopify store

From the dropdown list, select the webshop with which you want to synchronize (if you want, you can also select multiple webshops).

By choosing one or more web shops, a separate panel for each Web shop will appear on the form.

In this panel, you can define all the parameters necessary for sending to Shopify. ERPAG will offer you some default values, but you can correct them at any time. The only information you can not select is SKU. This information must be identical on both sides so that the synchronization process can function at all.

Thus, the description, the product type (in ERPAG – product category), the vendor, the selling price, and the barcode may be different from that defined in ERPAG.

In the Sales channels field, you can choose whether the product will be sold only through the Online store or through the Online store and Point of Sale. Also, with the Charge taxes option, you define whether your online store will charge a tax. With the Inventory Policy option, you define whether Shopify will also keep quantity records and, finally, the Allow purchase option when it’s out of stock option allows you to sell even if you do not have items in your stock.

In addition to the above-mentioned data from the webshop panel, ERPAG will also take the following data:

– Gross product weight,
– Unit of measure for the weight of product &
– The detailed description of the product

When the setting is complete, record the changes by pressing the Save button.

Product Synchronization

Once you’ve set up all the items you want to sync, you can synchronize the same data with your Shopify store. From the Product and Services list, click the Web Shops button and then the store with which you want to synchronize the data. Please note that ERPAG will synchronize all products that are defined for synchronization, not just those that you just entered or selected in the list.

The synchronization process takes place as follows:

1) ERPAG reads the product list you have in your webshop;
2) Comparison of items from Shopify list and ERPAG list based on SKU is performed –
a. In case that Shopify has an SKU that does not exist in ERPAG, a new article is inserted into ERPAG;
b. In case there is an SKU in ERPAG that does not exist in Shopify, a new item is added to Shopify;
c. In case there is a product with identical SKU on both sides, comparison of other data (name, price, properties, etc.) is made.
i. If data is identical, no synchronization is performed,
ii. If the data are not identical, the correction of the data is done based on the Conflict Resolver.

Therefore, in the event that ERPAG determines during data synchronization that data needs to be updated using Conflict resolver, you need to know the following:

1) If ERPAG wins – the information in Shopify will be corrected in accordance with the information defined in ERPAG,

2) If the Webshop wins – the data in ERPAG will be corrected according to the information defined in Shopify.

Also, ERPAG will adjust the price of products according to the configuration in Conflict resolver:

1) If ERPAG wins – the price at Shopify will be adjusted in accordance with the price defined in ERPAG,
2) If the Webshop wins – the price in ERPAG will be adjusted in accordance with the price defined in Shopify.

In addition to the above operations, ERPAG is also verifying the other parameters of a particular product such as Product with variations, Variant names, Variant values, Weight and Weight UOM. In case it is needed (on the Shopify page or on the ERPAG page), ERPAG will automatically create or correct the data in accordance with the Conflict resolver.

After synchronization is complete, refresh the list of products in Shopify where synchronized data will appear.

Note: Default selling price in Erpag is price without taxes and Web price is tax included.
When you have markup/margin on the item level, system does not have the ability to pull default selling price to Shopify.
The reason for this is because those fields are dynamic fields and they are constantly changing

Sales Order Synchronization

Orders created in Shopify and having the status Completed can be downloaded into ERPAG while other Order/s with status Drafted are not downloadable. ERPAG will not download Orders automatically, you need to log into ERPAG, activate Sales menu and then select Sales Orders. Now from the Sales Order list, click the Synchronization button and select the web shop.

The process of synchronizing and downloading Sales Order runs as follows:

1) ERPAG downloads a list of all Shopify Orders that you created after the last synchronization date (reading the Synchronized date in the Setup Webshop);
2) Performs a check of products found in Shopify Orders and, if necessary, synchronizes products with ERPAG;
3) Performs customer check (by name) and if they do not exist, creates them in ERPAG;
4) Creates Sales Order in ERPAG and loads products with quantities and prices as they are in Shopify Orders regardless of the prices found in ERPAG.

In the case that the Orders created in Shopify do not have customer information (name, address, etc.), ERPAG will create a Sales Order where it will write Point of Sale in the name of the customer.

In the case that there are Orders in Shopify containing items that you have deleted in the meantime from the Shopify Product List, ERPAG will create a Sales Order with a Draft status because it is unable to determine the exact content of the Order. In this case, you need to activate the Sales Order and correct the content yourself, or to enter the correct products that should be in the Sales Order.