Whether it comes from VTEX, a headless store or an ERP, your catalog reaches CrossUp as five entities. Everything is optional except what identifies, and a field your system doesn’t have is left out: not empty, not zero.

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

Three types that aren’t what they seem

  • Money is a string. amount is 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, tracked and unknown, and unknown isn’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_id is the same cart_id your store sends when it requests recommendations.
  • Every line carries variant_external_id. A line counts as sold if its variant is in the order.
When the order changes (the payment, the total), send it again: the match is redone and comes out the same, without duplicates.

How it reaches your store

CrossUp keeps your external_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. A quarantined 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.