Productos
La API del Marketplace te permite administrar los productos de la tienda: crear, actualizar, recuperar información y revisar stock o disponibilidad.
Operaciones principales
- GET (
v1/products): obtener todos los productos. - POST (
v1/products): crear un nuevo producto. - PUT (
v1/products/{product_id}): actualizar un producto.
Campos clave
id_category_default: valor por defecto2.reference: identificador del producto (generalmente el SKU).price: precio del producto (decimal con dos números decimales).name: nombre del producto. Tiene un formato especial distinto a un string plano (internacionalización).description: descripción del producto. Al igual quename, tiene un formato especial.active: indica si el producto es visible. En el portal, el valor por defecto es1.
Asignación de categorías
Un producto se asocia a categorías de dos formas:
id_category_default: define la categoría principal del producto. En el alta debe ser"2".associations.categories: permite asignar el producto a múltiples categorías mediante un arreglo de IDs.
Consultar categorías disponibles
Para conocer las categorías existentes y sus IDs:
- Método:
GET /api/categories
Asignar categorías al crear un producto
Al crear un producto (POST /api/products), incluye el bloque associations.categories en el payload:
{
"product": {
"id_category_default": "2",
"reference": "MP-000002",
"price": 1159,
"associations": {
"categories": [
{ "id": "2" },
{ "id": "1105" }
]
}
}
}
Asignar categorías al actualizar un producto
Al actualizar un producto (PUT /api/products/{product_id}), envía el bloque associations.categories con la lista completa de categorías deseadas. Las categorías que no estén en el arreglo serán desvinculadas del producto.
{
"product": {
"id": "3080",
"id_category_default": "2",
"associations": {
"categories": [
{ "id": "2" },
{ "id": "1105" }
]
}
}
}
Respuesta
En la respuesta del producto, las categorías asignadas aparecen dentro del campo associations:
{
"product": {
"id": "3080",
"id_category_default": "2",
"associations": {
"categories": [
{ "id": "2" },
{ "id": "1105" }
],
"stock_availables": [
{ "id": "3178", "id_product_attribute": "0" }
]
}
}
}
Opciones de producto (product_options) y valores (product_option_values)
Las opciones de producto permiten gestionar variaciones como color, talla o material. Se componen de:
product_options: características del producto (por ejemplo, "Color").product_option_values: valores para cada característica (por ejemplo, "Rojo").
Flujo recomendado
- Crear el grupo de opción (
product_options). - Crear los valores de opción (
product_option_values). - Usar los valores al crear combinaciones.
product_options
Crear una opción de producto
- Método:
POST /api/product_options - Payload:
{
"product_options": {
"is_color_group": "0", //opcional
"group_type": "select", //puede ser select, radio o text
"position": "0", //opcional
"name": {
"language": [
{
"@id": "1",
"%": "Color"
}
]
},
"public_name": {
"language": [
{
"@id": "1",
"%": "Color"
}
]
}
}
}
- Respuesta: objeto JSON con el ID del grupo creado.
Obtener una opción de producto
- Método:
GET /api/product_options/:id - Respuesta: objeto JSON con los detalles del grupo.
product_option_values
Crear un valor de opción de producto
- Método:
POST /api/product_option_values - Payload:
{
"product_option_values": {
"id_attribute_group": "6",
"name": {
"language": {
"@id": "1",
"%": "Rojo"
}
}
}
}
- Respuesta: objeto JSON con el ID del valor creado.
Obtener un valor de opción de producto
- Método:
GET /api/product_option_values/:id - Respuesta: objeto JSON con los detalles del valor.
Relación entre opciones y valores
product_optionsdefine el conjunto de características.product_option_valuesdefine los valores específicos de cada característica.
Las combinaciones de producto se crean seleccionando valores de estas opciones.
Gestión de combinaciones
La API permite crear, modificar y consultar combinaciones de productos con atributos como colores o tallas.
Endpoints relevantes
- Combinaciones:
/api/combinations - Atributos:
/api/product_option_values - Stock:
/api/stock_availables
Flujo recomendado
1. Crear combinaciones
Una vez que los atributos y valores de atributos ya están creados, puedes proceder a crear combinaciones para un producto.
- Método:
POST /api/combinations - Payload:
{
"combination": {
"id_product": 1, // ID del producto al que pertenece la combinación
"minimal_quantity": 1,
"price": 5.00, // Impacto en el precio de la combinación
"associations": {
"product_option_values": {
"product_option_values": [
{
"id": 9
}
]
}
}
}
}
- Respuesta: objeto JSON con el ID de la combinación creada.
2. Gestionar el stock de combinaciones
El stock de cada combinación se gestiona a través del endpoint de stock disponible.
-
Método:
GET /api/stock_availables?filter[id_product_attribute]=1 -
Payload:
{
"stock_available": {
"id_product": 1, // ID del producto
"id_product_attribute": 1, // ID de la combinación
"quantity": 50 // Cantidad de stock
}
}
- Respuesta: objeto JSON confirmando la cantidad de stock actualizada para la combinación.
Gestión de combinaciones existentes
Obtener información de una combinación
Para obtener los detalles de una combinación existente, como atributos, precio o stock, puedes usar una solicitud GET.
- Método:
GET /api/combinations/:id - Respuesta: objeto JSON con la información de la combinación.
- Nota: para obtener el stock real usa
GET /api/stock_availables?filter[id_product_attribute]=id.
Actualizar una combinación
Si necesitas modificar detalles de una combinación, como el precio, puedes hacerlo mediante una solicitud PUT.
-
Método:
PUT /api/combinations/:id -
Payload:
{
"combination": {
"price": 7.00 // Nuevo precio
}
}
- Respuesta: objeto JSON confirmando la actualización de la combinación.
Gestión de imágenes de productos
La API de PrestaShop permite gestionar las imágenes asociadas a los productos. A continuación, se describen los endpoints y métodos disponibles para crear, actualizar y eliminar imágenes en las versiones 1.7 y 1.6.
1. Crear una Imagen de Producto
Para agregar una imagen a un producto:
- Método:
POST /api/images/products/:id_product - Headers:
Content-Type: multipart/form-data- Payload:
- El archivo de la imagen debe enviarse como parte del cuerpo de la solicitud en formato
multipart/form-data. La imagen debe ir acompañada del parametroimageque contiene el archivo de imagen. - La imagen debe subirse desde la ruta local del servidor. Por el momento, no se admite URLs externas.
- Los formatos admitidos son JPEG, PNG y GIF.
Ejemplo de Solicitud
curl -X POST "https://example.com/api/images/products/1" \
-H "Authorization: Basic <EncodedToken>" \
-F "image=@/ruta/a/la/imagen.jpg"
Respuesta: Un objeto XML con el ID de producto y el content en base64 de la imagen subida.
2. Actualizar una Imagen de Producto
- Método:
POST /api/images/products/:id_product/:id_image - Headers:
Content-Type: multipart/form-data- Payload:
- El archivo de la imagen debe enviarse como parte del cuerpo de la solicitud en formato
multipart/form-data. La imagen debe ir acompañada del parametroimageque contiene el archivo de imagen. - La imagen debe subirse desde la ruta local del servidor. Por el momento, no se admite URLs externas.
- Los formatos admitidos son JPEG, PNG y GIF.
- Además debe ir el parametro
ps_methodcon el valorPUTpara indicar que se está actualizando una imagen existente.
Ejemplo de Solicitud
curl -X POST "https://example.com/api/images/products/1/2" \
-H "Authorization: Basic <EncodedToken>" \
-F "image=@/ruta/a/la/imagen.jpg"
-F "ps_method=PUT"
Respuesta: Un objeto XML con el ID de producto y el content en base64 de la imagen subida.
3. Eliminar una Imagen de Producto
Para eliminar una imagen de un producto:
-
Método:
DELETE /api/images/products/:id_product/:id_image -
Headers:
-
Payload: No se requiere un cuerpo de solicitud.
-
Ejemplo de Solicitud:
curl -X DELETE "https://example.com/api/images/products/1/2" \
- Respuesta: Cuerpo vacío con un código de estado HTTP 200 OK si la eliminación fue exitosa.
4. Obtener Imágenes de un Producto
Para obtener todos los IDs de imágenes asociadas a un producto:
-
Método:
GET /api/images/products/:id_product -
Headers:
-
Content-Type: application/json -
Respuesta: Un objeto JSON con una lista de ids de imágenes asociadas al producto.
-
Ejemplo de Solicitud:
curl -X GET "https://example.com/api/images/products/1"
-H "Authorization: Basic <EncodedToken>" \
-H "Content-Type: application/json"
- Ejemplo de respuesta:
{
"": [
{
"id": "123"
},
{
"id": "124"
},
{
"id": "125"
},
{
"id": "126"
}
]
}
5. Ver una Imagen de Producto Específica
Para ver una imagen específica de un producto:
-
Método:
GET /api/images/products/:id_product/:id_image -
Respuesta: La imagen en formato binario (generalmente JPEG o PNG).
Gestión de Stock
La API de PrestaShop permite gestionar el stock de los productos a través del endpoint /api/stock_availables. A continuación, se describen las operaciones más comunes para gestionar el stock de los productos.
1. Obtener Stock de un Producto
Para obtener el stock disponible de un producto específico, puedes utilizar el siguiente endpoint:
-
Método:
GET /api/stock_availables?filter[id_product]=1 -
Headers:
Content-Type: application/jsonAuthorization: Basic <EncodedToken>
-
Respuesta: Un objeto JSON con los detalles del stock disponible para el producto especificado.
-
Ejemplo de Solicitud:
curl -X GET "https://example.com/api/stock_availables?filter[id_product]=1" \
- Ejemplo de Respuesta:
{
"stock_availables": [
{
"id": "1",
"id_product": "1",
"id_product_attribute": "0",
"quantity": "100",
"depends_on_stock": "0",
"out_of_stock": "2"
}
]
}
2. Actualizar Stock de un Producto
Para actualizar la cantidad de stock disponible de un producto, puedes utilizar el siguiente endpoint:
- Método:
PUT /api/stock_availables/:id -
Headers:
Content-Type: application/jsonAuthorization: Basic <EncodedToken>
-
Payload:
{
"stock_available": {
"id": 321, // ID del stock disponible a actualizar
"id_product": 1, // ID del producto
"id_product_attribute": 0, // ID de la combinación (0 si no aplica)
"quantity": 150 // Nueva cantidad de stock
"depends_on_stock": 0, // 0 si no depende del stock avanzado
"out_of_stock": 1, // 1 si se permite la compra cuando el stock está agotado, 2 si no se permite
"id_shop": 1
}
}
- Ejemplo de Solicitud:
curl -X PUT "https://example.com/api/stock_availables/1" \
--data '{
"stock_available": {
"id": 321,
"id_product": 1,
"id_product_attribute": 0,
"quantity": "150",
"depends_on_stock": 0,
"out_of_stock": 1,
"id_shop": 1
}
}'
Ejemplo de Respuesta:
{
"stock_available": {
"id": "1",
"id_product": "1",
"id_product_attribute": "0",
"quantity": "150",
"depends_on_stock": "0",
"out_of_stock": "2"
}
}
3. Crear Stock para un Producto
Para crear un nuevo registro de stock para un producto, puedes utilizar el siguiente endpoint:
-
Método:
POST /api/stock_availables -
Headers:
Content-Type: application/jsonAuthorization: Basic <EncodedToken>
-
Payload:
{
"stock_available": {
"id_product": 1, // ID del producto
"id_product_attribute": 0, // ID de la combinación (0 si no aplica)
"quantity": 150 // Nueva cantidad de stock
"depends_on_stock": 0, // 0 si no depende del stock avanzado
"out_of_stock": 1, // 1 si se permite la compra cuando el stock está agotado, 2 si no se permite
"id_shop": 1
}
}
- Ejemplo de Solicitud:
curl -X POST "https://example.com/api/stock_availables" \
--data '{
"stock_available": {
"id": 321,
"id_product": 1,
"id_product_attribute": 0,
"quantity": "150",
"depends_on_stock": 0,
"out_of_stock": 1,
"id_shop": 1
}
}'
- Ejemplo de Respuesta:
{
"stock_available": {
"id": "321",
"id_product": "1",
"id_product_attribute": "0",
"quantity": "200",
"depends_on_stock": "0",
"out_of_stock": "2"
}
}
Gestión de Precios Específicos (Descuentos)
La API de PrestaShop permite gestionar precios específicos (descuentos) para productos a través del endpoint /api/specific_prices. Los precios específicos permiten aplicar descuentos por porcentaje o monto fijo, con restricciones opcionales por fecha, cantidad mínima, grupo de clientes, moneda, país, tienda, combinación de producto, etc.
Propiedades de los Precios Específicos
Los precios específicos incluyen las siguientes propiedades:
id_product: ID del producto al que se aplica el precio específico (requerido)id_product_attribute: ID de la combinación de producto (0 si aplica al producto base)price: Precio fijo del producto. Usar-1para mantener el precio del producto y aplicar solo el descuentofrom_quantity: Cantidad mínima requerida para aplicar el precio específicoreduction: Valor del descuento (puede ser porcentaje o monto)reduction_type: Tipo de descuento. Puede ser"percentage"(porcentaje) o"amount"(monto fijo)reduction_tax: Indica si la reducción incluye impuestos.0= sin impuestos,1= con impuestosfrom: Fecha de inicio del precio específico (formato:YYYY-MM-DD)to: Fecha de fin del precio específico (formato:YYYY-MM-DD)id_shop_group: ID del grupo de tiendas (0 para todos)id_shop: ID de la tienda (1 por defecto)id_cart: ID del carrito específico (0 para todos)id_currency: ID de la moneda (0 para todas)id_country: ID del país (0 para todos)id_group: ID del grupo de clientes (1 por defecto)id_customer: ID del cliente específico (0 para todos)id_specific_price_rule: ID de la regla de precio específico (0 si no aplica)
1. Obtener Precios Específicos
Para obtener todos los precios específicos o filtrar por producto:
-
Método:
GET /api/specific_pricesoGET /api/specific_prices?filter[id_product]=[id_product] -
Headers:
Content-Type: application/jsonAuthorization: Basic <EncodedToken>
-
Ejemplo de Solicitud:
curl -X GET "https://example.com/api/specific_prices?filter[id_product]=[104077816]" \
-H "Authorization: Basic <EncodedToken>" \
-H "Content-Type: application/json"
- Ejemplo de Respuesta:
{
"specific_prices": [
{
"id": "15205375"
}
]
}
2. Crear un Precio Específico
Para crear un nuevo precio específico (descuento) para un producto:
-
Método:
POST /api/specific_prices -
Headers:
Content-Type: application/jsonAuthorization: Basic <EncodedToken>
2.1. Crear Descuento por Porcentaje
- Payload:
{
"specific_price": {
"id_shop_group": "0",
"id_shop": "1",
"id_cart": "0",
"id_product": "104077816",
"id_product_attribute": "0",
"id_currency": "0",
"id_country": "0",
"id_group": "1",
"id_customer": "0",
"id_specific_price_rule": "0",
"price": "-1.000000",
"from_quantity": "1",
"reduction": "0.05",
"reduction_tax": "0",
"reduction_type": "percentage",
"from": "2025-11-26",
"to": "2025-11-27"
}
}
- Ejemplo de Solicitud:
curl -X POST "https://example.com/api/specific_prices" \
-H "Authorization: Basic <EncodedToken>" \
-H "Content-Type: application/json" \
--data '{
"specific_price": {
"id_shop_group": "0",
"id_shop": "1",
"id_cart": "0",
"id_product": "104077816",
"id_product_attribute": "0",
"id_currency": "0",
"id_country": "0",
"id_group": "1",
"id_customer": "0",
"id_specific_price_rule": "0",
"price": "-1.000000",
"from_quantity": "1",
"reduction": "0.05",
"reduction_tax": "0",
"reduction_type": "percentage",
"from": "2025-11-26",
"to": "2025-11-27"
}
}'
- Ejemplo de Respuesta:
{
"specific_price": {
"id": "15205379",
"id_shop_group": "0",
"id_shop": "1",
"id_cart": "0",
"id_product": "104077816",
"id_product_attribute": "0",
"id_currency": "0",
"id_country": "0",
"id_group": "1",
"id_customer": "0",
"id_specific_price_rule": "0",
"price": -1,
"from_quantity": "1",
"reduction": "0.05",
"reduction_tax": "0",
"reduction_type": "percentage",
"from": "2025-11-26",
"to": "2025-11-27"
}
}
2.2. Crear Descuento por Monto Fijo
- Payload:
{
"specific_price": {
"id_shop_group": "0",
"id_shop": "1",
"id_cart": "0",
"id_product": "104077816",
"id_product_attribute": "0",
"id_currency": "0",
"id_country": "0",
"id_group": "1",
"id_customer": "0",
"id_specific_price_rule": "0",
"price": "-1.000000",
"from_quantity": "1",
"reduction": "1000",
"reduction_tax": "0",
"reduction_type": "amount",
"from": "2025-11-26",
"to": "2025-11-27"
}
}
- Ejemplo de Solicitud:
curl -X POST "https://example.com/api/specific_prices" \
-H "Authorization: Basic <EncodedToken>" \
-H "Content-Type: application/json" \
--data '{
"specific_price": {
"id_shop_group": "0",
"id_shop": "1",
"id_cart": "0",
"id_product": "104077816",
"id_product_attribute": "0",
"id_currency": "0",
"id_country": "0",
"id_group": "1",
"id_customer": "0",
"id_specific_price_rule": "0",
"price": "-1.000000",
"from_quantity": "1",
"reduction": "1000",
"reduction_tax": "0",
"reduction_type": "amount",
"from": "2025-11-26",
"to": "2025-11-27"
}
}'
- Ejemplo de Respuesta:
{
"specific_price": {
"id": "15205380",
"id_shop_group": "0",
"id_shop": "1",
"id_cart": "0",
"id_product": "104077816",
"id_product_attribute": "0",
"id_currency": "0",
"id_country": "0",
"id_group": "1",
"id_customer": "0",
"id_specific_price_rule": "0",
"price": -1,
"from_quantity": "1",
"reduction": "1000",
"reduction_tax": "0",
"reduction_type": "amount",
"from": "2025-11-26",
"to": "2025-11-27"
}
}
Notas importantes:
- Para descuentos por porcentaje, el valor de reduction debe ser un decimal entre 0 y 1 (ej: 0.05 = 5%, 0.20 = 20%)
- Para descuentos por monto fijo, el valor de reduction debe ser el monto en la moneda base (ej: 1000 = 1000 unidades de la moneda)
- El campo price con valor -1 mantiene el precio original del producto y aplica solo el descuento
- Las fechas from y to definen el período de validez del precio específico
3. Actualizar un Precio Específico
Para actualizar un precio específico existente:
-
Método:
PUT /api/specific_prices/:id -
Headers:
Content-Type: application/jsonAuthorization: Basic <EncodedToken>
3.1. Actualizar Descuento por Porcentaje
- Payload:
{
"specific_price": {
"id": "15205375",
"id_product": "104077816",
"id_shop_group": "0",
"id_shop": "1",
"id_cart": "0",
"id_product_attribute": "0",
"id_currency": "0",
"id_country": "0",
"id_group": "1",
"id_customer": "0",
"id_specific_price_rule": "0",
"price": "-1.000000",
"from_quantity": "1",
"reduction": "0.1",
"reduction_tax": "0",
"reduction_type": "percentage",
"from": "2025-11-26",
"to": "2025-11-27"
}
}
- Ejemplo de Solicitud:
curl -X PUT "https://example.com/api/specific_prices/15205375" \
-H "Authorization: Basic <EncodedToken>" \
-H "Content-Type: application/json" \
--data '{
"specific_price": {
"id": "15205375",
"id_product": "104077816",
"id_shop_group": "0",
"id_shop": "1",
"id_cart": "0",
"id_product_attribute": "0",
"id_currency": "0",
"id_country": "0",
"id_group": "1",
"id_customer": "0",
"id_specific_price_rule": "0",
"price": "-1.000000",
"from_quantity": "1",
"reduction": "0.1",
"reduction_tax": "0",
"reduction_type": "percentage",
"from": "2025-11-26",
"to": "2025-11-27"
}
}'
- Ejemplo de Respuesta:
{
"specific_price": {
"id": "15205375",
"id_shop_group": "0",
"id_shop": "1",
"id_cart": "0",
"id_product": "104077816",
"id_product_attribute": "0",
"id_currency": "0",
"id_country": "0",
"id_group": "1",
"id_customer": "0",
"id_specific_price_rule": "0",
"price": -1,
"from_quantity": "1",
"reduction": "0.1",
"reduction_tax": "0",
"reduction_type": "percentage",
"from": "2025-11-26",
"to": "2025-11-27"
}
}
3.2. Actualizar Descuento por Monto Fijo
- Payload:
{
"specific_price": {
"id": "15205380",
"id_product": "104077816",
"id_shop_group": "0",
"id_shop": "1",
"id_cart": "0",
"id_product_attribute": "0",
"id_currency": "0",
"id_country": "0",
"id_group": "1",
"id_customer": "0",
"id_specific_price_rule": "0",
"price": "-1.000000",
"from_quantity": "1",
"reduction": "2000",
"reduction_tax": "0",
"reduction_type": "amount",
"from": "2025-11-26",
"to": "2025-11-27"
}
}
- Ejemplo de Solicitud:
curl -X PUT "https://example.com/api/specific_prices/15205380" \
-H "Authorization: Basic <EncodedToken>" \
-H "Content-Type: application/json" \
--data '{
"specific_price": {
"id": "15205380",
"id_product": "104077816",
"id_shop_group": "0",
"id_shop": "1",
"id_cart": "0",
"id_product_attribute": "0",
"id_currency": "0",
"id_country": "0",
"id_group": "1",
"id_customer": "0",
"id_specific_price_rule": "0",
"price": "-1.000000",
"from_quantity": "1",
"reduction": "2000",
"reduction_tax": "0",
"reduction_type": "amount",
"from": "2025-11-26",
"to": "2025-11-27"
}
}'
- Ejemplo de Respuesta:
{
"specific_price": {
"id": "15205380",
"id_shop_group": "0",
"id_shop": "1",
"id_cart": "0",
"id_product": "104077816",
"id_product_attribute": "0",
"id_currency": "0",
"id_country": "0",
"id_group": "1",
"id_customer": "0",
"id_specific_price_rule": "0",
"price": -1,
"from_quantity": "1",
"reduction": "2000",
"reduction_tax": "0",
"reduction_type": "amount",
"from": "2025-11-26",
"to": "2025-11-27"
}
}
4. Eliminar un Precio Específico
Para eliminar un precio específico:
-
Método:
DELETE /api/specific_prices/:id -
Headers:
Content-Type: application/jsonAuthorization: Basic <EncodedToken>
-
Payload: No se requiere un cuerpo de solicitud.
-
Ejemplo de Solicitud:
curl -X DELETE "https://example.com/api/specific_prices/15205375" \
-H "Authorization: Basic <EncodedToken>" \
-H "Content-Type: application/json"
- Respuesta: Cuerpo vacío con un código de estado HTTP 200 OK si la eliminación fue exitosa.
Gestión de Características de Producto product_features y product_feature_values
Introducción
Las características de producto (product features) se utilizan para agregar información descriptiva adicional a los productos, como especificaciones técnicas, materiales, dimensiones, etc. Estas características se componen de:
- product_features: Representan las características o atributos del producto, como "Material", "Color", "Dimensiones", etc.
- product_feature_values: Son los valores específicos para esas características, como "Algodón" para "Material", o "Rojo" para "Color".
1. product_features
Las product_features son las características o atributos que pueden asociarse a los productos para proporcionar información adicional.
Obtener una Característica de Producto
Para obtener la información de una característica de producto:
-
Método:
GET /api/product_features/:idoGET /api/product_features/:id?display=full -
Headers:
Content-Type: application/jsonAuthorization: Basic <EncodedToken>
-
Ejemplo de Solicitud:
curl -X GET "https://example.com/api/product_features/3?display=full" \
-H "Authorization: Basic <EncodedToken>" \
-H "Content-Type: application/json"
- Ejemplo de Respuesta:
{
"product_feature": {
"id": "3",
"position": "1",
"name": "Material"
}
}
Obtener Todas las Características de Producto
Para obtener todas las características de producto disponibles:
-
Método:
GET /api/product_features -
Headers:
Content-Type: application/jsonAuthorization: Basic <EncodedToken>
-
Ejemplo de Solicitud:
curl -X GET "https://example.com/api/product_features" \
-H "Authorization: Basic <EncodedToken>" \
-H "Content-Type: application/json"
Crear una Característica de Producto
Para crear una nueva característica de producto:
-
Método:
POST /api/product_features -
Headers:
Content-Type: application/jsonAuthorization: Basic <EncodedToken>
-
Payload:
{
"feature": {
"name": {
"language": {
"@id": 1,
"%": "Material"
}
}
}
}
- Ejemplo de Solicitud:
curl -X POST "https://example.com/api/product_features" \
-H "Authorization: Basic <EncodedToken>" \
-H "Content-Type: application/json" \
--data '{
"feature": {
"name": {
"language": {
"@id": 1,
"%": "Material"
}
}
}
}'
- Ejemplo de Respuesta:
{
"product_feature": {
"id": "1926",
"position": 1160,
"name": "Material"
}
}
Propiedades:
- id: ID único de la característica (generado automáticamente)
- position: Posición de la característica en la lista (opcional, se asigna automáticamente)
- name: Nombre de la característica (requerido). Debe tener el formato especial con language que contiene @id (ID del idioma, generalmente 1) y % (el valor del nombre)
2. product_feature_values
Los product_feature_values son los valores específicos para una característica de producto. Por ejemplo, si la característica es "Material", los valores podrían ser "Algodón", "Poliester", "Lino", etc.
Obtener un Valor de Característica de Producto
Para obtener la información de un valor de característica:
-
Método:
GET /api/product_feature_values/:id -
Headers:
Content-Type: application/jsonAuthorization: Basic <EncodedToken>
-
Ejemplo de Solicitud:
curl -X GET "https://example.com/api/product_feature_values/62355" \
-H "Authorization: Basic <EncodedToken>" \
-H "Content-Type: application/json"
- Ejemplo de Respuesta:
{
"product_feature_value": {
"id": "62355",
"id_feature": "1924",
"custom": 0,
"value": "Algodón"
}
}
Obtener Todos los Valores de Características de Producto
Para obtener todos los valores de características disponibles:
-
Método:
GET /api/product_feature_values -
Headers:
Content-Type: application/jsonAuthorization: Basic <EncodedToken>
-
Ejemplo de Solicitud:
curl -X GET "https://example.com/api/product_feature_values" \
-H "Authorization: Basic <EncodedToken>" \
-H "Content-Type: application/json"
Crear un Valor de Característica de Producto
Para crear un nuevo valor de característica:
-
Método:
POST /api/product_feature_values -
Headers:
Content-Type: application/jsonAuthorization: Basic <EncodedToken>
-
Payload:
{
"feature_values": {
"id_feature": 1924,
"value": {
"language": {
"@id": 1,
"%": "Algodón"
}
}
}
}
- Ejemplo de Solicitud:
curl -X POST "https://example.com/api/product_feature_values" \
-H "Authorization: Basic <EncodedToken>" \
-H "Content-Type: application/json" \
--data '{
"feature_values": {
"id_feature": 1924,
"value": {
"language": {
"@id": 1,
"%": "Algodón"
}
}
}
}'
- Ejemplo de Respuesta:
{
"product_feature_value": {
"id": "62375",
"id_feature": "1924",
"custom": 0,
"value": "Algodón"
}
}
Propiedades:
- id: ID único del valor de característica (generado automáticamente)
- id_feature: ID de la característica de producto a la que pertenece este valor (requerido)
- custom: Indica si el valor es personalizado. 0 = valor predefinido, 1 = valor personalizado (se asigna automáticamente)
- value: El valor de la característica (requerido). Debe tener el formato especial con language que contiene @id (ID del idioma, generalmente 1) y % (el valor del texto)
3. Relación entre product_features y product_feature_values
- product_features define las características o atributos que pueden tener los productos, como "Material", "Color", "Dimensiones", etc.
- product_feature_values define los valores específicos para esas características, como "Algodón" o "Poliester" para "Material", o "Rojo" y "Azul" para "Color".
Estas características y valores se pueden asociar a los productos para proporcionar información adicional que ayude a los clientes a tomar decisiones de compra informadas.