The initial sync sends your products and your historical orders in one go, so CrossUp starts out knowing what you sell and what already sells together. You do it once, with one snapshot per entity: open it, send pages, close it.

What you sync

The minimum: products and stock

Products (item) and their availability (availability). With that, CrossUp already recommends in all five moments.

To recommend better

Categories and your last year of orders, both optional. From the orders, CrossUp learns what sells with what from day one.
You need the connection_id and the cct_… key from the three steps. The examples use cn_4Kq9Xz and cct_your_key: swap in your own.

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.
If the load breaks halfway, don’t close the run: it would remove what you haven’t sent yet. An unclosed run expires on its own after 24 hours, deleting nothing.

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 Daily updates.

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 returns received, 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

Daily updates

Every change after the initial sync.

The canonical model

The fields of each entity.