Integrate Shopify with Apport WMS
Shopify integration
Integrating your Shopify webshop with Apport WMS provides your company with a seamless logistic experience which supports you optimizing your warehouse processes.
When a customer places an order it is automatically transferred to Apport WMS.
The warehouse workers will be able to start picking and packing the order to the customer once the order has been fetched from the webshop.
Features
Read about the flow and data supported in the integration between Shopify and Apport WMS
Materials
Materials are automatically updated in Apport WMS when it is changed in Shopify. Materials are imported every 5 minutes. Materials from Shopify will be imported to Apport WMS as soon as its available. Products with status of draft and active will both be imported to Apport WMS. When importing products into Apport WMS all materials are based on each product variant.
Following material data is retrieved
from Shopify to Apport WMS:
- Product name
- Product descriptions
- Product categories
- Product dimensions (weight)
- Product images
- SKU (stock keeping unit)
This is Modal Title
Apport WMS field | Shopify field | Notes |
---|---|---|
ItemNo | sku | Max 50 character. Characters > 50 everything after will not be included |
BaseUOM | "STK" | |
State | _parent.status | |
Name | _parent.title + title | Max 256 character. Characters > 256 everything after will not be included |
Description | .title | |
MaterialGroups | _parent.product_type | Max 50 character. Characters > 50 everything after will not be included |
MaterialIdentifiers.Name | .barcode | |
MaterialIdentifiers.Type | "EAN" | |
MaterialUoMs.Name | "STK" | |
MaterialUoMs.Quantity | "1" | |
MaterialUoMs.Dimensions.Weight | .weight | |
MaterialUoMs.UoMTypeName | "PCS" | |
MaterialAttributes.Name | "ShopifyInventoryId" | |
MaterialAttributes.Value | .inventory_item_id | |
ImageUrl | _parent.image.src |
Orders
Orders are fetched from Shopify every 5 minutes.
Orders will automatically be transferred from Shopify to Apport WMS. Orders will be transferred only when the fulfillment corresponds with the location in which the Apport WMS is linked to*.
Apport WMS supports partial delivery and underpicking, where you pick fewer items than is ordered.
*The location is set during initial integration setup.
Order field mappings
Shopify field | Magento field | Notes |
---|---|---|
Picklist | .FulfillmentOrder.id | |
Order.OrderNo | .name | |
Order.OrderComment | null | |
Order.ExecutionPriority.Date | .created_at | |
Order.ExecutionPriority.Value | "50" | |
OrderProcessDefinitionGroup | {{Default_ProcessDefinitionGroup}} | Environment Variable |
Order.OrderType | {{Shopify_System_Prefix}} | Enviroment Variable |
Order.OrderResponsible | "" | |
Order.OrderAttributes.Key | "ShopifyOrderId" | |
Order.OrderAttributes.Value | .id | |
Order.CompletionPriority.Date | .created_at | |
Order.CompletionPriority.Value | "50" | |
DeliveryType | .shipping_lines[0].title | |
CustomerOrderNo | order_number | |
OrderLines[].OrderLineNo | line_item_id | Looped:line_items |
OrderLines[].ItemNo | .sku | Looped:line_items |
OrderLines[].Quantity | .quantity | Looped:line_items |
InvoiceContact.Co | .billing_address.company | |
InvoiceContact.Name | InvoiceContact.Name | |
InvoiceContact.Contact | - | |
InvoiceContact.ContactId | - | |
InvoiceContact.Email | .customer_email | |
InvoiceContact.PhoneNo | .billing_address.phone OR customer.phone | |
InvoiceContact.Address.ExternalId | - | |
InvoiceContact.Address.State | .billing_address.state | |
InvoiceContact.Address.Street | .billing_address.address1 + billing_address.address2 | |
InvoiceContact.Address.ZipCode | .billing_address.zip | |
InvoiceContact.Address.City | .billing_address.city | |
InvoiceContact.Address.CountryCode | .billing_address.country_code | |
Recipent.Co | .shipping_address.company | |
Recipent.Name | .shipping_address.name | |
Recipent.Contact | - | |
Recipent.ContactId | - | |
Recipent.Email | .customer_email | |
Recipent.PhoneNo | .shipping_address.phone OR customer.phone | |
Recipent.Address.ExternalId | .shipping_lines[0].code | Used for DropPointId |
Recipent.Address.State | - | |
Recipent.Address.Street | .shipping_address.address1 | |
Recipent.Address.ZipCode | .shipping_address.zip | |
Recipent.Address.City | .shipping_address.city | |
Recipent.Address.CountryCode | .shipping_address.country_code | |
DeliveryContact.Co | .shipping_address.company | |
DeliveryContact.Name | .shipping_address.name | |
DeliveryContact.Contact | - | |
DeliveryContact.ContactId | - | |
DeliveryContact.Email | .customer_email | |
DeliveryContact.PhoneNo | .shipping_address.phone OR customer.phone | |
DeliveryContact.Address.ExternalId | .shipping_lines[0].code | Used for DropPointId |
DeliveryContact.Address.State | - | |
DeliveryContact.Address.Street | .shipping_address.address1 | |
DeliveryContact.Address.ZipCode | .shipping_address.zip | |
DeliveryContact.Address.City | .shipping_address.city | |
DeliveryContact.Address.CountryCode | .shipping_address.country_code |
Stocks
Apport WMS manages the stock balances between Shopify and Apport WMS in real time.
Return orders
Order status must be “paid” and either “fulfilled” or “partially fulfilled” before the refund process can be started.
Apport WMS will decide whether to refund only the given order items or the order items + shipping depending on the reasoncode.
- Reasoncode with an F: The refund will be calculated based on the products returned as well as the entire shipping amount.
- Reasoncode without an F: The refund will only be calculated based on the returned products.
During the refund workflow it is possible to place the materials in a quarantine location. By doing this there will be no inventory adjustment in the Webshop, until the materials has been moved to another location with a different classification e.g. Picking, Buffer etc.
Order field mappings
Shopify field | ApportWMS field | Notes |
---|---|---|
reason | .ReasonCode | Only looks at the first orderline |
line_items | .combinedrefund[] | Array combined of: lines_items + shipping_lines |
shipping_lines[].id | .id | |
shipping_lines[].refund_total | .total | If ReasonCode includes a “F” then full refund otherwise 0 |
line_lines[].id | .Left.OrderLineNo | |
line_items[].refund_total | .Left.QuantityConfirmed * .Right.Price | We multiply quantity by price to get the total |
line_items[].quantity | .Left.QuantityConfirmed |
Shipment updates
Apport WMS supports partial delivery. For each shipment a separate Track & Trace will be provided.
Payment will be captured only when the last shipment has been packed. Per default the customer will be notified of each shipment, but this can be changed according to preference.