Introdução

Seja bem-vindo(a) a documentação da API v2 da Yampi.Através dessa API REST você conseguirá administrar todos os recursos que uma loja possui dentro do nosso ambiente.Qualquer dúvida ou contribuiçã

Endpoints

Cada loja possui seu endpoint através de um alias, que é o nome da loja.

Exemplo: https://api.dooki.com.br/v2/{alias}

Lembre-se: você deverá substituir o termo alias pelo nome da loja.

Headers

É obrigatório o envio do header Content-Type: application/json em todas as requisições.

Paginação

Por padrão a API retornará 10 resultados por página, porém, você pode alterar isso através do parâmetro limit=20, por exemplo.

Também há disponível um objeto meta que traz os detalhes da paginação:

"meta": {
"pagination": {
"total": 1000,
"count": 10,
"per_page": 10,
"current_page": 1,
"total_pages": 786,
"links": {
"next": "https://api.dooki.com.br/v2/merchant-alias/foo?page=2"
}
}
},

Includes

Nem sempre uma chamada simples em algum endpoint terá todo o payload que uma entidade possui. A API disponibiliza um recurso de include que permite carregar outros objetos, de acordo com a sua necessidade.

Cada endpoint possui documentado seus respectivos includes.

Para habilitar este recurso, basta passar uma query string include na URL de consulta. Exemplo:

https://api.dooki.com.br/v2/{alias}/catalog/products?include=skus

Você também pode solicitar vários includes de uma única vez:

https://api.dooki.com.br/v2/{alias}/catalog/products?include=skus,images

Encadeamento de includes:

https://api.dooki.com.br/v2/{alias}/catalog/products?include=skus.prices.installments

Filtros

A API disponibiliza um recurso de filtros para cada endpoint. Isso permite que você procure os registros de acordo com a sua necessidade. Você deverá utilizar a query string search:

https://api.dooki.com.br/v2/{alias}/catalog/brands?search=active:true

No exemplo acima, a API retornará todas marcas que possuem o atributo active: true

Também é possível realizar outros tipos de filtros:

https://api.dooki.com.br/v2/{alias}/users?search=John&searchFields=name:like

https://api.dooki.com.br/v2/{alias}/users?search=john@gmail.com&searchFields=email:=

https://api.dooki.com.br/v2/{alias}/users?search=name:John Doe;email:john@gmail.com

https://api.dooki.com.br/v2/{alias}/users?search=name:John;email:john@gmail.com&searchFields=name:like;email:=

Por padrão, as pequisas utlizam OR nos resultados. Para utilizar AND basta incluir o parâmetro searchJoin=AND

Trabalhando com datas

Para filtrar os registros por período de data, utilize o seguinte formato:

https://api.dooki.com.br/v2/{alias}/users?date=created_at:2017-05-21|2017-05-30

O filtro acima retornará registros criados entre 21/05/2017 até 30/05/2017.

Ordenação

Você pode alterar a ordenação dos resultados utilizando os parâmetros orderBy e sortedBy. Exemplo:

https://api.dooki.com.br/v2/{alias}/users?orderBy=id&sortedBy=desc

Cache

Por padrão, todas as consultas GET possuem um cache de 30 minutos. Esse cache pode ser evitado utilizando a query string skipCache=true em sua consulta. Exemplo:

https://api.dooki.com.br/v2/{alias}/catalog/products?skipCache=true

Erros

Código

Descrição

400

Bad Request -- Request inválido.

401

Unauthorized -- Acesso não autorizado.

403

Forbidden -- Acesso negado

404

Not Found -- Recurso não encontrado.

405

Method Not Allowed -- Método inválido para o endpoint.

410

Gone -- The kitten requested has been removed from our servers.

422

Unprocessable Entity -- Recurso não processado.

429

Too Many Requests -- Muitos requests. Vá com calma.

500

Internal Server Error -- Problema interno de servidor.

503

Service Unavailable -- API indisponível.

SDKs oficiais

PHP SDK https://github.com/bubbstore/dooki-php-sdk