The five entities
All of them are identified by their
external_id, the id they have in your
system. item, variant and availability end up in the same product, and
can be sent separately.
Availability carries its variant’s external_id, with no suffixes. A
variant has a single availability: if you send two warehouses for the same
one, the second overwrites the first.
The fields
item
item
variant
variant
availability
availability
taxonomy_node
taxonomy_node
order
order
Three types that aren’t what they seem
- Money is a string.
amountis a decimal as text: a binary float shifts the price and shows up as a missing cent at checkout. - Text is per language. A language you don’t have is left out: don’t copy English into Spanish.
- Stock has three states.
unlimited,trackedandunknown, andunknownisn’t zero.
Orders
There’s no customer entity: the shopper’s data travels inside the order, and all of it is optional. Whatever you send there, don’t write it to any log. For the sale to be measured, the order has to match the recommendation:- The order’s
external_idis the samecart_idyour store sends when it requests recommendations. - Every line carries
variant_external_id. A line counts as sold if its variant is in the order.
How it reaches your store
CrossUp keeps yourexternal_id values and assigns its own ids (itm_…,
var_…). Your store can request a product by your id with
GET /v1/catalog/items/by-external/{external_id}.
What you’ll see
Every accepted entity shows up in the catalog with the fields you sent, and no others. Aquarantined names the exact field that didn’t validate.
If you don’t see it
Connector SDK and protocol
The contract for these entities, in OpenAPI.
What CrossUp decides
What goes in, what comes out and what stays on your side.