In order to activate your Shopify connection, you must be an active Logicbroker customer.
About this app
Shopify is an eCommerce platform for online stores and retail point-of-sale systems that allows merchants to build and customize their own online stores and sell in multiple places. Logicbroker’s connection to Shopify provides suppliers with an easy way to manage orders directly in Shopify with a direct connection to suppliers’ trading partners. Get started today with a subscription or try it for free! Shopify Pricing
Supplier Features
- Send Inventory
- Send Products
- Receive Orders
- Send Shipments
Retailer Features
- Receive Inventory
- Receive Products
- Send Orders
- Receive Shipments
- Receive Acknowledgments
Website: https://www.shopify.com/
Shopify Support: https://help.shopify.com/en
- Products
- Supplier Flow: Supplier > Logicbroker
- Retailer Flow: Logicbroker > Retailer
- Product data is pulled from supplier's Shopify system and stored in the Product Onboarding Center in Logicbroker. Retailers can manage the data in the portal before sending it into their own Shopify system. As part of the setup process, Logicbroker will import Shopify-specific taxonomy files so users can access them in the portal which include Categories, Attributes and Attribute Sets.
- Pulling products from Shopify (supplier flow)
- Logicbroker pulls all products from Shopify that:
-
- are tagged with 'Logicbroker' (not case sensitive)
- are in an 'Active' status
- have a SKU (products with no SKUs will be ignored)
- Posting products to Shopify (retailer flow)
- All approved and listed products will be sent into Shopify with the following:
-
- Sales Channel: 'Online Store' enabled
- Tag: 'From Logicbroker'
- Delist: When delisting a product in Logicbroker, it will completely remove the product or variant from Shopify
- Duplicate SKUs
-
- Suppliers: cannot have duplicate SKUs in their Shopify system - if duplicate SKUs are present, only the most recent product pulled into Logicbroker will be used when souring and creating orders
- Retailers: will require a matching file if there are duplicate SKUs accross multiple suppliers
- Inventory
- Supplier Flow: Shopify > Logicbroker > Retailer
- Retailer Flow: Supplier > Logicbroker > Shopify
- All items from Shopify will be pulled into Logicbroker as long as they are Active and have a SKU. Feeds are pulled in on a schedule, normally once an hour. Logicbroker will then send the inventory to the retailer based on the retailer's requested schedule. Suppliers should review retailer specifications to know what other fields are required by the retailer and to know if they need to upload a Matching File.
- Stock Levels
-
- If 'Track Quantity' is disabled, we will pull quantity of 1000
- If 'Track Quantity' is enabled, we will pull the 'Available' quanitity from Shopify
- If 'Coninue selling when out of stock' is enabled, we will pull the 'Available' quantity from Shopify
- If any product has a negative quantity, we will pull in 0
- Status
- All SKUs in an Active status in Shopify will be pulled in. SKUs in a Draft or Archived status will not be pulled in. Inventory that was previously active and had a positive quantity will remain in Logicbroker. Suppliers will need to ensure they 'discontinue' the quantity being sent to their partner by zeroing it out in Logicbroker or working with their partner to remove the SKU from the Matching File. Inventory sent to retailer's Shopify will automatically have 'Track quantity' enabled and inventory will post to the location configured in Logicbroker.
- Gift cards
- Gift cards are supported through inventory feeds as long as they have a SKU. To add a SKU to a gift card:
-
- In the Shopify portal navigate to Products > Gift cards > View gift card products
- Select the one you want to add a SKU to
- Scroll down to Variants
- Add a SKU
- Please note: Variant options on gift cards will not show up in Shopify when creating a new gift card, you'll be able to see it once the gift card has been saved.
Location
For suppliers, the Location setting in the portal controls where we pull inventory from. By default, we will pull inventory from all Shopify Locations unless a specific Location is specified. - For retailers, the Location setting in the portal controls where shipments and inventory are posted to. Products posted to Shopify will show the Logicbroker-specified and Shopify default locations but only pull inventory for the Logicbroker-specified location.
- Orders
- Supplier Flow: Retailer > Logicbroker > Shopify
- Flow: Shopify > Logicbroker > Supplier
-
Orders are sent from the retailer to Logicbroker in any format (EDI, CSV, JSON, XML, etc.). Logicbroker then transforms the order data into a format Shopify can easily understand. In addition to transforming data, Logicbroker can also add data to orders, match retailer SKUs to suppliers' SKUs and more. Once we have transformed the data, we will post it to your Shopify account.
Orders sent to suppliers-
When posting orders to supplier's Shopify, Logicbroker will use the order routing rules configured in the supplier's Shopify. If the supplier has:
-
- 1 Store Location - all orders will be routed to that one store
-
Multiple Store Locations - orders will be sent to the location depending on the order rules configured in Shopify (in Shopify, see Settings > Shipping and delivery > Order routing)
- Sourcing orders for duplicate SKUs
- When sourcing orders and posting them to a supplier's Shopify system, Logicbroker will ignore SKUs in an 'Archived' status in the case where there are duplicates found and one is 'Archived' and the other 'Active'.
- Duplicate orders
- When an order is reprocessed in Logicbroker it will be sent into Shopify as a new order. Shopify does not have a duplicate check so suppliers will need to monitor reprocessed orders in Logicbroker and archive or delete duplicate orders in Shopify.
-
Accepted order types
- PO Box - Carrier dependant
- International Addresses - May require customs information if the label is created in Shopify
- Acceptance Acknowledgments
- Flow: Logicbroker > Retailer
- Acceptance Acknowledgements are automatically created on your behalf and sent to your retailers by default. If you wish to disable this, reach out to support@logicbroker.com and let us know for which partner(s) you would like us to turn this off. If you wish to manually acknowledge orders (accept, reject, cancel, backorder), you may do so through the Logicbroker portal.
- Cancellations and Backorders
- Supplier Flow: Logicbroker > Retailer
- Retailer Flow: Supplier > Logicbroker > Shopify
-
Cancellations and Backorders will need to be created manually in the Logicbroker portal through Acknowledgment documents. Once created, they will be sent to the retailer. Suppliers should review retailer specifications to know what types of acknowledgments are accepted.
Partial Cancellations (Retailer Flow)
Suppliers can partially cancel orders through the portal. Logicbroker will post cancellations to the retailer's Shopify account. See order and fulfillment statuses depending on the scenarios below:
- Orders with free shipping fully canceled using multiple cancellations will show:
-
Fulfillment status: Unfulfilled
-
Payment status: Refunded
-
-
Orders with paid shipping (order or line level) fully canceled using multiple cancellations will show:
-
Fulfillment status: Unfulfilled
-
Payment status: Partially Refunded (we are not refunding shipping)
-
-
Orders with free shipping fully canceled using one cancellation will show:
-
Fulfillment status: Unfulfilled
-
Payment status: Partially Refunded
-
Order status: Canceled
-
Note: Logicbroker does not fully refund or calculate refunds for shipping costs. The restock type we post back to Shopify is no_restock so there is no interference with inventory levels.
- Orders with free shipping fully canceled using multiple cancellations will show:
- Shipments
- Supplier Flow: Shopify > Logicbroker > Retailer
- Retailer Flow: Supplier > Logicbroker > Shopify
- Shipments created in Shopify are sent to Logicbroker on a schedule (normally once an hour). Once in Logicbroker, they are sent out to the retailer. There are 2 types of transactions in Shopify used to 'ship' an order:
-
- Shipments: shipping label is created in Shopify
- Fulfillments: tracking is manually input into Shopify
Multi-box shipments
- Multiple boxes on a single shipment are not supported through Shopify. However, suppliers can create multiple partial shipments/fulfillments if they need orders to be separated into multiple boxes.
- Invoices
- Flow: Logicbroker > Retailer
- Invoices are automatically created on your behalf and sent to your retailer by default. If you wish to disable the Create Invoice from Shipment setting, in the portal navigate to Settings > Account Information > Document Settings > Shipment Settings > toggle off Create Invoice From Shipment either as a whole or by partner. If you wish to manually invoice orders, you may do so through the Logicbroker portal.
- Packing Slips
- Supplier Flow: Logicbroker > Shopify
- If you are working with a retailer that has a packing slip mapped in Logicbroker, it will be sent as a PDF link in the Notes field of the order in Shopify. Clicking this link will allow you to download
-
and print the packing slip of the individual order you are on (you may need to be logged into the portal for the link to populate). You can also download and print packing slips in bulk directly through the Logicbroker portal.
Field | Pulled from Shopify | Sent to Shopify | Notes |
---|---|---|---|
Name In Shopify:" 'Title' |
✓ |
✓ |
|
Variant Name In Shopify: 'Options' |
✓ |
✓ |
For products with no variants: this will show as 'Default Title' For products with variants: this will show as option values (ex. Gray / Small). |
Description | ✓ | ✓ | |
Images In Shopify: 'Media' |
✓ | ✓ |
Variant images will show in 'Image 1' with main product images starting at 'Image 2' |
SKU |
✓ | ✓ | |
Barcode | ✓ | ✓ | |
Price | ✓ | ✓ | |
Compare At Price | ✓ | ✓ | |
Taxable In Shopify: 'Charge tax on this product' |
✓ | ✓ | |
Tax Code |
✓ | ✓ | |
Cost | ✓ | ✓ | |
Requires Shipping In Shopify: 'This is a physical product' |
✓ | ✓ | |
Weight | ✓ | ✓ | |
Weight Unit | ✓ | ✓ | |
Country Code of Origin | ✓ | ✓ | |
Harmonized System Code | ✓ | ✓ | |
Option Name |
✓ | ✓ | Up to 3 supported |
Option Value | ✓ | ✓ | |
Metafields | ✓ |
✗ |
Only text-formatted fields are supported. This is informational only and will not be sent to retailer's Shopify. |
Category | ✓ | ✓ | |
Product type | ✓ | ✗ | This is informational only and will not be sent to retailer's Shopify. |
Vendor | ✓ | ✓ | |
Tags | ✓ | ✗ |
This is informational only and will not be sent to retailer's Shopify. All products sent to retailer's Shopify will be tagged with 'From Logicbroker' |
Logicbroker API Field | Shopify Field |
---|---|
PartnerPO | name |
OrderDate | created-at |
TotalAmount | total-price |
Billing | |
Billing Address (BillToAddress) | (billing-address) |
FirstName | billing-address.first-name |
LastName | billing-address.last-name |
Address1 | billing-address.address1 |
Address2 | billing-address.address2 |
City | billing-address.city |
State | billing-address.province-code |
Zip | billing-address.zip |
Country | billing-address.country-code |
Phone | billing-address.phone |
Shipping | |
Shipping Address (ShipToAddress) | Shipping Address (shipping-address) |
FirstName | shipping-address.first-name |
LastName | shipping-address.last-name |
Address1 | shipping -address.address1 |
Address2 | shipping-address.address2 |
City | shipping-address.city |
State | shipping-address.province-code |
Zip | shipping-address.zip |
Country | shipping-address.country-code |
Phone | shipping-address.phone |
Ordered by / Customer | |
Ordered by Address (OrderedByAddress) | Customer (customer) |
FirstName | first-name |
LastName | last-name |
Address1 | default-address.address1 |
Address2 | default-address.address2 |
City | default-address.city |
State | default-address.province-code |
Zip | default-address.zip |
Country | default-address.country-code |
ExtendedAttribute["AcceptsMarketing"] | accepts-marketing |
General Header Information | |
ExtendedAttribute["ShopifyOrderID"] | id |
ExtendedAttribute["CustomerEmail"] | |
ExtendedAttribute["ShopifyNote"] | note-attributes |
ExtendedAttribute["ShopifyTags"] | tags |
ExtendedAttribute["ShopifyVendor"] | vendor |
Note |
note |
⚠️ This field can be used for gift messages, packing slip links, etc. | |
TaxTitle | tax-line.title |
TaxAmount | tax-line.price |
DiscountCode | discount-code.code |
DiscountAmount | discount-code.amount |
DiscountName | discount-code.type |
Shipping Information | |
ShipmentInfo.CarrierCode |
shipping-line.carrier_identifier |
ShipmentInfo.ClassCode | shipping-line.title |
ShipmentInfo.ServiceLevelCode |
shipping-line.requested_ fulfillment_service_id |
ShipmentInfo.ExtendedAttribute ["discounted_price"] |
shipping-line.discounted-price |
ShipmentInfo.ExtendedAttribute ["price"] |
shipping-line.price |
Order Lines |
|
Order Lines (OrderLines) |
line-items |
ItemIdentifier.SupplierSKU |
sku |
ItemIdentifier.PartnerSKU |
id |
LineNumber |
Index + 1 |
Description |
title |
Quantity |
quantity |
Price |
price |
Weight |
grams |
Discounts.DiscountAmount |
discount-allocations.amount |
ExtendedAttribute["ShopifyItemID"] |
id |
Logicbroker API Field | Shopify Field |
---|---|
ShipmentContainer |
fulfillment |
WareshouseCode |
location-id |
ExtendedAttribute ["ShopifyNotifyCustomer"] |
notify-customer |
CarrierCode |
tracking-company |
TrackingNumber |
tracking-number |
⚠️ A tracking number is required to pull in shipments/fulfillments from Shopify. | |
ShippingLine.ExtendedAttribute ["ShopifyItemID"] |
line-items.id |
ShippingLine.Quantity |
line-items.quantity |
- Logicbroker account (supplier flow) - become a Logicbroker customer
- Shopify account - review pricing, or try it for free!
Shopify Bundles
- Shopify App: Shopify Bundles
- How it works: Retailers can create "bundles" using the Shopify Bundles app that customers can add to cart and purchase. When the order is created, the "bundle" gets split out into individual lines with the bundle price prorated across the lines. When Logicbroker pulls orders containing bundles, we will create POs for the individual lines and send it to the suppliers to fulfill those lines.
Issue | How to troubleshoot or resolve |
---|---|
Business rule failed > SupplierName_WF: TypeError: Cannot read property 'forEach' of undefined at Script Document [377]:4:19 doc.ShipmentInfos.forEach(function(info)) |
The order is missing information such as customer shipping info or shipping method. These fields need to be populated or added to the order in the portal. |
Failed Order > - Error posting order to Shopify API. > API Error 422: {"errors":{"order":["Shipping lines is invalid"],"shipping_lines":[" Title can't be blank"]}} |
Reach out to support@logicbroker.com. Internal setup may be missing info.ClassCode field setup |
Error posting order to Shopify API > API Error 422: {"errors":{"line_items":["Unable to reserve inventory"]}}. |
This normally happens when the SKU on the order is out of stock in your Shopify account. Make sure you have enough quantity to fulfill the order in Shopify, then click on More Actions > Retry in Logicbroker to resend the order |
Orders not routing to the correct location |
Logicbroker follows all order routing rules set up in Shopify. Make sure you have these set up according in Shopify > Settings > Shipping and delivery > Order routing |
FAQ’s
What is the difference between Shipments and Fulfillments?
Shipments – shipping label is created in Shopify
Fulfillments – tracking is manually input into Shopify
Can I have Customer Contact Information sent on orders?
Yes. Logicbroker does not send customer data into Shopify since the Shopify Customer Number is unique and would not exist in both your's and your retailer's Shopify accounts. Sending the retailer's Shopify Customer Number on orders sent to your system will cause orders to fail.
If you need Customer Information populated in Shopify, we can hard-code this field. To do so, go to Shopify > Customers > Add customer > create the profile of the customer you want to be defaulted (you can use your partner's information). Copy the Shopify Customer Number (found in the last segment of the URL) and send it to support@logicbroker.com and ask this field to be hardcoded.
Can I have orders sent to me in a different payment status?
Yes, Logicbroker supports different payment statuses:
- Status: Paid; Paid amount: $0 (default)
- Status: Paid; Paid amount: order total amount
- Status: Pending; Paid amount: $0
If you need a different Status and Paid amount sent aside from the default, reach out to support@logicbroker.com to have this set up.
What should I do if I have duplicate SKUs?
Supplier SKUs must be unique for products that are being sent to the retailer. If products are not unique, suppliers must fix duplicates on both the product and variant level. A workaround can be implemented if suppliers have duplicate SKUs for identical products (not different sizes, colors, styles, etc.) since our workaround will create orders using the latest uploaded product in our system. If you would like a workaround to be implemented to your account for identical products with duplicate SKUs, reach out to support@logicbroker.com to have this set up.
Also see Shopify's Help page.
Date | Update |
---|---|
11/27/19 |
Add ability to Poll for Orders Post inventory (quantity) updates |
12/27/2019 | Create orders specifying the customer ID |
3/31/2020 | Updated error message when posting unlinked shipments to Shopify |
4/30/2020 |
Add mapping for ClassCode, ShipmentCost, ServiceLevelDescription on Orders to Shopify Map Variant ID to UPC on outbound shipments from Shopify |
7/13/2020 |
Supplier: Shipments map "province_code" from state Retailer: Update Order Map to include:
Retailer: Make financial status configurable when pulling orders |
8/31/2020 |
Add customer address and email Map tracking_company to class code for shipments GDPR endpoint to receive notifications for GDPR requests Do not pull shipments without tracking numbers |
11/10/2020 |
Ship to and bill to phone added to Supplier orders Inventory quantity will be updated based on location |
11/30/2020 | Location ID is now visible in the Portal through the Connections feature |
2/1/2021 | Customers can be notified when orders (placed through API) are shipped |
4/6/2021 |
Supplier: Shopify tags to order on the header level Supplier: UPC added to inventory map from barcode |
6/1/2021 |
Supplier: Ship to email added to the order map |
6/28/2021 |
Weight and UOM displayed on orders - acceptable UOM is grams Link to packing slips are accessible in the note field when posted to Shopify |
7/28/2021 |
Support for custom fields to add additional details to the order |
10/27/2021 |
Support to configure an order remorse period |
2/9/2022 |
Map fulfillment service on inbound orders |
6/22/2023 |
Stop pulling in products in a Draft and Archived status |
Comments
Please sign in to leave a comment.