This integration allows you to sync all the information from your Shopify online store with Holded. In this way, the data on orders, products, stock level and warehouses will be uploaded to Holded every time a change is made in your online store and vice versa.
☝🏼 Holded will use the SKU of the product to link the information between the two platforms. Your stock level may be affected if a product order has the same SKU, even if sync is not enabled.
The four parts of integration
1. Sales
1.1. Document types
Orders imported from Shopify can be converted into a sales receipt, sales invoice, sales order, or corrective sale, depending on their payment status.
If payment has been made, a receipt or invoice will be generated. If not, a sales order will be created. Returns are converted into corrective sales.
Available options:
Sales order: useful for cash on delivery orders or orders that need to be edited before generating a final document. You can check the status of your orders and customize them exactly as they are configured in Shopify.
Sales ticket: recommended if you do not work with invoicing; these are only generated if the order is marked as Paid.
Sales invoice: generated with the customer's tax information and only for orders with Paid status.
Corrective sale: applied to returns or refunds.
☝🏼 Only orders that are in Paid status in Shopify are imported, unless you choose to convert them to Orders.
1.2. How currencies are converted in orders
When an order arrives from Shopify, it may be in one or two different currencies. Holded converts everything so that it matches the currency you use in your account.
Here's what can happen:
If the order comes in a single currency:
If it's the same currency you use in Holded (for example, euros), nothing changes.
If it's different (for example, dollars), Holded automatically converts it to your currency using the exchange rate for that day (or the one you've set).
If the order comes in two currencies (for example, someone buys from you in pesos, but your store is in dollars):
If one of those two currencies is the same as the one you use in Holded, that one will be used directly.
If both are different from yours, Holded will use the store's currency (not the customer's) and convert it to yours.
This way, you will always see your orders in the currency you use in Holded, even if the sales arrive in other currencies.
1.3. Otros ajustes de ventas
In addition to importing orders and managing currencies, Holded lets you do more to gain complete control over how Shopify sales arrive and are recorded:
Assign a sales channel: this allows you to mark orders that come from Shopify, so you can then analyze them better in the sales reports you have within Holded.
Link payment methods: if you already have payment gateways (such as Stripe, PayPal, or a bank account) connected to Holded, you can link them to the payment methods you use in your Shopify store. This way, you'll know how each order was paid for.
Apply a specific invoice template: you can choose a specific design for the documents that are generated (such as invoices or receipts), with your logo, colors, or custom structure.
Apply specific taxes: if you need a specific tax rate to be applied to certain sales, you can do that too.
Automatically correct decimals: Shopify and Holded sometimes calculate cents differently. To avoid small differences in prices, you can activate an option called Tax Correction. If you deactivate it, you may see slight differences between what appears in Shopify and what is generated in Holded.
Decide how contacts are created: you can configure whether you want Holded to automatically create a new contact for each order, or always use the same one.
Control the numbering of your documents: you can choose where the numbering of your orders, receipts, or invoices begins, so that everything is organized the way you want.
You will find all these settings in the Advanced Settings section, once you have connected your Shopify store to Holded.
If you want to see more details on how to import your orders, check out this article.
2. Products
When you enable product import, products will be created in Holded based on the data from your Shopify store, as long as they have an assigned SKU.
You can choose which fields to sync (name, price, description, barcode, cost, and taxes). Only the selected fields will be updated in Holded; all others will remain unchanged. This synchronization is one-way: Shopify → Holded.
☝🏼 If a product with the same SKU already exists in Holded, its information will be overwritten based on the selected fields. If the SKU doesn't exist, a new product will be created.
The product cost will only be imported if it’s empty in Holded.
What happens when creating, updating, or deleting a product?
Action | Platform | Consequence in Holded | Comments |
Create product | Shopify | ✅ Product is created if it has a SKU |
|
Create product | Holded | ❌ Not created in Shopify |
|
Update product | Shopify | ✅ Updated based on selected fields | Available fields: name, description, price, cost, taxes, barcode |
Update product | Holded | ❌ Not updated in Shopify |
|
Delete product | Shopify | 🔗 Link with Holded is removed | Product still exists in Holded |
Delete product | Holded | ❌ Not deleted in Shopify |
|
3. Stock Level
Unlike product integration, stock level synchronization is bi-directional. This means that by enabling this option, the stock level will be affected in both Holded and Shopify, no matter where the information is changed.
☝🏼 This option allows any SKUs that match each other to be automatically synced, even if product import is not enabled
Stock synchronization is bi-directional. Here is a table summarizing how stock level synchronization works between the two platforms:
Action | Platform | Consequence | Comments |
Manually update stock | Shopify | ✅ Stock is updated in Holded | Only products with SKU in Shopify will be generated in Holded |
| Holded | ✅ Stock is updated in Shopify |
|
Create order/invoice | Shopify | ✅ Stock is reduced in Holded upon import | No need to enable sync to reduce stock via orders if SKUs match |
💎 Stock level sync requires Inventory gem activation.
4. Warehouses
When this option is activated, the warehouses configured in Holded will correspond to locations in Shopify, so that each movement of stock in your online store or in Holded will be reflected in the corresponding warehouse or location.
Multi Stores
In case you have more than one Shopify store, you can sync them all with the same Holded account.
📖 More information here about synchronizing multiple Shopify stores