Documento de Integração

ACESSO RÁPIDO

 

 

INBOUND

1. Obter token de segurança. 1

2. Enviar produtos. 1

3. Atualizar status de pedido. 1

4. Atualizar produtos de pedido. 1

5. Enviar status de clientes. 1

 

 

OUTBOUND

1. Recuperar lista de pedidos. 1

2. Recuperar dados de pedido

 

DOCUMENTO DE INTEGRAÇÃO

v1.5.0

 

 

A API de Integração do Fornecedor permite sincronizar produtos e pedidos do ERP do Fornecedor com a plataforma de comércio eletrônico do VENDDOR.

 

Considerando a possibilidade de eventos bidirecionais, a plataforma de integração do VENDDOR disponibiliza duas API’s, a API Inbound e a API Outbound, que são responsáveis pelos eventos de negócio.

 

 

Inbound:v1.5.0

 

A API Inbound utiliza o protocolo HTTPS como transporte disponibilizando 05 (cinco) recursos RESTFul.

 

Os recursos inbound (entrada) são responsáveis por sincronizar eventos de negócio que precisam ser criados ou atualizados na plataforma VENDDOR.

 

A media padrão é application/json.

 

 

Outbound:v1.5.0

 

A API Outbound utiliza o protocolo HTTPS como transporte disponibilizando 02 (dois) recursos RESTFul.

 

Os recursos outbound (saída) são responsáveis por recuperar informações de pedidos da plataforma VENDDOR.

 

A media padrão é application/json.

 

 

Ambientes

 

URL de Desenvolvimento: https://49.12.98.124:8243/

 

URL de Produção: https://49.12.109.198:8243/

 

 

Credenciais de acesso

 

O usuário e a senha devem ser solicitados diretamente pelo Fornecedor ao analista comercial responsável pelo seu onboarding na plataforma.

 

 

 

INBOUND

v1.5.0


 

1. Obter token de segurança

 


Caso

Path

Verb

Objetivo

1

/token

POST

Gerar um token de segurança para o consumidor e registrar a transmissão do lote de produtos

 

EXEMPLO:

 

REQUEST

 

curl --location --request POST 'https://49.12.98.124:8243/inbound/token' \

--header 'Authorization: Basic base64(usuario:senha)' \

--header 'Content-Type: application/json'

 

 

RESPONSE - SUCESSO

 

{

   "tokenResponse": "c9817243-29bb-466e-bdb4-772cf2e45597"

}

 

 

RESPONSE - FALHA

 

{

   "tokenResponse": "Store not found key: SU1QTEFTV"

}

 

 

REGRAS:

 

·      O cabeçalho  ‘Authorization’ deve ser do tipo Basic e o conteúdo deve ser

usuario + : + senha no formato base64.

 

·      Deve ser utilizado o token de resposta para o envio do lote de produtos.

 

 

 

  

2. Enviar produtos

 

 

Caso

Path

Verb

Objetivo

2

/catalog

POST

Enviar os produtos que serão armazenados e sincronizados na plataforma VENDDOR

  

EXEMPLO:

 

REQUEST

 

curl --location --request POST 'https://49.12.98.124:8243/inbound/catalog' \

--header 'Authorization: Basic base64(usuario:senha)' \

--header 'X-Venddor-KEY: a25da132-b60d-4db2-8747-0eca7d95bf19' \

--header 'Content-Type: application/json' \

--data-raw '{

    "products" :[

        {

            "ean" : "7891000071014",

            "ncm" : "18069000",

            "name" : "Nestlé Sensação",

            "brand" : "NESTLE",

            "weight" : "4500",

            "price" : "17.23",

            "amount" : "23",

            "status" : "1",

            "number" : "1",

            "last" : false

        }

    ]

}'

 

 

RESPONSE - SUCESSO

 

{

    "tokenResponse": "1.0" // Representa a quantidade de produtos em fila de sincronismo

}

 

 

RESPONSE - FALHA

 

{

    "tokenResponse": "object has missing required properties ([\"amount\"])"

}

 

  

REGRAS:

 

·      O cabeçalho  ‘Authorization’ deve ser do tipo Basic e o conteúdo deve ser

usuario + : + senha no formato base64.

 

·      Deve ser enviado o cabeçalho 'X-Venddor-KEY’ com token do lote de atualização.

 

·      Deve ser enviado no máximo 60 produtos por requisição e não é necessário gerar um  token de lote por requisição.

 

·      Ex: Caso seja necessário atualizar 240 produtos, deve ser solicitado um token de lote e efetuar 4 requisições com 60 produtos.

 

·      Informações obrigatórias:

o   Ean (código universal do produto)

o   amount (quantidade que deve ficar disponível na plataforma)

o   status (informa se a plataforma deve adicionar/atualizar o produto ou remover )

o   name (nome do produto)

o   price (valor unitário do produto)

 

·      Informações desejáveis:

o   last (Informa ao processador que não será mais enviado produtos com o token utilizado).

o   number  Pode ser um número de controle sequencial e único ou o ID interno do produto do fornecedor)

 

 

 

 

3. Atualizar status de pedido


 

Caso

Path

Verb

Objetivo

3

order/{orderId}

PUT

Atualizar status de um determinado pedido no VENDDOR (orderId).

 

EXEMPLO:

 

REQUEST

 

curl --location --request PUT 'https://49.12.98.124:8243/inbound/order/130023' \

--header 'Authorization: Basic base64(usuario:senha)' \

--header 'Content-Type: application/json' \

--data-raw '{

    "order" :

        {

            "status" : "O"

        }

}'

 

 

RESPONSE - SUCESSO

 

{

    "tokenResponse": "1.0" // Representa a quantidade de  pedidos na fila de atualização

}

 

 

RESPONSE - FALHA

 

{

    "tokenResponse": "object has missing required properties ([\"status\"])"

}

 

 

  

REGRAS:

 

·      O cabeçalho  ‘Authorization’ deve ser do tipo Basic e o conteúdo deve ser

usuario + : + senha no formato base64.

 

·      Informações obrigatórias:

o   status (novo status para o pedido)

 

·      Valor possíveis:

 

P

Em preparação

H

Despachado

G

Solicitado cancelamento

E

Enviado ao fornecedor

A

Pendente aceite do cliente

Y

Pagamento em atraso

I

Cancelado

B

Aguardando estoque

D

Pagamento negado

F

Erro

O

Em aberto

C

Finalizado

J

Cancelamento negado

 

 



4. Atualizar produtos de pedido



Caso

Path

Verb

Objetivo

4

order/{orderId}

PUT

Atualizar os produtos de um determinado pedido no VENDDOR (orderId).

 

EXEMPLO:

 

REQUEST

 

curl --location --request PUT 'https://49.12.98.124:8243/inbound/order/3986' \

--header 'Authorization: Basic base64(usuario:senha)' \

--header 'Content-Type: application/json' \

--data-raw '{

    "products" :  {

                      "7891522020026" : {

                                "amount" : "6"

                            },

                      "3228020191349" : {

                                "amount" : "7"

                            }

                  }

            }'

 

 

RESPONSE - SUCESSO

 

{

    “order_id”: “3986”

}

 

 

RESPONSE - FALHA

 

{

    "tokenResponse": "object has missing required properties ([\"amount\"])"

}

 

 

REGRAS:

 

·      O cabeçalho  ‘Authorization’ deve ser do tipo Basic e o conteúdo deve ser

usuario + : + senha no formato base64.

 

·      Informações obrigatórias:

o   product_code (enviado como chave dentro de “products”)

o   amount (nova quantidade do produto no pedido)

 

·       ATENÇÃO: Se um pedido tiver vários produtos, certifique-se de especificar todos eles ao atualizar o pedido com a solicitação PUT. Os produtos não especificados na solititação PUT serão removidos do pedido.


 



5. Enviar status de clientes



Caso

Path

Verb

Objetivo

5

/customer

PUT

Atualizar os dados de clientes do fornecedor na plataforma VENDDOR

 

EXEMPLO:

 

REQUEST

 

curl --location --request PUT 'https://49.12.98.124:8243/inbound/customer' \

--header 'Authorization: Basic base64(usuario:senha)' \

--header 'Content-Type: application/json' \

--data-raw '{

   "customer": [

      {

         "33333333333":false

      },

      {

         "08319746500141":true

      },

      {

         "43643857000472":false

      },

      {

         "13386135000189":true

      },

      {

         "06144551000100":true

      },

      {

         "08303882000181":true

      }

   ]

}'

 

 

RESPONSE - SUCESSO

 

{

    {"result": "true"}

}

 

 

RESPONSE - FALHA

 

{

   {"result": "false"}

}

 

 

REGRAS:

 

·      O cabeçalho  ‘Authorization’ deve ser do tipo Basic e o conteúdo deve ser usuario + : + senha no formato base64.

 

·      Informações obrigatórias:

o   customer (lista dos CNPJ’s e respectivo status de bloqueio)

 

·      Valor possíveis:

o   true – Indica que o cliente está bloqueado

o   false – Indica que o cliente está ativo

 

·      Informações adicionais

o   Recomendamos o envio de no máximo 50 CNPJ por request




OUTBOUND

v1.5.0


 

1. Recuperar lista de pedidos

 

 

Caso

Path

Verb

Objetivo

1

/orders?status={statusId}

&page={pageNumber}

GET

Recuperar pedidos da plataforma VENDDOR de forma paginada com base no status

 

EXEMPLO:

 

REQUEST

 

curl --location --request GET 'https://49.12.98.124:8243/outbound/orders?status=C' \

--header 'Authorization: Basic base64(usuario:senha)' \

--header 'Accept: application/json'

 

 

RESPONSE - SUCESSO

 

{

    "orders": [

        {

            "order_id": "3974",

            "timestamp": "1614132087",

            "firstname": "Hélder Souza",

            "lastname": "Lima",

            "email": "[email protected]",

            "phone": "(55)84994-6142",

            "status": "C",

            "total": "56.85"

        },

        {

            "order_id": "3973",

            "timestamp": "1614132078",

            "firstname": "Hélder Souza",

            "lastname": "Lima",

            "email": "[email protected]",

            "phone": "(55)84994-6142",

            "status": "C",

            "total": "61.98"

        }

    ],

    "params": {

        "page": 1,

        "items_per_page": 20,

        "total_items": "2"

    }

}

 

 

RESPONSE - FALHA

 

{

    "tokenResponse": "object has missing required properties ([\"status\"])"

}

 


REGRAS:

 

·      O cabeçalho  ‘Authorization’ deve ser do tipo Basic e o conteúdo deve ser

usuario + : + senha no formato base64.

 

·      São limitados 20 registros por solicitação.

 

·      Informações obrigatórias:

o   status (novo status para o pedido)

o   page (página com o limite de 20 registros)

 

·      Valor possíveis do status:

 

P

Em preparação

H

Despachado

G

Solicitado cancelamento

E

Enviado ao fornecedor

A

Pendente aceite do cliente

Y

Pagamento em atraso

I

Cancelado

B

Aguardando estoque

D

Pagamento negado

F

Erro

O

Em aberto

C

Finalizado

J

Cancelamento negado

 

 

 

 

2. Recuperar dados de pedido



Caso

Path

Verb

Objetivo

2

/orders/{orderId}

GET

Recuperar dados de um determinado pedido na plataforma VENDDOR

 

EXEMPLO:

 

REQUEST

 

curl --location --request GET 'https://49.12.98.124:8243/outbound/orders/3974' \

--header 'Authorization: Basic base64(usuario:senha)' \

--header 'Accept: application/json'

 

 

RESPONSE - SUCESSO

 

{

    "order_id": "3974",

    "total": "56.85",

    "subtotal": 46.85,

    "discount": 0,

    "subtotal_discount": 0,

    "shipping_ids": "",

    "shipping_cost": "0.00",

    "timestamp": "1614132087",

    "status": "C",

    "notes": "",

    "details": null,

    "firstname": "Hélder Souza",

    "lastname": "Lima",

    "b_firstname": "Hélder Souza",

    "b_lastname": "Lima",

    "b_address": "Rua Quinze de Novembro, 2000",

    "b_address_2": "",

    "b_city": "Natal",

    "b_county": "",

    "b_state": "RN",

    "b_country": "BR",

    "b_zipcode": "",

    "b_phone": "(55)84994-6142",

    "s_firstname": "",

    "s_lastname": "",

    "s_address": "Rua Quinze de Novembro, 2000",

    "s_address_2": "",

    "s_city": "Natal",

    "s_county": "",

    "s_state": "RN",

    "s_country": "BR",

    "s_zipcode": "",

    "s_phone": "",

    "s_address_type": "",

    "phone": "(55)84994-6142",

    "fax": "",

    "url": "",

    "email": "[email protected]",

    "payment_id": "0",

    "tax_exempt": "N",

    "fields": {

        "56": "23.423.423/4555-33",

        "67": "testando"

    },

    "products": {

        "515131976": {

            "item_id": "515131976",

            "product_code": "7891000140307",

            "price": "12.81",

            "amount": "1",

            "product": "Leite Em Pó Integral Ninho 400g",

            "product_status": "A",

            "discount": 0,

            "base_price": 12.81,

            "original_price": 12.81,

            "tax_value": 0,

            "subtotal": 12.81,

            "shipped_amount": 0,

            "shipment_amount": "1"

        },

        "1773370078": {

            "item_id": "1773370078",

            "product_code": "7891000244265",

            "price": "2.79",

            "amount": "1",

            "product": "Iogurte Parcialmente Desnatado Morango Nestlé Frasco 170g",

            "product_status": "A",

            "discount": 0,

            "base_price": 2.79,

            "original_price": 2.79,

            "tax_value": 0,

            "subtotal": 2.79,

            "shipped_amount": 0,

            "shipment_amount": "1"

        }

    },

    "taxes": [],

    "tax_subtotal": 0,

    "b_country_descr": "Brasil",

    "s_country_descr": "Brasil",

    "b_state_descr": "Rio Grande do Norte",

    "s_state_descr": "Rio Grande do Norte"

}

 


RESPONSE - FALHA

 

{

    "tokenResponse": "object has missing required properties ([\"orderId\"])"

}

 

 

REGRAS:

 

·      O cabeçalho  ‘Authorization’ deve ser do tipo Basic e o conteúdo deve ser

usuario + : + senha no formato base64.

 

·      Informações obrigatórias:

            orderId ( identificador do pedido )

 

·      Valor possíveis do status:

 

P

Em preparação

H

Despachado

G

Solicitado cancelamento

E

Enviado ao fornecedor

A

Pendente aceite do cliente

Y

Pagamento em atraso

I

Cancelado

B

Aguardando estoque

D

Pagamento negado

F

Erro

O

Em aberto

C

Finalizado

J

Cancelamento negado

 

 

 

Adicionar itens selecionados ao carrinho