A API Elephantfy 2.0 oferece um conjunto completo de endpoints RESTful para integrar lojas virtuais à nossa plataforma de e-commerce. Com ela, desenvolvedores podem gerenciar produtos, categorias, pedidos e clientes de forma automatizada, garantindo uma experiência de venda eficiente e escalável.
Todas as requisições devem ser feitas para:
https://sualoja.com.br/api-v2
A API aceita e retorna dados no formato JSON. Para cada requisição, é necessário definir o cabeçalho:
Content-Type: application/json
Para acessar endpoints protegidos, é necessário obter um token de autenticação. O processo de geração do token está descrito na seção de autenticação desta documentação.
Para garantir a estabilidade da plataforma, aplicamos limites de requisição:
429 Too Many Requests.Em caso de dúvidas ou problemas técnicos, nossa equipe de suporte está disponível:
A API Elephantfy 2.0 foi projetada para oferecer máxima flexibilidade e eficiência na integração do seu e-commerce.
Para garantir a correta autenticação e comunicação com a API, todas as requisições protegidas devem conter os seguintes headers:
cURL:
curl --location -g --request POST 'http://{domain}/api-v2/products' \
--header 'Content-Type: application/json' \
--header 'Client-Service: frontend-client' \
--header 'User-ID: 4' \
--header 'Authorization: 399a441ab120f...'
Sempre que uma requisição for feita para endpoints que exigem autenticação, esses headers devem ser incluídos.
Para que uma loja tenha acesso à API, siga os passos abaixo:
2.1. Solicitação de Acesso
A loja deve enviar um e-mail para api@elephantfy.com.br solicitando a habilitação do User API, informando o domínio da loja.
2.2. Geração da Chave de API
2.3. Token de Acesso
Após a criação da chave, a API gerará um Token de Autenticação com validade de 10 anos.
Esse token deve ser enviado no cabeçalho das requisições protegidas da API:
Authorization:{SEU_TOKEN_AQUI}
Requisição para a consulta de uma lista produtos.
http://{domain}/api-v2/products/cURL:
curl --location -g --request POST 'http://{domain}/api-v2/products' \
--header 'Content-Type: application/json' \
--header 'Client-Service: frontend-client' \
--header 'User-ID: 4' \
--header 'Authorization: 399a441ab120f...'
json:http://{domain}/api-v2/product-id/{id}cURL:
curl --location -g --request POST 'http://{domain}/api-v2/product-id/{id}' \
--header 'Content-Type: application/json' \
--header 'Client-Service: frontend-client' \
--header 'User-ID: 4' \
--header 'Authorization: 399a441ab120f...'
json:Este endpoint permite a criação de um novo produto.
#POSThttp://{domain}/api-v2/create-product/| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
product_id | string | Não | ID do produto |
external_id | string|null | Não | ID externo do produto |
slug | string | Não | Identificador único do produto |
sku | string | Não | Código SKU do produto |
title | string | Sim | Nome do produto |
description | string | Não | Descrição do produto |
seo_title | string | Não | Título para SEO |
seo_description | string | Não | Descrição para SEO |
seo_keywords | string | Não | Palavras-chave para SEO |
gtin | string | Não | Código GTIN do produto |
mpn | string | Não | Código MPN do produto |
ncm | string | Não | Código NCM do produto |
brand | string | Não | ID da marca do produto |
category_id | string | Não | ID da categoria do produto |
price | string | Sim | Preço do produto, deve ser enviado em centavos, sem pontuação |
promotional_price | string | Não | Preço promocional do produto, deve ser enviado em centavos, sem pontuação |
cost | string | Não | Custo do produto, deve ser enviado em centavos, sem pontuação |
discount_rate | string | Não | Taxa de desconto |
status | string | Sim | 1 para ativo, 0 para inativo |
stock | string | Sim | Quantidade em estoque |
visibility | string | Sim | 1 para visível, 0 para oculto |
height | integer | Não | Altura do produto em cm |
width | integer | Não | Largura do produto em cm |
length | integer | Não | Comprimento do produto em cm |
weight | string | Sim | Peso do produto em kg |
variation_style | string | Não | Se o produto tiver variação, enviar as opções, ex: simple para produtos com variações simples ou composite, para produtos com variações compostas |
variation[label_names] | string | Sim | Nome da variação |
variation[is_visible] | string | Sim | 1 para visível, 0 para oculto |
variation[option_display_type] | string | Sim | color: Cor | text: Texto | image: Imagem |
variation[variation_type] | string | Sim | radio_button | dropdown |
variation[show_images_on_slider] | string | Sim | 1 para exibir imagens diferentes por variação, 0 para não exibir |
variation[use_different_price] | string | Sim | 1 para exibir preços diferentes por variação, 0 para não exibir |
variation[options][option_name] | string | Sim | Nome da opção da variação |
variation[options][stock] | string | Sim | Estoque disponível para opção |
variation[options][color] | string | Sim | Se a opção for no modo COR, enviar o hexadecimal |
variation[options][price] | string | Sim | Preço em centavos, não usar pontuação |
variation[options][discount_rate] | string | Sim | Porcentagem de desconto da opção |
variation[options][crossdocking] | string | Sim | Porcentagem de desconto da opção |
variation[options][is_default] | string | Não | Tempo de produção |
variation[options][use_default_price] | string | Sim | 1 considerar o preço do produto principal e 0 para considerar o preço da opção |
POST /api-v2/create-product/
Content-Type: application/json
{
"product_id": "12345",
"external_id": null,
"slug": "meu-produto-exemplo",
"sku": "SKU12345",
"title": "Nome do Produto Exemplo",
"description": "Uma descrição detalhada do produto exemplo.",
"seo_title": "Título SEO do Produto Exemplo",
"seo_description": "Descrição otimizada para SEO do produto exemplo.",
"seo_keywords": "produto, exemplo, loja",
"gtin": "7891234567890",
"mpn": "MPN123456",
"ncm": "12345678",
"brand": "6789",
"category_id": "9876",
"price": "19990",
"promotional_price": "17990",
"cost": "1200",
"discount_rate": "10",
"status": "1",
"stock": "50",
"visibility": "1",
"height": 10,
"width": 15,
"length": 20,
"weight": "0.500",
"variation_style":"simple",
"variations": [
{
"id":"3",
"label_names": "Tamanho",
"variation_type": "radio_button",
"option_display_type": "text",
"show_images_on_slider": "0",
"use_different_price": "1",
"is_visible": "1",
"options": [
{
"variation_id": "3",
"parent_id": "0",
"option_name": "P",
"stock": "10",
"color": "",
"price": "5000",
"discount_rate": "0",
"crossdocking": "0",
"is_default": "0",
"use_default_price": "0"
},
{
"variation_id": "3",
"parent_id": "0",
"option_name":"M",
"stock": "23",
"color": "",
"price": "5500",
"discount_rate": "0",
"crossdocking": "0",
"is_default": "0",
"use_default_price": "0"
},
{
"variation_id": "3",
"parent_id": "0",
"option_name": "G",
"stock": "89",
"color": "",
"price": "11500",
"discount_rate": "0",
"crossdocking": "0",
"is_default": "0",
"use_default_price": "0"
}
]
}
]
}
HTTP/1.1 201 Created
{
"success": true,
"message": "Produto criado com sucesso",
"product_id": 123
}
HTTP/1.1 400 Bad Request
{
"success": false,
"error": "O campo 'title' é obrigatório"
}
Este endpoint permite a edição de informações do produto e atualização de estoque e preço, se o produto for sem variação.
#PUThttp://{domain}/api-v2/product-update/{id}
PUT /api-v2/product-update/{id}
Content-Type: application/json
{
"external_id": "998",
"slug": "meu-produto-update",
"sku": "SKU12345",
"title": "Update",
"description": "Uma descrição detalhada do produto exemplo.",
"seo_title": "Título SEO do Produto Exemplo",
"seo_description": "Descrição otimizada para SEO do produto exemplo.",
"seo_keywords": "produto, exemplo, loja",
"gtin": "7891234567890",
"mpn": "MPN123456",
"ncm": "12345678",
"brand": "6789",
"category_id": "9876",
"price": "19990",
"promotional_price": "17990",
"cost": "1200",
"discount_rate": "10",
"status": "1",
"stock": "50",
"visibility": "1",
"height": 10,
"width": 15,
"length": 20,
"weight": "0.500"
}
HTTP/1.1 201 Created
{
"status": 200,
"message": "Produto atualizado com sucesso."
}
HTTP/1.1 400 Bad Request
{
"success": false,
"error": "Produto não encontrado"
}
Este endpoint permite a edição de preço e estoque de variações.
#PUThttp://{domain}/api-v2/product-update-variation/{id}
PUT /api-v2/product-update-variation/{id}
Content-Type: application/json
{
"stock": "0",
"price": "10000"
}
HTTP/1.1 201 Created
{
"status": 200,
"message": "Variação atualizado com sucesso."
}
HTTP/1.1 400 Bad Request
{
"success": false,
"error": "Variação não encontrada"
}
No endpoint de pedidos, você terá uma listagem dos pedidos recebidos pela loja
#GEThttp://{domain}/api-v2/orders/cURL:
curl --location -g --request POST 'http://{domain}/api-v2/orders/' \
--header 'Content-Type: application/json' \
--header 'Client-Service: frontend-client' \
--header 'User-ID: 4' \
--header 'Authorization: 399a441ab120f...'
json:| Status | ID |
|---|---|
| Em processamento | 0 |
| Completado | 1 |
| A enviar | 4 |
| Enviado | 5 |
| Cancelado | 3 |
| Faturado | 2 |
Este endpoint permite a edição do status do pedido.
#PUThttp://{domain}/api-v2/order-update/{id}
PUT /api-v2/order-update/{id}
Content-Type: application/json
{
"status":"1"
}
HTTP/1.1 201 Created
{
"status": 200,
"message": "Pedido atualizado com sucesso."
}
HTTP/1.1 400 Bad Request
{
"success": false,
"error": "Pedido não encontrada"
}