Flxpoint Help Center
All DocsContact support

Shopify as a Source

June 26, 2026

Summary

Connect a vendor's Shopify store to Flxpoint as a supplier: pull the product catalog and per-location inventory, send fulfillment requests (orders) back into that store, and retrieve shipment tracking. Connection is via OAuth2 (recommended) or Bearer Token / Basic Auth using the Flxpoint Shopify App, and every inventory and fulfillment job is scoped to a single Shopify Location ID.

Get Inventory (Primary)
Imports the full Shopify catalog for one Location ID – products, variants, attributes, images, titles and descriptions into the Global Inventory Pool
Get Inventory (Secondary)
Faster variant-level delta that refreshes quantity (and optionally cost / MAP-MSRP) for the selected Location ID
Send Fulfillment Requests
Sends orders to the vendor's Shopify store for fulfillment with billing/shipping addresses, line items and order notes
Get Shipments
Pulls fulfillments and tracking created in the vendor's Shopify store back into Flxpoint

In the Shopify Source setup wizard, on the Connect to Your Shopify Store step, choose a connection method and enter these values, then click Test Connection and Continue.

Connection MethodSetting
Choose API - Shopify App (OAuth2) for secure authorization, or API - Bearer Token / API - Basic Auth for manual credential entry.
OAuth2 is recommended whenever you can log into the Shopify store as owner/admin. Use Bearer Token when a vendor installs the Flxpoint Shopify App and shares their credentials with you.
Store URLRequired
The Shopify store's .myshopify.com address (e.g. https://your-store-name.myshopify.com). Entered for every connection method.
Always use the .myshopify.com URL, not the store's custom domain.
OAuth2 AuthorizationRequired
For OAuth2: click Initiate OAuth2 Flow and follow the prompts to grant Flxpoint access to the Shopify Admin. No further credentials are needed after authorization.
If the connection later loses permissions, re-authorize via Shopify Re-authentication (OAuth).
TokenRequired
For Bearer Token: paste the Admin API access token into the Token field, or the API Key a vendor shares after installing the Flxpoint Shopify App in their Shopify Admin.
Vendors who can't complete OAuth2 install the Flxpoint App and share their Store URL and API Key; paste that key here as the Token.
API Key & API Secret KeyOptional
For Basic Auth with a legacy custom app: enter the API Key and API Secret Key generated under Settings > Apps and sales channels > Develop apps in Shopify Admin.
Legacy custom apps created before Shopify required the read_locations scope still connect – product import, inventory sync, fulfillment sending and shipment tracking run without updating the app's permissions.
If Test Connection returns a 401/403 or permission error, re-authorize using Shopify Re-authentication (OAuth). See the Vendor's Guide to the Shopify App for the vendor-side install steps.

Every job is scoped to one Location ID – configure it correctly first

Get Inventory (Primary), Get Inventory (Secondary) and Send Fulfillment Requests all require a Shopify Location ID. If the wrong location is set, inventory pulls come back empty or show incorrect quantities and fulfillment requests route to the wrong location. Verify the numeric Location ID in Shopify Admin before configuring any operation, and create one job per Location ID to cover multiple locations.

SKU must be present on every Shopify variant or inventory will not sync

Both Get Inventory jobs match Flxpoint records to Shopify variants by SKU. Variants without a SKU in Shopify are silently skipped – they never appear in the Global Inventory Pool and show zero quantity. Add SKUs to all Shopify variants before running inventory jobs, and map Variant SKU → SKU and Available → Quantity in your template.

Shipping method title AND shipping price must both be mapped in Send Fulfillment Requests

Shopify only builds the shipping_lines structure when both the title and the price are present. If only the title is mapped, the shipping method is silently dropped from the request. Map both Shopify Order - Shipping Method Title and Shopify Order - Shipping Price in your Send Fulfillment Requests template.

The Create Customer setting is required before Send Fulfillment Requests can be saved

In the Integration Config, select how Flxpoint should determine the customer in the vendor's store – Reseller Name/Email, Bill To Customer Name/Email, or Flxpoint Account Owner Primary Name/Email. The dropdown starts blank, and leaving it unset prevents the integration from saving. Choose the option that matches your order flow.


Shopify FieldMaps To – Notes
Variant SKUProduct → SKU (Required). Primary identifier for matching inventory updates – variants without a SKU are skipped.
AvailableInventory → Quantity (Required). Quantity saved into the Global Inventory Pool (GIP) for the selected location.
Location IDJob Setting (Required, not a mapped field). Inventory is pulled only for the selected Shopify location; use one job per location.
Imports the full catalog (attributes, images, titles, descriptions); recommended once daily. Hourly maximum cadence. Use Force Full Inventory Fetch as a one-time normalization when quantities are blank or stale after a file import or major catalog change, then return to standard runs.
Shopify FieldMaps To – Notes
Variant – SKUSKU (Required). Primary identifier for saves.
Variant – AvailableQuantity (Required). Saved at the variant level for the selected Location ID.
Variant – CostCost (Optional). Map if you want cost updates applied by Secondary.
Variant – Compare at priceMAP / MSRP (Optional, as configured). Map only if you use these fields in your workflow.
Faster delta job for frequent quantity (and optional cost / MAP-MSRP) updates; recommended hourly. Run Primary first, then Secondary and stagger the schedules so Secondary applies variant-level updates after Primary's refresh completes. Hourly maximum cadence.
Flxpoint FieldMaps To – Notes
Fulfillment Request Item - SKUShopify Line Item - SKU (Required). Identifies each item to fulfill.
Fulfillment Request Item - QuantityShopify Line Item - Fulfillable Quantity (Required). Quantity to fulfill; unmapped SKU/Quantity causes fulfillment failures.
Source Shipping Method - MethodShopify Order - Shipping Method Title. Must be mapped together with Shipping Price or Shopify drops the shipping line.
Fulfillment Request - Estimated Shipping CostShopify Order - Shipping Price. Required alongside the title for the shipping_lines block to build.
Fulfillment Request - Transaction Kind / Gateway / AmountShopify Order - Transaction Kind / Gateway / Amount. All three must be mapped together or the transaction block is skipped; Amount must be greater than zero, and Gateway must match a gateway configured in the vendor's store.
Billing Address / Shipping Address fieldsShopify Billing Address / Shipping Address. Map the full address blocks (name, address 1/2, city, state/code, postal code, country/code, email, phone) for reliable fulfillment.
Custom Fields (5)Shopify Order Note Attributes. Up to 5 custom fields are supported.
Requires an existing order in Shopify (import via Get Orders first) and a Location ID. If you map any Customer fields they override Shopify's default find-or-create logic – mapping them partially fails the job. If Shopify returns {"errors":"Line item is using an invalid fulfillment service"}, match the fulfillment service name to what the vendor actually has configured, or remove that field.
Pulls fulfillments and tracking created in the vendor's Shopify store back into Flxpoint so they sync to your sales channel and customer. It only returns fulfillments that already exist in Shopify – if the vendor hasn't fulfilled the order there is nothing to pull. Confirm the vendor has created fulfillments with tracking, verify the Location ID matches where the fulfillments were created, and widen the lookback window to cover the age of your fulfillment requests.

Inventory not updating or showing zero quantity after Get Inventory runs
The two most common causes are missing SKUs on Shopify variants and a wrong Location ID. Confirm every variant expected to sync has a SKU in Shopify, that the Location ID matches where inventory is stocked, and that your template maps Variant SKU → SKU and Available → Quantity. After bulk catalog changes, run a Force Full Inventory Fetch to catch up, then return to standard runs.
"Failed to map variant(s), skipping Shopify Product"
One or more variants had no SKU or the SKU field was not mapped. Open the mapping template and confirm Variant SKU is mapped to SKU, then add SKUs to any variants missing them in Shopify and re-run the job.
{"errors":"Line item is using an invalid fulfillment service"}
The fulfillment service name mapped in Send Fulfillment Requests does not exist in the vendor's Shopify store (Shopify returned an empty fulfillment_services: [] list). Ask the vendor whether they have a fulfillment service configured and use the exact name, or remove the fulfillment service field from the mapping template entirely.
Shipping method not appearing in Shopify after the fulfillment request is sent
Shopify requires both the shipping method title and the shipping price to build the shipping_lines block. If only the title is mapped and the price is blank, Shopify silently drops the line. Confirm both Shopify Order - Shipping Method Title and Shopify Order - Shipping Price are mapped.
Transaction / payment data not sent to Shopify when creating the order
Shopify's transaction block requires all three fields – Transaction Kind, Transaction Gateway and Transaction Amount. If any one is missing the whole block is silently skipped, and Amount must be greater than zero ("Amount must be greater than zero for sale transactions"). Map all three and confirm the Gateway matches a payment gateway configured in the vendor's store.
Get Shipments returns no results or tracking not linking to orders
Get Shipments only retrieves fulfillments that exist in Shopify. Confirm the vendor has created fulfillments with tracking on their side. If fulfillments exist but aren't linking, verify the Location ID matches where the fulfillments were created and that the lookback window covers the age of your target fulfillment requests.
Transactions should not be mapped in Send Fulfillment Requests
The Transactions field is Shopify's financial "source of truth" for an order (payment status, gateway and amount) and should be managed by the vendor to reflect whether the order is actually paid - not driven from Flxpoint. If the vendor needs to identify which marketplace or channel an order came from, use Tags or Order Note Attributes instead of mapping Transactions.
"Missing required customer field in mapping: customer.email"
Shows when any Customer fields are mapped in the Send Fulfillment Requests template - once any Customer field is mapped, those values override Shopify's default find-or-create logic, so a partially mapped Customer section fails the job. Open the mapping template, review the Customer section, confirm all required customer fields are mapped (avoid partial mapping), then save and re-run Send Fulfillment Requests.
Get Shipments error: "No fulfillments found for specified orders"
Shipments only exist once an order has a fulfillment created in Shopify. If the order isn't fulfilled yet (or hasn't synced into Shopify as expected), the shipment pull returns no results. Confirm the order has a fulfillment with tracking in Shopify; if you filter by Location ID, confirm it matches the fulfillment's location; and widen the lookback window if your job configuration includes a time range.

What is the difference between Shopify as a source and Shopify as a channel?
Shopify as a channel is your storefront – where customer orders come in and products are published. Shopify as a source treats a Shopify store as your fulfillment supplier: you pull inventory from it, send fulfillment requests (purchase orders) to it, and retrieve tracking back. A common setup uses a vendor's Shopify store as the fulfillment source while a separate channel is where customers place orders.
Which connection method should I use – OAuth2 or Bearer Token?
OAuth2 is recommended when you can log into the Shopify store as owner or admin. If you're connecting a vendor's store and they can't complete OAuth2, have them install the Flxpoint Shopify App in their Shopify Admin and share their Store URL and API Key, then use Bearer Token and paste the API Key into the Token field. For legacy custom apps, Basic Auth uses the API Key and API Secret Key. Always use the .myshopify.com URL, not the store's custom domain.
Can I cover multiple Shopify locations with one source setup?
No – each inventory or fulfillment job targets a single Location ID. To cover multiple locations, create a separate Get Inventory (Primary) job and a separate Get Inventory (Secondary) job per location, and one Send Fulfillment Requests job per location the vendor fulfills from.
How often can Get Inventory jobs run?
Both Get Inventory (Primary) and Get Inventory (Secondary) have a maximum cadence of once per hour. Primary is for full catalog refreshes and is typically run daily; Secondary is the faster delta job for cost and quantity updates and suits hourly scheduling. Stagger the two so Secondary runs after Primary completes.
When should I use Force Full Inventory Fetch?
Use it as a one-time normalization step if inventory was imported from a file and quantities are missing or stale in the Global Inventory Pool, or after a major catalog change on the Shopify side. It pulls inventory for all products and variants at the selected Location ID regardless of recent change status, so expect longer runs on large catalogs. Return to standard runs after the catch-up completes.
Does Flxpoint sync vendor-side refunds or cancellations back from the Shopify source?
No – this is a known platform limitation. Flxpoint syncs fulfillment and tracking data from Shopify sources automatically, but vendor-side refund and cancellation events do not surface in Flxpoint and must be coordinated manually. This affects multi-vendor marketplace setups in particular; if it's critical to your workflow, submit a feature request through the Flxpoint feedback channel.
© 2026 Flxpoint. All rights reserved.