Shopify as a Source

Shopify is a popular eCommerce platform that allows businesses to manage online stores. Integrating Shopify as a source in Flxpoint enables the seamless synchronization of products, inventory, and orders between the two platforms. This integration helps streamline order processing, product listings, and inventory updates, ensuring that your Shopify store is always in sync with your Flxpoint account.

 

Add Source and Establish Connection

Shopify Integration Setup
📋 Phase 1: Initial Channel Setup +
Goal

Create your Shopify Sales Channel in Flxpoint and launch the setup wizard so you can connect your store.

Access Sales Channels
Log in to your Flxpoint account and navigate to Sales Channels.
Create a New Channel
Click "+" to create a channel.
Tip: Have your Shopify store URL ready for the connection process.
Select Shopify and Name Channel
In the Channel Setup screen:
  • Search for Shopify and select it.
  • Enter a descriptive Channel Name (e.g., "Shopify Store").
  • Click Save to continue.
Start the Integration Process
After creating the channel, you’ll see "No integrations created yet." Click Get Started to launch the setup wizard.
🔐 Phase 2: Authentication & Connection +
Goal

Choose your connection method and authorize Flxpoint to access your Shopify Admin for listings and order sync.

ℹ️
Recommended: Connect via OAuth2 when you can log into the Shopify store (store owner/admin present).
Vendors: If you don’t have access to authorize OAuth2, use a Custom App and share credentials (API Key/Secret + Admin API token) following the Vendor’s Guide to Shopify Custom App.
If the connection later loses permissions, see Shopify Re-authentication (OAuth).
Select the Integration Type
In Connect to Your Shopify Store, select API - Shopify App (OAuth2) for secure authorization, or choose API - Bearer Token / API - Basic Auth for manual credential entry.
Heads-up for vendors: If OAuth2 isn’t possible, pick Bearer Token or Basic Auth, then create a Custom App per the Vendor’s Guide.
Connect Your Account
For OAuth2:
  • Enter your Store URL (e.g., https://your-store-name.myshopify.com).
  • Click Initiate OAuth2 Flow and follow prompts to grant access.
For Bearer Token or Basic Auth (vendor/custom app flow):
  • In Shopify Admin: Settings > Apps and sales channels > Develop apps.
  • Create and install your app, then generate the Admin API access token.
  • Copy API Key, API Secret Key, and Admin API access token.
  • Follow the steps in the Vendor’s Guide to Shopify Custom App.
Important: Use the .myshopify.com URL (not your custom domain).
Authorize Access
For OAuth2, no further credentials are needed after authorization. For Bearer Token or Basic Auth:
  • Set a Connection Name (e.g., "Shopify Connection #1").
  • For Bearer Token, paste the Admin API access token into the Token field.
  • For Basic Auth, enter the API Key and API Secret Key.
  • Input your Store URL.
  • Click Test Connection and then Continue if successful.
Troubleshooting: If you see 401/403 or permission errors, re-authorize using Shopify Re-authentication (OAuth).
Verify Connection
Review connection details in the setup screen to ensure accuracy, then proceed.
ℹ️
Shopify API Rate Limits: See Shopify API Rate Limits.
  • REST API: 2 requests/sec (4/sec for Plus).
  • GraphQL: 50 points/sec.
🔄 Phase 3: SKU Mapping & Configuration +
Goal

Confirm how SKUs map between Flxpoint and Shopify, then finalize listing and order settings so the channel behaves correctly.

Set Up SKU Mapping
Configure Import Listings to align with your inventory:
  • Set new listings to Paused for review before publishing.
  • Map your internal Master SKU to Shopify’s listing SKU.
Pro Tip: Use consistent SKU naming for easier inventory management.
Configure Integration Settings
Set up automated features:
  • Publish Listings: Map categories to global IDs from Shopify Product Taxonomy and review options like “Truncate Title to 255”.
  • Order Sync: Select statuses (e.g., Open) and time range for Get Orders. Orders with or without a Location ID are saved unless disabled in Advance Config.
  • TikTok Shop (Optional): Install a TikTok Shop app in Shopify, connect your store, and verify listings can be published via Flxpoint.
Click Save to finalize.
Note: TikTok Shop is optional and only needed if you sell on that platform.
Complete Setup
Review settings and click Confirm & Finish. In Sales Channels, start Import Listings and Get Orders, then review Sync and Link Listings and Publish Listings.
Final checklist:

 

Product & Order Operations

Now that you’ve finished the wizard, you’ll see Shopify has different integrations available in Flxpoint: two for products and two for orders. Get Inventory [Primary] (GIP) and Get Inventory [Secondary] (GIS) keep your Shopify stock and pricing updated, while Send Fulfillment Requests and Get Shipments handle sending orders to Shopify and pulling back shipment/tracking data. All four use the same Shopify connection and credentials you just set up so you can simply choose the operations that match your workflow.

 

Product Operations

Get Inventory Primary imports your Shopify catalog including metadata such as attributes, images, titles and description. We recommend running this once daily to import any new items. Get Inventory Secondary is a faster, more efficient operation to import more frequent pricing and quantity updates. We recommend running this hourly.

Get Inventory (Primary)

Supported

Shopify – Get Inventory (Primary)

Introduction

Shopify – Get Inventory (Primary) syncs inventory from one Shopify Location into Flxpoint’s Global Inventory Pool (GIP). If you manage multiple Shopify locations, create one job per Location ID.

Setup steps
  • 1Add the job: Go to Channels → Shopify → Integrations, then select Get Inventory (Primary).
  • 2Connect Shopify: Choose your Shopify OAuth connection (or create one), then save.
  • 3Select a Location ID: Pick the Shopify Location you want to pull inventory from (required).
  • 4Select a mapping template: Choose a template that maps SKU and Quantity.
  • 5Run or schedule: Run once to validate, then schedule if needed (hourly maximum).
How it works
  • 1Connect: Flxpoint connects to Shopify via OAuth.
  • 2Read products & variants: Flxpoint collects variant identifiers (including inventory item IDs).
  • 3Pull inventory levels: Flxpoint retrieves available inventory for your selected Location ID.
  • 4Map & save: Quantities are saved into GIP based on your mapping template.
Tip: Each job targets one Location ID. Use multiple jobs to cover multiple Shopify locations.
Settings you’ll configure
  • Connection: Your Shopify OAuth connection.
  • Location ID: The Shopify location to pull inventory from (required).
  • Mapping Template: Must map SKU and Quantity.
  • Sync Frequency: Manual or scheduled (hourly maximum cadence).
Cadence limit: This job cannot run more than once per hour.
Required mappings

To save inventory successfully: your template must map SKU and Quantity.

  • • If a variant has no SKU, Flxpoint can’t reliably match it for inventory updates.
  • • If Quantity isn’t mapped, inventory won’t populate in GIP.
Common field mapping (example)

This is a friendly example of how typical Shopify inventory fields map into Flxpoint.

Shopify Field Flxpoint Field Required? Notes
Variant SKU Product → SKU Yes Primary identifier for matching inventory updates.
Available Inventory → Quantity Yes Quantity saved into the Global Inventory Pool (GIP).
Location ID Job Setting (not a mapped field) Yes Inventory is pulled only for the selected Shopify location.
Quick validation checks
  • • Confirm the Location ID is correct for where you stock inventory in Shopify.
  • • Confirm every variant you expect to update has a SKU in Shopify.
  • • Run the job once manually after saving to confirm quantities appear in GIP.
Full refresh option (Force Full Inventory Fetch)

Force Full Inventory Fetch pulls inventory for all products/variants at the selected Location ID, even if those variants haven’t changed recently in Shopify.

  • When it helps: you imported products via file and quantities are blank or outdated in Flxpoint.
  • What to expect: the job may take longer on large catalogs.
  • Good practice: use it to normalize once, then return to standard runs.
Inventory not updating for some variants

Most common cause: missing SKUs or SKU not mapped.

What to do:

  • • Ensure every variant has a SKU in Shopify.
  • • Ensure your template maps Variant SKU → SKU and Available → Quantity.
  • • If you need a one-time full catch-up, enable Force Full Inventory Fetch and run again.
Common messages you might see
Duplicate metafield message
"duplicate rating_count product metafield found, values 0"

This message is typically harmless and does not block inventory saves.

Variant mapping skipped
"Failed to map variant(s), skipping Shopify Product"

Most likely fix: add/confirm SKUs for variants and verify the SKU/Quantity mapping.

Limitations & reminders
  • One location per job: create multiple jobs for multiple Shopify locations.
  • SKU is required for reliable inventory saves.
  • Hourly maximum cadence for this job type.
  • • Large catalogs may take longer due to platform/API constraints.
Key takeaway: Map SKU + Quantity, confirm your Location ID, run once to validate, then schedule (hourly max).
 
 

Get Inventory (Secondary)

Supported
Introduction

Shopify – Get Inventory (Secondary) updates variant-level inventory details for a specific Shopify Location ID. It’s designed to complement Get Inventory (Primary)—especially when you also want to update cost/pricing fields at the variant level.

Good to know: Each job targets one Location ID. Use multiple jobs if you manage multiple Shopify locations.
Setup steps
  • 1Add the job: Add Shopify – Get Inventory (Secondary) to your Shopify integration.
  • 2Connect: Select your Shopify OAuth connection.
  • 3Choose Location ID: Pick the Shopify Location ID you want to pull from.
  • 4Select a mapping template: Choose a template that maps at least SKU and Quantity, and optionally cost/pricing fields.
  • 5Run: Save, then run the job (or schedule it).
Best practices

Run order recommendation: If you’re using Primary to refresh quantities broadly (or you recently made major inventory changes), run Primary first, then run Secondary to apply any variant-level updates (like cost/pricing fields) afterward.

  • Stagger schedules to avoid overlapping long runs.
  • Use one job per Location ID for clearer troubleshooting.
What Secondary updates
  • Variant-level Quantity updates for the selected Location ID.
  • Optional variant-level fields based on your mapping template (example: Cost, MAP/MSRP-related fields).
Example: Schedule Primary at 02:00 to refresh quantities, then schedule Secondary at 03:00 to apply variant cost/pricing updates.
Required mapping
  • Variant SKU → SKU (required)
  • Available → Quantity (required)
Common fields
Shopify field Flxpoint field Type Required? Notes for you
Variant – SKU SKU Text Yes Primary identifier for saves.
Variant – Available Quantity Number Yes Saved at the variant level for the selected Location ID.
Variant – Cost Cost Number No Map if you want cost updates to apply with Secondary.
Variant – Compare at price MAP / MSRP (as configured) Number No Map only if you use these fields in your workflow.
Variant – Title Custom field Text No Optional reference-only field.
Notes
  • If variants are missing SKUs, they may be skipped during saves.
  • Use consistent templates across Primary/Secondary so fields align cleanly.
Quick checks
  • Your Shopify OAuth connection is selected and saved.
  • The Location ID is correct for the inventory you expect.
  • Your mapping template includes Variant SKU → SKU and Available → Quantity.
  • Variants in Shopify have SKUs populated.
Common issues

No updates (or fewer updates than expected)

  • Confirm the Location ID is the one holding inventory for those variants.
  • Verify required mappings (SKU + Quantity) and that SKUs exist on variants.
  • If you recently refreshed quantities using Primary, run Secondary after that refresh completes.
Log message example (informational):
"duplicate rating_count product metafield found, values 0"
This message is typically informational and does not block inventory saves.

“Failed to map variant(s), skipping Shopify Product”

"Failed to map variant(s), skipping Shopify Product"
  • Likely cause: Variant SKU is missing or not mapped.
  • Fix: Ensure every variant has a SKU and map Variant SKU → SKU and Available → Quantity.
Scheduling tips
  • Stagger Primary and Secondary schedules to avoid overlapping runs.
  • If you run a full quantity refresh in Primary, schedule Secondary afterward to apply variant-level cost/pricing updates.
  • If you see API throttling or long runtimes, reduce frequency and run during lower-traffic hours.
 
 
Optional but recommended

Keep your catalog up to date automatically

After configuring Get Inventory Primary and Get Inventory Secondary, you can schedule both jobs so items, inventory, and pricing update for you.

  • Schedule Primary to import new and updated items.
  • Schedule Secondary after Primary to refresh stock and pricing.
  • Adjust the cadence anytime if your supplier changes their update frequency.
How to schedule Get Inventory operations in Flxpoint
Click the animation to view it larger.

 

 

Order Operations

Configure Flxpoint to route orders to vendors for fulfillment and  import the shipment details, so they sync back to your sales channel and customer.

Send Fulfillment Requests

Supported

Shopify – Send Fulfillment Requests

Introduction

Welcome to the Shopify Send Fulfillment Requests integration guide. This integration enables Flxpoint to send fulfillment requests directly to Shopify, allowing Shopify to process and fulfill orders with complete and accurate information—including billing and shipping addresses, line items, and order notes. By keeping Flxpoint and Shopify in sync, it ensures smooth communication and reliable order fulfillment across your sales channels. Additionally, you can map customer fields in the Send Fulfillment Requests mapping template. When mapped, these fields override Shopify’s default customer detection and creation logic, giving you greater control over how customers are identified and created in Shopify. Let’s get started.

Purpose of This Integration

The Shopify Send Fulfillment Requests integration enables you to:

  • Send fulfillment requests from Flxpoint to Shopify for order processing.
  • Include detailed order information such as billing/shipping addresses, line items, and order notes.
  • Support multi-location fulfillment by specifying the correct Shopify Location ID.
  • Map Flxpoint order data to Shopify fields for accurate fulfillment request creation.

This ensures efficient order fulfillment and accurate data synchronization between Flxpoint and Shopify.

How the Integration Works

The integration follows these steps:

  • 1 Connecting to Shopify: Establish a connection using OAuth2 authentication to access your Shopify store.
  • 2 Preparing Order Data: Flxpoint gathers order details, including billing/shipping addresses, line items, and fulfillment request information.
  • 3 Mapping Data: Maps Flxpoint order data to Shopify fields (e.g., Billing Address, Line Items) using a mapping template.
  • 4 Sending Fulfillment Request: A POST request to /admin/api/{version}/fulfillment_requests.json sends the fulfillment request for a specified order ID to Shopify.
  • 5 Specifying Location: Includes the Shopify Location ID to ensure the request is routed to the correct fulfillment location.
  • 6 Confirmation: Shopify processes the fulfillment request, and Flxpoint logs the request status for tracking.
Pro Tip: Ensure accurate mapping of billing and shipping addresses to avoid fulfillment delays.
Note: The integration requires an existing order in Shopify; ensure orders are imported via Shopify Get Orders integration first.
Configuration Options

Customize the integration with these settings:

  • Connection: Select your Shopify OAuth connection (e.g., “Shopify Connection API - Shopify App (OAuth2)”).
  • Location ID: Specify the Shopify inventory location ID for routing fulfillment requests (required).
  • Mapping Template: Define how Flxpoint order data maps to Shopify fields (see Mapping Template Details), including optional customer fields. If you map customer fields here, they will override the default Shopify customer detection/creation logic.
  • Sync Frequency: Run manually or schedule syncs (e.g., hourly to process new orders).
Note: Verify the Location ID in Shopify to ensure fulfillment requests are sent to the correct location.
Note: If the vendor’s Shopify store does not have a fulfillment service configured, Shopify can return an error like {"errors":"Line item is using an invalid fulfillment service"}. In that case, either (1) ask the vendor to enable/tell you the exact fulfillment service name, or (2) stop sending a fulfillment service for that source.
Setup Instructions

Follow these steps:

  • 1 Add the Integration: Go to Channels > Shopify > Integrations, select “Send Fulfillment Requests.”
  • 2 Connect to Shopify: Select an existing Shopify OAuth connection or set up a new one.
  • 3 Configure Settings:
    • Specify the Location ID for fulfillment routing.
    • Configure sync frequency (e.g., hourly).
  • 4 Create Mapping Template: Configure field mappings for order data (see Mapping Template Details). For Shopify, make sure the shipping method title and the shipping price are both mapped — Shopify only sends the shipping line when both are present.
  • 5 Run the Integration: Start with Run Sync or schedule automatic syncs.
Multi-Location Support

Flxpoint supports Shopify’s multi-location inventory for accurate fulfillment requests:

  • Location ID Requirement: Specify a Location ID in Flxpoint to route fulfillment requests to the correct Shopify location. Refer to Shopify’s guide on managing locations.
  • Single Location Per Request: The integration sends fulfillment requests for one location per job, using the specified Location ID in the API call.
Pro Tip: Configure multiple integration jobs with different Location IDs to handle fulfillment across all Shopify locations.
Limitations

Be aware of these constraints:

  • Single Location Per Request: Fulfillment requests are sent for one location per job; multiple jobs are needed for multiple locations.
  • Order Dependency: Requires an existing order in Shopify; orders must be imported via Shopify Get Orders integration first.
  • API Rate Limits: Shopify API rate limits may affect large fulfillment request batches; monitor usage to avoid interruptions.
  • Custom Fields Limit: Order Note Attributes support up to 2 custom fields.
Mapping Template Details

Mapping templates control how Flxpoint order data is sent to Shopify for fulfillment requests.

Interface Overview
  • Screen labeled “Send Fulfillment Requests” at the top; name your template (e.g., “Shopify Send Fulfillment Requests 1”).
  • Buttons: Delete, Duplicate, Save Mapping.
  • Sections: Order Note Attributes, Customer, Billing Address, Discount Code, Line Item, Order, Shipping Address.
  • Columns: Flxpoint fields (left, e.g., Fulfillment Request Number), Shopify fields (right, e.g., Note).
Mapping Options
  • Don't Map: Ignore the field; no data is sent to Shopify.
  • Set To Empty: Clear the field in Shopify.
  • Field: Map a Flxpoint field to a Shopify field (e.g., Fulfillment Request Quantity to Shopify Line Item Fulfillable Quantity).
  • Value: Set a static value (e.g., Note to “Urgent Fulfillment”).
  • Mapping Set: Apply a predefined mapping set for complex mappings.
  • Rules: Apply conditional logic (e.g., send only if Fulfillment Request Total Cost exceeds $100).
Customer Mapping Behavior

The Send Fulfillment Requests template now exposes Shopify customer fields. These allow you to hard-code or dynamically control the customer that will be used/created in the vendor’s Shopify store.

If you map any customer fields in the template:

  • The mapped values override the existing customer logic.
  • Flxpoint will use the mapped values when determining the Shopify customer to associate with the order.
  • If any required customer field is missing from your mapping, the job will fail with an error indicating which required field is missing.

If you do not map customer fields, or if you only partially map them:

The existing default logic is used:

  • If a matching customer exists in Shopify, that customer is used.
  • If no customer exists, a new customer is created based on the order data.

This behavior allows you to either:

  • Continue relying on Shopify’s default “find or create customer” behavior, or
  • Take full control by explicitly providing the customer information via the mapping.
Line Item Mapping Requirement

The Shopify Line Item SKU and Fulfillable Quantity fields must be mapped to ensure proper fulfillment request processing.

  • Required Fields: SKU identifies items, and Fulfillable Quantity specifies the quantity to fulfill.
  • Error Scenario: Unmapped SKU or Fulfillable Quantity may cause fulfillment request failures:
    Invalid request: Missing required fields 'SKU' or 'Fulfillable Quantity' for fulfillment request
  • Fix: Go to Channels > Shopify > Templates > Send Fulfillment Requests > Field Mapping, map Fulfillment Request Item SKU to Shopify Line Item SKU and Fulfillment Request Item Quantity to Shopify Line Item Fulfillable Quantity, save, and re-run sync.
Recommendation: Always map SKU, Fulfillable Quantity, Billing Address, and Shipping Address fields for reliable fulfillment requests.
About fulfillment services and shipping lines: Some Shopify sources (e.g. Catch Surf, Kings Camo, Groove Life, Puffinware, DSG Shopify, AGC) did not have fulfillment services set up, so Shopify returned an empty list ("fulfillment_services": []). If you map a fulfillment service name in Flxpoint that does not exist in the vendor’s Shopify store, Shopify will reject the line with {"errors":"Line item is using an invalid fulfillment service"}. Always match the value you send to what the vendor actually has configured.
Shipping line requirement: when sending to Shopify, include both the shipping method title and the shipping price so Shopify can build the shipping_lines structure:
"shipping_lines": [
  {
    "title": "FedEx Standard Overnight",
    "price": "25.00",
    "code": "FEDEX_STANDARD_OVERNIGHT",
    "source": "manual"
  }
]
If the price is blank, Shopify may ignore the shipping method even if the title is mapped.
Complete Field Mappings

Below are the fields you can map from Flxpoint to Shopify, based on the provided mapping template:

Order Note Attributes Fields
Flxpoint Field Maps To Data Type Example Purpose Status
Custom Fields (2) Shopify Order Note Attributes - Custom Fields Text priority: high Adds custom attributes to order notes Supported (Up to 2)
Billing Address Fields
Flxpoint Field Maps To Data Type Example Purpose Status
Billing Address - Address Line 1 Shopify Billing Address - Address 1 Text 123 Main St Sets billing address line 1 Supported
Billing Address - Address Line 2 Shopify Billing Address - Address 2 Text Apt 4B Sets billing address line 2 Supported
Billing Address - City Shopify Billing Address - City Text New York Sets billing city Supported
Billing Address - Company Name Shopify Billing Address - Company Text Acme Corp Sets billing company name Supported
Billing Address - Country Shopify Billing Address - Country Text United States Sets billing country Supported
Billing Address - Country Code Shopify Billing Address - Country Code Text US Sets billing country code Supported
Billing Address - Email Shopify Billing Address - Email Text john.doe@example.com Sets billing email Supported
Billing Address - First Name Shopify Billing Address - Name Text John Sets billing first name Supported
Billing Address - Full Name Shopify Billing Address - Name Text John Doe Sets billing full name Supported
Billing Address - Last Name Shopify Billing Address - Name Text Doe Sets billing last name Supported
Billing Address - Phone Shopify Billing Address - Phone Text 555-123-4567 Sets billing phone number Supported
Billing Address - Postal Code Shopify Billing Address - Zip Text 10001 Sets billing postal code Supported
Billing Address - State Shopify Billing Address - Province Text New York Sets billing state Supported
Billing Address - State Code Shopify Billing Address - Province Code Text NY Sets billing state code Supported
Discount Code Fields
Flxpoint Field Maps To Data Type Example Purpose Status
Channel Invoice - Discount Total Shopify Discount Code - Amount Number $10 Sets discount amount Supported
Channel Invoice - Invoice Number Shopify Discount Code - Code Text DISCOUNT10 Sets discount code Supported
Channel Invoice - Discount Total Shopify Discount Code - Type Text fixed_amount Sets discount type Supported
Line Item Fields
Flxpoint Field Maps To Data Type Example Purpose Status
Fulfillment Request Item - Subtotal Shopify Line Item - Price Number $30 Sets line item price Supported
Fulfillment Request Item - Quantity Shopify Line Item - Fulfillable Quantity Number 2 Sets quantity to fulfill Required
Fulfillment Request Item - Bin Location Shopify Line Item - Fulfillment Service Text warehouse-1 Sets fulfillment service Supported
Fulfillment Request Item - Quantity Shopify Line Item - Fulfillment Status Text pending Sets fulfillment status Supported
Fulfillment Request Item - Title Shopify Line Item - Gift Card Text false Indicates if item is a gift card Supported
Fulfillment Request Item - PO Line Item # Shopify Line Item - ID Number 1001 Sets line item ID Supported
Fulfillment Request Item - Note Shopify Line Item - Properties Text color: blue Sets line item properties Supported
Fulfillment Request Item - SKU Shopify Line Item - Product Exists Text true Indicates if product exists Supported
Fulfillment Request Item - SKU Shopify Line Item - Product ID Text prod-123 Sets product ID Supported
Fulfillment Request Item - Quantity Shopify Line Item - Quantity Number 2 Sets total quantity Supported
Fulfillment Request Item - Quantity Shopify Line Item - Requires Shipping Text true Indicates if shipping is required Supported
Fulfillment Request Item - SKU Shopify Line Item - SKU Text item-sku-001 Sets line item SKU Required
Fulfillment Request Item - Title Shopify Line Item - Variant Title Text Blue T-Shirt - Medium Sets variant title Supported
Fulfillment Request Item - MPN Shopify Line Item - Vendor Text BrandX Sets vendor information Supported
Order Fields
Flxpoint Field Maps To Data Type Example Purpose Status
Billing Address - Email Shopify Order - Email Text john.doe@example.com Sets order email Supported
Channel Invoice - Total Shopify Order - Financial Status Text paid Sets financial status Supported
Fulfillment Request - Total Weight (lbs) Shopify Order - Inventory Behaviour Text decrement_obeying_policy Sets inventory behavior Supported
Fulfillment Request - Note Shopify Order - Note Text Urgent Fulfillment Sets order note Supported
Billing Address - Phone Shopify Order - Phone Text 555-123-4567 Sets order phone number Supported
Fulfillment Request - Sent At Shopify Order - Send Fulfillment Receipt Text false Controls fulfillment receipt notification Supported
Channel Invoice - Receipt Sent At Shopify Order - Send Order Receipt Text false Controls order receipt notification Supported
Source Shipping Method - Method Shopify Order - Shipping Method Title Text Standard Shipping Sets shipping method title Supported
Fulfillment Request - Estimated Shipping Cost Shopify Order - Shipping Price Number $5 Sets shipping price Supported
Fulfillment Request - Fulfillment Request Number Shopify Order - Tags Text FR-001 Sets order tags Supported
Channel Invoice - Tax Cost Shopify Order - Total Tax Number $2 Sets total tax amount Supported
Shipping Address Fields
Flxpoint Field Maps To Data Type Example Purpose Status
Shipping Address - Address Line 1 Shopify Shipping Address - Address 1 Text 456 Oak St Sets shipping address line 1 Supported
Shipping Address - Address Line 2 Shopify Shipping Address - Address 2 Text Suite 5C Sets shipping address line 2 Supported
Shipping Address - City Shopify Shipping Address - City Text Los Angeles Sets shipping city Supported
Shipping Address - Company Name Shopify Shipping Address - Company Text XYZ Inc Sets shipping company name Supported
Shipping Address - Country Shopify Shipping Address - Country Text United States Sets shipping country Supported
Shipping Address - Country Code Shopify Shipping Address - Country Code Text US Sets shipping country code Supported
Shipping Address - Latitude Shopify Shipping Address - Latitude Text 34.0522 Sets shipping latitude Supported
Shipping Address - Longitude Shopify Shipping Address - Longitude Text -118.2437 Sets shipping longitude Supported
Shipping Address - First Name Shopify Shipping Address - Name Text Jane Sets shipping first name Supported
Shipping Address - Full Name Shopify Shipping Address - Name Text Jane Smith Sets shipping full name Supported
Shipping Address - Last Name Shopify Shipping Address - Name Text Smith Sets shipping last name Supported
Shipping Address - Phone Shopify Shipping Address - Phone Text 555-987-6543 Sets shipping phone number Supported
Shipping Address - Postal Code Shopify Shipping Address - Zip Text 90001 Sets shipping postal code Supported
Shipping Address - State Shopify Shipping Address - Province Text California Sets shipping state Supported
Shipping Address - State Code Shopify Shipping Address - Province Code Text CA Sets shipping state code Supported
Troubleshooting

Troubleshoot issues with these steps:

  • Fulfillment Request Not Sent: Verify the Location ID is correct and matches a valid Shopify location.
  • Missing Line Items: Ensure Shopify Line Item SKU and Fulfillable Quantity are mapped in the template.
  • API Errors: Check for Shopify API rate limit issues; reduce sync frequency if needed.
  • Order Not Found: Confirm the order exists in Shopify; if not, import it using Shopify Get Orders integration:
    Error: Order not found in Shopify for fulfillment request
  • Address Issues: Verify billing and shipping address mappings to ensure all required fields are populated.
  • Error: {"errors":"Line item is using an invalid fulfillment service"} — check the vendor’s Shopify store to confirm they actually have that fulfillment service created. If Shopify returns "fulfillment_services": [], remove the fulfillment service from the mapping or ask the vendor to add it.
  • Shipping method not showing in Shopify: confirm that both Shopify Order - Shipping Method Title and Shopify Order - Shipping Price are mapped. Several customer stores only accepted the shipping method when the price was present.
Diagnostic Tip: Fulfillment failures often result from unmapped SKU/Quantity fields or missing orders in Shopify.
Best Practices for Customer Overrides

Create Customer (if they don’t already exist in Shopify)

In the Integration Config section, configure the Create Customer (if they don’t already exist in Shopify)* setting. This field is required and must be set before you can save the integration.

By default, the dropdown is blank (no option is selected). Use the dropdown to choose how Flxpoint should determine the customer when sending orders to Shopify:

  • Reseller Name/Email – Use the reseller’s name and email to create or match the customer in Shopify.This value is picked from the reseller details if the Flxpoint order has a reseller associated with it.
  • Bill To Customer Name/Email – Use the billing contact’s name and email to create or match the customer in Shopify.
  • Flxpoint Account Owner Primary Name/Email – Use the Flxpoint account owner’s primary name and email to create or match the customer in Shopify.
  • Don’t Create Customer (Not Recommended) – Do not create a customer in Shopify if one does not already exist. This option appears at the bottom of the list and is not recommended in most cases.

Make sure you select one of the options above; leaving this field unset will prevent the configuration from being saved.

FAQ: How does Shopify customer creation work when sending fulfillment requests?

Q: What happens if I don’t map any customer fields?

A: Flxpoint uses the existing logic: if a matching customer exists in Shopify, that customer is used; otherwise, a new customer is created from the order data.

Q: What happens if I map customer fields in the Send FR template?

A: The mapped customer fields override the existing logic. Shopify will use the mapped data for the customer associated with the order. If a required customer field is not mapped, the job fails with a clear error.

 
 

Get Shipments

Supported

Shopify – Send Fulfillment Requests

Introduction

Welcome to the Shopify Send Fulfillment Requests integration guide. This integration enables Flxpoint to send fulfillment requests directly to Shopify, allowing Shopify to process and fulfill orders with complete and accurate information—including billing and shipping addresses, line items, and order notes. By keeping Flxpoint and Shopify in sync, it ensures smooth communication and reliable order fulfillment across your sales channels. Additionally, you can map customer fields in the Send Fulfillment Requests mapping template. When mapped, these fields override Shopify’s default customer detection and creation logic, giving you greater control over how customers are identified and created in Shopify. Let’s get started.

Purpose of This Integration

The Shopify Send Fulfillment Requests integration enables you to:

  • Send fulfillment requests from Flxpoint to Shopify for order processing.
  • Include detailed order information such as billing/shipping addresses, line items, and order notes.
  • Support multi-location fulfillment by specifying the correct Shopify Location ID.
  • Map Flxpoint order data to Shopify fields for accurate fulfillment request creation.

This ensures efficient order fulfillment and accurate data synchronization between Flxpoint and Shopify.

How the Integration Works

The integration follows these steps:

  • 1 Connecting to Shopify: Establish a connection using OAuth2 authentication to access your Shopify store.
  • 2 Preparing Order Data: Flxpoint gathers order details, including billing/shipping addresses, line items, and fulfillment request information.
  • 3 Mapping Data: Maps Flxpoint order data to Shopify fields (e.g., Billing Address, Line Items) using a mapping template.
  • 4 Sending Fulfillment Request: A POST request to /admin/api/{version}/fulfillment_requests.json sends the fulfillment request for a specified order ID to Shopify.
  • 5 Specifying Location: Includes the Shopify Location ID to ensure the request is routed to the correct fulfillment location.
  • 6 Confirmation: Shopify processes the fulfillment request, and Flxpoint logs the request status for tracking.
Pro Tip: Ensure accurate mapping of billing and shipping addresses to avoid fulfillment delays.
Note: The integration requires an existing order in Shopify; ensure orders are imported via Shopify Get Orders integration first.
Configuration Options

Customize the integration with these settings:

  • Connection: Select your Shopify OAuth connection (e.g., “Shopify Connection API - Shopify App (OAuth2)”).
  • Location ID: Specify the Shopify inventory location ID for routing fulfillment requests (required).
  • Mapping Template: Define how Flxpoint order data maps to Shopify fields (see Mapping Template Details), including optional customer fields. If you map customer fields here, they will override the default Shopify customer detection/creation logic.
  • Sync Frequency: Run manually or schedule syncs (e.g., hourly to process new orders).
Note: Verify the Location ID in Shopify to ensure fulfillment requests are sent to the correct location.
Note: If the vendor’s Shopify store does not have a fulfillment service configured, Shopify can return an error like {"errors":"Line item is using an invalid fulfillment service"}. In that case, either (1) ask the vendor to enable/tell you the exact fulfillment service name, or (2) stop sending a fulfillment service for that source.
Setup Instructions

Follow these steps:

  • 1 Add the Integration: Go to Channels > Shopify > Integrations, select “Send Fulfillment Requests.”
  • 2 Connect to Shopify: Select an existing Shopify OAuth connection or set up a new one.
  • 3 Configure Settings:
    • Specify the Location ID for fulfillment routing.
    • Configure sync frequency (e.g., hourly).
  • 4 Create Mapping Template: Configure field mappings for order data (see Mapping Template Details). For Shopify, make sure the shipping method title and the shipping price are both mapped — Shopify only sends the shipping line when both are present.
  • 5 Run the Integration: Start with Run Sync or schedule automatic syncs.
Multi-Location Support

Flxpoint supports Shopify’s multi-location inventory for accurate fulfillment requests:

  • Location ID Requirement: Specify a Location ID in Flxpoint to route fulfillment requests to the correct Shopify location. Refer to Shopify’s guide on managing locations.
  • Single Location Per Request: The integration sends fulfillment requests for one location per job, using the specified Location ID in the API call.
Pro Tip: Configure multiple integration jobs with different Location IDs to handle fulfillment across all Shopify locations.
Limitations

Be aware of these constraints:

  • Single Location Per Request: Fulfillment requests are sent for one location per job; multiple jobs are needed for multiple locations.
  • Order Dependency: Requires an existing order in Shopify; orders must be imported via Shopify Get Orders integration first.
  • API Rate Limits: Shopify API rate limits may affect large fulfillment request batches; monitor usage to avoid interruptions.
  • Custom Fields Limit: Order Note Attributes support up to 2 custom fields.
Mapping Template Details

Mapping templates control how Flxpoint order data is sent to Shopify for fulfillment requests.

Interface Overview
  • Screen labeled “Send Fulfillment Requests” at the top; name your template (e.g., “Shopify Send Fulfillment Requests 1”).
  • Buttons: Delete, Duplicate, Save Mapping.
  • Sections: Order Note Attributes, Customer, Billing Address, Discount Code, Line Item, Order, Shipping Address.
  • Columns: Flxpoint fields (left, e.g., Fulfillment Request Number), Shopify fields (right, e.g., Note).
Mapping Options
  • Don't Map: Ignore the field; no data is sent to Shopify.
  • Set To Empty: Clear the field in Shopify.
  • Field: Map a Flxpoint field to a Shopify field (e.g., Fulfillment Request Quantity to Shopify Line Item Fulfillable Quantity).
  • Value: Set a static value (e.g., Note to “Urgent Fulfillment”).
  • Mapping Set: Apply a predefined mapping set for complex mappings.
  • Rules: Apply conditional logic (e.g., send only if Fulfillment Request Total Cost exceeds $100).
Customer Mapping Behavior

The Send Fulfillment Requests template now exposes Shopify customer fields. These allow you to hard-code or dynamically control the customer that will be used/created in the vendor’s Shopify store.

If you map any customer fields in the template:

  • The mapped values override the existing customer logic.
  • Flxpoint will use the mapped values when determining the Shopify customer to associate with the order.
  • If any required customer field is missing from your mapping, the job will fail with an error indicating which required field is missing.

If you do not map customer fields, or if you only partially map them:

The existing default logic is used:

  • If a matching customer exists in Shopify, that customer is used.
  • If no customer exists, a new customer is created based on the order data.

This behavior allows you to either:

  • Continue relying on Shopify’s default “find or create customer” behavior, or
  • Take full control by explicitly providing the customer information via the mapping.
Line Item Mapping Requirement

The Shopify Line Item SKU and Fulfillable Quantity fields must be mapped to ensure proper fulfillment request processing.

  • Required Fields: SKU identifies items, and Fulfillable Quantity specifies the quantity to fulfill.
  • Error Scenario: Unmapped SKU or Fulfillable Quantity may cause fulfillment request failures:
    Invalid request: Missing required fields 'SKU' or 'Fulfillable Quantity' for fulfillment request
  • Fix: Go to Channels > Shopify > Templates > Send Fulfillment Requests > Field Mapping, map Fulfillment Request Item SKU to Shopify Line Item SKU and Fulfillment Request Item Quantity to Shopify Line Item Fulfillable Quantity, save, and re-run sync.
Recommendation: Always map SKU, Fulfillable Quantity, Billing Address, and Shipping Address fields for reliable fulfillment requests.
About fulfillment services and shipping lines: Some Shopify sources (e.g. Catch Surf, Kings Camo, Groove Life, Puffinware, DSG Shopify, AGC) did not have fulfillment services set up, so Shopify returned an empty list ("fulfillment_services": []). If you map a fulfillment service name in Flxpoint that does not exist in the vendor’s Shopify store, Shopify will reject the line with {"errors":"Line item is using an invalid fulfillment service"}. Always match the value you send to what the vendor actually has configured.
Shipping line requirement: when sending to Shopify, include both the shipping method title and the shipping price so Shopify can build the shipping_lines structure:
"shipping_lines": [
  {
    "title": "FedEx Standard Overnight",
    "price": "25.00",
    "code": "FEDEX_STANDARD_OVERNIGHT",
    "source": "manual"
  }
]
If the price is blank, Shopify may ignore the shipping method even if the title is mapped.
Complete Field Mappings

Below are the fields you can map from Flxpoint to Shopify, based on the provided mapping template:

Order Note Attributes Fields
Flxpoint Field Maps To Data Type Example Purpose Status
Custom Fields (2) Shopify Order Note Attributes - Custom Fields Text priority: high Adds custom attributes to order notes Supported (Up to 2)
Billing Address Fields
Flxpoint Field Maps To Data Type Example Purpose Status
Billing Address - Address Line 1 Shopify Billing Address - Address 1 Text 123 Main St Sets billing address line 1 Supported
Billing Address - Address Line 2 Shopify Billing Address - Address 2 Text Apt 4B Sets billing address line 2 Supported
Billing Address - City Shopify Billing Address - City Text New York Sets billing city Supported
Billing Address - Company Name Shopify Billing Address - Company Text Acme Corp Sets billing company name Supported
Billing Address - Country Shopify Billing Address - Country Text United States Sets billing country Supported
Billing Address - Country Code Shopify Billing Address - Country Code Text US Sets billing country code Supported
Billing Address - Email Shopify Billing Address - Email Text john.doe@example.com Sets billing email Supported
Billing Address - First Name Shopify Billing Address - Name Text John Sets billing first name Supported
Billing Address - Full Name Shopify Billing Address - Name Text John Doe Sets billing full name Supported
Billing Address - Last Name Shopify Billing Address - Name Text Doe Sets billing last name Supported
Billing Address - Phone Shopify Billing Address - Phone Text 555-123-4567 Sets billing phone number Supported
Billing Address - Postal Code Shopify Billing Address - Zip Text 10001 Sets billing postal code Supported
Billing Address - State Shopify Billing Address - Province Text New York Sets billing state Supported
Billing Address - State Code Shopify Billing Address - Province Code Text NY Sets billing state code Supported
Discount Code Fields
Flxpoint Field Maps To Data Type Example Purpose Status
Channel Invoice - Discount Total Shopify Discount Code - Amount Number $10 Sets discount amount Supported
Channel Invoice - Invoice Number Shopify Discount Code - Code Text DISCOUNT10 Sets discount code Supported
Channel Invoice - Discount Total Shopify Discount Code - Type Text fixed_amount Sets discount type Supported
Line Item Fields
Flxpoint Field Maps To Data Type Example Purpose Status
Fulfillment Request Item - Subtotal Shopify Line Item - Price Number $30 Sets line item price Supported
Fulfillment Request Item - Quantity Shopify Line Item - Fulfillable Quantity Number 2 Sets quantity to fulfill Required
Fulfillment Request Item - Bin Location Shopify Line Item - Fulfillment Service Text warehouse-1 Sets fulfillment service Supported
Fulfillment Request Item - Quantity Shopify Line Item - Fulfillment Status Text pending Sets fulfillment status Supported
Fulfillment Request Item - Title Shopify Line Item - Gift Card Text false Indicates if item is a gift card Supported
Fulfillment Request Item - PO Line Item # Shopify Line Item - ID Number 1001 Sets line item ID Supported
Fulfillment Request Item - Note Shopify Line Item - Properties Text color: blue Sets line item properties Supported
Fulfillment Request Item - SKU Shopify Line Item - Product Exists Text true Indicates if product exists Supported
Fulfillment Request Item - SKU Shopify Line Item - Product ID Text prod-123 Sets product ID Supported
Fulfillment Request Item - Quantity Shopify Line Item - Quantity Number 2 Sets total quantity Supported
Fulfillment Request Item - Quantity Shopify Line Item - Requires Shipping Text true Indicates if shipping is required Supported
Fulfillment Request Item - SKU Shopify Line Item - SKU Text item-sku-001 Sets line item SKU Required
Fulfillment Request Item - Title Shopify Line Item - Variant Title Text Blue T-Shirt - Medium Sets variant title Supported
Fulfillment Request Item - MPN Shopify Line Item - Vendor Text BrandX Sets vendor information Supported
Order Fields
Flxpoint Field Maps To Data Type Example Purpose Status
Billing Address - Email Shopify Order - Email Text john.doe@example.com Sets order email Supported
Channel Invoice - Total Shopify Order - Financial Status Text paid Sets financial status Supported
Fulfillment Request - Total Weight (lbs) Shopify Order - Inventory Behaviour Text decrement_obeying_policy Sets inventory behavior Supported
Fulfillment Request - Note Shopify Order - Note Text Urgent Fulfillment Sets order note Supported
Billing Address - Phone Shopify Order - Phone Text 555-123-4567 Sets order phone number Supported
Fulfillment Request - Sent At Shopify Order - Send Fulfillment Receipt Text false Controls fulfillment receipt notification Supported
Channel Invoice - Receipt Sent At Shopify Order - Send Order Receipt Text false Controls order receipt notification Supported
Source Shipping Method - Method Shopify Order - Shipping Method Title Text Standard Shipping Sets shipping method title Supported
Fulfillment Request - Estimated Shipping Cost Shopify Order - Shipping Price Number $5 Sets shipping price Supported
Fulfillment Request - Fulfillment Request Number Shopify Order - Tags Text FR-001 Sets order tags Supported
Channel Invoice - Tax Cost Shopify Order - Total Tax Number $2 Sets total tax amount Supported
Shipping Address Fields
Flxpoint Field Maps To Data Type Example Purpose Status
Shipping Address - Address Line 1 Shopify Shipping Address - Address 1 Text 456 Oak St Sets shipping address line 1 Supported
Shipping Address - Address Line 2 Shopify Shipping Address - Address 2 Text Suite 5C Sets shipping address line 2 Supported
Shipping Address - City Shopify Shipping Address - City Text Los Angeles Sets shipping city Supported
Shipping Address - Company Name Shopify Shipping Address - Company Text XYZ Inc Sets shipping company name Supported
Shipping Address - Country Shopify Shipping Address - Country Text United States Sets shipping country Supported
Shipping Address - Country Code Shopify Shipping Address - Country Code Text US Sets shipping country code Supported
Shipping Address - Latitude Shopify Shipping Address - Latitude Text 34.0522 Sets shipping latitude Supported
Shipping Address - Longitude Shopify Shipping Address - Longitude Text -118.2437 Sets shipping longitude Supported
Shipping Address - First Name Shopify Shipping Address - Name Text Jane Sets shipping first name Supported
Shipping Address - Full Name Shopify Shipping Address - Name Text Jane Smith Sets shipping full name Supported
Shipping Address - Last Name Shopify Shipping Address - Name Text Smith Sets shipping last name Supported
Shipping Address - Phone Shopify Shipping Address - Phone Text 555-987-6543 Sets shipping phone number Supported
Shipping Address - Postal Code Shopify Shipping Address - Zip Text 90001 Sets shipping postal code Supported
Shipping Address - State Shopify Shipping Address - Province Text California Sets shipping state Supported
Shipping Address - State Code Shopify Shipping Address - Province Code Text CA Sets shipping state code Supported
Troubleshooting

Troubleshoot issues with these steps:

  • Fulfillment Request Not Sent: Verify the Location ID is correct and matches a valid Shopify location.
  • Missing Line Items: Ensure Shopify Line Item SKU and Fulfillable Quantity are mapped in the template.
  • API Errors: Check for Shopify API rate limit issues; reduce sync frequency if needed.
  • Order Not Found: Confirm the order exists in Shopify; if not, import it using Shopify Get Orders integration:
    Error: Order not found in Shopify for fulfillment request
  • Address Issues: Verify billing and shipping address mappings to ensure all required fields are populated.
  • Error: {"errors":"Line item is using an invalid fulfillment service"} — check the vendor’s Shopify store to confirm they actually have that fulfillment service created. If Shopify returns "fulfillment_services": [], remove the fulfillment service from the mapping or ask the vendor to add it.
  • Shipping method not showing in Shopify: confirm that both Shopify Order - Shipping Method Title and Shopify Order - Shipping Price are mapped. Several customer stores only accepted the shipping method when the price was present.
Diagnostic Tip: Fulfillment failures often result from unmapped SKU/Quantity fields or missing orders in Shopify.
Best Practices for Customer Overrides

Create Customer (if they don’t already exist in Shopify)

In the Integration Config section, configure the Create Customer (if they don’t already exist in Shopify)* setting. This field is required and must be set before you can save the integration.

By default, the dropdown is blank (no option is selected). Use the dropdown to choose how Flxpoint should determine the customer when sending orders to Shopify:

  • Reseller Name/Email – Use the reseller’s name and email to create or match the customer in Shopify.This value is picked from the reseller details if the Flxpoint order has a reseller associated with it.
  • Bill To Customer Name/Email – Use the billing contact’s name and email to create or match the customer in Shopify.
  • Flxpoint Account Owner Primary Name/Email – Use the Flxpoint account owner’s primary name and email to create or match the customer in Shopify.
  • Don’t Create Customer (Not Recommended) – Do not create a customer in Shopify if one does not already exist. This option appears at the bottom of the list and is not recommended in most cases.

Make sure you select one of the options above; leaving this field unset will prevent the configuration from being saved.

FAQ: How does Shopify customer creation work when sending fulfillment requests?

Q: What happens if I don’t map any customer fields?

A: Flxpoint uses the existing logic: if a matching customer exists in Shopify, that customer is used; otherwise, a new customer is created from the order data.

Q: What happens if I map customer fields in the Send FR template?

A: The mapped customer fields override the existing logic. Shopify will use the mapped data for the customer associated with the order. If a required customer field is not mapped, the job fails with a clear error.

 
 
Optional but recommended

You’re ready to automate this source

You’ve finished setting up this source. If you’d like, you can now put its operations on an automated schedule.

  • Select the operations to schedule (for example, Get Inventory, Get Orders, Send Fulfillment Requests, Get Shipments).
  • Pick how often and when they should run. You can edit or pause schedules anytime from the operations screen.

Tip: A daily schedule for key operations is a simple place to start.

How to schedule source operations in Flxpoint
Click the animation to view it larger.

 

 

Troubleshooting Common Errors

Common issues and fixes across Get Inventory (Primary), Get Inventory (Secondary), Send Fulfillment Requests, and Get Shipments. Expand an item to learn what’s happening and how to resolve it.

Still stuck? Share the job log + the mapping template name so support can pinpoint the exact field/value causing the failure.

Contact Support