connection_id and the cct_… key from
the three steps. $BASE is the URL of the
CrossUp ingestion API.
What you sync
Your catalog
Categories, products, variants and stock. It’s what CrossUp can
recommend.
Your historical orders
Your last year of sales. From them CrossUp learns what sells with what
from day one.
The three steps
1
Open the run
One run per entity type. The response carries its
run_id (snp_…).2
Send the pages
Up to 500 entities per page, all with
upsert.3
Close it
On close, whatever of that type didn’t come is removed. On the initial sync
there’s nothing to remove.
Read the response
Every page returns one result per position, in the same order you sent the entities.
A quarantined entity doesn’t hold up the rest: the rest of the batch goes in.
What a revision is, and why resending is safe, is in
Staying up to date.
Catalog first, history last
One run per entity, in this order: categories (taxonomy_node), products
(item), variants (variant), availability (availability) and, last, your
historical orders (order). If a product names a category that hasn’t
arrived yet, it doesn’t fail: it resolves when the category arrives.
There’s a single open run per connection and entity. With two, closing the
first would remove what the second brought.
What you’ll see
The close returnsreceived, deleted and quarantined. On a clean initial
sync, deleted and quarantined are zero. After that, your store can read a
product by your own id with GET /v1/catalog/items/by-external/{external_id}
and its storefront key.
If you don’t see it
Staying up to date
Every change after the initial sync.
The canonical model
The fields of each entity.