Pular para o conteúdo principal

Buscar o produto

Quando o vendedor pesquisa um produto por texto no ERP, o ERP repassa a pesquisa ao Sipru. O Siprinho mostra uma lista de candidatos para o vendedor escolher — o vendedor não digita nada duas vezes.

É uma chamada no endpoint product do canal, o endpoints.product que voltou na abertura do canal, com o texto pesquisado em query:

curl -X POST $SIPRU_BASE_URL/api/erp/channel/$CHANNEL_ID/product \
-sS --fail-with-body --max-time 5 --retry 1 --retry-connrefused \
-H "Authorization: Bearer $SIPRU_SECRET" \
-H "X-Sipru-Partner-Id: $SIPRU_PARTNER_ID" \
-H "X-ERP-Name: $ERP_NAME" \
-H "X-ERP-Version: $ERP_VERSION" \
-H "X-Local-MAC-Address: $DEVICE_MAC_ADDRESS" \
-H "X-Local-Machine-Name: $LOCAL_MACHINE_NAME" \
-H "X-CNPJ: $CNPJ_LOJA" \
-H "X-Codigo-Externo-Rede: $CODIGO_DA_REDE" \
-H "X-Codigo-Externo-Loja: $CODIGO_DA_LOJA" \
-H "Content-Type: application/json" \
-d '{"query":"alicat"}'

Os headers são os mesmos de toda chamada à Sipru — ver Headers.

Busca por texto: só mostra candidatos, não mexe na cesta

Com query em vez de productCode, a tela mostra uma lista de candidatos para o vendedor escolher, e a cesta continua exatamente como estava.

Quem inclui de fato um produto na cesta é o próximo passo — Incluir produto na cesta.

O corpo​

CampoTipoDescrição
querystringTexto livre, como o vendedor digitou no ERP. Até 120 caracteres.

Mande só o query. O mesmo endpoint também aceita productCode e ean, e eles têm precedência sobre o texto (productCode → ean → query): com um código no corpo, a chamada deixa de ser uma busca e inclui o produto na cesta.

O Sipru resolve o texto no catálogo da loja do canal, com a política de preço do canal.

A resposta​

200 confirma que a busca foi publicada na tela do vendedor. O ERP não precisa fazer nada com a resposta.

Erros​

HTTPcodeSignificado
400—Nenhum entre productCode, ean e query, ou termo inválido.
401—Credencial de parceiro ausente ou inválida.
404CHANNEL_NOT_FOUNDCanal inexistente — ou pertencente a outro parceiro.
404CHANNEL_PENDING_SIGNUPO vendedor ainda não concluiu o cadastro na Sipru — ver Vendedor sem conta Sipru.
404PRODUCT_NOT_FOUNDO texto não achou nada no catálogo da loja. A tela do vendedor é avisada mesmo assim.
409CHANNEL_CLOSEDO canal já foi encerrado.
410CHANNEL_EXPIREDPassou do channelExpiresAt. Abra um canal novo.
503—Serviço de canal indisponível. Pode repetir.
Não trave o ERP esperando

Faça a chamada de forma assíncrona e com timeout curto, como o --max-time 5 do exemplo. Um PRODUCT_NOT_FOUND ou uma falha de rede não podem impedir o vendedor de seguir com a cotação no ERP.

O contrato formal está em pushProductToChannel na referência da API.