As duas rotinas do seu conector
1 · Cada mudança, quando acontece
Mudou um preço, entrou estoque, um produto foi apagado, um pedido foi pago:
seu conector envia só isso.
2 · Tudo, uma vez por dia (opcional)
Só se o seu sistema não consegue avisar o que apaga: envia o catálogo
completo e o que não veio é removido.
delete, a rotina 1 basta.
Rotina 1: enviar o que mudou
A CrossUp te dá um endpoint e seu conector faz umPOST cada vez que algo
muda. Como o seu conector fica sabendo da mudança depende do seu sistema: a
CrossUp não precisa saber.
1
Algo muda no seu sistema
Um preço, um estoque, um produto novo ou apagado, um pedido novo ou que
mudou de status.
2
Passe para o formato da CrossUp
Cada entidade leva seu
external_id (o id no seu sistema) e uma operação:
upsert se foi criada ou mudou, delete se foi apagada. Os campos de cada
uma estão em O modelo canônico.3
Envie
Um
POST para /observations, com até 500 entidades. Cada uma volta com
seu resultado, igual à
sincronização inicial.delete não leva document. Pedidos novos, ou que mudam de status, vão
por aqui como order.
Rotina 2 (opcional): o snapshot diário
Use só se o seu sistema não consegue enviar osdelete. É a mesma sequência da
sincronização inicial: você abre um run por
entidade, envia tudo em páginas e fecha. Ao fechar, o que não veio daquele tipo
é removido. Programe uma vez por dia, no horário de menos movimento da sua
loja.
Se algo falhar, tente de novo
Reenviar o mesmo nunca duplica nada, então diante de uma queda ou de um timeout você pode enviar o lote inteiro de novo.- Com
revision: um inteiro que só cresce, como umupdated_atem milissegundos. É aplicada só se for maior que a última; se não, voltastalee não sobrescreve nada. - Sem
revision: a CrossUp compara o conteúdo. Se for idêntico ao último, voltaunchanged.
revision.
O que não valida: quarentena
Uma entidade que não cumpre o contrato voltaquarantined. O reason nomeia o
campo: document.quantity: required. As outras do lote entram.
Corrija essa entidade e reenvie só ela.
O que volta accepted já é da CrossUp. Fica arquivado e chega ao catálogo
mesmo que algo do outro lado esteja fora do ar. Seu conector
não precisa reenviar.
Glossário
- Conexão: sua loja na CrossUp. O id é o
connection_id(cn_…). - Observação: uma entidade que mudou, com
upsertoudelete. - Snapshot: “aqui está tudo” de um tipo de entidade. Ao fechá-lo, o que não veio é removido.
- Run: um snapshot aberto (
snp_…). Sem fechar, expira em 24 horas. - Revisão: um inteiro que só cresce e diz qual versão é a mais nova.
- Quarentena: o que não validou;
reasondiz por quê.
O que você vai ver
Cada mudança que você envia voltaaccepted. Um reenvio volta unchanged ou
stale, e seu catálogo fica com a versão mais nova.
Se não aparecer
O modelo canônico
Quais campos cada entidade leva e quais se omitem.
SDK de conector e protocolo
O contrato, e como falá-lo na sua linguagem.