Depois de cadastrar seus comércios, é hora de carregar seus produtos.
Quais são meus produtos? Os produtos na YOM são cada um dos itens que você oferece à venda para seus clientes, identificados comercialmente pelo seu SKU.
Estes produtos são representados na entidade Product. Um Product contém atributos específicos que o tornam único, como seu identificador, nome, preço e categorização dentro de grupos específicos. É importante distinguir o productId do sku: o productId é o identificador único com o qual a YOM referencia cada produto na integração, enquanto o sku é o código comercial com o qual o negócio identifica o item. Ambos os valores podem coincidir, mas são campos distintos. A plataforma permite gerenciar a ativação, o destaque e a disponibilidade de cada produto.
O endpoint de Produtos fornece acesso a informações detalhadas de cada produto cadastrado na YOM.
GET /api/products
ARQUIVO <fecha>_<hora>_product.csv
A tabela a seguir define o modelo base de integração da entidade Product. Este modelo corresponde ao contrato base e é extensível: pode ser complementado com atributos adicionais por meio do objeto otherProperties, conforme descrito na seção Atributos adicionais.
| Campo | Tipo | Obrigatoriedade | Descrição | Exemplos |
|---|---|---|---|---|
productId |
📝 Texto | 🟢 Obrigatório | Identificador único do Produto. | |
| *\*Normalmente corresponde ao *SKU | "SKU001" |
|||
name |
📝 Texto | 🟢 Obrigatório | Nome do produto. | "Harina de Trigo Integral" |
description |
📝 Texto | 🟢 Obrigatório | Descrição do produto. | "Harina de trigo integral orgánica, ideal para panaderías." |
brand |
📝 Texto | 🟢 Obrigatório | Marca do produto. | "Harina YOM" |
pricePerUnit |
🔢 Número | 🟢 Obrigatório | Preço por unidade do Produto (sem impostos). | 5.99 |
alternativePriceText |
📝 Texto | ⚪️ Opcional | Este texto será exibido em vez do preço do produto. Isso é para produtos que NÃO têm preço definido e devem ser cotados ou calculados de outra forma | "Precio por cotizar" |
discountedPricePerUnit |
🔢 Número | ⚪️ Opcional | Preço com descontos do Produto (sem impostos) | 5.55 |
sortIdx |
🔢 Número | ⚪️ Opcional | Índice para determinar a ordem em que o produto será exibido | 15 |
tags |
🔡 Lista de Textos | ⚪️ Opcional | Lista de strings das Categorias associadas ao Produto. Permite associar as Categorias às quais o Produto pertence. | |
| • Consultar seção Categorias . | "alimentos", "harinas", "orgánico" |
|||
isDisabled |
🔘 Bool | 🟢 Obrigatório | O Produto está desabilitado para venda B2B? | true |
false |
||||
isFeatured |
🔘 Bool | 🟢 Obrigatório | O Produto é marcado como destaque? | true |
false |
||||
isNew |
🔘 Bool | 🟢 Obrigatório | O Produto é marcado como novidade? | true |
false |
||||
dimensions |
📝 Objeto → Dimensions | ⚪️ Opcional | Dimensões físicas do Produto. | {"weight": 1.5, "weightUnit": "kg", "length": 30, "lengthUnit": "cm", "width": 20, "widthUnit": "cm", "height": 15, "heightUnit": "cm", "volume": 9, "volumeUnit": "L"} |
constraints |
📝 Objeto → Constraint | ⚪️ Opcional | Restrições de compra para vendas B2B do Produto. | { "minUnit": 6, "stepSize": 2} |
packaging |
📝 Objeto → Packaging | 🟢 Obrigatório | Definição de níveis de embalagem para o produto. | |
| Unidade • Pacote • Caixa - Pallet | `{"unitName": "Unidad", "packageName": "Display", "packageUnit": "DIS", "amountPerPackage": 6, "boxName": "Empaque", "boxUnit": "CAJ", "amountPerBox": 8, | |||
| "palletName": "Pallet", "palletUnit": "PAL", "amountPerPallet": 300}` | ||||
formats |
🔡 Lista de Objetos → Format | 🔴 Descontinuado | Formatos nos quais o Produto é vendido (unidades, caixas, bandejas, etc). | [{'displayName': "Unidad", 'key': "UN", 'baseAmountPerFormat': 1, 'base': True}] |
taxes |
🔡 Lista de Objetos → Tax | ⚪️ Opcional | Impostos aplicáveis ao Produto. | [{"code": "14", "name": "IVA", "rate": 0.19}] |
group |
📝 Objeto → Group | ⚪️ Opcional | Grupo de produtos ao qual este SKU pertence. | {"name": "Harinas", "description": "Productos de harina disponibles en la tienda."} |
variant |
📝 Objeto → Variant | ⚪️ Opcional | Variantes de um determinado produto. | `{ |
| "features": [ |
{
"key": "Tipo de Grano",
"value": "Trigo"
}
],
"parentSku": "HARINA-MINIMA-SKU001",
"genericDisplayName": "Harina Básica de Trigo",
"index": 0
}| |otherProperties| 📝 Objeto | ⚪️ Opcional | Objeto chave-valor com atributos adicionais do **Produto**. Ver seção **Atributos adicionais**. |{"family": "Abarrotes", "line": "Panificación"}| |appHidden| 🔘 Bool | ⚪️ Opcional | Flag para exibir ou não o produto no app |false| |b2bHidden| 🔘 Bool | ⚪️ Opcional | Flag para exibir ou não o produto no b2b |false` |
A estrutura dimensions no objeto do Produto permite definir as dimensões físicas do produto, incluindo o peso, volume e medidas.
| --- | --- | --- | --- | --- |
Exemplo
"dimensions": {
"weight": 1.5,
"weightUnit": "kg",
"length": 30,
"lengthUnit": "cm",
"width": 20,
"widthUnit": "cm",
"height": 15,
"heightUnit": "cm",
"volume": 9,
"volumeUnit": "L"
}
A estrutura constraints no objeto do Produto permite definir as restrições de compra associadas ao Produto para vendas B2B. Este objeto agrupa as regras que determinam tanto o mínimo de unidades que podem ser adquiridas quanto os incrementos permitidos ao realizar um pedido.
| --- | --- | --- | --- | --- |
Exemplo
{
"minUnit": 6,
"maxUnit": 12,
"stepSize": 2
}
Neste caso:
A estrutura packaging no objeto do Produto permite definir dois níveis de agregação predefinidos de embalagem nos quais pode ser vendido o Produto: o Pacote (package), a Caixa (box) e o Pallet (pallet). Estes a partir da Unidade (unit). Os níveis de agregação estão estruturados da seguinte maneira:
| --- | --- | --- | --- | --- |
<aside> <img src="/icons/light-bulb_gray.svg" alt="/icons/light-bulb_gray.svg" width="40px" />
</aside>
otherProperties)O modelo documentado nesta página corresponde ao contrato base da entidade Product. Além dos campos base, os clientes podem disponibilizar atributos adicionais para identificação, classificação, segmentação, logística ou análise, por meio do objeto otherProperties.
Alguns exemplos de atributos adicionais são: família, linha, departamento, divisão comercial, níveis categóricos adicionais, fabricante ou fornecedor, código de barras (EAN), país de origem ou condição de armazenamento.
Os atributos dentro de otherProperties devem cumprir as seguintes condições:
A YOM poderá conservar estes atributos como informação estendida quando o mecanismo de integração e o pipeline permitirem. Receber um atributo não implica que a YOM o utilize automaticamente: seu uso analítico ou em modelos de recomendação deve ser validado durante a implementação.
Exemplo com atributos adicionais family, line e ean:
{
"productId": "SKU001",
"name": "Harina de Trigo Integral",
"description": "Harina de trigo integral orgánica, ideal para panaderías.",
"brand": "Harina YOM",
"isDisabled": false,
"tags": ["alimentos", "harinas", "orgánico"],
"pricePerUnit": 8092,
"otherProperties": {
"family": "Abarrotes",
"line": "Panificación",
"ean": "7801234567890"
}
}