A API de pedidos da Yourviews permite que a plataforma do lojista envie os pedidos realizados no site ou loja física. É recomendável enviar apenas os pedidos já entregues ou no último status possível (por exemplo "enviado").

Ao enviar um pedido como "entregue" nós começaremos a contar os dias para disparar o e-mail de avaliação.

É possível enviar todos os pedidos, mesmos os pendentes, e posteriormente marcá-los como "entregue" ou "cancelado", de acordo com os respectivos métodos.


Lembre-se de ler sobre a introdução e autenticação da API: https://yourviews.freshdesk.com/support/solutions/articles/5000734890-api-basic-auth-primeiros-passos-e-autenticac%C3%A3o


IMPORTANTE: Você também pode verificar essa documentação com exemplos em nossa coleção do Postman:

https://documenter.getpostman.com/view/3359543/yourviews-api/RVu8gSWM#77aa0ff0-5e59-f6b6-70cd-6b889342a368


Inserir um pedido

Endpoint: POST /order/


Para inserir um pedido, você deve informar todos os campos do mesmo. Isso inclui, pelo menos, dados básicos do pedido (data, valor, status), dados do cliente e dados do produto. A tabela abaixo compila todos os campos (obrigatórios e opcionais) que podem ser enviados.


Pedido   

Nó principal do objeto pedido


Campo
Descrição
Obrigatório?
Tipo
OrderId
Id do pedido na loja. É a chave primária das chamadas de pedido.
Sim
string
OrderDate
Data que o pedido foi realizado. Formato: yyyy-MM-ddTHH:mm:ss
Sim
DateTime
Status
Status do pedido na loja. Texto livre.
Sim
string
IsDelivered
Pedido já foi entregue ao cliente? É recomendável enviar somente pedidos marcados como entregue ou o mais próximo disso ("enviado" por exemplo)
Sim
boolean
DeliveryDate
Data em que o pedido foi entregue ao cliente, caso já tenha sido entregue. Formato: yyyy-MM-ddTHH:mm:ss
Sim, se IsDelivered=true
DateTime
InvoiceDate
Data em que o pedido foi faturado. Formato: yyyy-MM-ddTHH:mm:ss
Sim, se IsDelivered=true
DateTime
Total
Valor total do pedido. Formato: xxx.xx. Ex: 143.50
Sim    
decimal
TrackingCode    Código de rastreamento do pedido (Correios ou transportadora)Não    string




User
Nó com dados do cliente que fez esse pedido
Nó obrigatório

Name
Nome completo do cliente
Sim
string
Email
E-mail do cliente
Sim
string
City
Cidade de residência do cliente
Não
string
State
Estado (UF) de residência do cliente
Não
string
ZipCode
CEP da residência do cliente
Não
string
UserIdIdentificador do cliente na plataforma.Não        string




Attendant
Informações do atendente que realizou a venda no ponto de venda (somente loja física)
Nó não obrigatório

IdAttendantStore
Identificador do atendente interno da plataforma ou ERP.
Sim
string
Name
Nome do atendente.Simstring




StoreLocation
Informações da loja física, caso a origem do pedido seja essa. (somente loja física)
Nó obrigatório caso Attendant != null.

IdInternalStoreLocation
Identificador do ponto de venda(loja física) interno da plataforma ou ERP.
Sim
string
Name
Nome do ponto de venda.
Sim
string
Manager
Nome do gerente do ponto de venda.
Não
string
City
Cidade onde se situa o ponto de venda.
Não
string
Province
Estado do ponto de venda no formato de sigla. Ex: Minas Gerais : MG.
Não
string[2]
Number
Número do endereço do ponto de venda.
Não    string
Cep
Código de endereçamento postal do endereço do ponto de venda.
Nãostring[10]




Products
Nós com um ou mais produtos que foram vendidos
Nó obrigatório

ProductId
Id do produto, como aparece no frontend (pagina de produto) da loja
Sim
string
Name
Nome do produto como na loja
Sim
string
IsActive
Produto está ativo na loja?
Sim
boolean
Image
Imagem do produto, como na loja. Tamanho médio ~400px
Sim, caso IsActive=true
string
Url
URL direta para o produto
Sim, caso IsActive=true
string
Value
Valor de venda do produto
Sim, caso IsActive=true
decimal
Category
Árvore de categorias do produto    
Não    
Category
CategoryId
Id da categoria no site
Sim
string
Name
Nome da categoria no site
Sim
string
Parent
Categoria-pai, quando disponível. Enviar toda a árvore, se possível.
Não
Category
Brand
Marca do produto
Não
Brand
BrandId
Id da marca no site
Sim
string
Name
Nome da marca no site
Sim
string
Sku
Sku do produto vendido
Não
Sku
SkudId
Id do SKU como no site
Sim
string
Name
Nome único do SKU. Deve ser enviado mesmo que seja o mesmo do produto.
Sim
string
Url
URL do site do Sku. Deve ser enviado mesmo que seja o mesmo do produto.
Sim
string
Image
Imagem do site do Sku. Deve ser enviado mesmo que seja o mesmo do produto.
Sim
string
Value
Preço de venda do Sku. Deve ser enviado mesmo que seja o mesmo do produto.
Sim
decimal
GTIN
Código unico do produto. Usado na integração com Gogle Merchant. Deve ser enviado um GTIN ou MPN sempre. Mais informações: https://support.google.com/merchants/answer/160161?hl=pt-BR
Sim, caso não envie MPN.
string
MPN
Código unico do produto. Usado na integração com Gogle Merchant. Deve ser enviado um GTIN ou MPN sempre. Mais informações: https://support.google.com/merchants/answer/160161?hl=pt-BR
Sim, caso não envie GTIN.
string


Exemplo de chamada

Para exemplificar a tabela acima, o JSON abaixo dá uma ideia de como os dados devem ser enviados.

{
    "OrderId": "order123",
    "OrderDate": "2017-01-01T05:23:18",
    "Status": "invoiced",
    "IsDelivered": true,
    "DeliveryDate": "2017-01-04T21:25:02",
    "InvoiceDate": "2017-01-04T21:30:20",
    "Total": 124.09,
    "StoreLocation": {
          "IdInternalStoreLocation": "1",
          "Name": "Loja Raposo",
          "Manager": "Ricardo",
          "Street": "Rodovia Raposo Tavares",
          "City": "São Paulo",
          "Province": "SP",
          "Number": "3175",
          "Cep": "05577100"
     },
    "Attendant": {
          "IdAttendantStore": "1",
          "Name": "Vendedor 1"
    },
    "Products": [
        {
            "ProductId": "4452",
            "Name": "Camiseta Skull",
            "Url": "https://www.meusite.com.br/camiseta-skull",
            "Image": "https://www.meusite.com.br/camiseta-skull.jpg",
            "IsActive": true,
            "Value": 120.10,
            "Category": {
                "CategoryId": "112",
                "Name": "Camisetas",
                "Parent": {
      "CategoryId": "10",
      "Name": "Moda Masculina",
      Parent: null
    }
            },
            "Brand": {
                "BrandId": "123",
                "Name": "Hering"
            },
            "Sku": {
                "SkudId": "4452a",
                "Name": "Camiseta Skull Branca",
                "Url": "https://www.meusite.com.br/camiseta-skull/s/branca",
                "Image": "https://www.meusite.com.br/camiseta-skull-branca.jpg",
                "Value": 120.10,
                "GTIN": null,
                "MPN": "30224"
            }
        }
    ],
    "User": {
        "Name": "José Antonio",
        "Email": "joseantonio@test.com",
        "City": "São Paulo",
        "State": "SP",
        "ZipCode": "01413-000"
    }
}


Marcar como entregue

Endpoint: POST /order/SetDelivery/ORDER_ID?storeStatus=NEW_STATUS&trackingCode=TRACKING_CODE


Marcar um pedido como entregue significa que nós iremos começar a contar os dias para disparo de e-mail de avaliação (conforme configurado no admin da Yourviews). Para fazer essa marcação, basta informar os seguintes parâmetros:

ORDER_ID    
ID do pedido na loja virtual. O mesmo ID utilizado para inserir um pedido
Obrigatório
NEW_STATUS
Status do pedido, como exibido na loja virtual.
Opcional, mas recomendado.
TRACKING_CODECódigo de rastreamento do pedidoOpcional


Marcar como cancelado

Endpoint: POST /order/SetCancelled/ORDER_ID?storeStatus=NEW_STATUS


Marcar um pedido como cancelado significa que nós não iremos jamais disparar e-mail de avaliação para este cliente.
Para fazer essa marcação, basta informar os seguintes parâmetros:

ORDER_ID    
ID do pedido na loja virtual. O mesmo ID utilizado para inserir um pedido
Obrigatório
NEW_STATUS
Status do pedido, como exibido na loja virtual.
Opcional, mas recomendado.


Obter um pedido

Endpoint: GET /order/ORDER_ID


Obter um pedido salvo previamente na Yourviews. Pode ser útil para validação, verificação e testes.

ORDER_ID    
ID do pedido na loja virtual. O mesmo ID utilizado para inserir um pedido
Obrigatório


Os dados retornados são os mesmos utilizados na inserção, exceto o nó de Categoria. Por razões de performance apenas o nó mais inferior é retornado.

Todos os nós retornam um campo préfixado com YourviewsXXXXID. Esse campo é interno e pode ser ignorado.