Shift4Shop as a Channel
Summary
Connect your Shift4Shop store to Flxpoint with a Token and Private Key generated from a REST API app in your Shift4Shop admin, plus your store's HTTPS Secure URL. Publish and sync listings, pull orders, and write tracking back to Shift4Shop; product image uploads use a separate FTP connection, and Import Listings is not supported.
On the Flxpoint Connect Channel screen, enter a Connection Name, then paste the values from the REST API app you created in your Shift4Shop admin. Click Test Connection, then Save Connection.
| Field | What to enter |
|---|---|
TokenRequired | Generated in your Shift4Shop admin under Modules → REST API → Settings. Click Add to create an API app (name it "Flxpoint"), grant permissions for Products, Categories, Orders, Customers, Brands, and Images/Files, then save/authorize: the page then displays your Token.
Shift4Shop admin login |
Private KeyRequired | Displayed alongside the Token when you create and authorize the REST API app. Treat it like a password: don't share it publicly.
Provided by your own Shift4Shop app setup, not by Flxpoint. |
Secure URLRequired | Your public storefront URL over HTTPS (e.g.,
Do NOT use your admin login URL here, or authentication will fail.https://yourstore.com/): the same URL customers use to browse your store. |
Image FTP (Server, Protocol, Username, Password, Subfolder, Port)Optional | Only needed if you publish product images. Shift4Shop receives images over FTP, not its REST API. Enter Image FTP Server (e.g.,
Find these in your Shift4Shop welcome email or hosting settings; verify them in an FTP client if images fail to upload.ftp2.3dcartstores.com), Protocol (typically Implicit FTPS), Username, Password, Subfolder (e.g., /web/assets/images/) and Port (typically 22) in the Publish Listings settings. |
Use your storefront Secure URL, not your admin login URL
The Secure URL field requires your public-facing storefront URL with HTTPS (e.g., https://yourstore.com/): the same URL customers use. Using your Shift4Shop admin login URL instead will cause authentication errors.
Image uploads during Publish require FTP: separate from the API connection
Shift4Shop uses FTP to receive product images, not its REST API. Publish Listings will create product records without images if FTP is not configured. Enter a separate FTP server, username, password, subfolder path, port and protocol (typically Implicit FTPS) in Flxpoint's Publish Listings settings to upload images.
Distributors must already exist in Shift4Shop before mapping them in Publish
The Distributor field passes a distributor name; on publish the system looks up the matching Distributor ID in your store. If the name doesn't exist under Admin → Catalog → Distributors, the publish job fails with a "distributor not found" error. Distributors are not auto-created by Flxpoint.
Required mapping fields differ by job
For Sync & Link Listings, map SKU, Stock and Price. For Publish Listings, map SKU, Title and Price. For Get Orders, map Item SKU (there is no separate "External Order Number" mapping in Get Orders). For Sync Orders, map Shipment Tracking Code. Jobs with these unmapped fail with a missing-required-field error.
Keeps price, quantity and status in sync between Flxpoint and Shift4Shop, and links Flxpoint listings to existing Shift4Shop products by SKU
| Shift4Shop Field | Maps To: Notes |
|---|---|
| SKU | → Listing Variant SKU. Must be mapped: it's the linking key that matches Flxpoint listings to Shift4Shop products. |
| Stock | → Quantity. Required. Updates the on-hand stock level in Flxpoint. |
| Price | → List Price. Required. The product's selling price. |
| Cost | → Estimated Cost. Optional. Tracks product cost. |
| Retail Price | → MSRP. Optional. Suggested retail price. |
| Sale Price | → List Price. Optional. Discounted price when on sale. |
| Price 2–5 | Not mapped by default. Optional tiered-pricing fields: leave unmapped unless you use them. |
Creates and updates product listings on Shift4Shop from Flxpoint, including variants, categories and (via FTP) images
| Shift4Shop Field | Maps To: Notes |
|---|---|
| SKU | → SKU. Required. Uniquely identifies the product. |
| Title | → Title. Required. The product title. |
| Price | → List Price. Required. Selling price. |
| Retail Price | → MSRP. Optional. Suggested retail price. |
| Sale Price | → List Price. Optional. Discounted price. |
| Stock | → Quantity. Optional. Stock level. |
| Description | → Description. Optional. Product details. |
| Manufacturer | → Brand. Optional. |
| Distributor | → Distributor. Optional. Passes the distributor name; the system resolves the Distributor ID in your store and errors if it doesn't exist (no auto-create). Rules can set it by supplier/source. |
| UPC / GTIN | → UPC / GTIN. Optional. Product identifiers. |
| Weight / Length / Width / Height | → Weight / Length / Width / Height. Optional. Dimensions. |
| Category 1–3 | → Category 1–3. Optional. Assigns store categories. |
| All Images | → Image. Optional. Uploaded via FTP (not the REST API): FTP must be configured or products publish without images. |
| All Options / Attributes | → Option / Attribute. Optional. Variant options (e.g., Size: M) and product features (e.g., Material: Cotton). |
Imports new Shift4Shop orders into Flxpoint, filtered by order status
| Shift4Shop Field | Maps To: Notes |
|---|---|
| Invoice Number | → External Order Number. Required. Uniquely identifies the order. |
| Catalog ID | → Item SKU. Required. Identifies each ordered item. |
| Order Amount / Order Date | → Order Amount / Order Date. Optional. Total value and date placed. |
| Billing First/Last Name, Company, Email, Phone | → First Name / Last Name / Company / Email / Phone. Optional billing contact. |
| Billing Address / Address 2 / City / State / Zip / Country | → Address Line 1/2, City, State, Postal Code, Country. Optional billing address. |
| Shipment First/Last Name, Address 1/2, City, State, Zip, Country | → ship-to name and address fields. Optional. |
| Shipment Method Name / Shipment Cost | → Shipping Method / Shipping Cost. Optional. |
| Item Unit Price / Item Unit Cost / Item Quantity | → Item Price / Item Cost / Item Quantity. Optional line-item detail. |
| Item Description / Item Weight / Item ID | → Item Description / Item Weight / External Item ID. Optional. |
Writes shipment tracking and shipping details back to the matching Shift4Shop order
| Shift4Shop Field | Maps To: Notes |
|---|---|
| Shipment Tracking Code | → Tracking Number. Required. Writes Flxpoint's tracking number back onto the matching Shift4Shop order. |
| Shipment Method Name | → Method. Optional. The shipping method (e.g., UPS) must already exist under Settings → Shipping → Shipping Methods in Shift4Shop. |
| Shipment address fields (Address 1/2, City, State, Zip, Country, Company, Email, Phone, Name) | Optional. Update ship-to details on the order when needed. |
"401 Unauthorized" or "403 Forbidden" on the connection test
https://yourstore.com/), not the admin login URL.Product images missing after Publish (FTP uploaded a temp file instead of the image)
"Publish error: Distributor not found in Shift4Shop store"
Orders imported into Flxpoint but not appearing/updating in Shift4Shop
Publish fails: unable to publish listings to Shift4Shop
Sync Listings not updating price or stock in Shift4Shop
Image upload fails with SFTP/FTP connection or transfer errors?
Images not appearing on the store despite a successful FTP upload?
Product images missing after Publish (FTP uploaded a temp file instead of the image)
How do I generate the Token and Private Key needed to connect Shift4Shop?
Does the Shift4Shop REST API module ask for a "public key" from Flxpoint before I can proceed?
What FTP credentials do I need and where do I find them?
ftp2.3dcartstores.com), Protocol (typically Implicit FTPS), Username, Password, Subfolder (typically /web/assets/images/) and Port (typically 22). Check the welcome email from Shift4Shop or contact their support, then enter them in Flxpoint under the Publish Listings configuration settings.Can Flxpoint delete product listings from Shift4Shop?
How does Get Orders filter which orders are imported?
Image upload workflow
When publishing listings to Shift4Shop, Flxpoint uses FTP or SFTP to transfer product images. This process can be configured to overwrite existing images to maintain a clean directory and minimize storage usage. You can schedule image overwrite jobs and monitor their progress through the channel integration logs.
Common upload failures
Failed to perform SFTP file transfer
This error typically indicates an interruption in the communication between Flxpoint and the Shift4Shop server. Common causes include:
Disk space quota exceeded: The target FTP server has reached its storage limit, preventing new files from being written.
Dropped connections: The network connection timed out or was closed by the server mid-upload.
Compression errors: Data corruption occurring during the stream compression process.
Storage management and cleanup
To prevent storage exhaustion on your Shift4Shop server, it is important to periodically clean up images that are no longer linked to active products. This often occurs when sources are removed or products are deleted, but the physical image files remain on the FTP server.
Note: If you are republishing a large number of products, coordinate with support to identify specific SKUs for targeted overwrite operations. This ensures existing files are replaced rather than creating duplicates that consume additional space.
Troubleshooting missing images
Images are on FTP but not appearing in the store?
If the logs confirm a successful upload and you can see the file on the FTP server but it does not appear on the Shift4Shop storefront, the issue is likely related to the Shift4Shop internal cache. In these cases, the file transfer was successful, and the storefront requires a refresh or cache clear to recognize the new assets.
How do I verify a successful transfer?
Check the publishing logs for the specific Channel Sync job. Flxpoint uses enhanced logging for image transfers to provide detailed diagnostic information if a file fails to move to the destination directory.
