Keystone is a wholesale distributor of automotive parts, performance accessories, and after market vehicle products. They cater to retailers, repair shops, and car enthusiasts looking for high-quality automotive components.
How to Connect
⚡ Phase 1: Open the Source Wizard from “Add Source”
+
Navigate to Fulfillment Sources
Go to Connections → Fulfillment Sources and click + Add Source. This opens the source wizard.
Name & Type
Enter a name like Keystone. For Type, choose Product Data Sourcerequired, then Save.
Why “Product Data Source”? Keystone supplies catalog data and live pricing/availability via separate connections. You can add warehouse objects later if you also stock items internally.
Launch Integrations
Open the new source → Integrations → click Get Started to begin the guided setup.
📚 Phase 2: Choose Keystone & Enter Credentials (inside the wizard)
+
Pick Setup Method & Supplier
Select FLX Supplier Directory (recommended). Search for Keystone and click Select, then Continue. Confirm you have (or will obtain) a reseller account with Keystone.
Enter FTP/FTPS (Catalog) Credentials
On the Authenticate With Supplier screen, complete the fields exactly as issued by Keystone:
- FTP User / FTP Password
- FTP Host — ftp.ekeystone.com
- FTP Port — 990
- FTP Protocol — Implicit FTPS
Tip: If your firewall restricts outbound traffic, allow port 990 to ftp.ekeystone.com. Ask Keystone if IP whitelisting is required.
Enable Live Pricing & Quantity (SOAP)
Keep Automatically Pricing & Quantity toggled on. Keystone requires a separate SOAP connection for this operation. Enter:
- Full Account No — your Keystone full account number
- Key — SOAP/API key from Keystone
Note: Do not reuse the FTP credentials here. SOAP auth is distinct and mandatory for live price/availability.
How to obtain Keystone credentials
- Reseller Account — Apply/confirm your Keystone reseller account is active.
- FTP Access — Request FTP user/password + confirmation of ftp.ekeystone.com, port 990, protocol Implicit FTPS; ask about IP whitelisting.
- SOAP Access — Request Full Account No and an API/SOAP Key for pricing & availability.
- Test vs Live — Ask whether separate test creds exist; otherwise run a limited production test window.
Best practice: Store all credentials in your password manager and record any directory/ratelimit notes from Keystone.
🛠️ Phase 3: Continue Wizard Setup — Operations, Tests & Go-Live
+
Mappings & Catalog Validation
Still inside the wizard, save auth and run a small catalog import to confirm FTP connectivity. Review mapped identifiers (e.g., your Master SKU and any prefixes) and verify sample items appear.
Pricing & Quantity Test (SOAP)
Trigger a Pricing & Quantity test. If you see errors mentioning FullAccountNo or Key, recheck for extra spaces or wrong account. Once valid, confirm a few SKUs return price/availability as expected.
(Optional) Orders & Shipments
If your agreement includes ordering, complete the Send Orders and Get Shipments steps in the wizard using Keystone’s guidance. Place a low-risk test order and confirm shipment events flow back.
Tip: Start with catalog + pricing/qty stable before enabling orders in production.
Finalize & Go Live
- Save each section in the wizard and complete.
- Schedule inventory/price updates on your desired cadence.
- Monitor first syncs and correct any invalid SKUs or credential issues promptly.
Product Operations
The primary operation handles the bulk of your inventory management needs, while the secondary operation allows for more detailed control, such as focusing on specific products or updates
Get Inventory and Pricing & Quantity
Keystone — Get Inventory & Pricing and Quantity
Builds products from Keystone files and refreshes pricing and quantity via a separate SOAP credential. Quantity is calculated from the warehouse selector (or ALL).
Wizard flow: Keystone source → Get Inventory & Pricing and Quantity. Complete Authentication → Master SKU/Defaults → P&Q (SOAP), then run tests and schedule.
A) Authentication (Files / FTP)
- 1 FTP User / FTP Password (from Keystone).
-
2 FTP Host
ftp.ekeystone.com(or host provided to you). -
3 FTP Port
990and FTP ProtocolImplicit FTPSunless instructed otherwise.
Firewall/IP: Allow outbound
990. If IP allow-listing is required, request it when asking Keystone for credentials.B) Master SKU & Default Settings
- Choose the Field that becomes Master SKU (common: Ref ID or Part Number). Master → Listing SKU on channels.
- Set Remote File (e.g.,
testinventory.csv) and Remote Folder (e.g.,/inventoryor/inventory [Secondary]). - Select Warehouses to include for inventory files (can differ from P&Q selector).
C) Pricing & Quantity (SOAP — Separate Connection)
Required: P&Q uses different credentials than FTP.
- Toggle Automatically Pricing & Quantity ON.
- Full Account No and Key (SOAP/API) — both issued by Keystone.
- Choose ALL or specific warehouses. Quantity is the sum of selected.
Where to get credentials
From Keystone support: (1) FTP user/pass for files, (2) SOAP Full Account No + Key for pricing/availability, plus any IP allow-listing details.
From Keystone support: (1) FTP user/pass for files, (2) SOAP Full Account No + Key for pricing/availability, plus any IP allow-listing details.
D) Run & Schedule
- Run a small Get Inventory sync to verify FTP + mappings.
- Run Pricing & Quantity to verify SOAP returns data (SKU + Quantity at minimum).
- Schedule: Inventory daily; P&Q hourly during business hours.
A) Get Inventory — Complete field list (from Keystone files)
| Keystone Field (as seen in UI) | Maps To (Flxpoint) | Notes | Req? |
|---|---|---|---|
| Part Number | Inventory Variant : SKU | Primary identifier | Required |
| Part Number | Inventory Variant : Master SKU | Master for catalog | Required |
| Part Number | Inventory Parent : Parent SKU | Variant grouping | Required |
| VCPN | Inventory Variant : Reference Identifier | Alt ref used in P&Q | Optional |
| UPC Code | Inventory Variant : UPC | Barcode | Optional |
| Vendor Code | Inventory Variant : Custom Field 11 Value | Per your schema | Optional |
| Manufacturer Part Number | Inventory Variant : MPN | Manufacturer ID | Optional |
| Long Description | Inventory Parent : Description | Parent description | Enabled |
| Long Description | Inventory Parent : Title | Title (if desired) | Enabled |
| All Attributes | Inventory Parent : All Attributes | Bulk attributes | Enabled |
| All Custom Fields | Inventory Parent : All Custom Fields | Bulk custom | Enabled |
| All Options | Inventory Parent / Variant : All Options | Bulk options | Enabled |
| Vendor Name | Inventory Parent : Brand | Brand mapping | Enabled |
| Cost | Inventory Variant : Cost | Base cost | Enabled |
| Jobber Price | Inventory Variant : MSRP | Shown in UI example | Enabled |
| MAP Retail | Inventory Variant : MAP | May be disabled by default | Optional |
| MSRP (Retail Price) | Inventory Variant : MSRP | Retail reference | Enabled |
| Quantity | Inventory Variant : Quantity | From inventory file | Enabled |
| IsNonReturnable | Inventory Variant : Custom Field | Flag; also has “(Text)” version | Optional |
| Is Non Returnable (Text) | Inventory Variant : Custom Field | Human-readable flag | Optional |
| IsHazmat | Inventory Variant : Custom Field | Flag; also has “(Text)” | Optional |
| Is Hazmat (Text) | Inventory Variant : Custom Field | Human-readable | Optional |
| IsChemical | Inventory Variant : Custom Field | Flag; also “(Text)” | Optional |
| Is Chemical (Text) | Inventory Variant : Custom Field | Human-readable | Optional |
| IsKit | Inventory Variant : Custom Field | Flag; also “(Text)” | Optional |
| Is Kit (Text) | Inventory Variant : Custom Field | Human-readable | Optional |
| IsOversized | Inventory Variant : Custom Field | Oversize flag | Optional |
| Prop65Toxicity | Inventory Variant : Custom Field | CA Prop65 | Optional |
| UPSable | Inventory Variant : Custom Field | Flag; also “(Text)” | Optional |
| UPSable (Text) | Inventory Variant : Custom Field | Human-readable | Optional |
| UPS_Ground_Assessorial | Inventory Variant : Custom Field | Assessorial code | Optional |
| US_LTL | Inventory Variant : Custom Field | LTL flag/code | Optional |
| Dimension Unit | Inventory Variant : Dimension Unit | Enabled | |
| Length | Inventory Variant : Length | Enabled | |
| Width | Inventory Variant : Width | Enabled | |
| Height | Inventory Variant : Height | Enabled | |
| Weight | Inventory Variant : Weight | Enabled | |
| Weight Unit | Inventory Variant : Weight Unit | Enabled | |
| AAIA Code | Inventory Variant : Custom Field | AAIA/ACES tag | Optional |
| KitComponents | Inventory Variant : Custom Field | Kit detail | Optional |
| Core Charge | Inventory Variant : Custom Field | Core charge flag/value | Optional |
| CaseQty | Inventory Variant : Custom Field | Case quantity | Optional |
| Custom Field 1 Name / Value | Inventory Variant : Custom Field 1 Name/Value | Enabled | |
| Custom Field 2 Name / Value | Inventory Variant : Custom Field 2 Name/Value | Enabled | |
| Custom Field 3 Name / Value | Inventory Variant : Custom Field 3 Name/Value | Enabled | |
| Custom Field 4 Name / Value | Inventory Variant : Custom Field 4 Name/Value | Enabled | |
| Custom Field 5 Name | Inventory Variant : Custom Field 5 Name | Value toggled off in screenshot | Optional |
| Custom Field 6–14 Name / Value | Inventory Variant : Custom Field 6–14 Name/Value | As displayed | Enabled |
B) Pricing & Quantity (SOAP) — Fields shown
| SOAP Field | Maps To | Notes | Req? |
|---|---|---|---|
| VCPN | Inventory Variant : SKU | Identifier paired to your SKU/Master | Required |
| Quantity | Inventory Variant : Quantity | Sum of selected warehouses (or ALL) | Required |
Open the connection menu → Manage Mapping to confirm all toggles match your screenshots. If your file/response exposes additional price fields, map them to Cost/MSRP/MAP as needed.
- Missing/greyed fields: They appear after a successful run that includes those columns. Run again, then reopen Manage Mapping.
- SOAP errors (FullAccountNo/Key): Re-paste, remove spaces, confirm your Keystone account is enabled for pricing/availability.
- Quantities off: Recheck the warehouse selector (Get Inventory vs P&Q can be different). P&Q quantity = sum of selected warehouses.
- Identifiers mismatch: Ensure the same SKU/VCPN pairing flows from files to SOAP so P&Q hits the right variants.
Go-live checklist — 1) FTP import OK, 2) Mapping saved, 3) SOAP P&Q returns SKU+Qty, 4) Schedules set, 5) Monitor first two cycles.
Order Operations
It submits orders to vendors for fulfillment and subsequently imports the shipment details, ensuring an integration between order processing and shipment tracking.
Send Orders
Keystone — Send Orders (Fulfillment Requests)
Submit FRs to Keystone via SOAP. Choose the correct Order Type:
KAO Dropship Customers (custom ship-to; multi-line allowed) or KAO Jobber Customers (truck runs; one part per FR; address on file).
Separate connection required: Keystone requires a distinct SOAP auth for Send Orders (do not reuse P&Q toggle unless Keystone explicitly confirms).
A) Authentication (SOAP)
- 1 Toggle Automatically Send Orders ON.
- 2 Leave Use same connection as Pricing & Quantity unchecked.
- 3 Enter Full Account No and Key (SOAP/API) from Keystone.
B) Order Type
- KAO Dropship Customers — send custom ship-to (DropShip*) and allow multiple line items.
- KAO Jobber Customers — single line item per FR; Keystone uses the address on file (no DropShip* fields sent).
C) Run a Test
- Create a small order and generate the FR.
- Verify mapping (see next dropdown) and chosen Order Type.
- Send the FR and confirm “Ok” response in logs/portal.
Where: Connection menu → Manage Mapping. The following reflects your screenshots.
A) Keystone Order (Header)
| Flxpoint Field | Keystone Field | Notes | Req? |
|---|---|---|---|
| Fulfillment Request Number | PO Number | Limit 20 alphanumeric | Required |
| Order Type (override) | Order Type | Set to Dropship or Jobber; overrides integration setting | Optional |
| Shipping Method / Service Level | Service Level Code | Examples: U11, U2, etc. Default = cheapest if not set |
Optional |
B) Keystone Purchase Order Item
| Flxpoint Field | Keystone Field | Notes | Req? |
|---|---|---|---|
| SKU | Part Number | FR item association uses SKU | Required |
| Quantity | Quantity | For Jobber: allowed > 1 but only one line item | Required |
C) Keystone Shipping Address (Dropship only)
| Flxpoint Field | Keystone Shipping Address | Notes | Req? |
|---|---|---|---|
| First Name | DropShip First Name | ≤ 20 chars | Required |
| Last Name | DropShip Last Name | ≤ 20 chars | Required |
| Company Name | DropShip Company | Required | |
| Address Line 1 | DropShip Address1 | Required; ≤ 35 chars | Required |
| Address Line 2 | DropShip Address2 | Required; ≤ 35 chars | Required |
| City | DropShip City | Required | Required |
| State Code | DropShip State | Required | Required |
| Postal Code | DropShip Postal Code | Required | Required |
| Country Code | DropShip Country | Required | Required |
| Phone | DropShip Phone | Required | Required |
| DropShip Email | Required | Required |
Dropship vs Jobber: If Order Type = Jobber, Flxpoint will not send the DropShip* address block; Keystone uses the address on file for the account.
Jobber Rules & Workflow
- When to use “KAO Jobber Customer”: You sell to Jobber accounts receiving truck-run deliveries; no custom ship-to; one part per FR.
- Single line item required: Exactly one SKU per FR (quantity can be > 1). If multiple items are present, the FR will fail and instruct to split.
- Address handling: Keystone uses the address on file (no DropShip* block sent).
- Configuration: Set Order Type at the integration (Send FR) or override in the Mapping Template (step-level). Template override wins.
- How to send a Jobber order: Create one FR per line → verify Order Type = Jobber → check SKU + quantity → send → monitor status.
Operation Details
| Capability | Status | Notes |
|---|---|---|
| Fulfillment Request Number | SUPPORTED | Limit 20 alphanumeric |
| Customer Association | NOT SUPPORTED | — |
| FR Item Association | SUPPORTED | SKU is sent in FR |
| Auto Acknowledgements | SUPPORTED | “Ok” on success |
| Shipping Selection | SUPPORTED | Use service level codes (e.g., U11, U2). Defaults to cheapest if not set. |
| Custom Fields | NOT SUPPORTED | — |
| Attachments | NOT SUPPORTED | — |
| Limitations | — | DropShipFirst/LastName ≤ 20 chars; Address1/2 required, ≤ 35; City, State, Postal, Country, Phone, Email required. |
Errors
- Code 210 – Shipping Error: Item cannot be shipped via selected service level. Try a different service code (you can map per FR).
- Multiple line items on Jobber: Split into one FR per SKU (keep quantity on the one line).
- Wrong Order Type: If you need multi-SKU or custom ship-to, switch to KAO Dropship Customers and resend.
Best Practices
• Split early for Jobber orders. • Keep Order Type defaulted to Jobber (if that’s your norm) and override per-FR only when needed. • Start with a single known part to validate end-to-end before scaling.
• Split early for Jobber orders. • Keep Order Type defaulted to Jobber (if that’s your norm) and override per-FR only when needed. • Start with a single known part to validate end-to-end before scaling.
Get Shipments
Keystone — Get Shipments
Imports tracking updates from Keystone via SOAP. Supports partial shipments, carrier/method, tracking number, item association by SKU, and optional shipping cost mapping. Includes a configurable FR lookback window.
Separate connection required: Keystone requires its own SOAP credentials for Get Shipments. Do not assume P&Q/Send Orders creds apply.
A) Authentication (SOAP)
- 1 Toggle Automatically Get Shipments ON.
- 2 Leave Use same connection as Pricing & Quantity unchecked unless Keystone confirms a shared key.
- 3 Enter Full Account No and Key (SOAP/API) provided by Keystone.
B) Advanced Setting — FR Lookback Period
FR Lookback Period for Get Shipments: Controls how far back the task searches for FRs to update shipments. Options: 1–6 Months (default 3 Months). Increase only if you expect late updates.
C) Run & Monitor
- Run a manual task and confirm shipments import for recent FRs.
- Review logs for method, carrier, tracking, SKU association, and costs (if mapped).
- Schedule to match your order volume (e.g., every 30–60 minutes during business hours).
Where: Connection menu → Manage Mapping. Map exactly as exposed by Keystone.
| Keystone Shipment Field (example) | Maps To | Notes | Req? |
|---|---|---|---|
| EKSVIA – Ship Method | Shipment : Carrier | Carrier parsed from method string where possible | Enabled |
| EKSVIA – Ship Method | Shipment : Method | Service level / method (e.g., UPS Ground) | Enabled |
| EKTRCK – Tracking Number | Shipment : Tracking Number | Duplicate tracking numbers are rejected when saving shipments | Enabled |
| eKPART – Part Number | Shipment Item : SKU | Associates each shipment line with the correct item | Enabled |
| EKFRTD – Freight (shipping) charge | Shipment : Shipping Cost | Invoice/charges detail not supported; cost available via this field | Optional |
If you don’t see a field, run the task once and reopen Manage Mapping. Only fields present in the response are exposed.
Operation Details
| Capability | Status | Notes |
|---|---|---|
| Carrier & Methods | SUPPORTED | Ship method and carrier available |
| Shipment Item Association | SUPPORTED | SKU (part number) included per line |
| Partial Shipments | SUPPORTED | Multiple shipments per order supported |
| Invoice Information | NOT SUPPORTED | But Shipping Cost can be mapped via EKFRTD |
| Custom Fields (CFs) | NOT SUPPORTED | — |
| Limitation | — | For products with multiple quantity, Keystone might ship from different warehouses and reuse the same tracking#. Quantities are summed under that single tracking number. Duplicate tracking numbers are not allowed when saving shipments. |
Common Issues
- No new shipments: Extend the FR Lookback Period (try 4–6 months temporarily) and rerun.
- Tracking present but no line items: Ensure eKPART → Shipment Item : SKU is enabled.
- Duplicate tracking error: A previous run saved the same tracking number; verify whether it’s a multi-warehouse split with reused tracking.
- Carrier not parsed: Keep Method mapped; some carriers are embedded in the method string.
Best Practices
• Keep mapping minimal (Carrier, Method, Tracking, SKU, optional Shipping Cost). • Start with 3-month lookback then adjust. • Monitor first cycles after enabling to confirm partial shipments behave as expected.
• Keep mapping minimal (Carrier, Method, Tracking, SKU, optional Shipping Cost). • Start with 3-month lookback then adjust. • Monitor first cycles after enabling to confirm partial shipments behave as expected.