Shopify is a leading eCommerce platform that allows businesses to sell products online and manage their sales channels efficiently. Integrating Shopify into Flxpoint as a channel allows you to automate order processing, inventory syncing, and product publishing between Flxpoint and Shopify. It helps streamline operations, ensuring that your product data and inventory levels are always up-to-date across your sales platforms.
How to Connect
- Import Listings – bring existing Shopify products/listings into Flxpoint.
- Publish Listings – send product data from Flxpoint to Shopify.
- Sync & Link Listings – link existing Shopify products to your catalog to avoid duplicates.
- Get Orders – import Shopify orders into Flxpoint.
https://cool-gadgets.myshopify.com
), not your custom domain (e.g., coolgadgets.com
).
Find it in Shopify Admin → Settings > Domains.
- Enter your .myshopify.com Store URL (e.g., https://your-store-name.myshopify.com).
- Click Continue / Authorize to open Shopify’s approval screen.
- Who can approve? Store owner or staff with app-install permissions.
- Not the owner? Ask the owner to approve, or request temporary staff access with app-install permission.
- Import Listings — choose defaults (e.g., create new listings as Paused so you can review before publishing).
- Sync & Link Listings — link existing Shopify products with your catalog to avoid duplicates.
- Publish Settings — choose which product fields Flxpoint sends to Shopify (title, description, images, etc.).
- Category/Taxonomy notes — ensure internal categories map to valid Shopify taxonomy values.
- Get Orders — select statuses/timeframe; confirm how orders should flow.
- Order Settings — routing preferences, timing windows, cancellations.
- Shipping/Carrier Mappings — map your carriers/service levels.
-
Import Listings — What: pull existing Shopify products/listings into Flxpoint.
When: already live on Shopify and want Flxpoint to mirror them.
Tip: great first run for established catalogs. -
Publish Listings — What: push product data from Flxpoint to Shopify.
When: launching or updating products.
Tip: confirm taxonomy/category mapping first. -
Sync & Link Listings — What: match existing Shopify products with your catalog.
When: migrating to Flxpoint or preventing duplicates.
Tip: run a small linking batch and spot-check before scaling. -
Get Orders — What: import new Shopify orders into Flxpoint.
When: ready to process orders here.
Tip: set Order Settings and Carrier Mappings beforehand.
- Pricing / Quantity — markups and buffers used by Publish.
- Listing Status — readiness/errors before Publish.
- Shipping / Carrier Mappings — map service levels correctly.
- Settings — channel-specific defaults and advanced options.
- Admin — diagnostic/advanced tools.
*.myshopify.com
✔️ | Import small sample ✔️ | Check mapping ✔️ | Publish 1–2 items ✔️ | Get Orders test ✔️
-
“URL invalid” → Use
https://your-store-name.myshopify.com
(not your custom domain). - “Can’t approve app” → Ask the store owner or request app-install permission.
- “Nothing after Authorize” → Unblock pop-ups; confirm you’re approving the correct store if you manage multiple shops; retry.
Listing Operations
Import Listings
Import Listings brings your Shopify products (parents & variants) into Flxpoint so you can manage them centrally. You’ll connect Shopify, choose a few settings (like Set New Listings to Paused and Master SKU), and run the import manually (no scheduling).
-
1Connect Shopify
New to this? Click Create Connection, choose Shopify (OAuth), and approve the app on your store. If you already connected your store, just pick it from the list.
-
2Configure Settings
- Set New Listings to Paused — Start new imports as Paused so you can review and link to sources first.
- Master SKU — Choose which Shopify field becomes your unique ID in Flxpoint (usually Variant SKU or Barcode).
- Product & Listing Management — Decide whether we only create new items or also update existing ones when a match is found.
Why “Paused” helps: It gives you a safe review step to catch errors before activating listings. -
3Run the Import
Click Run Sync. This runs on demand (no scheduler).After completion, check Recent Notifications for created/updated counts and any errors.
- Don’t have Variant SKUs? Add SKUs in Shopify first. Missing SKUs often cause “SKU must be provided” errors.
- Unsure about Master SKU? Pick the field that’s unique per variant. If in doubt, use Variant SKU.
- Review Paused Items: Go to Channel Listings, open the Paused items, verify data, and connect to sources if needed.
- Unpause Listings: Select the listings → Actions → Edit → Unpause.
-
Product & Listing Management modes:
- Create Products & Listings Only: Import & link by SKU; create new when no match exists.
- Create New Products Only: Build new products in Flxpoint without touching existing ones.
- Create and Update Products & Listings: Import & link by SKU and overwrite matches with Shopify data; create when no match exists.
Parents and variants from Shopify, including core details, images, and metafields.
Shopify Field | Maps To | Example | Purpose | Status |
---|---|---|---|---|
externalListingId | Flxpoint externalListingId | 123456789 | Identifies the parent listing | Supported |
SKU (Handle) | Flxpoint SKU | product-handle | Identifier for the product | Supported |
Title | Flxpoint Title | Blue T-Shirt | Product name | Supported |
Description | Flxpoint Description | Comfortable cotton t-shirt | Product description | Supported |
Manufacturer | Flxpoint Manufacturer | BrandX | Product manufacturer | Supported |
Images | Flxpoint Images | image_url.jpg | Product images | Supported |
customField (Product Metafields) | Flxpoint customField | color: blue | Additional product metadata | Supported |
Attributes (Tags) | Flxpoint Attributes | tag: summer | Product attributes | Supported |
Category1/2/3 (CustomCollections) | Flxpoint Categories 1–3 | Apparel / T-Shirts / Casual | Category context | Supported |
Shopify Field | Maps To | Example | Purpose | Status |
---|---|---|---|---|
externalListingId | Flxpoint externalListingId | 987654321 | Identifies the variant | Supported |
SKU | Flxpoint SKU | variant-sku-001 | Unique identifier | Supported |
UPC (Barcode) | Flxpoint UPC | 012345678905 | Universal product code | Supported |
Title | Flxpoint Title | Blue T-Shirt – Medium | Variant name | Supported |
Price / MSRP / SalePrice | Flxpoint Price / MSRP / SalePrice | 29.99 / 39.99 / 24.99 | Pricing | Supported |
Quantity | Flxpoint Quantity | 100 | Available stock | Supported |
customFields (Variant Metafields) | Flxpoint customFields | size: medium | Additional metadata | Supported |
Options | Flxpoint Options | Medium, Blue | Variant options | Supported |
Weight / Unit | Flxpoint Weight / Weight Unit | 0.5 / lbs | Weight & unit | Supported |
- “SKU must be provided…” — Add Variant SKUs in Shopify, then re-run the import.
- Connection errors — Re-authorize the Shopify app or confirm the correct store connection.
- Unexpected overwrites — If you chose “Create and Update…”, Shopify data will overwrite matched items. Pick the mode that fits your workflow.
- Manual Execution: Import Listings doesn’t support scheduling.
- Master SKU: Choose a unique field (Variant SKU or Barcode) to ensure clean linking and updates.
- Results: Check Recent Notifications after each run for counts and error messages.
Sync & Link Listings
Shopify — Sync & Link Listings keeps your Shopify product price, quantity, and key attributes in sync with your Flxpoint listings. You’ll (1) connect Shopify, (2) configure linking and sync options (Location ID, Linking Priority, etc.), and (3) define a Sync Listings mapping template so we know which fields to send. You can run on demand or schedule it.
-
1Connect Shopify:
Choose (or create) your Shopify connection via OAuth and click Save and Proceed.
Note: If you manage multiple stores, double-check you authorized the correct shop domain before proceeding.
-
2Configure Settings:
- Location ID — Inventory location to update. Must match a valid Shopify location or quantities won’t move.
- Linking Priority — Add rows like Listing Variant → SKU ↔ Shopify Variant → SKU. We try from top to bottom until a match is found.
- Scheduling — Optional. Enable a cadence (e.g., hourly/daily) if you want automatic sync.
- 3Define a Mapping Template: Select your Sync Listings template (e.g., Shopify Sync Listings 1) so we know which fields to send to Shopify (Quantity, Price, SKU, etc.). Save, then Run Sync or let the schedule take over.
- Wizard steps: Connect an Integration, Configure Settings, Define a Mapping Template — each shows a check mark when complete.
- Tooltips that explain Linking Priority (“rows are tried top to bottom”).
- A scheduling toggle on the Configure screen if you want automation.
Template | Use Case | What it Covers | Availability |
---|---|---|---|
Shopify Sync Listings 1 | Keep Shopify price/qty in sync | Maps List Price → Price, Quantity → Quantity, SKU → SKU. | Available |
How your Flxpoint listing fields flow to Shopify.
Flxpoint Field (From) | Shopify Variant Field (To) | Type | Required? | Notes |
---|---|---|---|---|
Listing Variant → Quantity | Quantity | Number | Yes | Inventory updates occur at the selected Location ID. |
Listing Variant → List Price | Price | Number | Recommended | Use rules if you need markups/rounding. |
Listing Variant → SKU | SKU | Text | Recommended | Primary match key for Linking Priority. |
Rule | Type | When it Helps | What it Does |
---|---|---|---|
Markup price by % | Number | Create Shopify selling price from cost or list price | Applies a percentage increase and can round to .99. |
Clamp min/max quantity | Number | Prevent over-listing or under-listing | Forces the sent qty within your safe range (e.g., 1–50). |
When SKU starts with … then set value | String | Account for vendor prefixes | Outputs a different field or flag when the pattern matches. |
Utility | Availability | How You Might Use It |
---|---|---|
Mapping Sets | Optional — available | Combine inputs (e.g., base price + fee) into one output. |
Lists | Optional — available | Reusable value lists (approved brands, restricted SKUs). |
Builders | Optional — available | Create custom outputs if your Shopify workflow needs them. |
- Shopify connection is authorized and saved.
- Location ID is set to a valid Shopify inventory location.
- Linking Priority includes at least one reliable pair (usually SKU ↔ SKU).
- A Sync Listings mapping template is selected and saved.
- Scheduling is enabled if you want automation; otherwise run manually.
- Quantity didn’t change — Confirm the template maps Quantity → Quantity and that the location matches your Shopify Location ID. Ensure “Track inventory” is enabled on the variant in Shopify.
- Nothing linked — Review Linking Priority; start with SKU ↔ SKU. Make sure your Shopify variants actually have SKUs.
- Price not updating — Verify List Price → Price is mapped and that no other app overrides price after our sync.
- API throttling — Shopify may rate-limit. Space your schedule (e.g., hourly) and reduce batch sizes if available.
- Hidden vs Delisted — “Hide” (set to out-of-stock / remove sales channel visibility) is reversible; “Delist” requires publishing again.
Feature | Availability | What to Expect |
---|---|---|
Hiding | Supported | Use rules to hide when qty ≤ 0 or based on flags. |
Delisting | Supported | Removes item from sale; re-publish to restore. |
Custom Fields | Not primary | Sync focuses on price/qty/SKU; other attributes depend on your template. |
Multiple Locations | Supported (single target) | Sync applies to the chosen Location ID for this integration. |
Scheduling | Supported | Run on demand or enable a recurring schedule. |
Publish Listings
Walmart — Publish Listings creates new Walmart product listings from your Flxpoint data. You’ll (1) connect Walmart, (2) set options like ship region/method, tax code, fulfillment lag time, and optional template IDs, and (3) choose a Publish Listings mapping template that sends Description, GTIN/UPC, Title, Weight, Price, Categories and more. Finished steps show a check mark in the wizard.
- 1Connect Walmart: Pick your Walmart connection and click Save and Proceed.
-
2Configure Settings:
- Ship Region & Ship Method — choose where/how you ship.
- Remove Free Shipping & Shipping Cost — set a uniform cost (mapping can override).
- Tax Code — a Walmart tax code for all products (mapping can override).
- Fulfillment Lag Time — required for Walmart Canada; days between order and ship.
- Listing End Date — optional expiration in days.
- Fulfillment ID & Shipping Template ID — optional Walmart IDs you may pass per product.
- Advanced — enable Product ID Override or Product SKU Override if you need to update an existing Walmart association (don’t enable both at once).
-
Publication/Channel ID — if your workflow originates from Shopify content, ensure the correct
Publication (Sales Channel) ID from your Shopify store is selected or mapped where applicable. Stores with multiple
sales channels (Online Store, POS, custom channels) can have multiple publication IDs; using the wrong ID may cause
content/images to fail validation on Walmart.
Tip: In Shopify Admin → Settings → Apps and sales channels, note the specific sales channel you publish from. If your Flxpoint template or rules reference a Publication/Channel ID, make sure it matches that channel.
- 3Define a Mapping Template: Select your Publish Listings mapping template (e.g., Publish Listings 1) so we know which fields to send to Walmart (Description, Identifier, Brand, Weight, Item Price, Category/Aspects, Images, etc.). Then run manually or set a schedule.
- Wizard steps: Connect an Integration, Configure Settings, Define a Mapping Template.
- Tooltips for fields like Tax Code, Fulfillment Lag Time, template IDs, and Publication/Channel ID.
Template | Use Case | What it Covers | Availability |
---|---|---|---|
Publish Listings 1 | Create new Walmart items | Required category aspects + Variant fields (Description, GTIN/UPC/EAN, Images, Item Price, Quantity, Title, Weight, Manufacturer/Brand, SKU, Category fields, etc.). | Available |
Quick snapshot of how Flxpoint fields flow into Walmart for publishing.
Flxpoint Field (From) | Walmart Field (To) | Type | Required? | Notes |
---|---|---|---|---|
Listing Parent → Description | Description | Text | Yes | Parent or variant description supported. |
Listing Variant → GTIN / UPC / EAN | GTIN / UPC / EAN | Text | Yes (one valid ID) | Validate length; add leading zeros with a rule if needed. |
Listing Parent → Brand | Manufacturer / Brand | Text | Yes | Brand/manufacturer on Walmart. |
Listing Variant → Weight | Weight | Number | Yes | Weight is mandatory to publish. |
Listing Variant → List Price | Item Price | Number | Yes | Your selling price on Walmart. |
Listing Parent → Category (Walmart) | Category/Aspects | Text | Yes | Sub-category must match Walmart taxonomy. |
Listing Variant → SKU | SKU | Text | Yes | Primary item identifier. |
Images (Parent/Variant) | Images | List | Yes | Provide at least one valid image URL. |
Rule | Type | When it Helps | What it Does |
---|---|---|---|
UPC padding | String/Number | UPC is 11 digits | Prefixes a 0 to make a valid 12-digit UPC. |
Price rounding | Number | Consistent endings | Rounds Item Price to .99. |
Min/Max price guard | Number | Respect MAP | Prevents Item Price from falling below your MAP floor. |
Utility | Availability | How You Might Use It |
---|---|---|
Mapping Sets | Optional — available | Compose Item Price from base + fees. |
Lists | Optional — available | Keep valid category labels or restricted brands. |
Builders | Optional — available | Create a custom output if your category needs extra structure. |
- Walmart connection saved on Step 1.
- Weight, valid identifier (GTIN/UPC/EAN), images, manufacturer/brand, description and Walmart category are present.
- Fulfillment Lag Time set (required for Canada).
- If using template IDs, provide Fulfillment ID and/or Shipping Template ID as needed.
- If your content starts from Shopify data, ensure the correct Publication/Channel ID is referenced where applicable.
There is no direct field in the mapping template to send MAP/MSRP as separate attributes. To honor MAP/MSRP:
- Price Rules in Flxpoint: set Item Price equal to your MAP when present, or block prices below MAP.
- Walmart Repricer: configure the repricer in Seller Center; our feed provides the base Item Price and Walmart applies adjustments.
-
Advanced image duplication logic error — Walmart may reject duplicate primary images or repeated URLs:
- Ensure the main image is unique and high quality; remove exact duplicates from the image set.
- If sending parent + variant images, verify URLs are distinct per variant where applicable.
-
“Compare at price” is lower than “Item Price” — Walmart expects the reference/compare price to be
greater than your Item Price:
- Adjust your rule so Item Price ≤ Compare at price (or omit compare price if not needed).
- Re-run the publish job after correcting the values.
-
Publication/Channel ID issue (from Shopify) — If your template/rules reference a Shopify Publication (Sales Channel) ID:
- Confirm the correct Publication/Channel ID for the sales channel you actually use in Shopify (Online Store, POS, custom channel).
- Mismatch can cause media/content validation failures on Walmart. Align the ID and republish.
-
Product not uploading
- Condition must be New or Refurbished.
- Sub-category must match Walmart taxonomy.
- Required fields can’t be empty: Weight, Country Code, UPC/GTIN, Image, Manufacturer, Description, Category.
- Fields not publishing — verify mappings are enabled in your template (Description, GTIN/UPC/EAN, Category, Item Price, Weight).
- Delays — new listings can take up to 24 hours to appear after feed submission.
Feature | Availability | Notes |
---|---|---|
Custom Fields | Not supported | — |
Attributes / Tags | Not supported | — |
Variations / Options | Not supported | Publish is for single-variant offers (use category aspects where required). |
Generic Pricing (& Currency) | Supported | Sends Item Price from your template/rules. |
Client Pricing (& Currency) | Not supported | — |
Quantity | Supported | Sent when required by category. |
Multiple Warehouses | Not supported | — |
Weights & Dimensions | Supported | Weight is mandatory to publish. |
Images | Supported | Provide valid URLs. |
Categories | Supported | Must match Walmart taxonomy. |
Overwriting Supported | Supported | UPC/ID or SKU association can be updated via overrides (don’t enable both simultaneously). |
Offerings vs Creation | Supported | New product can be created; requires valid UPC/GTIN to match catalog. |
HTML Descriptions | Supported | Basic HTML allowed by Walmart spec. |
Limitations | — | To update shipping on product, provide FULFILLMENT ID with the SHIPPING TEMPLATE ID when required. |
Order Operations
Get Orders
Shopify — Get Orders imports orders from Shopify into Flxpoint and lets you control which orders and lines arrive. You can keep your preferred Shopify order number in Flxpoint and support print-on-demand “In Progress” flows.
- 1Connect: Authorize your Shopify store and click Save and Proceed.
-
2Filters & Statuses:
- Where: Get Orders → Step 2: Filters
-
Fulfillment status: select
unfulfilled
and/orpartial
. These include orders whose underlying fulfillment orders are open orin_progress
. -
Financial status: include the statuses you need (e.g.,
paid
,authorized
).
Why this works: Shopify tracks production at the fulfillment-order level. Usingunfulfilled
/partial
reliably brings in those jobs while they’re in progress.Quantity note: Map line Quantity fromline_items.quantity
. Using fulfillable quantity can cause orders to import “On Hold”. -
3Advanced options (optional):
-
Import Already Fulfilled Order Items — bring in lines with
fulfillable_quantity = 0
for accounting/reporting. - Allow Zero Fulfillable Shipment — marks those lines as shippable so you can create Fulfillment Requests and Purchase Orders. Use this with the option above.
Use case: Shopify Collective or POD flows where Shopify fulfills, but you still need POs and tracking in downstream systems. -
Import Already Fulfilled Order Items — bring in lines with
- 4Run or Schedule: Test with a manual run, then enable a schedule if you want automation.
Choose which Shopify identifier becomes your Flxpoint Order Reference Number to keep reporting consistent.
Flxpoint Field | Shopify Property | Looks Like | When to Use |
---|---|---|---|
Order Reference Number |
order.name
|
#1001 | Matches the label seen in Shopify UI. |
Order Reference Number |
order.order_number
|
1001 | Numeric only; ideal when downstream systems expect digits. |
Order Reference Number |
order.id (Shopify orderId)
|
gid or numeric ID | Best for cross-system joins and shipment lookups. |
Flxpoint Line Field | Shopify Property | Notes |
---|---|---|
SKU |
line_items.variant.sku
|
Primary match key for routing and linking. |
Quantity |
line_items.quantity
|
Use this (not fulfillable qty) to avoid On-Hold imports. |
Unit Price |
line_items.price
|
Pre-discount unit price. |
Line Discount |
line_items.total_discount
|
Optional: map if you need discount detail per line. |
Title / Variant |
line_items.title , line_items.variant_title
|
Optional metadata for docs and packing slips. |
order.id
saved to the FR. You can import the order from the channel and the tracking from the source—without routing the FR.
- Shopify connection is authorized and saved.
-
Filters include
unfulfilled
/partial
(and the needed financial statuses). -
Quantity mapping uses
line_items.quantity
. - Advanced options are enabled if you need fulfilled lines (and set to shippable).
- Schedule is set if you want automation; otherwise run on demand.
-
Order “On Hold” — Check Quantity mapping; use
line_items.quantity
. Re-run the job. - Missing already-fulfilled lines — Enable Import Already Fulfilled Order Items.
- Need FR/PO from fulfilled lines — Also enable Allow Zero Fulfillable Shipment.
-
Tracking won’t import (POD flow) — Save Shopify
order.id
as reference and use the source’s “fetch shipments by orderId”. - Order not fetched — Loosen financial/fulfillment filters temporarily to confirm visibility.
- Rate limits — Shopify throttling can delay runs. Space schedules (e.g., hourly) and reduce batch sizes if available.
-
Fulfillment logic: Shopify’s order-level
fulfillment_status
is legacy; including unfulfilled/partial captures in-progress fulfillment orders. - Defaults: Both advanced options are Off by default.
- Best practice: Keep a test order to validate mapping and filters before scaling.
Sync Orders
Shopify — Sync Orders sends shipment updates from Flxpoint to Shopify: tracking numbers/URLs, carrier, and status. You can optionally post a Closed status for orders with partial or no fulfillment (useful for in-store/POS flows). Multi-location is supported via Location ID.
- 1Connect Shopify: Create/select your OAuth connection and click Save and Proceed.
-
2Configure Settings:
- Location ID — Required. Fulfillments post to this Shopify location.
- Sync “Closed” Order Status — Optional. Sends a Closed status for orders with partial/no fulfillment (common for in-store orders).
- Shipping Mappings — Map Shopify rates (e.g., Free, Expedited) to your Flxpoint policies (Ground, Two Day, etc.).
- Channel Shipping Text (In-Store) — Map text such as “In-Store”/“POS” so your In-Store workflow rules can identify these orders.
- 3Run the Sync: Use Run Sync to post fulfillments. If a shipment spans multiple locations, lines from the selected Location ID post now; others retry on the next run.
Align your Shopify rate names with Flxpoint shipping policies.
Shopify Rate | Flxpoint Policy | Example Use |
---|---|---|
Free | Ground | Free economy shipments |
Standard | Two Day Shipping | Guaranteed 2-day delivery |
Expedited | Expedited | Paid faster option |
- Location ID is required. Verify the numeric ID in Shopify and enter it here so fulfillments hit the right location.
- Mixed-location orders: Lines for your selected Location ID post now; other locations are retried on subsequent runs.
- Template type: Sync Orders (e.g., “Shopify Sync Orders 1”).
- UI has columns for Flxpoint Shipment (left) → Shopify Fulfillment (right).
- Common actions: Save Mapping, Duplicate, Delete.
Flxpoint Field | Shopify Field | Required? | Notes |
---|---|---|---|
Shipment → Tracking Number | Tracking Number | Required | Primary identifier for the fulfillment. |
Shipment → Carrier | Tracking Company | Recommended | Carrier name (UPS, USPS, FedEx, etc.). |
Shipment → Tracking URL | Tracking URL | Optional | Deep link to carrier tracking. |
Notify Customer (value/rule) | Notify Customer | Optional | Set to true to email customers on post. |
Location (integration) | Location ID | Required (via config) | Usually set by the integration using your Location ID. |
- Don’t Map — field not sent.
- Set to Empty — clears destination value.
- Field — map a Flxpoint field (e.g., Tracking Number → Tracking Number).
-
Value — static value (e.g.,
true
for Notify Customer). - Rules — conditional outputs (e.g., notify only when Carrier = UPS/FedEx).
- Shopify OAuth connection is saved.
- Location ID is correct and active in Shopify.
- Template maps Tracking Number (and preferably Carrier + Notify Customer).
- Shipping Mappings cover your live rate names.
- Sync “Closed” is only enabled if you truly want that status posted.
- Shipment didn’t post — If the product was deleted in Shopify after order creation, Shopify can’t attach the fulfillment. Re-link the product/variant in Shopify & Flxpoint, then re-run.
- Wrong location — Verify the numeric Location ID matches the items being fulfilled.
-
No customer email — Set Notify Customer to
true
(value or rule) in the template. - Mixed-location orders — Only lines for your Location ID post in the current run; others retry next run.
- API rate limits — Stagger runs or reduce batch size if available.
- Required: Tracking Number mapping and a valid Location ID.
- In-Store/POS: Use Channel Shipping Text mapping and consider posting Closed to mirror your POS behavior.
- Scope: Sync Orders pushes fulfillments/status; it does not re-price or re-publish products.
Troubleshooting Flashcards
Product not publishing
Publish ListingItem exists but isn’t visible in the Shopify storefront.
- Product status is set to Draft or not available to the channel.
- Missing required fields, images, or invalid handles.
Fix
- Ensure status = Active and the product is available to the intended sales channel.
- Provide title, description, at least one image, and a valid URL handle.
- Re-send the publish job and confirm in the Products list.
Advanced image duplication logic
ImagesShopify rejects or deduplicates images unexpectedly.
- Duplicate URLs or identical image hashes are detected.
- Variant-level vs product-level image mismatch.
Tips
- Use unique, stable HTTPS URLs; avoid reusing the same CDN link for multiple images.
- Attach variant-specific images at the variant level; general assets at the product level.
- Remove exact duplicates; ensure dimensions ≥ 1000px on the largest side.
Compare-at lower than price
PricingValidation error: compare_at_price must be > price.
- “Price” and “Compare at price” fields inverted or rounded down.
Fix
- Ensure compare_at_price > price for discounts to render properly.
- Adjust rounding rules and minimums to avoid inversions.
- Re-send price update and verify on the PDP.
Publication / Channel ID issues
Sales ChannelsWrong or missing publication/channel ID blocks availability.
- Product exists but not available to the intended channel/app.
- Multiple channels with different publication IDs.
Fix
- Verify the correct publication/channel ID from your Shopify store.
- Map that exact ID in the publish step; re-send availability for the target channel.
- If using multiple channels, ensure each has explicit availability set.
Variants rejected
VariantsOption values or SKUs collide across variants.
- Duplicate SKUs or missing option names (e.g., Size/Color).
- Variant requires barcode/SKU fields per policy.
Fix
- Provide consistent option names (e.g., Option1=Color, Option2=Size).
- Ensure unique SKUs per variant; add barcode if required.
- Recreate invalid variants rather than patching broken ones when needed.
Inventory not updating
InventoryStock levels remain unchanged in Shopify.
- Wrong location or tracking disabled at variant level.
- Multiple jobs/sources competing over qty.
Fix
- Confirm inventory location ID and that “Track quantity” is enabled on variants.
- Ensure one system “owns” qty updates; avoid duplicates.
- Re-send inventory for the correct location/variant IDs.
Price not updating
PricingAPI response OK but PDP shows old price.
- Rules/rounding overrides or app conflicts.
- Updating the wrong variant ID or currency miss.
Fix
- Target the correct variant_id and currency.
- Check price rules/discount apps that rewrite prices after updates.
- Clear caches or refresh the PDP; validate in Admin first.
Order not importing
OrdersNew orders aren’t appearing in the workflow.
- Webhook not installed or paused; filter excludes orders.
- Financial/fulfillment status not matching your criteria.
Tips
- Confirm order webhooks/app is active and subscribed to orders/create.
- Remove overly strict filters (e.g., only “paid” if you also need “authorized”).
- Test with a fresh order; check logs for delivery status.
Fulfillment/tracking rejected
FulfillmentUpdate fails or duplicated fulfills are blocked.
- Invalid tracking URL/carrier or fulfillments out of order.
- Trying to re-fulfill a fully shipped order.
Fix
- Use supported carriers or set custom tracking URL when needed.
- Fulfill line items once; update tracking instead of re-creating fulfillments.
- Handle partials correctly (one fulfillment per shipment).
Handle/SEO conflicts
ContentDuplicate handles or invalid characters block publishing.
- URL handle already taken by another resource.
- Special characters/length issues in titles or handles.
Fix
- Generate unique handles (slugified title + suffix if needed).
- Remove unsupported characters; keep length reasonable.
- Re-send product and confirm the final handle in Admin.
App/metafield dependencies
AppsPublishing depends on required metafields/apps.
- Missing metafields required by themes or apps.
- App-enforced validations failing silently.
Tips
- Define required metafields (namespace/key) before publish.
- Check theme/app docs for mandatory fields/validation.
- Re-send with those fields populated; verify via GraphQL Admin API if needed.
Throttling / timeouts
APILarge batches hit rate limits or timeouts.
- GraphQL/REST limits exceeded; partial failure.
- Long-running image uploads stall batches.
Tips
- Batch by brand/category; respect leaky-bucket limits.
- Retry with backoff; monitor API cost (GraphQL) and headers (REST).
- Upload images first; then attach to products/variants.