Galactix é a porta de entrada para os principais marketplaces do Brasil e foi criada pra solucionar
os problemas de integração de forma
rápida e eficiente.
Com a nossa API, você precisará se preocupar com apenas uma integração, e qualquer mudança nas APIs
dos marketplaces que implique em mudança para os sistemas integrados fica por nossa conta.
Integrando o seu ERP ou plataforma de ecommerce na API Galactix, seus produtos estarão prontos pra
ser vendidos em vários canais, tendo o gerenciamento de produtos e pedidos em uma única plataforma.
Galactix é a porta de entrada para os principais marketplaces do Brasil e foi criada pra solucionar os problemas de integração de forma rápida e eficiente.
Com a nossa API, você precisará se preocupar com apenas uma integração, e qualquer mudança nas APIs dos marketplaces que implique em mudança para os sistemas integrados fica por nossa conta.
Integrando o seu ERP ou plataforma de ecommerce na API Galactix, seus produtos estarão prontos pra ser vendidos em vários canais, tendo o gerenciamento de produtos e pedidos em uma única plataforma.
A URL base para os dois ambientes (produção e sandbox) é a mesma:
Para o desenvolvimento e homologação da integração nosso time irá criar uma conta teste com algumas limitações de acesso.
Do ponto de vista da nossa API, não existe diferença entre contas em produção e em sandbox.
Todas as chamadas aos serviços disponíveis na Galactix – API devem ser autenticadas a partir do AppKey e token de acesso. Essas informações devem ser enviados no cabeçalho (header) de cada requisição conforme abaixo:
Se você ainda não possui essas informações, entre em contato com o nosso Time de API através do endereço api@b2tex.com.br.
Na troca de mensagens com a Galactix – API, será utilizado o padrão JSON (JavaScript Object Notation). Por isso, cada requisição deve conter os valores adequados nos cabeçalhos Accept e Content-Type (application/json)
Os dados enviados (via POST ou PUT) devem estar de acordo com o charset UTF-8.
Caso seja utilizado um encoding diferente, será retornado o erro de "Tipo de dado não suportado" (HTTP 415).
A API Galactix, oferece a funcionalidade de paginação dos resultados obtidos nas consultas de pedidos e produtos. Para tal, basta especificar a faixa de registros a serem retornados pela API fazendo uso dos parâmetros:
offset: indica o número da página de registros que será retornada. Caso não seja especificado, a primeira página será retornada (valor padrão 1);
total: indica a quantidade de registros a serem retornados. Em ambos recursos (produtos e pedidos), total possui 100 como valor padrão e valor limite (valor máximo).
No exemplo abaixo, a Galactix – API retornará os produtos no intervalo de 101-200:
O que acontece se for solicitada a página 100.000 com 100 registros por página?
Teríamos que percorrer 10.000.000 de entradas no nosso índice para encontrar os registros da página solicitada. O tempo de resposta seria muito alto e a requisição resultaria em timeout.
Para evitar esse problema, o número máximo de entradas que percorremos no nosso índice é de 10.000 entradas. Para qualquer solicitação de uma página que esteja além das 10.000 primeiras entradas, será retornado um erro de bad request (HTTP status 400).
Uma forma de mitigar essa limitação é a utilização de filtros (Leia o artigo "Filtros" a seguir).
Essa feature não esta disponível para o endpoint / orders.
A API Galactix oferece a funcionalidade de filtrar os resultados obtidos nas consultas de pedidos e produtos fazendo uso de query params:
Na query do exemplo acima, serão retornados todos os produtos que tenham o status com o valor enabled.
Exemplo no cURL:
A Galactix utiliza o grupo padrão dos status HTTP para indicar se uma requisição teve sucesso ou não. No geral:
Códigos HTTP 2xx: indicam que a requisição foi realizada com sucesso;Códigos HTTP 4xx: indicam que a requisição contém alguma informação incorreta - dados de acesso incorretos, ausência de um campo obrigatório, etc;
Códigos HTTP 5xx: indicam algum erro nos servidores da Galactix. Esses são raros e, caso você receba esse código, você deve entrar em contato com o nosso suporte.
Sempre que ocorrer um erro, a API retornará no corpo (body) da mensagem um JSON com uma mensagem de erro de acordo com o formato abaixo:
Os status HTTP mais utilizados são:
Status | Descrição |
200 | Sucesso - a requisição foi processada com sucesso |
201 | Criado - a requisição foi processada com sucesso e resultou em um novo recurso criado |
204 | Sem conteúdo - a requisição foi processada com sucesso e não existe conteúdo adicional na resposta |
400 | Requisição mal-formada - a requisição não está de acordo com o formato esperado. Verifique o JSON (body) que está sendo enviado |
401 | Não autenticado - os dados de autenticação estão incorretos. Verifique o cabeçalho (header) da requisição o e-mail e o token |
403 | Não autorizado - você está tentando acessar um recurso ao qual não tem permissão |
404 | Não encontrado - você está tentando acessar um recurso que não existe na Galactix |
406 | Formato não aceito - Galactix não suporta o formato de dados especificado no cabeçalho (Accept) |
415 | Formato de mídia não aceito - Galactix não consegue processar os dados enviados por conta de seu formato. Certifique-se do uso do charset UTF-8 (tanto no header "Content-Type", quanto no próprio body da requisição) |
422 | Erro semântico - apesar do formato da requisição estar correto, os dados ferem alguma regra de negócio (por exemplo: transição inválida do status de pedido) |
429 | Limite de requisições ultrapassado - você fez mais requisições do que o permitido em um determinado recurso |
500 ou 502 | Erro interno - ocorreu um erro no servidor da Galactix ao tentar processar a requisição |
503 | Serviço indisponível - a API da Galactix está temporariamente fora do ar |
504 | Timeout - a requisição levou muito tempo e não pode ser processada |
Para garantir o bom desempenho da API, as integrações serão submetidas a um limite de requisições (throttling).
O limite de requisições na Galactix é por endpoint e por API, então cada API tem o seguinte limite abaixo:
Endpoint | Limite de Requisições | Métodos |
Products | 10 por segundo | POST, PUT, DELETE |
Products | 5 por segundo | GET |
Orders | 9 por segundo | GET, POST, DELETE |
Outros Endpoints | 1 por segundo | POST, PUT, GET,DELETE |
Caso a integração ultrapasse esse limite, será retornado erro HTTP 429.
Temos duas linhas de raciocínio:
1.Produto simples: é aquele composto de um Sku.
2.Produto configurável: também conhecido como produto com variação, é aquele composto de dois ou mais Skus.
O produto simples é único, não possui variação de SKU. Exemplo: Livro, CD, DVD ...
A seguir, vamos demonstrar como fica a estrutura de um produto, considerando o Json, formato utilizado na Galactix para a manipulação de informações.
Campo | Campo Obrigatorio ? | Tipo |
Product | ------- | ------- |
id | Sim | String(45) |
name | Sim | String(99) |
brand | Não | String(45) |
cost | Sim | Integer |
description | Sim | String(500) |
cest | Não | Integer |
st | Não | Integer |
ipi | Não | Integer |
icms | Não | Integer |
ncm | Sim | Integer |
iva | Não | Integer |
categoryid | Sim | Integer |
code | Não | String(20) |
Sku | ------- | ------- |
ean | Não | String(45) |
fwidth | Sim | Integer |
fheight | Sim | Integer |
fdepth | Sim | Integer |
fweight | Sim | Integer |
rwidth | Sim | Integer |
rheight | Sim | Integer |
rdepth | Sim | Integer |
rweight | Sim | Integer |
images | Sim | Vetor |
statusid | Sim | Integer |
Prices | ------- | ------- |
Store ID | Sim | Integer |
price | Sim | Integer |
Stock | ------- | ------- |
qty | Sim | Integer |
crossdock | Sim | Integer |
Para cadastrarmos um produto via API, você deverá utilizar o método POST direcionando sua requisição para o nosso endpoint
Abaixo, temos um exemplo que contempla uma variação de código COD_SKU_VARIACAO:
Para realizar uma consulta na API devemos utilizar o método GET, preenchendo o Header como já mostrado anteriormente e mantendo sua requisição como abaixo:
Basicamente, a requisição consiste do endpoint/products/CODIGO_PRODUTO (código que se deseja consultar).
Em nosso exemplo, listamos um resultado “resumido” pois o retorno completo traria diversas páginas, contemplando todos os atributos que compõem o produto, mas, basicamente a resposta de nosso GET trouxe o cadastro do produto propriamente dito
Para cadastrarmos um estoque via API, você deverá utilizar o método POST direcionando sua requisição para o nosso endpoint
A seguir, vamos demonstrar como fica a estrutura de um stock, considerando o Json, formato utilizado na Galactix para a manipulação de informações.
Campo | Campo Obrigatorio ? | Tipo |
Product | ------- | ------- |
Reference | Sim | String(45) |
qty | Sim | Int |
Abaixo, temos um exemplo de um post
Para realizar uma consulta na API devemos utilizar o método GET, preenchendo o Header como já mostrado anteriormente e mantendo sua requisição como abaixo:
Basicamente, a requisição consiste do endpoint/products/stock/CODIGO_PRODUTO (código que se deseja consultar).
Trazer o estoque de todos os produtos cadastrados
Status | Descrição |
NEW | Pedidos feitos no marketplace e que ainda não tiveram o pagamento confirmado. A atualização para essa status é feito pelo marketplace. |
APPROVED | Pedidos feitos no marketplace e que já tiveram o pagamento confirmado. A atualização para esse status é feito pelo marketplace. |
INVOICED | Pedidos que o lojista já faturou. A atualização para esse status é feito pelo lojista. |
SHIPPED | Pedidos que o lojista já entregou a transportadora. A atualização para esse status é feito pelo lojista. |
DELIVERED | Pedidos que já foram entregues ao cliente final. A atualização para esse status é feito pelo o lojista. |
CANCELED | Pedidos que foram cancelados. A atualização para esse status pode ser feito pelo o lojista ou pelo o marketplace. |
INTEGRATION | Informar o Galactix que o pedido foi recebido pelo ERP. |
Cada status descrito acima está associado a um recurso chamado "tipo de status" (status type) . O status type existe para que as integrações consigam criar novos status na plataforma da Galactix.
Será retornado o json de um pedido como no exemplo abaixo:
A seguir, vamos demonstrar como fica a estrutura de um pedido, considerando o Json, formato utilizado na Galactix para a manipulação de informações.
Campo | Campo Obrigatorio ? | Tipo |
Order | ------- | ------- |
historypurchaseid | Não | Integer |
orderclient | Sim | String(45) |
parcel | Sim | Integer |
total | Sim | Integer |
freight | Sim | Integer |
shippingdate | Sim | date |
dttransaction | Sim | date |
dtpromised | Não | date |
channel | Sim | String(45) |
store | Sim | String(45) |
socialname | Não | String(45) |
status | Sim | String(45) |
name | Não | String(45) |
Sim | String(45) | |
ddd | Sim | Integer |
phone | Sim | Integer |
document | Sim | String(20) |
delivered | ------- | ------- |
responsible | Sim | String(45) |
zipcode | Sim | String(20) |
address | Sim | String(45) |
numbers | Sim | String(20) |
complement | Sim | String(45) |
district | Sim | String(45) |
city | Sim | String(45) |
state | Sim | String(2) |
invoice | ------- | ------- |
zipcode | Sim | String(20) |
address | Sim | String(45) |
numbers | Sim | String(20) |
complement | Sim | String(45) |
district | Sim | String(45) |
city | Sim | String(45) |
state | Sim | String(2) |
label | Não | String(45) |
series | Não | Integer |
dtissuance | Não | Date |
key_ | Não | String(45) |
nf | Não | Integer |
transport | Sim | String(45) |
typedelivery | Sim | String(45) |
discountvalue | Não | Integer |
errorerp | Não | String(45) |
errorerp | Não | String(45) |
Pdt | ------- | ------- |
reference | Sim | Integer |
name | Sim | String(45) |
qty | Sim | Integer |
price | Sim | Integer |
images | Sim | Array |
isdropshipping | Sim | Bool |
status | ------- | ------- |
historypurchasestatusid | Sim | Integer |
name | Não | String(45) |
dthrcreate | Não | Date |
Nesta operação é informado a data da aprovação do pedido.
Nesta operação é informado a chave da NFe, ou seja, os 44 digitos da NFe.
Nessa operação são informados os dados de rastreamento da entrega (tipo de envio, código de rastreio, url de rastreio, etc.).
Nessa operação é informado o código do ERP.
Para contas de desenvolvimento/homologação é possível criar e aprovar pedidos.
Recuperar as transportadoras cadastrada
A seguir, vamos demonstrar como fica a estrutura de uma transportadora, considerando o Json, formato utilizado na Galactix para a manipulação de informações.
Campo | Campo Obrigatorio ? | Tipo |
Logistics | ------- | ------- |
transportid | Sim | Integer |
id | Sim | Integer |
name | Sim | String(45) |
typedelivery | Sim | String(45) |
status | Sim | Integer |
isdropshipping | Sim | Integer |
É possível utilizar a API de Frete para integrar o Marketplace B2W e informar a cotação de preço e prazo de frete para os produtos integrados. Assim podendo criar a própria politica de logística.
Será feita uma requisição POST na URL configurada para o Parceiro, onde será enviado o seguinte conteúdo, veja o exemplo:
Campo JSON | Tipo de Dado | Descrição |
destinationZip | Integer | CEP de destino, será passado como um inteiro. Por exemplo: 5010010 (para o CEP “05010-010″) |
isdrop | Integer | Ativo se é dropshipping |
volumes | array | Lista de itens |
sku | string | SKU do Parceiro |
quantity | integer | Número de unidades |
A API espera como resposta o json abaixo contendo as seguintes informações, veja o exemplo:
Campo JSON | Tipo de Dado | Descrição |
shippingQuotes | array | Lista com resultados do cálculo de frete. Só será considerada a PRIMEIRA posição |
shippingCost | double | Valor do frete |
Total | integer | Tempo total da entrega em dias (soma de transit e expedition) |
transit | integer | tempo de transporte da mercadoria em dias |
expedition | integer | tempo para expedir o produto (informar o prazo CD + prazo Cross-docking quando existir) |
shippingMethodId | string | Id da transportadora / tipo de frete selecionado.Campo alfanumérico |
shippingMethodName | string | Nome da transportadora / tipo de frete selecionado |
shippingMethodDisplayName | string | Nome do frete selecionado exibido para o cliente. |
Foi assim com a Hamilton Beach após integrar ao Galactix
APROVEITE AS CONDIÇÕES ESPECIAIS DE VERÃO
20% de desconto nas primeiras mensalidades.