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
Create your Shopify Sales Channel in Flxpoint and launch the setup wizard so you can connect your store.
- Search for Shopify and select it.
- Enter a descriptive Channel Name (e.g., "Shopify Store").
- Click Save to continue.
Choose your connection method and authorize Flxpoint to access your Shopify Admin for listings and order sync.
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).
- Enter your Store URL (e.g., https://your-store-name.myshopify.com).
- Click Initiate OAuth2 Flow and follow prompts to grant access.
- 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.
- 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.
- REST API: 2 requests/sec (4/sec for Plus).
- GraphQL: 50 points/sec.
Confirm how SKUs map between Flxpoint and Shopify, then finalize listing and order settings so the channel behaves correctly.
- Set new listings to Paused for review before publishing.
- Map your internal Master SKU to Shopify’s listing SKU.
- 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.
- Verify store URL uses .myshopify.com (not a custom domain).
- Confirm Location ID behavior matches your fulfillment setup.
- If permissions lapse, re-authorize via Shopify Re-authentication (OAuth).
- Vendors sharing access? Point them to the Vendor’s Guide to Shopify Custom App.
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)
Shopify – Get Inventory (Primary)
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.
- 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).
- 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.
- • 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).
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.
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. |
- • 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.
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.
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.
This message is typically harmless and does not block inventory saves.
Most likely fix: add/confirm SKUs for variants and verify the SKU/Quantity mapping.
- • 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.
Get Inventory (Secondary)
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.
- 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).
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.
- Variant-level Quantity updates for the selected Location ID.
- Optional variant-level fields based on your mapping template (example: Cost, MAP/MSRP-related fields).
- Variant SKU → SKU (required)
- Available → Quantity (required)
| 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. |
- If variants are missing SKUs, they may be skipped during saves.
- Use consistent templates across Primary/Secondary so fields align cleanly.
- 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.
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.
“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.
- 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.
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.
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
Shopify – Send Fulfillment Requests
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.
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.
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.jsonsends 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.
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).
{"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.
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.
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.
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 templates control how Flxpoint order data is sent to Shopify for fulfillment requests.
- 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).
- 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).
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.
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.
"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_lines structure:
"shipping_lines": [
{
"title": "FedEx Standard Overnight",
"price": "25.00",
"code": "FEDEX_STANDARD_OVERNIGHT",
"source": "manual"
}
]
Below are the fields you can map from Flxpoint to Shopify, based on the provided mapping template:
| 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) |
| 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 |
| 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 |
| 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 |
| 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 |
| 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 |
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.
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.
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
Shopify – Send Fulfillment Requests
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.
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.
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.jsonsends 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.
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).
{"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.
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.
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.
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 templates control how Flxpoint order data is sent to Shopify for fulfillment requests.
- 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).
- 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).
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.
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.
"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_lines structure:
"shipping_lines": [
{
"title": "FedEx Standard Overnight",
"price": "25.00",
"code": "FEDEX_STANDARD_OVERNIGHT",
"source": "manual"
}
]
Below are the fields you can map from Flxpoint to Shopify, based on the provided mapping template:
| 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) |
| 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 |
| 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 |
| 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 |
| 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 |
| 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 |
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.
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.
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.
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.
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.
What’s happening
Shopify inventory updates depend on matching variants reliably. If a variant has no SKU, or if your mapping template does not map SKU and Quantity, inventory won’t save into Flxpoint’s Global Inventory Pool (GIP).
How to fix it
- Confirm every variant you expect to update has a SKU in Shopify.
- Confirm your template maps
Variant SKU → SKUandAvailable → Quantity. - Run the job once manually after saving to confirm quantities appear in GIP.
What’s happening
Location-based jobs only pull data for the selected Shopify Location ID. If the Location ID points to a location that doesn’t hold the inventory / fulfillments you expect, results look incomplete.
How to fix it
- Verify the Location ID in Shopify for where inventory is stocked / orders are fulfilled.
- Update the job setting to the correct Location ID and re-run.
- If you need coverage across multiple locations, create one job per Location ID.
What’s happening
Full refresh runs may take longer on large catalogs due to Shopify API and catalog size. This is expected behavior when pulling inventory for all products/variants.
How to fix it
- Run a full refresh once to normalize, then return to standard runs.
- Keep your schedule within hourly cadence limits (where applicable).
- If you only need quick deltas (price/qty refresh), consider using Secondary for fast refresh patterns.
What’s happening
If you map any customer fields in the Send Fulfillment Requests template, the mapped values override the existing customer logic. If a required customer field is missing from your mapping, the job fails with a clear error.
How to fix it
- Open the Send Fulfillment Requests mapping template and review the Customer section.
- Ensure all required customer fields are mapped (avoid partial customer mapping).
- Save the template, then re-run Send Fulfillment Requests.
Example: Missing required customer field in mapping: customer.email
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.
What’s happening
Shipments only exist when orders have fulfillments in Shopify. If orders are not fulfilled (or not synced into Shopify as expected), the shipment pull may return no results.
How to fix it
- Confirm orders have fulfillments in Shopify (tracking created on the fulfillment).
- If you filter by Location ID, confirm the fulfillment location matches the Location ID in your job.
- Increase your “lookback” window if your configuration includes a time range (if applicable in your setup).
Warning: No fulfillments found for specified orders
Confirm these first
- Connection is valid and Test Connection succeeds.
- Templates map the minimum required fields for the operation (SKU + Quantity for inventory, tracking fields for shipments where applicable).
- Location ID matches where inventory/fulfillments actually exist (if you’re using Location ID).
- For Send FR: required order identifiers and line items are mapped correctly.
- If you map any customer fields in Send FR: ensure all required customer fields are mapped (avoid partial customer mapping).
Still stuck? Share the job log + the mapping template name so support can pinpoint the exact field/value causing the failure.
Contact Support