Field Mapping Reference
Items export – fields mapping
If in Business central user have settings for export Items from system to Shopify, system will use following mapping of fields:
| Business central, table Item | Shopify |
|---|---|
| Description | title |
| Description | body-html |
| No. | handle |
| Name of Vendor | vendor |
| Item Category Code | tags |
| Unit Price | price |
| No. | sku |
| Net Weight * 1000 | grams |
| Net Weight | weight |
| kg | weight-unit |
| continue | inventory-policy |
| Item Reference - Reference No. | barcode |
| manual | fulfillment-service |
| shopify | inventory-management |
Notes:
-
System exports only Items (not Item Variants)
-
Price is taken from WEB Customer Price Group price list if available, otherwise from Item Unit Price
-
If Item has no Vendor, Company Name is used as vendor
-
Only items with Item Category Code assigned will be exported
-
Item Category must be mapped to Shopify Collection
Items import – fields mapping
If in Business Central user has settings for import Items from Shopify to Business Central, system will use following mapping of fields:
| Business central, table Item | Shopify |
|---|---|
| No. | sku (product variant) |
| Description | title (product) |
| Variant Code | sku suffix after "_" (e.g., SKU "ITEM_RED" → Variant Code "RED") |
| Item Category Code | First collection name (if Check Collection enabled) |
| Unit Price | price |
| Vendor No. | vendor (searches for vendor by name, creates if not found) |
| Item Reference - Reference No. | barcode |
Important Notes:
-
Only product variants with SKU defined will be imported
-
System uses Item Template Code from Shopify Setup for default values
-
If item creation fails, order line will use Default Item No. from Shopify Setup
-
System checks if Item No. already exists before creating new item
Customer export – fields mapping
If in Business central user have settings for export customers from system to Shopify, system will use following mapping of fields:
| Business central, table Customer | Shopify |
|---|---|
| Name (first part before Space) | first_name |
| Name (last part after Space) | last_name |
| Phone No. | phone |
| default_address | |
| Address | address1 |
| Address 2 | address2 |
| City | city |
| County | province |
| Country → Name | country_name |
| Country/Region Code | country_code |
| Post Code | zip |
Orders import – fields mapping
When Business Central is importing orders from Shopify, system will use following mapping of fields:
| Business central, table Sales Header and Sales Line | Shopify |
|---|---|
| Sales Header | |
| Order Date | created_at |
| External Document No. | name (e.g., "#1001") |
| JML Shopify Document ID | id (Shopify Order GID) |
| JML Shopify | true |
| billing_address | |
| Bill-to Name | name |
| Bill-to Address | address1 + address2 |
| Bill-to City | city |
| Bill-to Post Code | zip |
| Bill-to Country/Region Code | country_code |
| shipping_address | |
| Sell-to Customer Name | name |
| Sell-to Address | address1 + address2 |
| Sell-to City | city |
| Sell-to Post Code | zip |
| Ship-to County | province |
| Sell-to Country/Region Code | country_code |
| Ship-to Name | first_name + last_name + company |
| Ship-to County | province |
| Sales Line | |
| Type | Item |
| No. | --search for Item No. with logic below |
| Quantity | quantity |
| Unit Price | price |
| Line Discount Amount | total_discount |
Note – when system is importing orders, it checks whether this Order already exists in system by filtering existing Sales Orders (and Posted Sales Invoices) with JML Shopify Document ID = Shopify order ID. For backward compatibility, also checks Your Reference field.
Search for Item in Shopify order
When system is importing order from Shopify, it searches for item with following logic:
-
System takes value from
skufield and tries to find Item with equivalent No. -
System searches for value from
skufield in Item Reference table. If not found then... -
System creates new Item using Item Template Code from Shopify Setup. If creation fails then...
-
System uses Default Item No. from Shopify Setup as fallback.
Fulfillments import – fields mapping
When Business Central is importing fulfillments from Shopify, system will use following mapping of fields:
| Business central, table Sales Header and Sales Line | Shopify |
|---|---|
| Sales Invoice Header | |
| Order Date | fulfillment.created_at |
| Posting Date | fulfillment.created_at |
| External Document No. | order.name (e.g., "#1001") |
| JML Shopify Document ID | http://fulfillment.id (Shopify Fulfillment GID) |
| JML Shopify | true |
| Shipping Agent Code | fulfillment.tracking_company |
| Package Tracking No. | fulfillment.tracking_number |
| order.billing_address | |
| Bill-to Name | name |
| Bill-to Address | address1 + address2 |
| Bill-to City | city |
| Bill-to Post Code | zip |
| Bill-to Country/Region Code | country_code |
| order.shipping_address | |
| Sell-to Customer Name | name |
| Sell-to Address | address1 + address2 |
| Sell-to City | city |
| Sell-to Post Code | zip |
| Ship-to County | province |
| Sell-to Country/Region Code | country_code |
| Ship-to Name | first_name + last_name + company |
| Sales Invoice Line | |
| Type | Item |
| No. | --search for Item No. with same logic as Orders import |
| Quantity | fulfillment_line_item.quantity |
| Unit Price | line_item.price |
| Line Discount Amount | line_item.total_discount |
Note – when system is importing fulfillments, it checks whether this Fulfillment already exists in system by filtering existing Sales Invoices and Posted Sales Invoices with JML Shopify Document ID = Shopify fulfillment ID.
Posting – Sales Invoices must be manually reviewed and posted after import.