Pedidos externos

A funcionalidade de pedidos externos, desenvolve a possibilidade criar pedidos externos oriundos de sistemas terceiros na plataforma.

Porém, é importante saber que os pedidos externos são gerados na plataforma apenas a nível de consulta.

Como funciona e para que serve a integração de pedidos externos?

Sabemos a necessidade de efetuar a criação de pedidos na plataforma de e-commerce para que os mesmos sirvam para consultas ou até mesmo para termos uma equivalência com sistemas externos.
Exemplo: pedidos de showrooming vendidos em loja direto no caixa apareçam também na plataforma, garantindo assim uma experiência mais agradável no gerenciamento dos pedidos.

Com isso, desenvolvemos uma API específica para a criação destes pedidos externos que servem como uma forma de consulta na plataforma.

Abaixo mostramos um pouco como funciona o fluxo e métodos utilizados.

Quais os principais dados que precisamos para criar um pedido externo?

Para conseguirmos efetuar a criação de um pedido na plataforma sem que o mesmo seja realizado via e-commerce ou hub de marketplaces, nós utilizaremos o método chamado SaveOrder na API que atualmente não fica visível no swagger.

Antes de prosseguir para a criação, é importante lembrarmos ser necessário algumas informações obrigatórias para gerar o pedido na plataforma. Exemplo: itens do pedido, cliente e informações de entrega.

*Todos detalhes para a integração através dos métodos abaixo ficam disponíveis no swagger da API de integração (layer) acessível com o mesmo usuário e senha da plataforma através dos links dos métodos.

Itens do pedido

Para os itens do pedido, são detalhes e informações pertinentes ao SKU vendido. Método GetSKUByIntegrationID disponível na API para coletar as informações necessárias ou diretamente do sistema de backoffice.

A chave utilizada como parâmetro neste caso pode ser o próprio ID de integração do SKU, conforme consta no ERP, passando apenas o ID entre aspas duplas por ser uma string.

Exemplo: "SKU-2088"

Endpoint: https://UrlDaLoja.layer.core.dcg.com.br/reference.html?url=/swagger.json#!/Catalog/GetSKUByIntegrationID

Cliente

Para passar informações do cadastro do cliente na criação do pedido externo, colete as informações de cliente já cadastrado (GetCustomer) ou efetue a criação de um novo (SaveCustomer) antes de efetuar a criação do pedido, pois utilizamos CPF/CNPJ como chave para encontrar o cadastro.

Endpoint GetCustomer: https://UrlDaLoja.layer.core.dcg.com.br/reference.html?url=/swagger.json#!/Profile/GetCustomer
Endpoint SaveCustomer: https://UrlDaLoja.layer.core.dcg.com.br/reference.html?url=/swagger.json#!/Profile/SaveCustomer

Frete

Para as informações do frete, as mesmas também podem ser coletadas via API através do método GetDeliveryMethod.

Neste método a chave utilizada para envio pra criar o pedido deve ser o DeliveryMethodID e o mesmo deve estar ativo na plataforma.

Endpoint: https://UrlDaLoja.layer.core.dcg.com.br/reference.html?url=/swagger.json#!/Configuration/GetDeliveryMethod

Cotação de frete

Esta não é uma etapa obrigatória.

Se necessário for, também dispomos de um endpoint em uma API específica para a cotação de frete.

Endpoint: https://UrlDaLoja.core.dcg.com.br/web-api/v1/Delivery/FreightQuote/Get/3

REQUEST FREIGHTQUOTE

{
    "items": [{
        "depth": 1,
        "height": 1,
        "is_free_shipping": false,
        "price": 69.99,
        "product_id": 985220,
        "product_name": "PRODUTO TESTE",
        "quantity": 1,
        "ships_individually": false,
        "sku_id": 985221,
        "sku_name": "PRODUTO TESTE COR VERMELHO",
        "weight": 1,
        "width": 1
    }],
    "postal_code": "94090320"
}

Como efetuamos a criação de um pedido externo?

Agora que já possuímos a maioria das informações obrigatórias para a criação de um pedido, utilizaremos de fato a requisição que efetuará a criação do pedido na plataforma. Para isso, abaixo temos os endpoints de produção e homologação e as informações para enviarmos a requisição.

Produção: https://UrlDaLoja.layer.core.dcg.com.br/v1/Sales/API.svc/web/SaveOrder
Homologação: https://UrlDaLoja.layer.core-hlg.dcg.com.br/v1/Sales/API.svc/web/SaveOrder

REQUEST

{
  "IntegrationOrderID": "1012021235",
  "WebSiteID": 4,
  "OrderStatus": 78,
  "SourceChannel": 82,
  "FulfillmentData": "",
  "IntegrationWebSiteID": "101",
  "Items": [
    {
      "SKU": "SKU-Produto-lote-OMA-54",
      "Name": "SKU Produto lote OMA 54",
      "Quantity": 1,
      "ListPrice": 37,
      "SalesPrice": 37,
      "OrderExternalID": "1012021235",
      "OrderItemExternalID": "1012021235",
      "InStockHandlingDays": 5,
      "OutStockHandlingDays": 0,
      "ProductType": ""
    }
  ],
  "Customer": {
    "Type": 67,
    "Name": "Exemplo",
    "Surname": "do Exemplo",
    "TradingName": "",
    "Email": "[email protected]",
    "Gender": 77,
    "DocumentNumber": "0000000000",
    "StateInscription": "",
    "RG": "",
    "Cellphone": "5133333333",
    "Phone": "5198190550",
    "BirthDate": "/Date(1462557650167-0300)/"
  },
  "BillingAddress": {
    "AddressLine": "Rua Sem Nome",
    "Number": "775",
    "PostalCode": "94035180",
    "Neighbourhood": "Passo das Pedras",
    "City": "Gravatai",
    "State": "RS",
    "AddressNotes": "",
    "Landmark": "",
    "ContactName": "Exemplo",
    "FullName": ""
  },
  "DeliveryAddress": {
    "AddressLine": "Rua Sem Nome",
    "Number": "775",
    "PostalCode": "94035180",
    "Neighbourhood": "Passo das Pedras",
    "City": "Gravatai",
    "State": "RS",
    "AddressNotes": "",
    "Landmark": "",
    "ContactName": "Exemplo",
    "FullName": ""
  },
  "Payment": {
    "TotalAmount": 53,
    "DiscountAmount": 0,
    "Installments": 0,
    "TotalInterest": 0,
    "Alias": "string"
  },
  "Delivery": {
    "TotalAmount": 16,
    "ETA": 0,
    "DeliveryLogisticType": 68,
    "Alias": "string",
    "OrderInternalShippingQuoteType": "string",
    "DeliveryMethodID": 48,
    "CarrierName": "string",
    "PointOfSaleId": "string",
    "PointOfSalePickUpPerson": "string",
    "TrackingCode": "1234",
    "TrackingURL": "string"
  },
  "Invoice": {
    "Key": "string",
    "Url": "string",
    "IssueDate": "string",
    "Series": "string",
    "CFOP": "string",
    "Number": "string",
    "Xml": "string"
  },
  "Metadata": [
    {
      "Name": "string",
      "Value": "string"
    }
  ]
}

RESPONSE

{
   "Errors": null,
   "IsValid": "true",
   "Warnings": null,
   "FromOrderStatusAlias": null,
   "FromOrderStatusId": null,
   "OrderID": "48b3a5fc-74d6-4922-b8b5-b5d1bc616172",
   "OrderNumber": "00068-00137",
   "ToOrderStatusAlias": "New",
   "ToOrderStatusId": "3",
   "WebsiteGroupId": "2"
}

Como podemos alterar os status destes pedidos via integração?

A alteração dos status destes pedidos, após criados aqui na plataforma, pode ser realizada através de outro endpoint disponível na API, chamado UpdateOrder.

Para mais detalhes de como estes envios podem ser feito, acesse aqui para saber mais.


Como podemos consultar estes pedidos via integração?

É possível também efetuarmos a consulta destes pedidos e todas as informações contidas neles através da integração.

Para saber mais sobre os métodos disponíveis e as informações detalhadas para a consulta, clique aqui.

Como integrar os pedidos externos a ERPs ou sistemas de terceiros

Para que os pedidos externos cheguem até a fila de integração e fiquem disponibilizados para consumo por sistemas externos, é necessário algumas configurações prévias na plataforma.

  1. É preciso ativar a configuração para que os pedidos externos sejam enviados para a fila. Acesse em Configs > Configurações Gerais > Pedidos.
  1. Abra as configurações de Pedido, desça a página até a seção Pedidos Externos.
  1. Marca a opção Habilitar envio para fila de integração como Sim e abaixo selecione a fila ue será usada para o consumo dos pedidos externos.

👍

Lembre! :)

O recurso foi desenvolvido para permitir caso seja necessário a integração do pedido externo, o mesmo seja disponibilizado em uma fila de integração para que seja consumido.
Se não for enviado para a fila de integração, ficará apenas como um pedido "ilustrativo" no painel administrativo.


Páginas relacionadas
Did this page help you?