VenddorDocumentação API
API atualAPI legada
Guia rápidoReferência completa
Carregando índice…
API legada/Referência completa

Combinações de opções

Grupos de variantes de opções com estoque, SKU e imagens próprios, e os endpoints REST que os gerenciam.

As opções de um produto podem ser agrupadas em combinações de opções. Isso é útil para controlar produtos com vários atributos personalizáveis. Por exemplo, roupas vêm em várias cores e tamanhos, e é conveniente controlar separadamente quantas camisetas azuis G e quantas camisetas brancas M você tem. As combinações também permitem atribuir SKUs, preços e imagens exclusivos a cada combinação específica.

Esta seção documenta a API de combinações da REST API da Venddor. Ela usa as mesmas credenciais HTTP Basic do restante da API ($EMAIL:$API_KEY) e o endereço base da sua loja ($BASE_URL). Dois estilos de URL são descritos: API 2.0 (/api/2.0/products/{product_id}/options/combinations) e API 1.0 (/api/combinations).

Pontos principais
  • Uma opção do produto precisa ter a caixa Estoque marcada (inventory=Y) para fazer parte de uma combinação. Só as opções dos tipos Checkbox, Select box e Radiogroup têm essa caixa.
  • O objeto combination mapeia IDs de opção para IDs de variante. O combination_hash identifica a combinação e é a chave usada nos GET, PUT e DELETE da API 1.0.
  • Com POST /api/combinations você não consegue definir image_pairs nem product_code. Defina-os depois com um PUT.
  • Um PUT não altera a combination em si. Para mudá-la, exclua a combinação e crie outra.
  • O endpoint de lote da API 2.0 cria várias combinações em uma só chamada.

Como funciona

Antes de criar combinações, planeje quais opções precisam de controle de estoque e marque Estoque (inventory=Y) nelas. Depois crie uma combinação para cada par (ou trio...) de variantes que você quer vender e mantenha o amount atualizado.

  1. Leia as opções do produto
    Obtenha os IDs de opção e de variante do produto, veja Opções do produto.
  2. Crie as combinações
    Envie o objeto combination com os pares de ID de opção e ID de variante. A API 2.0 também aceita várias combinações de uma vez.
  3. Complete cada combinação
    Use um PUT para definir o product_code e as imagens, que o POST em /api/combinations não aceita.
  4. Mantenha o estoque atualizado
    Atualize o amount com frequência para evitar vender além do estoque.

Conceitos principais

Estrutura da combinação

Este é o objeto de combinação como a referência da API 2.0 o mostra. Os comentários fazem parte do exemplo original.

json
{
  "combination_id": "251",
  "product_id": "423",
  "product_code": "TSHIRT-BL-XL",
  "combination_hash": "16_42_17_53",  // format: option_id_variant_id_option_id_variant_id
  "combination": {
    "16": "42",  // option_id: variant_id (Color: Black)
    "17": "53"   // option_id: variant_id (Size: XL)
  },
  "amount": "25",
  "position": 10,
  "image_pairs": {
    "pair_id": "156",
    "image_id": "421",
    "detailed_id": "422",
    "position": "0",
    "detailed": {
      "object_id": "421",
      "object_type": "product_option",
      "image_path": "/var/www/html/images/detailed/422/black_xl_tshirt.jpg",
      "alt": "",
      "image_x": "800",
      "image_y": "800",
      "http_image_path": "https://www.venddor.com.br/images/detailed/422/black_xl_tshirt.jpg",
      "https_image_path": "https://www.venddor.com.br/images/detailed/422/black_xl_tshirt.jpg",
      "absolute_path": "/var/www/html/images/detailed/422/black_xl_tshirt.jpg",
      "relative_path": "images/detailed/422/black_xl_tshirt.jpg"
    }
  }
}

Campos principais

  • product_code: um SKU/código de produto exclusivo para esta combinação específica.
  • combination_hash: uma string gerada pelo sistema que identifica de forma única a combinação de variantes de opções.
  • combination: um objeto que mapeia IDs de opção para IDs de variante.
  • amount: a quantidade em estoque disponível para esta combinação específica.
  • position: a ordem de exibição desta combinação nas listas.
  • image_pairs: imagens específicas desta combinação de opções.

A lista completa de campos está em Detalhes da combinação.

Casos de uso

  • Controle de estoque. Cada combinação pode ter o seu próprio nível de estoque, o que permite um controle preciso em produtos com várias variantes.
  • Preços personalizados. Combinações diferentes podem ter preços diferentes. Por exemplo, tamanhos maiores podem custar mais, ou cores premium podem ter um acréscimo.
  • Imagens por combinação. Cada combinação pode ter a sua imagem, mostrando ao cliente exatamente o que ele vai receber ao escolher determinadas opções.
  • SKUs personalizados. Códigos de produto exclusivos por combinação tornam a gestão do armazém e o atendimento dos pedidos mais eficientes.
Dica

Use uma convenção de nomes consistente nos valores de product_code para facilitar o controle de estoque. Por exemplo, NOMEDOPRODUTO-COR-TAMANHO é um padrão comum.

Endpoints

Estilo API 1.0

MétodoCaminhoFinalidadeAutenticação
GET/api/combinations/?product_id={id}Listar as combinações de um produto (veja também a paginação)Administrador
GET/api/combinations/{combination_hash}Obter uma combinação específicaAdministrador
POST/api/combinations/Criar uma combinaçãoAdministrador
PUT/api/combinations/{combination_hash}/Atualizar uma combinaçãoAdministrador
DELETE/api/combinations/{combination_hash}Excluir uma combinaçãoAdministrador
GET/api/products/{product_id}/option_combinationsListar as combinações de um produto, veja Detalhes da combinaçãoAdministrador
GET/api/option_combinations/{combination_hash}Obter uma combinação específica, veja Detalhes da combinaçãoAdministrador
POST/api/products/{product_id}/option_combinationsCriar uma combinação, veja Detalhes da combinaçãoAdministrador

Estilo API 2.0

MétodoCaminhoFinalidadeAutenticação
GET/api/2.0/products/{product_id}/options/combinationsRetorna todas as combinações de opções de um produtoAdministrador
GET/api/2.0/products/{product_id}/options/combinations/{combination_id}Retorna os detalhes de uma combinação específicaAdministrador
POST/api/2.0/products/{product_id}/options/combinationsCria uma nova combinação para um produtoAdministrador
PUT/api/2.0/products/{product_id}/options/combinations/{combination_id}Atualiza uma combinação existenteAdministrador
DELETE/api/2.0/products/{product_id}/options/combinations/{combination_id}Exclui uma combinaçãoAdministrador
POST/api/2.0/products/{product_id}/options/combinations/batchCria várias combinações em uma única chamadaAdministrador

Criando uma combinação com a API 2.0

POST/api/2.0/products/{product_id}/options/combinationsAdmin

Criar uma combinação de opções para um produto

Parâmetros de caminho

product_idintegerobrigatório
O produto que recebe a combinação.

Corpo da requisição

product_codestring
O SKU/código de produto desta combinação.
combinationobject
Mapa de IDs de opção para IDs de variante. Todas as opções referenciadas precisam ter inventory=Y.
amountstring
Quantidade em estoque desta combinação.
positioninteger
Ordem de exibição da combinação.

Exemplo de requisição

bash
curl -X POST -u "$EMAIL:$API_KEY" "$BASE_URL/api/2.0/products/423/options/combinations" \
  -H "Content-Type: application/json" \
  -d '{
  "product_code": "TSHIRT-RED-M",
  "combination": {
    "16": "44",
    "17": "52"
  },
  "amount": "15",
  "position": 20
}'

No exemplo original as variantes são anotadas: "16": "44" é Cor: Vermelho e "17": "52" é Tamanho: M.

Atenção

Ao criar combinações, garanta que todas as opções referenciadas tenham inventory=Y. Caso contrário, a API retorna um erro.

Operações em lote

Para produtos com muitas combinações, pode ser mais eficiente usar operações em lote.

POST/api/2.0/products/{product_id}/options/combinations/batchAdmin

Criar várias combinações de opções em uma única chamada

Parâmetros de caminho

product_idintegerobrigatório
O produto que recebe as combinações.

Corpo da requisição

combinationsarrayobrigatório

Lista de combinações a criar. Cada item tem os mesmos campos de uma combinação individual.

product_codestring
O SKU/código de produto da combinação.
combinationobject
Mapa de IDs de opção para IDs de variante.
amountstring
Quantidade em estoque.
positioninteger
Ordem de exibição.

Exemplo de requisição

bash
curl -X POST -u "$EMAIL:$API_KEY" "$BASE_URL/api/2.0/products/423/options/combinations/batch" \
  -H "Content-Type: application/json" \
  -d '{
  "combinations": [
    {
      "product_code": "TSHIRT-RED-S",
      "combination": {
        "16": "44",
        "17": "51"
      },
      "amount": "10",
      "position": 30
    },
    {
      "product_code": "TSHIRT-RED-L",
      "combination": {
        "16": "44",
        "17": "53"
      },
      "amount": "12",
      "position": 40
    }
  ]
}'

O exemplo original anota as variantes: "44" é Vermelho, "51" é P e "53" é G.

Boas práticas

  • Planeje a estrutura das opções. Antes de criar combinações, planeje com cuidado quais opções precisarão de controle de estoque.
  • Use operações em lote. Para produtos com muitas combinações, crie todas de uma vez.
  • Mantenha a consistência. Use nomes e códigos consistentes em todos os produtos.
  • Inclua imagens. Sempre que possível, informe imagens específicas por combinação para melhorar a experiência do cliente.
  • Atualize com regularidade. Mantenha os níveis de estoque das combinações atualizados para evitar vender além do disponível.

Erros comuns

  • Usar em uma combinação uma opção sem inventory=Y. A API retorna um erro.
  • Tentar enviar product_code ou image_pairs no POST em /api/combinations. Eles só podem ser definidos depois, com um PUT.
  • Tentar alterar a combination com um PUT. Exclua a combinação e crie outra.
  • Chamar o DELETE sem o parâmetro de consulta product_id. Veja Excluir uma combinação.

Próximos passos

Listar combinações
Leia todas as combinações de um produto.
Criar uma combinação
Crie uma combinação e receba o hash dela.
Opções do produto
As opções e variantes que alimentam uma combinação.
Exceções de opções
Bloqueie combinações que o cliente não pode escolher.
Anterior
Trabalhando com características
Próxima
Listar combinações de opções
Nesta página
  • Como funciona
  • Conceitos principais
  • Estrutura da combinação
  • Campos principais
  • Casos de uso
  • Endpoints
  • Estilo API 1.0
  • Estilo API 2.0
  • Criando uma combinação com a API 2.0
  • Exemplo de requisição
  • Operações em lote
  • Exemplo de requisição
  • Boas práticas
  • Erros comuns
  • Próximos passos