From tray-api
Manages product variants (SKUs) via Tray's REST API. Supports CRUD for attributes like size, color, and model, including stock and price per variant.
How this skill is triggered — by the user, by Claude, or both
Slash command
/tray-api:variacoesWhen to use
Use quando o desenvolvedor mencionar: variação, SKU, tamanho, cor, modelo, atributo de produto, POST /variants, PUT /variants, estoque por variação, preço de variação, código EAN de SKU ou limitação de variantes por produto.
The summary Claude sees in its skill listing — used to decide when to auto-load this skill
- **OBRIGATÓRIO:** `node skills/tray-dev/scripts/search_docs.mjs "<termo>"` — confirme o comportamento da API antes de gerar código.
node skills/tray-dev/scripts/search_docs.mjs "<termo>" — confirme o comportamento da API antes de gerar código.node skills/variacoes/scripts/validate.mjs '<payload_json>' — valide a estrutura do payload de variação antes de retornar código ao usuário.Execute estas verificações antes de gerar qualquer payload ou código:
access_token não aparece como literal string no código gerado.when_not_to_use no frontmatter).node skills/variacoes/scripts/validate.mjs '<payload_json>'
para confirmar a estrutura do payload que vai gerar. O validador checa
apenas estrutura (campos obrigatórios, tipos e campos desconhecidos),
nunca valores reais — então monte um payload sintético com placeholders
sempre que os valores vierem de variáveis de ambiente, da entrada do
usuário ou de outras chamadas. Exemplo:
node skills/variacoes/scripts/validate.mjs '{"Variant":{"product_id":"<id>","type_1":"Cor","value_1":"Azul"}}'.
Corrija todos os erros antes de retornar o código ao usuário. Até 3
tentativas — se persistir, explique o problema ao usuário.Documentação oficial: https://developers.tray.com.br/#apis-de-variacao-de-produtos
| Método | Endpoint | Descrição |
|---|---|---|
| GET | /variants | Listagem de variações com paginação |
| GET | /variants/:id | Consultar dados de uma variação |
| POST | /variants | Cadastrar nova variação |
| PUT | /variants/:id | Atualizar dados da variação |
| DELETE | /variants/:id | Excluir variação |
Autenticação: ?access_token={token}
| Campo | Tipo | Obrigatório (create) | Descrição |
|---|---|---|---|
product_id | number | Sim | ID do produto pai |
type_1 | string | Sim | Nome do 1º atributo (ex: "Cor") |
value_1 | string | Sim | Valor do 1º atributo (ex: "Azul") |
type_2 | string | Condicional | Nome do 2º atributo; obrigatório se value_2 presente |
value_2 | string | Condicional | Valor do 2º atributo; obrigatório se type_2 presente |
price | decimal | Não | Preço da variação (herda do produto se não informado) |
cost_price | decimal | Não | Preço de custo |
stock | number | Não | Estoque da variação |
ean | string | Não | Código de barras da variação |
reference | string | Não | Referência interna da variação |
weight | number | Não | Peso em gramas |
length | number | Não | Comprimento |
width | number | Não | Largura |
height | number | Não | Altura |
⚠️ Atributos são campos planos
type_N/value_N, NÃO um array. A API não aceita um campovalues: [{name, value}]— esse formato resulta em erro de validação (campostype_1/value_1ausentes). A plataforma suporta no máximo 2 eixos de atributo:type_1/value_1etype_2/value_2.Se
type_1for"Cor"ou"Color", a API resolve a cor (color_id) automaticamente a partir devalue_1.
Quando um campo não é informado na variação, ele herda o valor do produto pai. Isso se aplica a: price, weight, length, width, height.
A plataforma Tray impõe um limite de variações por produto. Consulte a seção "Limitação de variações por produto" na documentação oficial para os limites atuais.
Cada combinação de atributos é uma variação = uma chamada POST /variants:
{
"Variant": {
"product_id": 123,
"type_1": "Cor",
"value_1": "Azul",
"type_2": "Tamanho",
"value_2": "M",
"price": "89.90",
"stock": 50,
"ean": "7891234567890"
}
}
Para um produto com várias combinações, faça uma chamada por combinação.
Ex.: iPhone 15 nas cores Prata, Preto e Dourado, todos 256GB → 3 chamadas,
variando apenas value_1:
// Variação 1
{ "Variant": { "product_id": 123, "type_1": "Cor", "value_1": "Prata", "type_2": "Armazenamento", "value_2": "256GB" } }
// Variação 2
{ "Variant": { "product_id": 123, "type_1": "Cor", "value_1": "Preto", "type_2": "Armazenamento", "value_2": "256GB" } }
// Variação 3
{ "Variant": { "product_id": 123, "type_1": "Cor", "value_1": "Dourado", "type_2": "Armazenamento", "value_2": "256GB" } }
Mesmos parâmetros da API de Produtos: limit (máximo 50, padrão 30), page.
As imagens de variação são gerenciadas pela API de Imagens separada (POST /variants/:id/images). Consulte o skill tray-imagens-produtos.
Variant e o product_id do produto paitype_1/value_1 (e type_2/value_2 se houver 2 eixos){"Variant": {...}} corretotype_1/value_1 e type_2/value_2 (nunca array values)product_idproduct_id disponívelaccess_token configuradonpx claudepluginhub tray-tecnologia/tray-api-ai-plugin --plugin tray-apiProvides CDSS development patterns for drug interaction checking, dose validation, clinical scoring (NEWS2, qSOFA), and alert classification integrated into EMR workflows.