Shopify is a hosted-shopping cart for your ecommerce store that offers enhanced store features through its integrated app marketplace. The ShipStation Shopify integration supports order and product imports, custom field data imports, customer-requested shipping services, and much more!
Need an account? Sign up for a free 14-day Shopify trial!
Updates to Shopify Order Imports
To keep pace with Shopify’s new feature releases, ShipStation is changing how we import Shopify orders. During this transition period, you may see different behavior on order import.
See the Shopify Changes to Order Import section for details about how the Order Imports will work, expected behavior, limitations, and FAQs.
-
An active Shopify account.
-
Your Shopify store domain.
-
Admin credentials for your Shopify account, or Admin permissions given in Shopify.
Order Import Requirements:
-
The order has been created within 90 days of the current date.
-
Orders must contain at least one physical product.
-
Orders will not import if certain fields are missing in the feed (e.g., address line 1, postal code, etc.)
-
Include a Ship To address.
To connect your Shopify store to your ShipStation account:
-
Select Shopify.
-
Enter your Shopify Domain, then click Connect.
-
After you click Connect, you'll be redirected to Shopify, and the ShipStation Application will be added to your Shopify account. No additional action is needed if you're already logged in to Shopify. If you're not logged in to ShipStation, you'll be prompted to log in now.
Once the application installs, you'll be redirected back to your ShipStation account, where you can update the store-specific settings in ShipStation.
Shopify has updated their APIs to allow for new features. ShipStation is changing how we import Shopify orders to keep up with those changes. The order import requirements have. not changed.
These new features are ideal for ShipStation merchants who have more than one warehouse.
For example, you will no longer need to manually split orders in ShipStation to avoid shipping out the wrong items. ShipStation will now show fulfillments as they appear in Shopify. For example, if Shopify shows 2 fulfillments, you will see 2 fulfillments in ShipStation.
Features
With this change, we will be able to support the following features:
-
Shopify’s Auto-Allocate Inventory to Multiple Fulfillment Locations feature allocates a single line item's quantity across multiple fulfillment locations
-
Split Fulfillments: If a Shopify order includes Buy with Prime products and items that are not Buy with Prime, use Split Fulfillments to ship those non-Prime products.
-
Shop Promise: If Shop Promise with Shopify is enabled, ShipStation can show the Shop Promise fulfillments.
What happens if a full fulfillment is removed in Shopify?
In ShipStation we map a ‘removed’ fulfillment to ShipStation’s Shipped status because Shopify sends us this fulfillment in Closed status.
When a Shopify refresh occurs, what happens to an existing Shopify fulfillment?
If a Shopify order import ran while Shopify had 3 fulfillments, ShipStation would import all 3 fulfillments. Should any action (for example: merge, removed fulfillment, cancelled fulfillment) get performed so a fulfillment no longer exists, that fulfillment won't disappear from the ShipStation UI. Instead, all items will be removed from the fulfillment and it will move to Shipped status.
What happens if a fulfillment is placed on-hold and then removed?
In ShipStation, the correct part of the fulfillment will be moved to On Hold status. Then once the fulfillment is removed in Shopify, ShipStation will move the fulfillment to Shipped status. This is because Shopify sends us this fulfillment in Closed status.
What happens with digital Items on order import?
When the setting Map open fulfillment orders to requested fulfillments is enabled, we do not import digital items. In this case, digital items are their own fulfillment. Please make sure to enable this setting if you have digital items as the only products in your fulfillment.
What happens if an order with the same SKU gets split between two different warehouses?
If an order with the same SKU gets split between two different warehouses, the Deliver By Date will be lost on all shipments, but one.
What happens when I use the Mergify app?
When using Mergify, the original combined orders do NOT move to Shipped status after being archived in Shopify. They remain in Awaiting Shipment status and they will need to be manually marked as Shipped.
What happens if an item gets removed via Order Import and ShipNotify?
If the removed item shares the same warehouse, it will remain on the order in ShipStation with a quantity of zero 0.
How will partial ShipNotify work for split orders with the same SKU? Will it fulfill BOTH items?
Partial ShipNotify does not currently work for split orders with the same SKU. It will fulfill BOTH items.
Can I modify orders within ShipStation?
We don't recommend this. Once you modify an order in ShipStation, that change will NOT post back to Shopify and it will not update the Shopify status (Split, Combine, Add, Remove, Replace).
Will the Ship From location change in ShipStation?
The Ship From location within ShipStation will still default to your ShipStation settings. However, the respective Warehouse Location for a shipment in Shopify will be highlighted as Shopify’s Location.
Can I use third-party fulfilled orders?
No. These types of orders are not supported with Shopify's API updates.
Can I consolidate Warehouse Locations within Shopify?
We don't recommend consolidating warehouse locations into a single warehouse location within Shopify when there are multiple fulfillment locations. Currently, doing so will create a duplicate shipment in ShipStation.
How is the Deliver By Date affected when I modify (Split, Combine, Add, Remove, or Replace Items) an order?
When you add or remove an item in Shopify, the Deliver By Date is no longer sent from Shopify. That field gets removed from the order information we get from Shopify. Every time a fulfillment or an order changes in terms of items, the Deliver By Date will be removed. You can manually set it again in Shopify, and that updated Deliver By Date will import into ShipStation.
What is an Implicit Split?
An Implicit Split occurs when an order is partially fulfilled from Shopify. This will NOT create two separate shipments on the order within ShipStation. Instead, the fulfilled item(s) will show on one shipment with a quantity of zero 0 and a description of Fulfilled.
The ShipStation integration with Shopify supports these standard features:
Feature |
Supported? |
---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ShipStation Status |
Shopify Status |
---|---|
Awaiting Payment |
Pending |
Awaiting Shipment |
Authorized Unfulfilled Partially Fulfilled |
Shipped |
Shipped Fulfilled |
Cancelled |
Cancelled |
On Hold |
On Hold |
About Shopify Statuses
Shopify orders have three different types of statuses: Order, Fulfillment, and Payment. Please see the Additional Details section of this Shopify article for a full description.
This table indicates which data ShipStation sends to Shopify with the marketplace shipment notification:
Field |
Sent to Marketplace? |
---|---|
Status Update |
|
Tracking Number |
|
Carrier |
|
Service |
|
Carrier Fee |
|
|
|
Item Information |
|
The ShipStation integration with Shopify allows for these additional features:
Feature |
Description |
---|---|
Supports Inventory Sync |
ShipStation's Inventory Sync feature eliminates the need for manual inventory updates, ensuring your inventory levels are always accurate and up-to-date. Once you have activated Inventory Sync in the Add-On section of your account settings, you can easily manage your inventory across multiple platforms, saving time and reducing the risk of errors. Inventory Sync is included in the High Volume plan, or as an add-on to all other plans. See the Inventory Sync article to learn more. |
Add Purchase Order Number to Custom Fields |
Follow these steps to add a Purchase Order (PO) Number to Custom Fields 1, 2, or 3:
|
Deliver By Date |
Set a delivery date for the recipient to see during checkout. This date will automatically import into ShipStation’s Deliver By Date field. |
Import Shopify Fraud Assessment |
Identify possible illegitimate orders in ShipStation when Shopify's Fraud Risk Assessment feature is enabled. Shopify's fraud assessment can be imported into one of an order's Custom Fields. |
Update Modified Shopify Orders |
Update Shopify order changes after the order has been imported to ShipStation. Review Shopify's: Update Modified Shopify Orders help article for more information. |
Send Updates to Shopify Warehouse Location |
Notify Shopify when an order's warehouse location has changed within ShipStation to appropriately deduct inventory from the correct warehouse location. To properly enable this, you must do the following:
The Ship From Location that is selected needs to have a Shopify Inventory Source connected to it for this setting to work as expected. |
🇺🇸 🇨🇦 🇦🇺 🇳🇿Send ShipStation rates to Shopify Checkout |
Checkout Rates allow you to send the rates you get in ShipStation to your store checkout. Currently available to ShipStation accounts based in the US, Canada, Australia, and New Zealand. Shopify Plan: To use Checkout Rates, you must be on a Shopify Advanced plan or higher. Shopify Plan Requirement UpdatesUsers on lower plans that switched to annual billing or paid for Third-Party Carrier Calculated Shipping prior to January 1, 2023 will still be able to use Checkout Rates. Please see our Send Rates to Store Checkout for setup instructions. |
Connects to Shopify's Inventory features |
ShipStation can display Shopify's inventory stock count, and will reduce stock from the appropriate inventory location when ShipStation sends the shipment update to Shopify. See Shopify Inventory for more information. |
Processing Time |
Shopify has a feature available on Shopify Plus plans called “Processing Time” which displays the time between when an order is placed by a customer and when the order should be fulfilled by the business. The processing time is imported into ShipStation with orders as the "Ship By" date. You can view it in Order Details and the Order Grid. You can use the Ship By date in your Automation Rules. |
Supports Partial Shipping |
If you split a Shopify order in ShipStation, the shipment update we'll send to Shopify will only include the products within the shipped order. |
Supports Shopify POS |
ShipStation will import Shopify POS orders as long as they are for a physical product and as long as they require shipping. |
Map Voided and Pending Payment as Awaiting Payment |
Enable this setting if you are using the Shop Pay feature to avoid any issues with order imports. If this setting is not enabled, due to how the tax is added to the payment method during order processing in Shopify, Shop Pay orders may import as Cancelled. |
In addition to those features already listed, you can request the ShipStation support team to enable the following settings for your Shopify store.
Feature |
Description |
---|---|
Shop Promise Orders |
Shopify Shop Promise is a Shopify program for merchants to display their products with the Shop Promise badge. When customers see your products with this badge, they’ll know that the product ships fast and consistently. If you have Shop Promise enabled for your Shopify Pay orders, the Support Team can enable a setting to import these orders into ShipStation. Shop Promise is a fulfillment-level setting. ShipStation does not have a setting in Shopify store settings that is specific to Shop Promise. To ensure these fulfillments are filtered and display properly, contact ShipStation support to enable the store setting Map multiple open fulfillment orders to requested fulfillments. We recommend enabling Map Voided and Pending Payment as Awaiting Payment in your store settings when using this feature. Once enabled any Shop Promise orders that import will show a Promise tag in the Order Details screen: The Promise tag will also show in the Premium Programs column in the Orders Grid: Presently it is not possible to sort, filter, or set up Automation Rules specific to Shop Promise orders. |
Buy with Prime through Shopify |
You can use your Shopify store in ShipStation to ship your Buy with Prime items that are not fulfilled by FBA. Contact ShipStation Support to enable the setting in your account. Once enabled, for each item or fulfillment, ShipStation will show Shopify’s Ship From Location. However, ShipStation’s Ship From Location drop-down menu will be pre-selected with either ShipStation’s Default Ship From Location or one that uses Automation Rules. To prevent shipping your items from the wrong location, please make sure to adjust the Ship From location before creating a label. Go to In the Modify Marketplace Settings popup, toggle to "On" the option to Map multiple open fulfillment orders to requested fulfillments. This setting needs to be enabled for Buy with Prime to work properly. |
Exclude Third-Party Fulfillment |
When enabled, ShipStation will only import products in an order if the fulfillment type is set to Manual or Shopify. This feature is primarily used if you have a fulfillment provider (like Fulfillment by Amazon) connected to your Shopify account. |
Split-Ship in Checkout |
If you have more than one shipping profile or shipping location in Shopify, then you can contact support to activate or deactivate split shipping in checkout. Once enabled, this feature will import into ShipStation your orders that have already been split in Shopify. You will not need to take any action inside of ShipStation to split those orders. Each Shipment will have unique information attached to it such as Deliver By Date. Risk of Shipping from Wrong Ship From LocationBefore we enable your Shopify ‘split-ship in checkout’ and ‘Buy with Prime’ features, please be aware of the potential risk of shipping items from the wrong Ship From Location. To be able to ship your Buy with Prime items that are not fulfilled by FBA you must contact support. For each item or fulfillment, ShipStation will show Shopify’s Ship From Location. However, ShipStation’s Ship From Location drop-down menu will be pre-selected with either ShipStation’s Default Ship From Location or one that uses Automation Rules. To prevent shipping your items from a wrong location, please make sure to adjust the Ship From location before creating a label. Go to Settings > Selling Channels > Store Setup. Click the Actions The option must be enabled for Buy with Prime to work properly and before you create a label. |
Use Fulfillable Quantity |
The Use Fulfillable Quantity setting allows ShipStation to update the quantity of an item on an order in ShipStation if that value changes in Shopify. Enable this setting to allow the line items in ShipStation to update based on the actions taken in Shopify. The fulfillable quantity value in Shopify updates when orders are fulfilled within Shopify, are partially cancelled, or the line items are edited within Shopify. If any of these actions occur, ShipStation will update the quantity the next time you refresh your Shopify store in ShipStation. |
Shopify has recently released a feature that allows merchants to manually process an Exchange. You can use ShipStation for your workflow to create the exchange label.
Shopify Exchanges Beta Release
This release is currently in Beta. Please check the Notes on Shopify Exchanges section to see how using this feature can affect your current workflow.
Follow these steps to enable Shopify Exchanges.
-
Reconfigure or Reconnect your Shopify Store.
You must reconfigure your store to successfully enable this specific feature.
-
Contact ShipStation support to request that we enable Shopify Exchanges for you.
Support will need to enable 2 settings:
a. Map multiple open fulfillment orders to requested fulfillments, and
b. Include returns, and exchanges on a fulfillment orders shipping preferences.
-
Generate an exchange inside of your Shopify admin section.
An Exchange identifier tag and a new shipment associated with the original outgoing order will then import into ShipStation. This screenshot shows how a Shopify Exchange will appear in the Order Details.
You can now create that label and fulfill the exchange. ShipStation will notify Shopify with details about the shipment's status change, tracking number, carrier, and service details.
Disable Shopify Exchanges
Contact ShipStation support to request that we disable Shopify Exchanges for you. The feature will be turned off when support disables these 2 settings.
-
Ghost Shipment: There is a risk of ghost shipments in certain workflows. A ghost shipment will have the ShipStation status of Awaiting Shipment, however, it should not be shipped. In this screenshot, Shipment 2 shows how a ghost shipment appears. Its item description in Order Details reads as fulfilled. This indicates that the shipment should not have a label created.
-
To clear the shipment from the Order screen, you can mark it as shipped or you can cancel the shipment.
-
Shipment 3 is the exchange shipment that should be shipped.
-
-
Status Updates: After the initial import, we don’t receive status updates on shipments. If part of an order (Shipment 1) is shipped in Shopify, we don’t show that shipment as Shipped status in ShipStation. It will remain in ShipStation as Awaiting Shipment status.
Be sure to check Shopify for the latest and most accurate status on your order fulfillment.
For example, suppose a Shopify order imports into ShipStation with 3 shipments. 1 of 3 shipments is fulfilled through Shopify. Shopify then indicates that shipment 1-of-3 is fulfilled. Typically, when you next refresh ShipStation, it will show that fulfillments 1-of-3 is now Shipped. However, in this case, the shipment will remain in Awaiting Shipment status and will not reflect the updated status change from Shopify.
-
Returns: ShipStation does not support returns initiated on Shopify. If a return is initiated in Shopify, this information does not get communicated back to ShipStation, and vice versa. Please see our article on Returns in ShipStation.
You can enable the following options in the Shopify Store Settings in ShipStation:
-
Import Closed Orders
When enabled, ShipStation will import orders in the Closed or Archived status from Shopify into the Shipped status in ShipStation. If this setting is not enabled, ShipStation will not import these orders from Shopify.
-
Shopify Discount Codes In Notes
Enable this if your customers use discount codes with their orders and you want that discount code to appear in the order's Internal Notes in ShipStation.
-
Map "partially_paid" To Awaiting Payment
When enabled, ShipStation will import Shopify orders in the Partially Paid status into the ShipStation Awaiting Payment status. If this setting is not enabled, Partially Paid orders will import into Awaiting Shipment instead.
-
Use a Ship From Location Inventory Source as the Location for Marketplace Notifications
You can change the original Ship From Location to a different Ship From location inside of ShipStation (as long as that Ship From Location is connected to the appropriate Shopify order Source). When the label is created, ShipStation will notify Shopify to deduct inventory from the newly designated warehouse.
-
Mark as Shipped orders: Be sure to click on Inventory > Deduct Inventory when you mark an order as shipped.
-
Map "authorized" to Awaiting Payment
When enabled, ShipStation will import Shopify orders in the Authorized status into the ShipStation Awaiting Payment status. If this setting is not enabled, Authorized orders will import into Awaiting Shipment instead.
-
Import Harmonization Codes
Enable this feature (on a per-store basis) to locate your Harmonized System (HS) Codes and import them into the order's customs declarations in ShipStation. Experience better compliance for cross-border shipping and trust that your packages won't get stuck in customs.
If you set a 6-digit HS code for a product on Shopify’s side, we will auto-fill the customs section with HS codes when we import orders placed with that product. The item options will now include the Harmonization code in addition to options such as size and color attached to the SKU. There's no need to set this up separately in ShipStation.
-
Allow Shopify source_name to populate in the Source column
This setting enables the population of order information in the Source Column of the Orders Grid, indicating where the order was placed. This information can include the platform, device, or Order ID from another sales channel.
Populate Source Column Enabled by Default
This setting is enabled by default when a Shopify store has been connected in ShipStation. You may disable it at any time.
-
Import in 'Buy With Prime' orders as Shipped
For Shopify accounts that use the Buy with Prime feature - these orders by default do not import into ShipStation since they are automatically fulfilled by FBA. Enable this setting to import these orders directly into the Shipped status in ShipStation (this allows visibility of the order while preventing the possibility of double shipping).
-
Custom Fields
Shopify sends additional order details to ShipStation that are not mapped to a ShipStation field by default. If you need these details in ShipStation, you can map them to the ShipStation Custom Fields #1, #2, and #3.
Select the item you wish to map to a custom field from the drop-down menu and save your changes. Going forward, ShipStation will pull that data into the assigned Custom Field in ShipStation when the order imports (previously imported orders will not be affected).
The following fields are available from Shopify to map in ShipStation:
-
Bill Address
-
Bill Name
-
Customer Tags
-
Fraud Risk
-
Order Count
-
Order Tags
-
Shopify Order ID
-
Shopify Order Note Attributes
-
Total Spent
-
Total Spent - Total Price
-
Order Metafields
-
-
Shopify will only import orders with physical products into ShipStation.
-
Shopify Source Name: By default, the Source column in the Orders Grid populates with information indicating where the order was placed. This information may include the platform, device name, or Order ID from another sales channel. If you wish to disable this feature, you can do so in the Shopify Store Settings.
-
Automatic Discounts: A discount applied at checkout that does not require the customer to manually enter a code at checkout. ‘Automatic Discounts’ from Shopify do not import into ShipStation. These discounts are a different type of discount than the ‘Discount Codes’ that would import as a line item. This difference may be why you see a discrepancy between the Order Total and the Amount Paid.
-
Shopify Multi-currency: ShipStation supports the Shopify Account Currency. Currently, if a Shopify order is placed in any currency, Shopify has the ability to convert that order into the currency you have selected in your Shopify account settings. The converted currency amount is what Shopify sends to ShipStation. ShipStation does not currently have a way to retrieve the currency that an order was originally placed in. For more details on how Multi-currency works in Shopify, please see their guide: Multi-currency.
-
Shopify Inventory: If you are using Shopify's Inventory features, link the Ship From Location to a Shopify Inventory source so you can view your stock counts in ShipStation. See Shopify Inventory for more information.
-
Upsell Order Imports If your store has the Upsell application that allows a customer to add items to their order post purchase, this will affect your order imports. Contact support to enable the ‘Use Fulfillable Quantity’ setting to allow the line items in ShipStation to update based on the actions taken in Shopify. Upsell orders will import into ShipStation at the time they are placed however they will be in the On Hold status and show 0 as the item quantity. Once the order change period closes, these orders will move to the Awaiting Shipment status after your next store refresh and item quantities will update to reflect the current order details.
-
Shopify Orders On Hold in ShipStation If an order imports into On Hold from Shopify, the item quantity will be set to 0 until the status changes to Awaiting Shipment. This can impact automation rules using Order Subtotal, Order Total, Order Weight, or Total Quantity as criteria. You can:
-
Manually rerun the rules when the order status changes
-
Update the rule to use different criteria for On Hold orders
-
-
Updating On Hold orders ShipStation will update orders in the On Hold status if changes are made to the order on Shopify. If expected changes do not appear in ShipStation after you have refreshed the store, contact ShipStation support to request they set your refresh date back to the date the change occurred and refresh the store again.
-
Import Harmonization Codes from Shopify
-
The Harmonization System (HS) code will NOT be added to product defaults in ShipStation.
-
Shopify’s Import Harmonization Code feature overrides ShipStation's product information on the order. Customs Item Value and Country of Origin are exceptions to this override.
-
If you set International Settings - Customs Declarations to
Use Pre-Defined Values
, ShipStation's International Customs Settings will override Shopify settings. -
ShipStation only imports the 6-digit harmonization code. The 8-digit harmonization code is destination-specific, and will not import.
-
-
Shopify's Order Statuses
-
Orders in Shopify have 3 different types of statuses: Order, Fulfillment, and Payment.
-
Order status can be Open, Archived, or Cancelled
-
Fulfillment status can be Fulfilled, Unfulfilled, Partially Fulfilled, Scheduled, and On Hold
-
Payment status can be Authorized *, Paid, Partially Paid**, Pending, Refunded, Unpaid, and Voided
-
Orders in the Authorized status will import as Awaiting Shipment by default. If you want ShipStation to treat Authorized orders as Awaiting Payment instead, you may enable this in Shopify Store Setting.
-
Partially Paid orders in an Open status will import into Awaiting Shipment by default. If you enabled the store setting Map "partially_paid" To Awaiting Payment those orders will instead import into Awaiting Payment.
-
Orders will move to Awaiting Shipment when the order is updated to Paid in Shopify (upon the next store refresh).
-
-
A customer record will not be created if an order imports into Awaiting Payment (even if email is present). The customer record will be created after the order moves to Awaiting Shipment.
-
By default, ShipStation will ignore Shopify orders in the Closed or Archived status.
-
ShipStation cannot import orders while they are in the Draft status.
-
Here are some common issues experienced by users, potential causes, and available troubleshooting tips.
Issue |
How to troubleshoot or resolve |
---|---|
Shopify Store Status Error |
If your Shopify store shows an In most cases, you will need to Reconfigure Your Shopify Store. |
An order refunded in Shopify may still import into ShipStation if its order status hasn’t changed. |
What to do: When you refund a Shopify order, you must also update its order status to Cancelled so the order will not import into ShipStation. |
Shopify's subscription-based order placement not supported |
ShipStation does not currently support orders placed using Shopify's new subscription-based order placement feature because this new feature causes confusion with mapping for the Requested Service. While the Shopify orders will import, the orders placed through this new method cause Shopify to send us multiple Requested Service values with the order data. ShipStation can only display a single value for the Requested Service on any order. SOLUTION 1: The best workaround is to map the newly displayed Requested Service value shown in the orders to use a particular service. SOLUTION 2: If service mapping won't work for you, consider adding an Order Tag to these "subscription orders" in Shopify and mapping the Order Tags to a Custom Field through the Store Settings. This way, you can use an Automation Rule to assign services as needed. |
A Shopify order is not importing into ShipStation |
What it means: There are multiple reasons why a Shopify order would not import into ShipStation, but here are the most common:
What to do: In these cases, your best option is to update the order in Shopify, if possible. If you cannot update the order, ShipStation will be unable to import the order. In addition, ShipStation by default does not import orders that are Closed or Archived. If you need to import Closed and Archived orders, enable the Import Closed Orders option in your Store Settings page. |
After creating a label, ShipStation updated the Shopify order but only left a note with the tracking information and did not update it as fulfilled |
What it means: This happens when ShipStation tries to create a fulfillment update for the Shopify order, but we receive an error from Shopify that the fulfillment could not be created for one of the following reasons:
What to do: If this occurs, ShipStation will not be able to update the order as fulfilled. You may be able to update the order directly on Shopify. |
Prompted to upgrade Shopify plan to use Checkout Rates even when on the appropriate Shopify plan |
What it means: Shopify does not always automatically update permissions on all stores when billing plans change, so they may need to manually make the update to your store. What to do: Contact Shopify support and request access to the CarrierServices endpoints for your store. If your Shopify billing plan meets the requirements for ShipStation Checkout Rates, then you are entitled to this access. |