Synchronize items and inventory
Items in Business Central are equivalent to products in Shopify. They're the physical goods, digital downloads, services, and gift cards that you sell. There are two main reasons to synchronize items:
- When you primarily manage data in Business Central. You need to export all or some data from there into Shopify and make it visible. You can export the item name, description, image, prices, availability, variants, vendor details, and barcode. Once exported, you can review the items or make them visible immediately.
- When an order from Shopify is imported, the information about items is vital to further document processing in Business Central.
The preceding two scenarios are always enabled.
A third scenario is to manage data in Shopify but import those items in bulk to Business Central. This scenario can be useful for data migration events, such as when you want to connect an existing online shop with a new Business Central environment.
Define item synchronizations
Choose the search icon and enter Shopify Shop. Open the shop for which you want to configure the item synchronization.
From the Sync item field, select the required option.
The following table outlines the options.
Option Description Blank Products are imported together with the importing of orders. Products are exported to Shopify if a user runs the Add Item action from the Shopify Products page. This option is the default process. To Shopify Select this option if, after the initial sync is triggered by the Add Item action, you plan to update products manually using the Sync Product action or using the job queue for recurring updates. Remember to enable the Can Update Shopify Product field. If it isn't enabled, it equals the Blank (default process) option. Learn more in the Export items to Shopify section. From Shopify Choose this option if you plan to import products from Shopify in bulk, either manually using the Sync Product action or using the job queue for recurring updates. Learn more in the Import items from Shopify section. Note
Changing Sync Item from From Shopify to To Shopify won't have an effect unless you enable Can Update Shopify Products.
Overview of ways to manage product information in both apps
Shopify and Business Central both offer extensive features for managing products and variants. Depending on your needs, you can choose different options. In Shopify, where you focus on convenience for customers, and in Business Central, where other criterias are taken into consideration, such as the ability to define an assembly BOM.
Product Information | Business Central: Flat item list. Only items, no variants |
Business Central: Items with item variants |
---|---|---|
Shopify: Flat product list. Only products, no variants. |
Supported Import into Business Central To point to an item in Business Central, use the barcode or SKU fields on the Shopify product. Export items from Business Central via the Add Item to Shopify action. |
Not supported You can manually create products/items in both system independently, and use the barcode or SKU for automatic mapping or map products to item variants manually. |
Shopify: Products with variants | Supported We recommend that you select Item No., Vendor Item No., or Barcode in the SKU Mapping field and add the barcode or SKU on the variant to ensure that when a product/variant is imported from Shopify it finds the corresponding item in Business Central. Export from Business Central via the Add Items as Shopify Variants action. |
Supported We recommend that you select Item No.+Variant Code in the SKU Mapping field and add the barcode or SKU on the variant to ensure that when you import the product or variant from Shopify it finds the corresponding item or variant in Business Central. Export from Business Central via the Add Item to Shopify action. |
To learn more, go to Effect of Shopify product SKUs and barcodes on mapping and creating item variants in Business Central.
Import items from Shopify
First, import items either in bulk from Shopify or together with orders to add them to the Shopify Product and Shopify Variant tables. Then, map imported products and variants to items and variants in Business Central. Manage the process using the following settings:
Field | Description |
---|---|
Auto create unknown items | When Shopify products and variants are imported into Business Central, the Business Central function first tries to find the matching record in the item list. SKU Mapping impacts how the matching is performed and creates a new item and/or item variant. Enable this option if you want to create a new item or when a matching record doesn't exist. The new item is created using imported data and the Item Template Code. If this option isn't enabled, create an item manually and use the Map Product action on the Shopify Products page. |
Item Template Code | Use this field with the Auto create unknown items toggle. Choose the template you want to use for automatically created items. |
SKU Mapping | Choose how you want to use the SKU value imported from Shopify during the item/variant mapping and creation. Learn more in the Effect of Shopify product SKUs and barcodes on mapping and creating items and variants in Business Central section. |
SKU Field Separator | Use this field with SKU Mapping set to the Item. No + Variant Code option. Define a separator to be used to split the SKU. So, if in Shopify you create the variant with the SKU '1000/001', you'd type '/' in the SKU Field Separator field to make the item number in Business Central '1000' and the item variant code '001'. If you create the variant with the SKU '1000/001/111' in Shopify, the item number in Business Central is '1000' and the item variant code is '001'. The '111' part is ignored. |
Variant Prefix | Use together with SKU Mapping set to either the Variant Code or Item No. + Variant Code option as a fallback function when the SKU coming from Shopify is empty. If you want to create the item variant in Business Central automatically, you to enter a value in Code. By default, the value defined in the SKU field imported from Shopify is used. However, if the SKU is empty, it generates code starting with the defined variant prefix and '001.' |
Shopify Can Update Item | Choose this option if you want to update items and/or variants automatically. |
UoM as Variant | Choose this option if you want all item units of measure to be exported as separate variants. To add the field, personalize the page. Learn more in the Unit of Measure as Variant section. |
Variant Option Name for UoM | Use this field with UoM as Variant to specify under which option to add variants that represent units of measure. The default value is Unit of Measure. Use personalization to add the field to the page. |
Export items to Shopify
There are multiple ways to export items to Shopify:
- Use the Add item to Shopify action directly from the Item card page.
- Use the Add Item action on the Shopify Products page.
- Use the Add Item as Shopify Variants action on the Shopify Products page.
- Run item synchronization once or repeatedly with automation.
No matter how you export items, specific item information is transferred to the Shopify products list depending on your choice of settings for item synchronization.
Before it exports an item to Shopify, the connector checks whether an item already exists. First, it checks whether there's a product or variant with a barcode, because it's defined in the Item References entry of a barcode type. If the SKU Mapping field is filled in, the connector checks whether there's a product or variant with a SKU. To learn more, go to Effect of Shopify product SKUs and barcodes on mapping and creating items and variants in Business Central.
Important
The product is added only to the Online Store sales channel. You need to publish products to other sales channels, like Shopify POS, from Shopify.
You manage the process of exporting items using these settings:
Field | Description |
---|---|
Sync Item Extended Text | Select this field to sync the extended text of the item. Because it's added to the Description field, it can contain HTML code. |
Sync Item Attributes | Select this field to sync the item attributes. Attributes are formatted as a table and included in the Description field in Shopify. |
Sync Item Marketing Text | Select this field to sync marketing text for the item. Although marketing text is a kind of description, it's different from an item's Description field. The Description field is typically used as a concise display name to quickly identify the product. The marketing text, on the other hand, is more rich and descriptive. Its purpose is to add marketing and promotional content. This text can then be published with the item in Shopify. There are two ways to create the marketing text. Use Copilot, which suggests AI-generated text for you, or start from scratch. |
Language Code | Select this field if you want the translated versions used for title, attributes, and extended text. You can also export additional translations. To learn more, go to Sync product translations to Shopify. |
SKU Mapping | Choose how you want to populate the SKU field in Shopify. Supported options are: - Item No. to use the item number for both products and variants. - Item No.+ Variant Code to create an SKU by concatenating values of two fields. For items without variants, the item number only is used. - Item Vendor No. to use the item vendor number defined in the Item Card for both products and variants. - Barcode to use the barcode type of Item Reference. This option respects variants. If Can Update Shopify Products is enabled, changes in the SKU Mapping field will be propagated to Shopify after the next sync for all products and variants listed in the Shopify Products page for the selected shop. |
SKU Field Separator | Define a separator for the Item. No + Variant Code option. |
Inventory Tracked | Choose how the system should populate the Track Inventory field for products exported to Shopify. You can update availability information from Business Central for products in Shopify whose track inventory is enabled. Learn more in the Inventory section. |
Default Inventory Policy | Choose Deny to prevent negative stock on the Shopify side. If Can Update Shopify Products is enabled, changes in the Default Inventory Policy field will be propagated to Shopify after next sync for all products and variants listed in the Shopify Products page for selected shop. |
Can Update Shopify Products | Define this field if Business Central can only create items or can update items as well. Select this option if, after the initial sync is triggered by the Add Item action, you plan to update products manually using the Sync Product action or using the job queue for recurring updates. Remember to select To Shopify in the Item Sync field. Can Update Shopify Products doesn't impact synchronization of prices, images, or inventory levels, which are configured by independent controls. If Can Update Shopify Products is enabled, the following fields on the Shopify side are updated on the product and, if needed, the variant level: SKU, Barcode, Weight. The Title, Product Type, Vendor, and Description on the product are also updated if the exported values aren't empty. For description, this means you need to enable any of the Sync Item Extended Text, Sync Item Marketing Text, and Sync Item Attributes toggles and attributes, extended or marketing text must have values. If the product uses variants, then the variant is added or removed if necessary. If the product on Shopify is configured to use a variant matrix that combines two or more options, the Shopify Connector can't create a variant for that product. In Business Central, you can't define an option matrix, so the connector uses the Variant Code as the only option. However, Shopify expects several options and refuses to create a variant if information about other options is missing. |
UoM as Variant | Choose this option if you want some options to be exported as imported as units of measure instead of variants. Personalize the page to add the field. Learn more in the Unit of Measure as Variant section. |
Variant Option Name for UoM | Use this field with UoM as Variant to specify which option contains variants that represent units of measure. The default value is Unit of Measure. To add the field, personalize the page. |
Weight Unit | When you enable the connector, it imports the default weight unit of measure from Shopify and uses it when it sends the weight of the product. You can change whether the Net weight field in Business Central stores values with different unit of measure. |
Note
When you want to export many items and variants, some might be blocked. You can't include blocked items and variants in price calculations, so they aren't exported. The Connector skips those items and variants, so you don't need to filter them on the Add Item to Shopify request page.
Sync product translations to Shopify
Automatically synchronizing translations from Business Central to Shopify guarantees consistent product descriptions and details across various languages. Offering customers product information in their native language enhances accessibility and satisfaction, which can boost conversion rates and foster customer loyalty.
To include translations to the product synchronization, follow these steps:
- Choose the Tell Me icon, enter Shopify shops, and choose the related link.
- Select the shop to open the Shopify Shop Card page.
- To open the Shopify Languages page, choose the Languages action.
- To import languages enabled on Shopify, choose the Refresh action. Notice that the primary language isn't be listed. For the primary language, continue to use the Language Code field in the Shopify Shop Card.
- For each language to include in synchronization, fill in the Language Code field and turn on the Sync translations toggle.
Note
- Marketing text is only added for the primary language.
- Extended texts are added for each language, plus extended texts where the All Languages toggle is turned on.
- Attributes are added for each language. If a translation is missing, the primary language is used.
- Item translations are added for each language if a translation is defined.
- Variant translations aren't used because the connector only exports the variant code, and not its description.
Advanced details
Effect of Shopify product SKUs and barcodes on mapping and creating items and variants in Business Central
When products are imported from Shopify to Shopify Products and Shopify Variants tables, Business Central tries to find existing records.
The following table outlines the differences between options in the SKU Mapping field.
Option | Effect on mapping | Effect on creation |
---|---|---|
Blank | The SKU field isn't used in the item-mapping routine. | No effect on the creation of the item. This option prevents the creation of variants. When in a sales order, only the main item is used. A variant can still be mapped manually on the Shopify Product page. |
Item No. | Choose if the SKU field contains the item number. | No effect on the creation of an item without variants. For an item with variants, each variant is created as a separate item. If Shopify has a product with two variants and their SKUs are '1000' and '2000', Business Central creates two items numbered '1000' and '2000'. |
Variant Code | The SKU field isn't used in the item-mapping routine. | No effect on creation of the item. When an item variant is created, the value of the SKU field is used as a code. If the SKU is empty, a code is generated using the Variant Prefix field. |
Item No. + Variant Code | Select this option if the SKU field contains an item number and the item variant code is separated by the value defined in the SKU Field Separator field. | When an item is created, the first part of the value of the SKU field is designated No.. If the SKU field is empty, an item number is generated using the number series defined in the Item Template Code or Item Nos. field of the Inventory Setup page. When an item is created, the variant function uses the second part of the value of the SKU field as Code. If the SKU field is empty, a code is generated using the Variant Prefix field. |
Vendor Item No. | Choose if the SKU field contains the vendor item number. In this case, the Item Vendor No. isn't used on the Item Card page; rather the Vendor Item No. from the Item Vendor Catalog is used. If the Item Vendor Catalog record contains a variant code, that code is used to map the Shopify variant. | If a corresponding vendor exists in Business Central, the SKU value is used as the Vendor Item No. on the Item Card page and as the Item Reference of the vendor type. Prevents the creation of variants. It's useful when you want to use only the main item in the sales order. You're still able to map a variant manually from the Shopify Product page. |
Barcode | Choose if the SKU field contains a barcode. A search is performed among Item References of the barcode type. If the item reference record contains a variant code, that variant code is used to map the Shopify variant. | No effect on the creation of the item. Prevents the creation of variants. It's useful when you want to use only the main item in the sales order. You're still able to map a variant manually from the Shopify Product page. |
The following table outlines the effects of the Barcode field.
Effect on mapping | Effect on creation |
---|---|
A search is performed on the Item References containing a barcode type as the value in the Barcode field in Shopify. If the item reference record contains a variant code, that variant code is used to map the Shopify variant. | The barcode is saved as Item Reference for the item and item variant. |
Note
You can trigger mapping of the selected products/variants by choosing Try Find Product Mapping or of all the imported unmapped products by choosing Try Find Mappings.
Fields-mapping overview
Shopify | Source when exported from Business Central | Target when imported to Business Central |
---|---|---|
Status | According to the Status for Created Products field in the Shopify Shop Card. Learn more in the Ad hoc updates of Shopify products section. | Not used. |
Title | Description. If the language code is defined and a corresponding item translation exists, the item translation is used instead of the description. | Description |
Variant title | Variant Code. The reason to use Code and not Description is because Shopify requires unique variant titles per product. In Business Central the Code is unique, while Description isn't. Descriptions that aren't unique cause issues during product export. |
Description of variant |
Description | Combines extended texts, marketing text, and attributes if you enable the corresponding toggles on the Shopify shop card. Respects the language code. | Not used. |
SEO page title | Fixed value: empty. Learn more in the Ad hoc updates of Shopify products section. | Not used. |
SEO meta description | Fixed value: empty. Learn more in the Ad hoc updates of Shopify products section. | Not used. |
Media | Image. Learn more in the Sync item images section | Image |
Price | The calculation of the end-customer price includes the item unit price, customer price group, customer discount group, and currency code. Learn more in the Sync prices section | Unit Price. The price is only imported to newly created items and doesn't update in later synchronizations. |
Compare at price | The calculation of the price without a discount. If the value is less than or equal to Price, the connector sends 0 (null) instead of the actual value. | Not used. |
Cost per item | Unit Cost | Unit Cost. The unit cost is only imported to newly created items and doesn't update in later synchronizations. |
SKU | Learn about SKUs under SKU Mapping in the Export items to Shopify section. | Learn about SKUs in the Effect of Shopify product SKUs and barcodes on mapping and creating items and variants in Business Central section. |
Barcode | Item References of the barcode type. | Item References of the barcode type. |
Inventory will be stocked at | Depends on Shopify Shop Locations. If Business Central Fulfillment Services has Default Product Location field enabled, inventory is stocked and shipped from Business Central Fulfillment Services. Otherwise, the Shopify primary location or multiple locations are used. Learn more in the Two approaches to manage fulfillments section. | Not used. |
Track quantity | According to the Inventory Tracked field on the Shopify Shop Card page. Learn more in the Inventory section. Only used when you export a product for the first time. | Not used. |
Continue selling when out of stock | According to the Default Inventory Policy in the Shopify Shop Card. | Not used. |
Type | Description of Item Category Code. If the type isn't specified in Shopify, it's added as a custom type. | Item Category Code. Mapping by description. |
Vendor | Name of vendor from Vendor No. | Vendor No. Mapping by name. |
Weight | Gross Weight. | Not used. |
Taxable | Fixed value: enabled. | Not used. |
Tax codes | Tax Group Code. Only relevant for sales taxes. Learn more at Set up Taxes. | Not used. |
Import and export product information using Shopify Metafields
Shopify's platform includes data models for fundamental commerce concepts. However, commerce is diverse and often requires more complex or specific data models. The custom data platform enables you to extend Shopify's data models and create your own by using metafields. Metafields are a flexible way to add and store additional information about a Shopify resource, such as a product or variant. The additional information stored in metafields can be almost anything related to a resource. Some examples are specifications, size charts, downloadable documents, release dates, images, or part numbers.
You can import and export data stored in metafields. Business Central also provides an extensibility model that allows developers to map standard or custom fields, attributes, or other related entries in Business Central to metafields in Shopify.
You can access and edit metafields on the Shopify Metafields page, which you open from the Shopify Products and Shopify Variants pages.
Note
The page is editable if the Product Sync field is set to Products to Shopify and the Can update Shopify products toggle is turned on. When you add a record, the connector sends a request to Shopify and stores the entry only when it gets a response with the Shopify ID for the metafield. You can't edit types that have AssistEdit functionality defined directly on the line.
Tags
Review the imported tags in the Tags FactBox on the Shopify Product page. On the same page, to edit tags, choose the Tags action.
If the To Shopify option is selected in the Sync Item field, assigned tags are exported to Shopify at the next synchronization.
Unit of measure as variant
Shopify doesn't support multiple units of measure. If you want to sell the same product as, for example, piece, and set and use different prices or discounts, you must create units of measure as product variants.
You can configure the Shopify connector to export units of measure as variants, or import variants as units of measure.
To enable this capability, use the UoM as Variant and Variant Option Name fields on the Shopify Shop Card page. The fields are hidden by default. To add them to the page, use personalization.
Note
- When dealing with matrix of variants, for example Color and UoM and you want to import products into Business Central, you should set Item No. + Variant Code in the SKU Mapping field and make sure that SKU field in Shopify has same value for all units of measure and include both item no. and variant code.
- In Business Central, availability is calculated per item/item variant and not by unit of measure. It means the same availability is assigned to each variant representing the unit of measure (with respect to Qty. per Unit of Measure), that can lead to cases when available quantity in Shopify isn't accurate. Example: Item that is sold in PCS and Box of six. The inventory in Business Central is six PCS. Item exported to Shopify as Product with two variants. After inventory syncs, the inventory level in Shopify is six for variant PCS and one for variant BOX. The buyer can explore the store and see that product is available in both options and place an order for one BOX. The next buyer can see that BOX isn't available, but there are still six PCS. The value will update with the next inventory sync.
- You can't add a unit of measure option to existing products with variants (specific result depends on other settings, such as SKU Mapping).
URL and Preview URL
An item added to Shopify or imported from Shopify might have the URL or Preview URL populated. The URL field is blank if the product isn't published to the online store—for example, because its status is draft. The URL is empty if the store is password protected—for example, because it's a development store. In most cases, you can use the Preview URL to check how the product looks when you publish it.
Run item synchronization
Full or partial item synchronization can be performed in many different ways.
Initial sync of items from Business Central to Shopify
- Go to the search icon, enter Shopify Products, and choose the related link.
- Choose the Add Items action.
- In the Shop Code field, enter the code. If you open the Shopify Product window from the Shop Card page, the shop code is filled in automatically.
- If you configured image and inventory sync, you can include them in the same process. Including them in the same process is convenient for demo scenarios or when dealing with smaller amounts of data.
- Define filters on items as required. For example, you can filter by the item number or item category code.
- Choose OK.
The resulting items are automatically created in Shopify with prices. Depending on choices you made, images and inventory levels might be included. The operation might take some time if a large number of items are added.
Alternatively, you can sync one item by choosing the Add to Shopify action in the Item Card page.
Note
Initial sync of items from Business Central to Shopify doesn't consider Sync Item and Can Update Shopify Products settings.
Adding item as variant to Shopify products
If your products in Shopify have variants, but the list of items is flat on the Business Central side you can use the Add item as Variant action on the Variants FastTab of the Shopify Products page.
Items are added as Shopify variants under the existing product option. For example, color, material, or title, if the product only had the default variant. If the Shopify product has more than one option, you can't add the item as a Shopify variant.
Note
You can add item as variants if it has its own item variants, however, only the item itself is added, and not item variants.
You can't add an item as a variant if the UOM as Variant toggle is turned on on the Shopify Shop Card page.
Shopify always creates a variant, even if you haven’t defined any. This variant is called Default title. When you add more variants via Shopify Admin, this technical variant entry is deleted. The Shopify connector runs similar logic. When the first item is added to Shopify as a product, the Default title variant is added to Shopify and to Business Central. When you run the Add Item as Shopify Variants action, the selected item is added as a variant and the default variant is deleted in both Shopify and Business Central.
When it adds an item as a variant, the connector doesn’t search by SKU or barcode.
Sync products from Shopify to Business Central
- Go to the search icon, enter Shopify Shop, and choose the related link.
- Select the shop for which you want to synchronize items to open the Shopify Shop Card page.
- Choose the Sync Products action.
Alternatively, use the Sync Products action on the Shopify Products page or search for the Sync Products batch job.
You can schedule the task to be performed in an automated manner. Learn more at Schedule recurring tasks.
Ad-hoc updates of Shopify products
When the records are updated in the Shopify Product table, the following changes are synchronized with Shopify.
Update:
- Status - You can choose between active, archived, or draft.
- SEO Title
- SEO Description
Deletion:
Based on the value in Action for Removed Products on the Shopify Shop Card page, the product gets updated in Shopify when the record is deleted from the Shopify Products page.
- Blank: Nothing happens. If needed, perform the required action from the Shopify admin.
- Status to Draft: The status of the product in Shopify is set to Draft.
- Status to Archived: The product is archived in Shopify.
Sync item images
Synchronization of images can be configured for synchronized items. Choose from the following options:
- Disabled: Image synchronization is deactivated.
- To Shopify: Images of items are exported to Shopify.
- From Shopify: Images from Shopify are imported to Business Central.
Image synchronization can be initialized in the two ways described in the next sections in this article.
Sync product images from the Shopify shop page
- Go to the search icon, enter Shopify Shops, and choose the related link.
- Select the shop for which you want to synchronize images to open the Shopify Shop Card page.
- Choose the Sync Product Images action.
Sync product images from the Shopify products page
- Go to the search icon, enter Shopify Products, and choose the related link.
- Choose the Sync Product Images action.
Note
There are a few things to note about image synchronization.
- When you export images from Business Central to Shopify, the images replace the ones you exported previously. The earlier images are no longer available.
- If you delete an image in Business Central, the image in Shopify isn't also deleted. You need to manually delete the old images in the Shopify Admin.
- Images you export to Shopify must comply with Shopify's requirements. Otherwise, you can't import them. To learn more about media requirements, go to product media types on help.shopify.com.
Sync prices with Shopify
The Connector can send one main price and one nondiscounted price to Shopify. The prices show in the Price and Compare at Price fields on the Shopify Product (Shopify Variant) page.
The following table describes the settings you can use to manage the process of defining and exporting prices.
Field | Description |
---|---|
Customer Price Group | Determine the price for an item in Shopify. The sales price of this customer price group is taken. If no group is specified, the price on the item card is used. The Connector doesn't use the customer price group from the customer. |
Customer Discount Group | Determine the discount to use when calculating the price of an item in Shopify. Discounted prices are stored in the Price field and the full price is stored in the Compare at Price field. The Connector doesn't use the customer discount group from the customer. |
Allow Line Disc. | Specifies whether you allow a line discount when calculating prices for Shopify. This setting applies only for prices on the item. Prices for the customer price group have their own toggle on lines. |
Prices including VAT | Specifies whether price calculations for Shopify include VAT. Learn more at Set up Taxes. |
VAT Business Posting Group | Specifies which VAT business posting group is used to calculate prices in Shopify. Use your group for domestic customers. Learn more at Set up Taxes. |
Currency Code | Enter a currency code only if your online shop uses a different currency than the local currency (LCY). The specified currency must have exchange rates configured. If your online shop uses the same currency as Business Central, leave the field empty. |
You can export prices for synchronized items in the ways described in the following sections in this article.
Sync prices from the Shopify products page
- Go to the search icon, enter Shopify Products, and choose the related link.
- Choose the Sync Prices to Shopify action.
Note
There are a few things to note about price calculations.
- When it determines a price, Business Central uses the "lowest price" logic. However, the lowest price logic ignores the unit price defined on the item card if a price is defined in the price group. This is true even if the unit price from the item card price is lower.
- To calculate prices, the connector creates a temporary sales quote for the item with a quantity of 1, and uses standard price calculation logic. Only prices and discounts that are applicable for quantity 1 are used. You can't export different prices or discounts based on quantity.
- The connector sends a request to update prices in Shopify if the price in Business Central changed. For example, if you synchronized products and prices and then changed a price in Shopify, choosing the Sync Prices to Shopify action doesn't affect the price in the Shopify because the new price calculated by the connector is the same as the price stored in the Shopify Variant from the previous sync. The Compare at Price is updated only if the main price changed.
Price synchronization for B2B
Note
This feature is available from 2024 release wave 1, and requires a Shopify Plus subscription. To get access to B2B features, remember to request an access token. For more information, see Request the access token.
If you use Shopify B2B, you can configure the Connector to synchronize prices for Shopify Catalogs linked to B2B customers.
Synchronize catalogs from the Shopify
Select the icon, enter Shopify Catalogs, and select the related link.
Select Get Catalogs.
Select the entry for which to define and export prices, and then fill in the fields as necessary.
You can use two strategies. One is the default strategy, where you can use settings similar to the ones for synchronizing the Price and Compare at Price fields for Shopify products (Shopify variant). The following table describes settings for the default strategy.
Field Description Customer Price Group Determine the price for an item in Shopify. The sales price of this customer price group is taken. If no group is specified, the price on the item card is used. Customer Discount Group Determine the discount to use when calculating the price of an item in Shopify. Discounted prices are stored in the Price field and the full price is stored in the Compare at Price field. Allow Line Disc. Specifies whether you allow a line discount when calculating prices for Shopify. This setting applies only for prices on the item. Prices for the customer price group have their own toggle on lines. Prices including VAT Specifies whether price calculations for Shopify include VAT. VAT Business Posting Group Specifies which VAT business posting group is used to calculate prices in Shopify. This should be the group you use for domestic customers. The second strategy is to use the new Customer No. field. In this case, the connector uses the customer to calculate the price. It ignores other values defined in the Shopify Catalog entry, and uses the Customer Price Group, Customer Discount Group, and Allow Line Discount fields from the customer card. Use personalization to add the Customer No. field to the Shopify Catalog page.
After you enter the settings, turn on the Sync Prices toggle and choose Sync Prices to start synchronizing catalog prices.
You can only access catalogs linked to B2B companies. For more information, see B2B Companies. Note that catalogs don't contain products. You manage catalog content in Shopify Admin.
Sync prices for B2B Catalog
- Select the icon, enter Shopify Catalogs, and select the related link.
- Select the entry for which to define and export prices.
- Use the available settings to configure how to define prices. The settings are similar to ones used for synchronization of Price and Compare at Price fields in the Shopify Product (Shopify Variant).
- Turn on the Sync Prices toggle.
- Choose Sync Prices, and wait for synchronization to complete.
Sync inventory to Shopify
Inventory synchronization can be configured for already synchronized items. There are two conditions that must be met:
- Inventory tracking must be enabled for a product in Shopify. If items are exported to Shopify, consider enabling the Inventory Tracked toggle on the Shopify Shop page. Learn more in the Export items to Shopify section.
- Inventory sync must be enabled for Shopify Locations.
To enable inventory sync
- Go to the search icon, enter Shopify Shop, and choose the related link.
- Select the shop for which you want to synchronize inventory to open the Shopify Shop Card page.
- Choose the Locations action to open Shopify Shop Locations.
- Choose the Get Shopify Locations action to import all the locations defined in Shopify. You can find them in the Locations settings in your Shopify Admin.
- In the Location Filter field, add locations if you want to include inventory from specific locations only. So, you could enter EAST|WEST to make the inventory from only these two locations available for sales via the online shop.
- Select the stock calculation method to use for the selected Shopify locations.
- Enable Default Product Location if you want location to be used for creation of inventory records and to participate in the inventory synchronization.
You can initialize inventory synchronization in the ways described in the following sections in this article.
Sync inventory from the Shopify shop page
- Go to the search icon, enter Shopify Shops, and choose the related link.
- Select the shop for which you want to synchronize inventory to open the Shopify Shop Card page.
- Choose the Sync inventory action.
Sync inventory from the Shopify products page
- Go to the search icon, enter Shopify Products, and choose the related link.
- Choose the Sync inventory action.
Note
There are a few things to note about synchronizing inventory:
- There are two standard stock calculation methods: Projected Available Balance at date and Free Inventory (Not reserved). With extensibility, you can add more options. To learn more about extensibility, go to examples.
- If the stock information in Shopify is different than the Projected Available Balance in Business Central, the stock updates in Shopify.
- When you add a new location in Shopify, you also need to add inventory records for it. Shopify doesn't do that automatically for existing products and variants, and the connector doesn't synchronize inventory levels for such items in the new location. To learn more, go to Assigning inventory to locations.
- Both Business Central Fulfillment Services and normal locations are supported and can be used for shipping and inventory.
- When dealing with bundles, check whether adjusting inventory via an API is allowed for those products. For example, the Shopify Bundles app calculates availability of bundles based on the availability of the components and prevents updates via APIs. It's good idea to map Shopify products of the type Bundle to items of the type Non-inventory. Non-inventory and service items are excluded from the inventory synchronization.
Example of calculation of projected available balance
There are 10 pieces of item A available on hand and two outstanding sales orders. One for Monday with quantity One and one for Thursday with quantity Two. Depending on when you sync inventory, the stock level in Shopify updates with different quantities.
When sync inventory is run | Value used to update stock level | Comment |
---|---|---|
Tuesday | 9 | Inventory 10 minus sales order set to ship on Monday |
Friday | 7 | Inventory 10 minus both sales orders |
Example of calculation of available inventory (not reserved)
There are 10 pieces of item A available on hand and three outstanding sales orders. One order with quantity 1 reserved from item ledger entry, one with quantity 2 not reserved, and one with quantity 3 reserved from a purchase order. For this method, the date of synchronization isn't important.
Value used to update stock level | Comment |
---|---|
9 | Inventory 10 minus the sales order with reserved inventory from item ledger entry. Other sales orders are ignored. |
Two approaches to manage fulfillments
There are two ways to deal with fulfillment in Shopify:
- Shopify "built-in" fulfillment and inventory tracking
- Third party fulfillment and inventory tracking
Inventory for each product in Shopify can be stocked by Shopify or by 3PL.
If you use Shopify fulfillment, then you can also define multiple locations in Shopify. Once order is created, Shopify selects location based on availability and priority. You can also specify the locations where you plan to track a specific product, for example never sell from location ShowRoom.
If you use 3PL physical handling is taken care of by 3PL provider, so locations aren't needed. For 3PL the SKU field becoming mandatory.
When you decide on which location to track item, Shopify creates records in the Inventory Levels table, which can be updated manually with inventory availability.
The connector supports both modes. It can send inventory to multiple Shopify locations or work as a fulfillment service.
From the Business Central perspective, when you create item and want to send it to Shopify you also want to:
- Use Default Product Location toggle to specify whether the item is fulfilled by Shopify fulfillment or by 3PL. There's always Business Central Fulfillment Service, but there can be more fulfillments services if more apps are installed. You can enable Default Product Location only in one record if you want to use a fulfillment service.
- use Default Product Location toggle to specify which locations you want to use to track inventory. You can turn on Default Product Location for multiple locations where Is Fulfillment Service is disabled. Note that inventory is always tracked for a primary location.
What's the difference?
Shopify fulfillment is useful when using Shopify POS and there are multiple physical stores. You want employees in the physical store to know their current inventory. In this case, you create multiple locations in Shopify, multiple locations in Business Central, and activate a Default Product Location for all these locations.
If you handle logistics in Business Central, where you can have many locations, you don't create locations in Shopify. The connector creates Business Central Fulfillment Services automatically and you can link inventory via location filters from several locations to one fulfillment services record. As a result, in Shopify there's no information about where goods are sent from—it only has tracking information, while in Business Central, you can select based on availability and proximity to the destination.
Example of using Default Product Location toggle
After you choose the Get Shopify Locations action in the Shopify Locations page, you see the following locations:
Name | Is Fulfillment Service | Is Primary |
---|---|---|
Main | Yes | |
Second | ||
Business Central Fulfillment Service | Yes |
Let's review the affect of enabling the Default Product Location toggle:
Name of locations where Default Product Location toggle is turned on | Effect on how the product is created in Shopify |
---|---|
Main | Inventory is stocked at: Multiple locations; Selected locations: Main (primary) |
Main and Second | Inventory is stocked at: Multiple locations; Selected locations: Main and Second |
Business Central Fulfillment Service | Inventory is stocked at: Business Central Fulfillment Service; Selected locations: (App) Business Central Fulfillment Service |
Business Central Fulfillment Service and Main | Error: You can't use standard Shopify Locations with FulFillment Service Locations |
Troubleshooting inventory synchronization
If the inventory level fails to sync with Shopify, try these checks.
- Go to the Shopify Shop Locations page and verify the value chosen in the Stock calculation field. To learn more, go to To enable inventory sync.
- In the Shopify admin, go to Products or Variants and check that the Track quantity toggle is turned on.
- In the Shopify admin, go to Products or Variants and see whether all locations appear in the Inventory section. If a location is missing, it means the inventory level isn't defined. To learn more, go to Assigning inventory to locations.
- Go to the Shopify Products page, locate the specific product, and ensure that the Shopify variant is linked to the item and item variant, if needed. To do that, examine the Item No. and Variant No. fields in the Shopify Variants part.
- Go to the Shopify Products page, locate the specific product, and check the stock details in the Shopify Inventory FactBox. The FactBox gives an overview of the Shopify stock and the last calculated inventory in Business Central. It also shows when when the specific inventory level was last synchronized. There's one record per location.
- Go to the Shopify Log Entries page, and check for entries with the Has Error enabled around the time the inventory level was synched (see previous step). To limit records, apply the mutation inventorySetOnHandQuantities filter to the Request Preview field. If such entries exist, open the Shopify Log Entry page and inspect the Response Data field. If there's a validation error on Shopify's side, the response includes the additional information in the userErrors section. To learn more about logging, go to Logs.