Visão Geral da API Elephantfy 2.0

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.

Recursos Principais:
  • Gerenciamento de Produtos: Criação, atualização e exclusão de produtos na loja.
  • Controle de Categorias: Organização e edição de categorias para facilitar a navegação dos clientes.
  • Gestão de Pedidos: Acompanhamento e processamento de pedidos realizados na plataforma.
  • Administração de Clientes: Cadastro, edição e gerenciamento dos clientes da loja.
  • Autenticação Segura: Utilização de tokens de acesso com validade de longo prazo.
  • Padrão RESTful: Facilita a integração com diferentes tecnologias e plataformas.
URL Base da API

Todas as requisições devem ser feitas para:

https://sualoja.com.br/api-v2
Formato de Dados

A API aceita e retorna dados no formato JSON. Para cada requisição, é necessário definir o cabeçalho:

Content-Type: application/json
Autenticação

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.

Limite de Requisições (Rate Limit)

Para garantir a estabilidade da plataforma, aplicamos limites de requisição:

  • Padrão: 500 requisições por minuto.
  • Requisições acima do limite: Retornarão o status 429 Too Many Requests.
Suporte Técnico

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.

Cabeçalhos da API
Cabeçalhos da API

Para garantir a correta autenticação e comunicação com a API, todas as requisições protegidas devem conter os seguintes headers:

  • Content-Type: application/json
    Define que o formato da requisição será JSON.
  • Client-Service: frontend-client
    Este valor é fixo e deve sempre ser enviado exatamente como mostrado.
  • User-ID: {id_do_usuário}
    Deve ser substituído pelo ID do usuário cadastrado no painel da loja.
  • Authorization: {token_de_acesso}
    Deve conter o token gerado após a autenticação, que tem validade de 10 anos.
Exemplo de requisição utilizando 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.

Autenticação de Usuário
Autenticação de Usuário

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

  • Acesse o painel da loja.
  • Navegue até Configurações → API.
  • Clique em "Criar Chave API".
  • Informe o User API e a senha de acesso ao painel.

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}
Produtos
Gerenciar produtos

Requisição para a consulta de uma lista produtos.

Listagem de Produtos
#GET http://{domain}/api-v2/products/
Exemplo de requisição utilizando 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...'
                            
Exemplo de retorno: success json:

Listar produto por ID
#GET http://{domain}/api-v2/product-id/{id}
Exemplo de requisição utilizando 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...'
                            
Exemplo de retorno: success json:

Criação de Produto

Este endpoint permite a criação de um novo produto.

#POST http://{domain}/api-v2/create-product/
Parâmetros
Parâmetro Tipo Obrigatório Descrição
product_idstringNãoID do produto
external_idstring|nullNãoID externo do produto
slugstringNãoIdentificador único do produto
skustringNãoCódigo SKU do produto
titlestringSimNome do produto
descriptionstringNãoDescrição do produto
seo_titlestringNãoTítulo para SEO
seo_descriptionstringNãoDescrição para SEO
seo_keywordsstringNãoPalavras-chave para SEO
gtinstringNãoCódigo GTIN do produto
mpnstringNãoCódigo MPN do produto
ncmstringNãoCódigo NCM do produto
brandstringNãoID da marca do produto
category_idstringNãoID da categoria do produto
pricestringSimPreço do produto, deve ser enviado em centavos, sem pontuação
promotional_pricestringNãoPreço promocional do produto, deve ser enviado em centavos, sem pontuação
coststringNãoCusto do produto, deve ser enviado em centavos, sem pontuação
discount_ratestringNãoTaxa de desconto
statusstringSim1 para ativo, 0 para inativo
stockstringSimQuantidade em estoque
visibilitystringSim1 para visível, 0 para oculto
heightintegerNãoAltura do produto em cm
widthintegerNãoLargura do produto em cm
lengthintegerNãoComprimento do produto em cm
weightstringSimPeso do produto em kg
variation_stylestringNãoSe 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]stringSimNome da variação
variation[is_visible]stringSim1 para visível, 0 para oculto
variation[option_display_type]stringSimcolor: Cor | text: Texto | image: Imagem
variation[variation_type]stringSimradio_button | dropdown
variation[show_images_on_slider]stringSim1 para exibir imagens diferentes por variação, 0 para não exibir
variation[use_different_price]stringSim1 para exibir preços diferentes por variação, 0 para não exibir
variation[options][option_name]stringSimNome da opção da variação
variation[options][stock]stringSimEstoque disponível para opção
variation[options][color]stringSimSe a opção for no modo COR, enviar o hexadecimal
variation[options][price]stringSimPreço em centavos, não usar pontuação
variation[options][discount_rate]stringSimPorcentagem de desconto da opção
variation[options][crossdocking]stringSimPorcentagem de desconto da opção
variation[options][is_default]stringNãoTempo de produção
variation[options][use_default_price]stringSim1 considerar o preço do produto principal e 0 para considerar o preço da opção
Exemplo de Requisiçã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"
                                                    }
                                                ]
                                            }
                                        ]                                    
                                }
                                
                            
Resposta de Sucesso

                            HTTP/1.1 201 Created
                            {
                                "success": true,
                                "message": "Produto criado com sucesso",
                                "product_id": 123
                            }
                            
Resposta de Erro

                            HTTP/1.1 400 Bad Request
                            {
                                "success": false,
                                "error": "O campo 'title' é obrigatório"
                            }
                            

Atualizar Produto

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.

#PUT http://{domain}/api-v2/product-update/{id}
Exemplo de Requisição

                                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"
                                }
                                
                            
Resposta de Sucesso

                            HTTP/1.1 201 Created
                            {
                                "status": 200,
                                "message": "Produto atualizado com sucesso."
                            }
                            
Resposta de Erro

                            HTTP/1.1 400 Bad Request
                            {
                                "success": false,
                                "error": "Produto não encontrado"
                            }
                            

Atualizar opções de variação

Este endpoint permite a edição de preço e estoque de variações.

#PUT http://{domain}/api-v2/product-update-variation/{id}
Exemplo de Requisição

                                PUT /api-v2/product-update-variation/{id}
                                Content-Type: application/json                        
                                {
                                    "stock": "0",
                                    "price": "10000"
                                }
                                
                            
Resposta de Sucesso

                            HTTP/1.1 201 Created
                            {
                                "status": 200,
                                "message": "Variação atualizado com sucesso."
                            }
                            
Resposta de Erro

                            HTTP/1.1 400 Bad Request
                            {
                                "success": false,
                                "error": "Variação não encontrada"
                            }
                            

Pedidos
Pedidos

No endpoint de pedidos, você terá uma listagem dos pedidos recebidos pela loja

#GET http://{domain}/api-v2/orders/
Exemplo de requisição utilizando 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...'
                        
Exemplo de retorno: success json:

Atualizar status do pedido
Parâmetros
Status ID
Em processamento0
Completado1
A enviar4
Enviado5
Cancelado3
Faturado2

Este endpoint permite a edição do status do pedido.

#PUT http://{domain}/api-v2/order-update/{id}
Exemplo de Requisição

                                PUT /api-v2/order-update/{id}
                                Content-Type: application/json                        
                                {
                                    "status":"1"
                                }
                                
                            
Resposta de Sucesso

                            HTTP/1.1 201 Created
                            {
                                "status": 200,
                                "message": "Pedido atualizado com sucesso."
                            }
                            
Resposta de Erro

                            HTTP/1.1 400 Bad Request
                            {
                                "success": false,
                                "error": "Pedido não encontrada"
                            }