Opções do produto
Visão geral das opções do produto: os tipos de opção, a estrutura de uma opção, as operações da API 2.0 e todos os endpoints da seção.
Os produtos podem ter opções: propriedades adicionais que os clientes podem escolher ao comprar um produto. Em roupas, por exemplo, seriam cor, tamanho ou acessórios opcionais. As opções permitem oferecer variações e personalizações do produto sem criar cadastros de produto separados.
Esta seção tem dois grupos de URLs. As URLs da API 2.0 trabalham nas opções de um produto (/api/2.0/products/{product_id}/options) e são descritas nesta página. As URLs da API 1.0 trabalham nas próprias opções (/api/options) e têm uma página cada: listar, consultar, criar, atualizar e excluir. As credenciais são as do HTTP Basic do administrador ($EMAIL e $API_KEY).
Como funciona
Tipos de opção
| Tipo de opção | Código | Descrição |
|---|---|---|
| Select Box | S | Um menu suspenso em que o cliente escolhe uma opção de uma lista (por exemplo, tamanho: P, M, G, GG). |
| Radio Group | R | Um conjunto de botões de opção em que o cliente escolhe uma opção (por exemplo, cor: vermelho, azul, verde). |
| Checkbox | C | Uma caixa de marcação em que o cliente inclui ou retira uma opção (por exemplo, embalagem de presente: sim ou não). |
| Input Field | I | Um campo de texto em que o cliente digita uma informação personalizada (por exemplo, o texto de uma gravação). |
| Text Area | T | Um campo de texto com várias linhas para entradas mais longas do cliente (por exemplo, instruções especiais). |
| File Upload | F | Permite que o cliente envie um arquivo (por exemplo, uma imagem de design personalizado). |
| Date | D | Um seletor de data (por exemplo, a data de entrega). |
Estrutura de uma opção
A estrutura de uma opção, como a referência a mostra. O texto depois de // é a explicação da referência para o código.
{
"option_id": "16",
"product_id": "423",
"option_name": "Color",
"option_type": "S",
"position": 10,
"required": "Y",
"comment": "Please select your preferred color",
"inventory": "Y",
"variants": [
{
"variant_id": "42",
"variant_name": "Black",
"position": 10,
"modifier_type": "A", // A - absolute, P - percentage
"modifier": "0.00",
"weight_modifier": "0.00",
"status": "A"
},
{
"variant_id": "43",
"variant_name": "White",
"position": 20,
"modifier_type": "A",
"modifier": "0.00",
"weight_modifier": "0.00",
"status": "A"
},
{
"variant_id": "44",
"variant_name": "Red",
"position": 30,
"modifier_type": "A",
"modifier": "5.00",
"weight_modifier": "0.00",
"status": "A"
}
]
}Conceitos principais
Campos da opção
option_type: define como a opção é exibida aos clientes (veja a tabela acima).required: indica se o cliente precisa escolher esta opção antes de adicionar o produto ao carrinho (YouN).inventory: indica se esta opção afeta o controle de estoque (YouN).comment: texto de apoio exibido ao cliente para ajudar na escolha.
Campos da variante
modifier_type: como o preço muda com esta variante.Aé absoluto (soma ou subtrai um valor fixo) ePé percentual (soma ou subtrai uma porcentagem do preço base).modifier: o valor que altera o preço do produto. Pode ser positivo ou negativo.weight_modifier: o valor que altera o peso do produto. Pode ser positivo ou negativo.status: indica se a variante está ativa (A) ou desativada (D).
Endpoints da API
/api/2.0/products/{product_id}/optionsAdminListar as opções de um produto
Retorna todas as opções associadas a um produto específico.
Parâmetros de caminho
product_idstringobrigatório/api/2.0/products/{product_id}/options/{option_id}AdminConsultar uma opção de um produto
Retorna os detalhes de uma opção específica do produto.
Parâmetros de caminho
product_idstringobrigatóriooption_idstringobrigatório/api/2.0/products/{product_id}/optionsAdminAdicionar uma opção a um produto
Cria uma nova opção para um produto.
Parâmetros de caminho
product_idstringobrigatórioCorpo da requisição
option_namestringoption_typestringSRCITFDpositionintegerrequiredstringYNcommentstringinventorystringYNvariantsarrayAs variantes da opção.
variant_namestringpositionintegermodifier_typestringAPA) ou percentual (P).modifierstringweight_modifierstringstatusstringADA) ou desativada (D)./api/2.0/products/{product_id}/options/{option_id}AdminAtualizar uma opção de um produto
Atualiza uma opção existente do produto.
Parâmetros de caminho
product_idstringobrigatóriooption_idstringobrigatório/api/2.0/products/{product_id}/options/{option_id}AdminExcluir uma opção de um produto
Exclui uma opção do produto.
Parâmetros de caminho
product_idstringobrigatóriooption_idstringobrigatórioExemplo: criar uma opção de tamanho
POST /api/2.0/products/423/options com o corpo abaixo cria uma opção "Size" com quatro variantes para o produto 423.
curl -X POST "$BASE_URL/api/2.0/products/423/options" \
-u "$EMAIL:$API_KEY" \
-H "Content-Type: application/json" \
-d '{
"option_name": "Size",
"option_type": "S",
"position": 20,
"required": "Y",
"comment": "Please select your size",
"inventory": "Y",
"variants": [
{
"variant_name": "Small",
"position": 10,
"modifier_type": "A",
"modifier": "0.00",
"weight_modifier": "-0.20",
"status": "A"
},
{
"variant_name": "Medium",
"position": 20,
"modifier_type": "A",
"modifier": "0.00",
"weight_modifier": "0.00",
"status": "A"
},
{
"variant_name": "Large",
"position": 30,
"modifier_type": "A",
"modifier": "2.00",
"weight_modifier": "0.30",
"status": "A"
},
{
"variant_name": "Extra Large",
"position": 40,
"modifier_type": "A",
"modifier": "5.00",
"weight_modifier": "0.50",
"status": "A"
}
]
}'Trabalhando com combinações de opções
Quando há várias opções com controle de estoque ativado, é preciso gerenciar o estoque de combinações específicas de opções. Por exemplo, você pode ter 10 camisas "Azul" e "P", mas só 5 camisas "Vermelha" e "G".
As combinações de opções são gerenciadas por um endpoint separado, /api/2.0/products/{product_id}/options/combinations: o GET retorna todas as combinações de opções de um produto e o POST cria uma nova combinação com dados de estoque. Elas estão documentadas em Combinações de opções.
Endpoints
| Método | Path | Finalidade | Autenticação | Página |
|---|---|---|---|---|
| GET | /api/2.0/products/{product_id}/options | Listar as opções de um produto | HTTP Basic | Esta página |
| GET | /api/2.0/products/{product_id}/options/{option_id} | Consultar uma opção de um produto | HTTP Basic | Esta página |
| POST | /api/2.0/products/{product_id}/options | Adicionar uma opção a um produto | HTTP Basic | Esta página |
| PUT | /api/2.0/products/{product_id}/options/{option_id} | Atualizar uma opção de um produto | HTTP Basic | Esta página |
| DELETE | /api/2.0/products/{product_id}/options/{option_id} | Excluir uma opção de um produto | HTTP Basic | Esta página |
| GET | /api/options | Listar as opções de um produto | HTTP Basic | Listar opções |
| GET | /api/options/{option_id} | Consultar uma opção | HTTP Basic | Consultar uma opção |
| POST | /api/options/ | Criar uma opção | HTTP Basic | Criar uma opção |
| PUT | /api/options/{option_id}/ | Atualizar uma opção | HTTP Basic | Atualizar uma opção |
| DELETE | /api/options/{option_id} | Excluir uma opção | HTTP Basic | Excluir uma opção |
Erros comuns e boas práticas
- Não exija opções demais: muitas escolhas obrigatórias podem complicar o processo de compra.
- Use nomes de opção claros, descritivos e fáceis de entender.
- Use o campo
commentpara orientar o cliente nas escolhas. - Defina valores de
positionpara que as opções apareçam em uma sequência lógica. - Aplique modificadores de preço que façam sentido para as variantes (por exemplo, materiais premium custam mais).
- Mantenha a estrutura das opções consistente entre produtos semelhantes, para oferecer uma experiência de compra uniforme.