Luego de registrar a tus comercios, es hora de cargar tus productos.
¿Cuáles son mis productos? Los productos en YOM son cada uno de los artículos que ofreces a la venta a tus clientes, identificados comercialmente por su SKU.
Estos productos se representan en la entidad Product. Un Product contiene atributos específicos que lo hacen único, como su identificador, nombre, precio y categorización dentro de grupos específicos. Es importante distinguir el productId del sku: el productId es el identificador único con el que YOM referencia cada producto en la integración, mientras que el sku es el código comercial con el que el negocio identifica el artículo. Ambos valores pueden coincidir, pero son campos distintos. La plataforma permite gestionar la activación, el destacado y la disponibilidad de cada producto.
El endpoint de Productos proporciona acceso a información detallada de cada producto registrado en YOM.
GET /api/products
ARCHIVO <fecha>_<hora>_product.csv
La siguiente tabla define el modelo base de integración de la entidad Product. Este modelo corresponde al contrato base y es extensible: puede complementarse con atributos adicionales a través del objeto otherProperties, según se describe en la sección Atributos adicionales.
| Campo | Tipo | Carácter | Descripción | Ejemplos |
|---|---|---|---|---|
productId |
📝 Texto | 🟢 Requerido | Identificador único del Producto. | |
| *\*Normalmente corresponde al *SKU | "SKU001" |
|||
name |
📝 Texto | 🟢 Requerido | Nombre del producto. | "Harina de Trigo Integral" |
description |
📝 Texto | 🟢 Requerido | Descripción del producto. | "Harina de trigo integral orgánica, ideal para panaderías." |
brand |
📝 Texto | 🟢 Requerido | Marca del producto. | "Harina YOM" |
pricePerUnit |
🔢 Número | 🟢 Requerido | Precio por unidad del Producto (sin impuestos). | 5.99 |
alternativePriceText |
📝 Texto | ⚪️ Opcional | Se mostrará este texto en vez del precio del producto. Esto es para productos que NO tienen precio como tal, y deben ser cotizados o calculados de otra forma | "Precio por cotizar" |
discountedPricePerUnit |
🔢 Número | ⚪️ Opcional | Precio con descuentos del Producto(sin impuestos) | 5.55 |
sortIdx |
🔢 Número | ⚪️ Opcional | Indice para determinar el orden en que se mostrará el producto | 15 |
tags |
🔡 Lista de Textos | ⚪️ Opcional | Lista de strings de las Categorías asociadas al Producto. Permite asociar las Categorías a las cual pertenece el Producto. |
"alimentos", "harinas", "orgánico" |
| isDisabled | 🔘 Bool | 🟢 Requerido | ¿Está el Producto deshabilitado para venta B2B? | true
false |
| isFeatured | 🔘 Bool | 🟢 Requerido | ¿Se etiqueta el Producto como destacado? | true
false |
| isNew | 🔘 Bool | 🟢 Requerido | ¿Se etiqueta el Producto como novedad? | true
false |
| dimensions | 📝 Objeto → Dimensions | ⚪️ Opcional | Dimensiones físicas del Producto. | {"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 | Restricciones de compra para ventas B2B del Producto. | { "minUnit": 6, "stepSize": 2} |
| packaging | 📝 Objeto → Packaging | 🟢 Requerido | Definición de niveles de empaque para el producto.
Unidad - Paquete - Caja - 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 | 🔴 Deprecado | Formatos en los cuales se vende el Producto (unidades, cajas, bandejas, etc). | [{'displayName': "Unidad", 'key': "UN", 'baseAmountPerFormat': 1, 'base': True}] |
| taxes | 🔡 Lista de Objetos → Tax | ⚪️ Opcional | Impuestos aplicables al Producto. | [{"code": "14", "name": "IVA", "rate": 0.19}] |
| group | 📝 Objeto → Group | ⚪️ Opcional | Grupo de productos al cual pertenece este SKU. | {"name": "Harinas", "description": "Productos de harina disponibles en la tienda."} |
| variant | 📝 Objeto → Variant | ⚪️ Opcional | Variantes de un producto determinado. | { "features": [ { "key": "Tipo de Grano", "value": "Trigo" } ], "parentSku": "HARINA-MINIMA-SKU001", "genericDisplayName": "Harina Básica de Trigo", "index": 0 } |
| otherProperties | 📝 Objeto | ⚪️ Opcional | Objeto clave-valor con atributos adicionales del Producto. Ver sección Atributos adicionales. | {"family": "Abarrotes", "line": "Panificación"} |
| appHidden | 🔘 Bool | ⚪️ Opcional | Flag para mostrar o no el producto en la app | false |
| b2bHidden | 🔘 Bool | ⚪️ Opcional | Flag para mostrar o no el producto en el b2b | false |La estructura dimensions en el objeto del Producto permite definir las dimensiones físicas del producto, incluyendo el peso, volumen y medidas.
| --- | --- | --- | --- | --- |
Ejemplo
"dimensions": {
"weight": 1.5,
"weightUnit": "kg",
"length": 30,
"lengthUnit": "cm",
"width": 20,
"widthUnit": "cm",
"height": 15,
"heightUnit": "cm",
"volume": 9,
"volumeUnit": "L"
}
La estructura constraints en el objeto del Producto permite definir las restricciones de compra asociadas al Producto para ventas B2B. Este objeto agrupa las reglas que determinan tanto el mínimo de unidades que se pueden adquirir como los incrementos permitidos al realizar un pedido.
| --- | --- | --- | --- | --- |
Ejemplo
{
"minUnit": 6,
"maxUnit": 12,
"stepSize": 2
}
En este caso:
La estructura packaging en el objeto del Producto permite definir dos niveles de agregación predefinidos de empaque en los que se puede vender el Producto: el Paquete (package), la Caja (box) y el Pallet (pallet). Estos a partir de la Unidad (unit). Los niveles de agregación están estructurados de la siguiente manera:
| --- | --- | --- | --- | --- |
<aside> <img src="/icons/light-bulb_gray.svg" alt="/icons/light-bulb_gray.svg" width="40px" /> Los nombres de las variables son únicamente referenciales
unit, package y box, se deben pensar como tres niveles de agregación.box sin haber definido un package.package.</aside>
otherProperties)El modelo documentado en esta página corresponde al contrato base de la entidad Product. Además de los campos base, los clientes pueden disponibilizar atributos adicionales para identificación, clasificación, segmentación, logística o análisis, a través del objeto otherProperties.
Algunos ejemplos de atributos adicionales son: familia, línea, departamento, división comercial, niveles categóricos adicionales, fabricante o proveedor, código de barras (EAN), país de origen o condición de almacenamiento.
Los atributos dentro de otherProperties deben cumplir las siguientes condiciones:
YOM podrá conservar estos atributos como información extendida cuando el mecanismo de integración y el pipeline lo permitan. Recibir un atributo no implica que YOM lo utilice automáticamente: su uso analítico o en modelos de recomendación debe validarse durante la implementación.
Ejemplo con atributos adicionales family, line y 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"
}
}