Shopify integration

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 ERPAG



In 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 link "Manage private apps" as shown in the picture.

Shopify integration


Shopify integration

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

Shopify integration

Scroll down to the bottom and in the Admin API section perform the settings as shown in the picture.

Shopify integration

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.

Finally, save your changes.

Shopify integration


When you finish saving your private application, 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

2) API password

3) API URL



Shopify integration



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 "Sales" menu.


Shopify integration

The next step is to open a new Web Shop.

Shopify integration

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 the best.

Shopify integration

Panel – DOCUMENT HEADER

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 webshop box, select whether you want ERPAG to update the stock status in your shop.

Panel – API-SETTINGS

Enter the API Key, the API Password, and the URL, 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 win - means that the product found in ERPAG will be considered valid and the product in Shopify will be overwritten with the one from ERPAG;
- Webshop win - 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 win - 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;
- Webshop win - 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.


Shopify integration

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.

Shopify integration

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 webshop will appear on the form.

Shopify integration

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 and
- 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.


Shopify integration

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.

So 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.

setting up items for synchronization with Shopify

Sales Order Synchronization

Orders created in Shopify and having the status Completed can be downloaded into ERPAG while other Orders (or Order) 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.

setting up items for synchronization with Shopify

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.

setting up items for synchronization with Shopify


ERPAG 5.1

Second Unit Of Measure (UOM)

How to set up a second unit of measure? Generate reports and get an inventory overview. Track and convert raw materials in work orders.

Second Unit Of Measure (UOM)

1. Introduction


Often, goods from a wholesaler or producer are ordered in larger quantities. In such procurement, suppliers have a different unit of measurement (UOM), from the one we use. A simple example is when we sell in "pieces" (pcs) while our supplier delivers us in palettes (Pallet / pl), or the supplier delivers us in kilograms (kg) and we store our stocks in Libra (lbs). This process in ERPAG is called the "second unit of measure" and there are two ways to manage it.



The first method is a fixed parity, in which the "second uom" (which is required by the supplier) and "default uom" (unit of measure with which we run our stores) is invariable. For example. 1 kg = 2.205 lbs / 1 box = 10 pcs.



The second method is changeable, where the ratio of the "second" and "default" units of measure is changed from case to case. In this case, it is necessary to measure each procurement in order to calculate the parity. The best example is in mechanical production, when the supplier delivers us 10 lbs of "screws 5x12", and we place 512 pieces in our stocks. With the next purchase of 10 lbs, we counted 506 pcs.



2. Item settings

Like everywhere in ERPAG, we tried to make the process as simple as possible, so we placed it in the 'Barcode /Second UOM' section.

Second Unit Of Measure (UOM)

We inserted the setting together with barcodes as this allows two options to be set at once. I.e. when scanning the barcodes, the amount will be calculated (in the example, if the scanned code is "2000000000039" the quantity will be "80 pcs"), while when purchasing the column "quantity" means the ratio to "default UOM" (in our example "1 pl = 80 pcs"). When adding an item to the table, ERPAG automatically assigns a barcode (EAN13 custom range), which can be retyped in as appropriate number for you, or if you do not need it, leave the field blank.

Although the process name itself is the "second UOM", in ERPAG you can have more than two units of measurement (UOM). In our case, the first one had three. The first data "pcs" (ie quantity = 1) is "default uom", the other "box" corresponds to "10 pcs", the third is "pl" is corresponding to "80 pcs". In determining the parity, the parity is always towards "default UOM".

In the second case, we will do the "conversion from kg to lbs", i.e. when we order in kg from our supplier.

Second Unit Of Measure (UOM)

3. Manual Purchase Order entry

In order to achieve the simplicity of ERPAG and higher productivity, some data is dynamically displayed or hidden.

When the new Purchase Order is created, the data for the second UOM entry will not be visible, they will only appear if we select one of the items that have its second UOM defined in its settings.

Second Unit Of Measure (UOM)

Second Unit Of Measure (UOM)


The newly opened columns are divided into units containing the "second UOM" data from/for the supplier and the "default" UOM where the data that comes in our stock is recalculated. Any data that changes (fixed parity) will be automatically recalculated. In our example, if you enter the second UOM quantity as 12 and the price "$900" in "default" the data will be 120 pcs at a price of $90.00.

Second Unit Of Measure (UOM)

When adding an item to the Purchase Order, the second unit of measure will be suggested. If we have more than two, then we will have the possibility to change it.

Second Unit Of Measure (UOM)


It is also possible to combine different "second UOMs" for the same item in the same Purchase Order.

Second Unit Of Measure (UOM)

4. Purchase Orders from the Fulfillment

For example, we will create the Sales Order (in our 'default UOM').

Second Unit Of Measure (UOM)

And we will do the fulfillment.

Second Unit Of Measure (UOM)


We got two Purchase Orders (one for each supplier).

Second Unit Of Measure (UOM)

In the Purchase Order, the quantities are recalculated to the 'second UOM'.

Second Unit Of Measure (UOM)


In the items that have more than two 'second UOMs', the fulfillment will always be formed for the second in order. In our example, for the 'Item 01' will be 'box'.

Second Unit Of Measure (UOM)

5. Receive the quantities from the Purchase Order.

When you receive the items from the Purchase Order, you will be able to choose whether you want to receive the items with displayed 'second' or 'default' unit of measure.

Second Unit Of Measure (UOM)

If you use the barcode scanners to evident the received items, the unit of measure will recalculate automatically when the barcode is scanned.

Second Unit Of Measure (UOM)

In the mobile application, if the second unit of measure exists, it will be possible to enter it. For example, if we receive items in 'kg', ERPAG will recalculate it to 'lbs' and vice versa.

Second Unit Of Measure (UOM)

Second Unit Of Measure (UOM)

Second Unit Of Measure (UOM)

Note that if you scan (or manually enter) the barcode which has the assigned quantity, it will be automatically recalculated. In our example if we scan the barcode for the 'box', the automatically recalculated quantity will be added.

Second Unit Of Measure (UOM)


6. Printing out the Purchase Order

When printing a purchase order, "second UOM" will be printed, if it exists. This is done because our supplier expects an order in the unit of measure with which he is working.

Second Unit Of Measure (UOM)

Second Unit Of Measure (UOM)

7. Working with variable parity

As we noted at the beginning of the text, there are cases when purchases are with different parity. We will take an example from machine production, the purchase of screws. Suppliers of "screws" sells in boxes that are 1 lbs heavy, depending on the model of production of the screws in that 1 lbs can be from 480 to 520 individual screws. If we want to be precise, we need to manually count for each reception. Since we have unknown or variable parity, we will enter "0" in the "quantity" section of the "barcode / second uom" section.

Second Unit Of Measure (UOM)

Since the 'parity' is unknown, we are able to enter both quantities without automatic recalculation.

Second Unit Of Measure (UOM)

Note - in the Purchase Orders that are generated from the Fulfillment, since the 'parity' is unknown, the quantity of the 'second UOM' will be '0'. This must be manually adjusted.

Second Unit Of Measure (UOM)

8. Entering purchase prices by the second unit of measure

Suppliers display their prices by their units of measure (eg "1 pl = $ 105.00", "1 kg = $ 3.00"), which would require the manual conversion of the purchase price in the item settings.

Of course, ERPAG has an adequate solution to this problem.

When setting, the price has a lot of influence. Item may have multiple suppliers, there may be a "Tier Quantity", as well as an international trade, the supplier can display the price in other currencies (e.g., "EUR").

Second Unit Of Measure (UOM)



Determining the purchase price of the "second UOM" in the item setting would further complicate the form and it would not be practical. Starting from the fact that the most frequently the price lists of suppliers are changed, in this form we have included options for defining purchase prices with the "second UOM". By simply clicking on the key of the supplier, the form of the given supplier with his price list opens.

Second Unit Of Measure (UOM)


If there are "second UOMs" on the items then the subject columns will be visible. Please note that the setting is only possible with another unit of measure, although ERPAG allows you to enter multiple units of measure.

Some vendors provide us with price lists in our units regardless of what we have in ERPAG, so when importing data we need to determine in which option we want to process it.

Second Unit Of Measure (UOM)







ERPAG 5.1

QuickBooks Online & ERPAG (Manufacturing)

Expand QuickBooks Online and manage advanced inventory with manufacturing. Explode complex Bill of Materials and order missing items using automate supply chain management


QuickBooks Online (QBO) is Intuit's cloud-based accounting software. Unlike the desktop prime and enterprise editions, QBO is primarily intended for small firms that will allow their bookkeepers to make computational reports.



QuickBooks Online Manufacturing



In its options there is no separate production option, in this text, we will explain how we made the integration.



1. Connecting ERPAG and QBO



Connecting is quite simple, through the administration module.

QuickBooks Online Manufacturing


QuickBooks Online Manufacturing



In the current version, documents can only be sent to QBO. For most of our users, a large number of documents is entered by accountants (bookkeepers) directly into the accounting, which is not of any particular importance in ERPAG (eg in ERPAG only inventory is tracked, while QBO includes rental costs, utility bills ...).



QuickBooks Online Manufacturing




2. Setting up the items.

When you are creating or editing an item, it is necessary to specify QBO accounts. (Note - product synchronization is always over SKU)

QuickBooks Online Manufacturing

In our example, we will take a simple product - a bike that contains front and rear wheel.

QuickBooks Online Manufacturing

3. Purchasing the items (Purchase Order)

The purchase is done through the Purchase Order. Note that only those Purchase Orders for which the Supplier Invoice has been generated will be synchronized with QBO.

QuickBooks Online Manufacturing

4. Purchase order - QuickBooks Online synchronization

Synchronization is not done automatically when you enter a document, it's required for the operator to click the synchronization button in the Accounting module.

QuickBooks Online Manufacturing

When the form opens, all documents that can be sent are displayed, as well as the type of document that will be created in QBO.

QuickBooks Online Manufacturing

Through the bulk action, we will determine which documents will be sent to QBO (eg we will only send documents from the previous month).

Received and invoiced purchase order will become Bill in QBO.

QuickBooks Online Manufacturing

QuickBooks Online Manufacturing

Which has its own transaction journal.

QuickBooks Online Manufacturing

5. Work order - synchronization with QuickBooks Online

In our example we will create a Work order (Based on - Bill of materials), where we will load material, deliver the finished good and complete the work order.

QuickBooks Online Manufacturing

Only the completed work orders will appear in the list for QBO synchronization.

QuickBooks Online Manufacturing

QBO still doesn't have a document that would fit our 'work order' document, so the loading material  will create the 'dummy invoice' in order to decrease the inventory, and 'dummy bill' to increase the finished product inventory.

'Dummy invoice' - Decreasing the item's quantity
QuickBooks Online Manufacturing

QuickBooks Online Manufacturing

The amount of the 'Dummy invoice' is 0, because it's not the real sale, just decreasing the stock.

QuickBooks Online Manufacturing

'Dummy bill' - Increasing the item's quantity
QuickBooks Online Manufacturing

QuickBooks Online Manufacturing

QuickBooks Online Manufacturing

With this, we managed to make the changes in our inventory in QBO.

QuickBooks Online Manufacturing

QuickBooks Online Manufacturing

6. Sales Order - Synchronization with QBO

For the produced item (Bike, in our example), we will create a Sales Order which we will pack and invoice.

QuickBooks Online Manufacturing

** Note - QBO has an integrated sales tax system for the US. It may happen that the sales tax calculation is different from ERPAG. For a proper calculation of a sales tax, you must consult your accountant.

QuickBooks Online Manufacturing

QuickBooks Online Manufacturing

In the journal we can see that the COGS is 0, because the 'dummy invoice' that was created for the Work Order has that amount.

7. Resume

With 'dummy' documents we managed to update the inventory and form adequate COGS.

Profit and loss in QBO

QuickBooks Online Manufacturing

Income statement in ERPAG (Internal accounting)

QuickBooks Online Manufacturing