XR Direct as a Source
Summary
XR Direct (also known as Sex Toy Distributing / STD) is a wholesale distributor of adult and lifestyle products. Unlike most sources, XR Direct uses three separate static feed URLs rather than an interactive Test Connection button. Get Inventory (Primary) downloads and merges all three feeds on every run: a Product XML feed (credentials embedded in the URL, pulled fresh every run), an Image XML feed (credentials embedded in the URL, cached 1 day), and an Inventory CSV feed (public, no credentials, cached 1 hour). Get Inventory (Secondary) uses only the public Inventory CSV for lightweight hourly quantity refreshes.
XR Direct is configured with three static feed URLs instead of the usual connection form, and there is no Test Connection button. Complete the Source Wizard (Vendor Warehouse recommended), then go to Integrations → Get Inventory [Primary] → Start Creating Integrations → XR Direct and enter the three URLs on the integration settings page. XR Direct provides all three when you sign up as a reseller.
No Test Connection button: the integration validates the Product XML URL on the first run, not during setup
XR Direct does not use the standard interactive Test Connection flow. Instead, Flxpoint verifies the Product XML feed URL is reachable as the first step of every GIP run. Credential or URL issues will surface in the run logs, not during setup. Save the integration with the three feed URLs and run GIP manually for your first sync to confirm everything is working.
Feed URLs contain your login and password: treat them as secrets
The Product XML and Image XML feed URLs have your XR Direct login and password embedded directly in the URL path. Anyone with the URL has full read access to your catalog including pricing. Never paste these URLs in support tickets, screenshots, emails, or shared documents without redacting the credential portion. If a feed URL is exposed, contact XR Direct immediately to rotate it, then update the integration configuration.
MSRP fallback: if suggestedRetail is null or zero, MSRP = price × 1.4
GIP maps suggestedRetail as MSRP. If a variant's suggestedRetail is null or zero, MSRP is automatically calculated as price × 1.4. This is a built-in fallback, no separate rule needed. If you need accurate vendor-supplied MSRP on affected SKUs, contact XR Direct to populate suggestedRetail in their feed.
Variant detection: items where masterProductId does not equal model are variants; MPN truncated to 50 chars
XR Direct groups variants by masterProductId. Items where masterProductId differs from model are treated as variants of the parent; items where they match are standalone products. manufacturerCode (MPN) is hard-capped at 50 characters, longer values are truncated by design. Up to 4 option types per product: size, color, option, flavor.
| Field | Maps To: Notes |
|---|---|
| masterProductId | → Parent SKU. Groups variants: items where masterProductId differs from model are variants of the parent; items where they match are standalone products. |
| model | → Variant SKU. |
| title | → Title. Whitespace trimmed. |
| description | → Description. HTML tags stripped. |
| brand | → Manufacturer. Title-cased. |
| primaryCategory | → Category Level 1. CamelCase converted to spaced words, for example AdultToys becomes Adult Toys. |
| category | → Category Level 2. First semicolon-delimited value only. |
| price | → Cost. |
| suggestedRetail | → MSRP. Falls back to price × 1.4 when null or zero. |
| map | → MAP. |
| weight | → Weight. No dimensions are supplied by this feed. |
| upc | → UPC. |
| manufacturerCode | → MPN. Truncated to 50 characters. |
| active | → Status. |
| QtyAvailable | → Quantity. From the Inventory CSV, joined on ItemID to model. |
| Field | Maps To: Notes |
|---|---|
| ItemID | → Variant SKU. Required. Joined to the SKU created by Get Inventory (Primary). |
| QtyAvailable | → Quantity. The only field this operation updates. |
| Full catalog fields | Not included. Pricing, images and attributes refresh through Get Inventory (Primary) only. |
& characters outside CDATA blocks, which break standard XML parsers. Flxpoint's integration automatically applies a CDATA-aware regex fix and retries. No action is needed on your end unless the retry also fails. If parsing still fails after the auto-retry, the feed itself may be corrupt at the time of the run, re-trigger the run after a few hours or contact XR Direct support to verify the feed file is intact.How do I set up XR Direct and where do I get the feed URLs?▸
What does each feed contribute to GIP and how often is each cached?▸
What field mappings does GIP use from the Product XML?▸
masterProductId → Parent SKU; title → Title (whitespace trimmed); description → Description (HTML tags stripped); brand → Manufacturer (title-cased); primaryCategory → Category Level 1 (CamelCase converted to spaced words, e.g. AdultToys becomes Adult Toys); category → Category Level 2 (first semicolon-delimited value only). Variant-level: model → Variant SKU; price → Cost; suggestedRetail → MSRP (fallback: price × 1.4 if null or zero); map → MAP; weight → Weight (no dimensions); upc → UPC; manufacturerCode → MPN (truncated to 50 chars); active → Status. Inventory: QtyAvailable → Quantity (joined on ItemID to model).