Shopify as a Channel
Summary
Shopify connects to Flxpoint via OAuth only (no API keys or tokens) and supports Import Listings, Sync & Link Listings, Publish Listings, Get Orders, and Sync Orders. Always connect with your .myshopify.com URL (not your custom domain) and set a valid Location ID, which Sync & Link, Publish, and Sync Orders all require.
Vendor-level financial summarization
For the Shopify Send Fulfillment Request integration, Flxpoint now includes a total price field at the purchase order level. This field automatically sums the prices of all order items belonging to the same vendor within a single order, exposing the total in the API payload sent to the vendor to assist with financial reconciliation.
In Sales Channels, click +, choose Shopify, name the channel and select the processes you need. On Connect to Your Shopify Store, enter your .myshopify.com Store URL and click Continue / Authorize to approve the app on Shopify: you return to Flxpoint marked Connected.
| Field | What to enter |
|---|---|
Store URL (.myshopify.com)Required | Your full
Find it in Shopify Admin → Settings → Domains..myshopify.com store URL (e.g. https://your-store-name.myshopify.com): not your custom domain. This is where the OAuth flow sends you to approve the app. |
Authorize app (OAuth)Required | Click Continue / Authorize to open Shopify's approval screen, log in if prompted, and approve the requested permissions. The store owner or a staff member with app-install permission must approve.
OAuth only: Flxpoint stores the token, so no API keys or tokens are entered by hand. |
Location IDSetting | The Shopify inventory location Flxpoint reads and writes for this integration. Required for Sync & Link Listings, Publish Listings and Sync Orders: it must match a valid Shopify location or quantities and fulfillments will not post.
Find the numeric ID under Shopify Admin → Settings → Locations, then set it per integration in Configure Settings. |
Connect with your .myshopify.com URL, not your custom domain
Shopify OAuth requires the .myshopify.com subdomain (e.g. https://your-store-name.myshopify.com). Entering your branded/custom domain makes authentication fail. Find it in Shopify Admin → Settings → Domains.
Location ID is required: keep it current or updates fail silently
Sync & Link Listings, Publish Listings and Sync Orders all require a valid Location ID. If you add or change a location in Shopify, update the Location ID in every Flxpoint integration that uses it, otherwise orders stop importing and quantity updates post to the wrong warehouse, with no error shown.
Publish Listings overwrites Shopify content
Running Publish on a linked listing overwrites whatever is on Shopify: including edits made directly on the storefront. Set Title to Don't Map on update-only templates to preserve Shopify-side title edits. Sync & Link Listings only touches price and quantity and never changes content.
Shopify enforces hard variant limits
Maximum 3 option types and 100 variants per product. Exceeding either causes variant creation to fail on Publish with no partial save. Restructure products that exceed these limits before publishing.
Embedded inventory and collections enabled
This integration now uses embedded inventory and collections by default for all accounts. This backend configuration improves how inventory syncing and collection data are managed within your Shopify channel without requiring manual setup or new UI configuration.
Pulls existing Shopify products and variants into Flxpoint so you can manage them centrally
| Shopify Field | Maps To: Notes |
|---|---|
| externalListingId (Parent/Variant) | → externalListingId. Shopify's internal ID; identifies the parent listing and each variant. |
| SKU (Handle) | → parent SKU (the Shopify product handle). |
| Variant SKU | → SKU. Your unique per-variant identifier and a good choice for Master SKU. Variants without a SKU are skipped on import. |
| UPC (Barcode) | → UPC. Also usable as the Master SKU. |
| Title | → Title. Parent and variant names (e.g. Blue T-Shirt – Medium). |
| Description | → Description. |
| Manufacturer | → Manufacturer (brand). |
| Images | → Images. Product and variant images. |
| Price / MSRP / SalePrice | → Price / MSRP / SalePrice. |
| Quantity | → Quantity. Available stock per variant. |
| Options | → Options (e.g. Medium, Blue). |
| Weight / Unit | → Weight / Weight Unit. |
| Attributes (Tags) | → Attributes (Shopify tags). |
| Category 1/2/3 (Collections) | → Categories 1–3. |
| customField / customFields (Metafields) | → customField / customFields. Product and variant metafields. |
Import options (Product & Listing Management)
This required setting controls what each run is allowed to create and update. All four options are available on Shopify.
| Option | What it does | When to use it |
|---|---|---|
| Change feed (recommended) | Creates new products and listings and updates existing ones. Each run only fetches what changed on Shopify since the last successful run, so runs stay fast. | Your everyday default. |
| New products and listings | Creates new products and new listings only. Existing Flxpoint records are left untouched. | When you have curated data in Flxpoint that Shopify should not overwrite. |
| New listings | Creates new listings only. No products are created in your catalog, and existing records are not updated. | When your catalog is built from your sources and Shopify should only contribute listings. |
| Catalog refresh (not recommended) | Creates new products and listings and updates all existing ones, re-reading your entire Shopify catalog. | One-off recovery after a bulk edit on the Shopify side. Expect a long-running job. |
Links Shopify products to your catalog and keeps price and quantity in sync at the chosen Location ID
| Flxpoint Field | Shopify Field: Notes |
|---|---|
| Listing Variant → Quantity | → Quantity (required). Inventory updates post to the selected Location ID. |
| Listing Variant → List Price | → Price (recommended). Use rules for markups or rounding. |
| Listing Variant → SKU | → SKU (recommended). Primary match key for Linking Priority: start with SKU ↔ SKU. |
| Track Inventory | → Track Inventory (optional). Set Don't Map to preserve Shopify's existing tracking state; true/false to force it. Quantity still syncs regardless via the GraphQL API. |
Creates or updates full Shopify products and variants from your Flxpoint listing data
| Flxpoint Field | Shopify Field: Notes |
|---|---|
| Listing Parent → Title | → Title. Required when creating new products; set Don't Map on update-only templates to preserve Shopify-side title edits. Enable Truncate Title to 255 for long titles. |
| Listing Parent → Description | → Description (text/HTML). |
| Listing Variant → SKU | → Variant SKU (required). Uniquely identifies the variant to create or update. |
| Listing Variant → List Price | → Variant Price. Primary sell price in Shopify. |
| Listing Variant → MSRP | → Compare at Price. Should be ≥ Price. |
| Listing Parent → Attributes | → Tags. Sent comma-separated. |
| Listing Parent → Category 1 | → Category. Use a Shopify taxonomy GID (e.g. gid://shopify/TaxonomyCategory/aa-1) when applicable. |
| Images (Parent/Variant) | → Images. Enable Advanced Image Duplication Logic to prevent repeated uploads. |
| Metafields | → customField / customFields. Select the Shopify metafield type (text, number, boolean, json, rich_text_field, date); Flxpoint validates the value before sending and shows Valid/Invalid per row. |
Imports Shopify orders into Flxpoint with control over statuses, filters and the order reference used
| Shopify Property | Maps To: Notes |
|---|---|
| order.name | → Order Reference Number. Looks like #1001: matches the label seen in the Shopify UI. |
| order.order_number | → Order Reference Number. Numeric only (1001); ideal when downstream systems expect digits. |
| order.id (Shopify orderId) | → Order Reference Number. GID or numeric ID; best for cross-system joins and shipment lookups. |
| line_items.quantity | → line Quantity. Map from line_items.quantity; using fulfillable quantity can cause orders to import On Hold. In filters, select unfulfilled/partial and include the financial statuses you need (e.g. paid, authorized). |
Pushes shipment tracking, carrier and status back to Shopify as fulfillments
| Flxpoint Field | Shopify Field: Notes |
|---|---|
| Shipment → Tracking Number | → Tracking Number (required). Primary identifier for the fulfillment. If unmapped, the sync fails with Missing required field 'Tracking Number' for fulfillment sync. |
| Shipment → Carrier | → Tracking Company (recommended). Carrier name (UPS, USPS, FedEx, etc.). |
| Shipment → Tracking URL | → Tracking URL (optional). Deep link to carrier tracking. |
| Notify Customer | → Notify Customer (optional). Set to true to email customers when the fulfillment posts. |
| Location (integration) | → Location ID (required via config). Fulfillments post to this Shopify location; mixed-location lines retry on the next run. |
All jobs stopped silently after an app reinstall or token expiry
Error in configuring integration). Open the channel's connection settings and reconnect via OAuth: this restores the token without affecting your existing integration configs. If all scheduled jobs stopped at the same time, this is the most likely cause.Orders stopped importing after a Shopify location change
Quantity shows as synced in Flxpoint but is wrong in Shopify
Duplicate products created in Shopify after Publish
Image Duplication Error
https://assets.flxpoint.com). If you see this error, contact Flxpoint support: a backend job (not available in the Flxpoint UI) is required to ensure all images are fetched.Broken Link Error
"Compare at Price" needs to be higher than "Price"
Publish fails: "Title can't be blank"
Don't Map in a template used to create new products, and Shopify requires a Title on every product-create request. Map Title for templates that create products. For update-only templates, leaving Title as Don't Map is correct and preserves Shopify-side edits. Re-run Publish after correcting the mapping.Orders arriving On Hold and not routing to a source
Custom fields or personalization not appearing in Shopify?
What is the difference between Publish Listings and Sync & Link Listings?
How does Flxpoint map product categories to Shopify?
gid://shopify/TaxonomyCategory/aa-1) in the Category mapping row.Why are Shopify orders showing as unpaid in Flxpoint?
authorized. Shopify marks orders as "authorized" between placement and payment capture: if your filter only includes paid, those orders arrive before payment is confirmed and show as unpaid. Add authorized to the financial-status filter in Get Orders if you process orders before payment capture completes.Can I connect multiple Shopify stores?
Shopify – Brand A – US vs Shopify – Brand B – EU). Each channel's integrations run completely independently.How do I map a Flxpoint field to a Shopify metafield?
namespace.key (e.g. custom.material) and select the correct metafield type (text, number, boolean, JSON, rich text, date). The definition must already exist in Shopify before the sync runs: create it at Shopify Admin → Settings → Custom Data. The template shows a Valid/Invalid status per metafield row to catch type mismatches before publishing.