YOM Docs

Products

After registering your commerces, it is time to upload your products.

What are my products? Products in YOM are each of the items you offer for sale to your customers, commercially identified by their SKU.

These products are represented by the Product entity. A Product contains specific attributes that make it unique, such as its identifier, name, price, and categorization within specific groups. It is important to distinguish productId from sku: the productId is the unique identifier that YOM uses to reference each product in the integration, while the sku is the commercial code the business uses to identify the item. The two values may match, but they are distinct fields. The platform lets you manage the activation, featuring, and availability of each product.

Endpoint

The Products endpoint provides access to detailed information about each product registered in YOM.

GET /api/products

FILE <fecha>_<hora>_product.csv

Fields

The following table defines the base integration model for the Product entity. This model is the base contract and is extensible: it can be supplemented with additional attributes through the otherProperties object, as described in the Additional attributes section.

Product

Field Type Requirement Description Examples
productId 📝 Text 🟢 Required Unique identifier of the Product.
*\*Normally corresponds to the *SKU "SKU001"
name 📝 Text 🟢 Required Product name. "Harina de Trigo Integral"
description 📝 Text 🟢 Required Product description. "Harina de trigo integral orgánica, ideal para panaderías."
brand 📝 Text 🟢 Required Product brand. "Harina YOM"
pricePerUnit 🔢 Number 🟢 Required Price per unit of the Product (excluding taxes). 5.99
alternativePriceText 📝 Text ⚪️ Optional This text will be displayed instead of the product price. This is for products that do NOT have a price as such and must be quoted or calculated some other way "Precio por cotizar"
discountedPricePerUnit 🔢 Number ⚪️ Optional Discounted price of the Product (excluding taxes) 5.55
sortIdx 🔢 Number ⚪️ Optional Index that determines the order in which the product will be displayed 15
tags 🔡 List of Texts ⚪️ Optional List of strings of the Categories associated with the Product. Lets you associate the Categories the Product belongs to.
• See section Categories . "alimentos", "harinas", "orgánico"
isDisabled 🔘 Bool 🟢 Required Is the Product disabled for B2B sales? true
false
isFeatured 🔘 Bool 🟢 Required Is the Product tagged as featured? true
false
isNew 🔘 Bool 🟢 Required Is the Product tagged as new? true
false
dimensions 📝 Object → Dimensions ⚪️ Optional Physical dimensions of the Product. {"weight": 1.5, "weightUnit": "kg", "length": 30, "lengthUnit": "cm", "width": 20, "widthUnit": "cm", "height": 15, "heightUnit": "cm", "volume": 9, "volumeUnit": "L"}
constraints 📝 Object → Constraint ⚪️ Optional Purchase constraints for B2B sales of the Product. { "minUnit": 6, "stepSize": 2}
packaging 📝 Object → Packaging 🟢 Required Packaging level definition for the product.
Unit • Package • Box - Pallet `{"unitName": "Unidad", "packageName": "Display", "packageUnit": "DIS", "amountPerPackage": 6, "boxName": "Empaque", "boxUnit": "CAJ", "amountPerBox": 8,
"palletName": "Pallet", "palletUnit": "PAL", "amountPerPallet": 300}`
formats 🔡 List of Objects → Format 🔴 Deprecated Formats in which the Product is sold (units, boxes, trays, etc). [{'displayName': "Unidad", 'key': "UN", 'baseAmountPerFormat': 1, 'base': True}]
taxes 🔡 List of Objects → Tax ⚪️ Optional Taxes applicable to the Product. [{"code": "14", "name": "IVA", "rate": 0.19}]
group 📝 Object → Group ⚪️ Optional Product group to which this SKU belongs. {"name": "Harinas", "description": "Productos de harina disponibles en la tienda."}
variant 📝 Object → Variant ⚪️ Optional Variants of a given product. `{
"features": [
{
  "key": "Tipo de Grano",
  "value": "Trigo"
}

], "parentSku": "HARINA-MINIMA-SKU001", "genericDisplayName": "Harina Básica de Trigo", "index": 0 }| |otherProperties| 📝 Object | ⚪️ Optional | Key-value object with additional attributes of the **Product**. See the **Additional attributes** section. |{"family": "Abarrotes", "line": "Panificación"}| |appHidden| 🔘 Bool | ⚪️ Optional | Flag that controls whether the product is shown in the app |false| |b2bHidden| 🔘 Bool | ⚪️ Optional | Flag that controls whether the product is shown in the b2b |false` |

Dimensions

The dimensions structure in the Product object lets you define the physical dimensions of the product, including weight, volume, and measurements.

| --- | --- | --- | --- | --- |

Example

"dimensions": {
    "weight": 1.5,
    "weightUnit": "kg",
    "length": 30,
    "lengthUnit": "cm",
    "width": 20,
    "widthUnit": "cm",
    "height": 15,
    "heightUnit": "cm",
    "volume": 9,
    "volumeUnit": "L"
}

Constraint

The constraints structure in the Product object lets you define the purchase constraints associated with the Product for B2B sales. This object groups the rules that determine both the minimum number of units that can be purchased and the allowed increments when placing an order.

| --- | --- | --- | --- | --- |

Example

{
    "minUnit": 6,
    "maxUnit": 12,
    "stepSize": 2
}

In this case:

Packaging

The packaging structure in the Product object lets you define two predefined packaging aggregation levels in which the Product can be sold: the Package (package), the Box (box) and the Pallet (pallet). These are built from the Unit (unit). The aggregation levels are structured as follows:

| --- | --- | --- | --- | --- |

<aside> <img src="/icons/light-bulb_gray.svg" alt="/icons/light-bulb_gray.svg" width="40px" />

</aside>

Additional attributes (otherProperties)

The model documented on this page is the base contract for the Product entity. In addition to the base fields, customers can provide additional attributes for identification, classification, segmentation, logistics, or analysis through the otherProperties object.

Some examples of additional attributes are: family, line, department, business division, additional categorical levels, manufacturer or supplier, barcode (EAN), country of origin, or storage condition.

Attributes inside otherProperties must meet the following conditions:

YOM may retain these attributes as extended information when the integration mechanism and the pipeline allow it. Receiving an attribute does not mean that YOM uses it automatically: its analytical use or use in recommendation models must be validated during implementation.

Example with additional attributes family, line, and 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"
  }
}