Shopify

Shopify integration

Quick Summary: Connect a Shopify store to import orders, update fulfillment and tracking, and optionally sync inventory. For: Clients Level: Beginner

Overview

Use the Shopify integration to connect a Shopify store to Floship. The connection can import new and changed orders, send fulfillment and tracking updates back to Shopify, and update stock at mapped Shopify locations.

Available controls depend on your access, your account features, and the settings shown. A saved connection does not provide a complete import of earlier order history. Contact support if older orders must be added.

A new connection created from Integrations imports orders. Some existing connections are tracking only. They send tracking to Shopify and do not import orders. The mode is not controlled on this settings page.

Before you start

  • Confirm that Integrations is available to your user.
  • You need write access to add a connection or select Save.
  • Have access to the Shopify store that will install the app.
  • Check existing shared cards before adding another connection for the same store.

If +, Save, or an edit control is missing, ask your company administrator for write access.

Quick start

Open the connection list:

In the username menu at the top right, select Account Management, then select Integrations.

  1. Select +, then select Shopify.
  2. Enter Shop Domain if the field appears.
  3. Select Continue.
  4. Finish the Shopify app install or approval prompt.
  5. Review the settings, then select Save.

Note: The connection does not import complete order history. It starts from the point when the integration is registered.

Setup and authorization

Shopify authorization has two presentations:

  • When Shop Domain appears, enter the store address as example.myshopify.com.
  • When Shop Domain is hidden, Continue opens the Shopify app store.

In the app store flow, select Add app, review the requested access, then select Install app. In the direct flow, complete the authorization prompt in Shopify. After approval, the integration settings open in Floship.

The Shop Domain must use the myshopify.com form. A copied admin URL, a path, or a custom storefront domain is not accepted there.

Polling uses the saved order-sync checkpoint and seeks recently updated orders. It does not mean that every historical order is available.

Settings

Available settings depend on your account features and the state of the connection. Select Save after changing a field unless the page saves the change immediately.

Status

Active allows the work configured for the connection. Inactive stops scheduled processing and removes the connection's active Shopify webhooks. Existing portal orders remain available. A tracking-only connection still does not import orders while it is Active.

Last Activated records the latest activation. Last Orders Sync records the latest source order-update time observed during order polling. It is not a general connection heartbeat. It can remain unchanged when no newer order updates arrive.

Order import

Setting What it controls
Sync Delay Delays processing for recently updated Shopify orders
Sync Payment Statuses Selects the Shopify payment statuses eligible for import
Ignore non-shipping items Leaves non-shipping line items out of an imported order
Ignore not found items Leaves unmatched line items out and imports the remaining items
Split sales order by location Creates separate portal orders for different Shopify locations
Sync orders tags enabled Keeps supported Shopify order tags updated in the portal

Sync Delay is entered in minutes. The default is 0. A longer delay gives you time to change a recent Shopify order before processing. It delays processing of recent order updates; it does not reserve an order for editing.

Sync Payment Statuses accepts these exact values:

Value Meaning
paid Fully paid order. This is the default.
pending Payment has started but is not complete.
authorized Payment is authorized but not captured.
partially_paid Part of the payment has been received.
partially_refunded Part of the order has been refunded.

The default for Ignore non-shipping items is Yes. Disable it only when those line items must remain on the imported order.

The default for Ignore not found items is No. When enabled, an order can import with fewer items than the customer ordered.

Split sales order by location is No by default. Use it only when mapped Shopify locations should become separate portal orders.

Sync orders tags enabled controls ongoing tag updates for supported order-update events.

Fulfillment and tracking

Setting What it controls
Mark Fulfillments Sends shipment and tracking updates to Shopify and marks fulfilled quantities
Send fulfillment notification Chooses whether Shopify sends its customer notification

Mark Fulfillments is Yes by default. When it is No, fulfillment and tracking updates for this connection are not sent to Shopify.

Send fulfillment notification has three choices:

  • Yes: Shopify requests a customer notification.
  • No: Shopify is asked not to send a notification.
  • Use default setting: Shopify applies its store default.

A successful Save confirms the setting was stored. It does not prove that Shopify delivered a customer email.

Inventory and locations

Setting What it controls
Sync Inventory Sends portal stock levels to mapped Shopify locations
Inventory Threshold Reserves a quantity for all products
Sync stocks to exact SKU matches only Limits updates to case-insensitive exact SKU matches

Sync Inventory is No by default. Inventory updates move from the portal to Shopify. Stock maintained directly in Shopify is not imported into the portal.

Inventory Threshold defaults to 0. This global reserve is subtracted from available stock before it is sent to Shopify. The field appears only when Sync Inventory is enabled.

Locations Mapping shows the Shopify locations available to the connection. Map each Shopify location to the relevant warehouses or location addresses. A child location can be assigned to only one Shopify location. Mapping changes save after selection.

At least one mapped location is required before an existing inactive connection can be reactivated. Location mapping also determines where inventory updates are sent.

When Sync Inventory is enabled, Inventory Thresholds can set a product-level reserve. A product threshold replaces the global threshold for that SKU. Add or edit a threshold, then select Save in the threshold window.

Sync stocks to exact SKU matches only is Yes by default. With No, punctuation-different SKUs can also match. Use No only when those variants must sync.

Shipping, customs, and checkout

Setting What it controls
Sync Shipping Cost Imports the shipping cost charged in Shopify
Pull Customs Value From Selects Portal or Shopify as the customs-value source
Show Floship Couriers Rates on Checkout Offers portal courier rates in Shopify checkout
Show T&D from Couriers Rates on Checkout Shows taxes and duties from portal courier rates
Destination country currency for shipping & taxes Converts displayed shipping and tax amounts
Sync Zonos Duties and Taxes Imports duties and taxes calculated by the Zonos Shopify app

Sync Shipping Cost is No by default. When enabled, the amount charged in Shopify becomes the shipping cost on the portal order.

Pull Customs Value From defaults to Portal. Choose Shopify to use Shopify item prices instead of the customs values maintained in the portal.

For Parcel Forwarding orders, the Shopify line price is used when present. If it is missing, the matched item's customs value is used when available. Missing customs and physical details are filled from the matched item when available. Review the imported order: classification or defaults can still apply where details remain missing.

Show Floship Couriers Rates on Checkout

Checkout controls appear only when your account has the required features. Show Floship Couriers Rates on Checkout requires Carrier Calculated Shipping in Shopify.

Show T&D from Couriers Rates on Checkout and Destination country currency for shipping & taxes require courier rates plus Zonos access for your account. Destination-currency conversion also requires Show T&D from Couriers Rates on Checkout.

Sync Zonos Duties and Taxes requires Zonos access and the Zonos app in the Shopify store. The portal can reject the change when recent Shopify orders contain no Zonos data. Contact your Account Manager if the app is installed and the setting still fails.

The portal courier-rates method and the Zonos app method cannot both supply checkout duties. Turning on one method clears the other. Enabling courier rates also clears the currency conversion setting.

Fraud detection

Fraud detection by Shopify is No by default. When enabled, an order whose Shopify risk score falls in the selected range is imported for manual approval.

Risk level Shopify score range
LOW 0-1. Any non-zero score qualifies.
MEDIUM 0.25-1
HIGH 0.75-1

A missing Shopify score does not trigger this manual-approval rule.

Tax ID field

Field Name Tax ID names the Shopify note attribute that contains the customer's Tax ID. The portal reads it for Taiwan shipping addresses. Leave the field blank when the store does not use that note attribute.

Returns

These settings appear only when return-order sync is enabled for your account.

Setting What it controls
Sync return orders enabled Creates portal return orders from eligible Shopify returns
Sending return orders Sends eligible portal returns to Shopify
Close return order Closes the Shopify return for selected portal return states

Sync return orders enabled is No by default. It requires Shopify return permissions in the connection.

Sending return orders is No by default. It can send a return when the parent order came from Shopify or the return came from an Embedded Form. A return does not qualify when both conditions are absent.

Close return order can use Received and Rejected. Shopify closes the linked return when the portal return enters a selected state.

OpenBorder

If the OpenBorder section appears below the status and order settings, turn on OpenBorder enabled, enter OpenBorder Merchant ID, then select Save. A merchant ID is required to enable OpenBorder or change its settings. A store enrolled before merchant IDs were required can still save its other integration settings until OpenBorder settings change.

The same store can use both OpenBorder flows. The assigned courier determines the flow for each recognized OpenBorder order:

Label source Flow What it does
OpenBorder Direct Label OpenBorder supplies the shipping label.
The assigned carrier Label Compliance OpenBorder supplies customs data, and the carrier supplies the shipping label.

Orders that are not recognized as OpenBorder orders continue to use ordinary shipping. The same carrier can handle ordinary orders and OpenBorder Label Compliance orders.

OpenBorder Shipping Options appears when OpenBorder enabled is on. Add each Shopify shipping option as its complete name, then press Enter. Only add names reserved for OpenBorder orders. An empty list adds no shipping-option matches; the portal can still recognize orders through OpenBorder shipping-source markers or supported order tags.

Ask your Account Manager to confirm the order-recognition criteria and courier rules before using both flows. The courier rules can combine OpenBorder recognition with destination countries or SKUs. Enabling OpenBorder does not by itself choose a courier.

Filters

Filters limit which orders or returns are imported. A filter has an Order field, an Import condition, and one or more values.

Sales-order filters can use Shipping Country, Shipping Option, Item SKU, Location, and Tags. Return-order filters can use Shipping Country, Item SKU, and Tags.

Rule Import condition
Only listed values allowed Every order value must be listed. The order does not need every listed value.
Matches the list exactly The order values exactly match the list.
No listed values allowed The order contains none of the listed values.
All listed values required The order contains every listed value. Extra values are allowed.

For Shipping Country and Shipping Option, the required-values condition displays Matches a listed value and accepts any listed value. Matches the list exactly cannot match these single-value fields.

For Tags, both matching conditions display At least one listed tag matches and accept any shared tag. SKU rules accept or skip the whole order.

Location rules select order lines. No listed values allowed removes lines at listed locations and lines without a mapped location. At least one listed location matches keeps the lines when any mapped location is listed. Matches the list exactly requires the mapped location set to match. A failed set check removes all lines. Other import filters still apply.

Sales and return rules are separate. Review the Apply to value before you save a rule.

Re-authorization

Re-Authorize appears when the saved connection lacks permissions required by current features. It opens a Shopify authorization window. Complete the prompt in Shopify, then reopen the connection.

Order sync

Shopify sends supported order, refund, fulfillment, and return events through webhooks. The portal also reviews recently updated orders on a schedule to recover events missed by webhooks.

An order must match its payment status and filters. Sync Delay can hold recent updates. Existing portal orders prevent a duplicate order from the same Shopify source.

Fulfillment sync

When Mark Fulfillments is Yes, shipment and tracking updates can be sent after fulfillment in the portal. Shipping-method mapping and the Shopify order state must also allow the update. Customer email behavior depends on Send fulfillment notification and Shopify's own settings.

Inventory sync

When Sync Inventory is Yes, portal stock changes can update Shopify stock at mapped locations. The global or per-product threshold is applied first. Sync stocks to exact SKU matches only controls whether punctuation-different SKUs can match.

Warehouse or address assignments can change the stock source mapped to a Shopify location. Review Locations Mapping after an account change and allow the stock update to finish.

Troubleshooting

Issue Cause Solution
Orders do not import The connection is inactive, filters exclude the order, or its payment status is not selected. Check Status, Filters, and Sync Payment Statuses.
Orders still do not import after settings review The existing connection may be tracking only. Ask your Account Manager to confirm the connection mode.
Reactivating an inactive connection is rejected No Shopify location is mapped. In Locations Mapping, assign a warehouse or location address. Save again.
Re-Authorize appears The connection lacks permissions needed by current settings. Complete authorization in the new window, then reopen the connection.
Shopify stock does not update Inventory sync is off, no location is mapped, or the SKU does not match. Check Sync Inventory, Locations Mapping, and the exact-SKU setting.
Stock stops updating after a warehouse change The Shopify location now refers to a different stock source. Review the mapping and allow the update task to finish.
Fulfillments do not appear in Shopify Fulfillment updates are off or the order's Shopify location has no warehouse mapping. Enable Mark Fulfillments and review Locations Mapping.
Checkout rates do not appear Courier rates are off or Shopify lacks Carrier Calculated Shipping. Enable the setting and ask Shopify Support about Carrier Calculated Shipping.
Zonos duties remain empty The Zonos app or account access is missing, or Zonos sync is off. Verify the Shopify app and Sync Zonos Duties and Taxes.
A return is not sent to Shopify Return sync is off or the source conditions do not qualify. Enable Sending return orders and check the parent order or Embedded Form source.
Last Orders Sync does not move No newer source order updates were found. Treat it as a source-order watermark, not a health check. Ask support to inspect diagnostics.
OpenBorder is missing The account does not have OpenBorder settings enabled. Ask your Account Manager about access to the feature.

For broader diagnosis, see Integration Troubleshooting.