Permite la creación de uno o varios productos, esta API es asincrónica y genera la creación de un Feed.
Recuerda siempre ver el detalle de un feed para asegurarse si el producto fue creado correctamente o bien tiene observaciones en el rechazo.
El cuerpo del request es un XML, aquellos campos que sean enviados con valor vacío, no serán procesados y serán ignorados, cómo el siguiente ejemplo, donde ParentSku será ignorado, aunque haya sido declarado. Es posible actualizar uno o más productos.
Datos de la solicitud
<?xml version="1.0" encoding="UTF-8" ?>
<Request>
<Product>
<SellerSku>SKU-TEST-12345</SellerSku>
<ParentSku/>
<Name>PRODUCT TEST - TEST - TEST</Name>
<PrimaryCategory>811</PrimaryCategory>
<Description>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.</Description>
<Brand>EPATE</Brand>
<ProductId>4066749430450</ProductId>
<Variation>US 7</Variation>
<Color>Blanco</Color>
<ColorBasico>Blanco</ColorBasico>
<Talla>39</Talla>
<BusinessUnits>
<BusinessUnit>
<OperatorCode>facl</OperatorCode>
<Price>59990</Price>
<SpecialPrice>35990</SpecialPrice>
<SpecialFromDate>2023-05-26 00:00:00</SpecialFromDate>
<SpecialToDate>2023-10-31 23:59:59</SpecialToDate>
<Stock>36</Stock>
<Status>active</Status>
</BusinessUnit>
</BusinessUnits>
<ProductData>
<ConditionType>Nuevo</ConditionType>
<PackageHeight>10</PackageHeight>
<PackageWidth>10</PackageWidth>
<PackageLength>10</PackageLength>
<PackageWeight>1</PackageWeight>
<DisciplinaZapatillas>Tenis</DisciplinaZapatillas>
<Genero>Mujer</Genero>
</ProductData>
</Product>
</Request>
<?xml version="1.0" encoding="UTF-8" ?>
<Request>
<Product>
<SellerSku>SKU-TEST-12345</SellerSku>
<Name>PRODUCT TEST - TEST - TEST</Name>
<PrimaryCategory>811</PrimaryCategory>
<Description>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.</Description>
<Brand>EPATE</Brand>
<ProductId>4066749430450</ProductId>
<Variation>US 7</Variation>
<Color>Blanco</Color>
<ColorBasico>Blanco</ColorBasico>
<Talla>39</Talla>
<BusinessUnits>
<BusinessUnit>
<OperatorCode>facl</OperatorCode>
<Price>59990</Price>
<SpecialPrice>35990</SpecialPrice>
<SpecialFromDate>2023-05-26 00:00:00</SpecialFromDate>
<SpecialToDate>2023-10-31 23:59:59</SpecialToDate>
<Stock>36</Stock>
<Status>active</Status>
</BusinessUnit>
</BusinessUnits>
<ProductData>
<ConditionType>Nuevo</ConditionType>
<PackageHeight>10</PackageHeight>
<PackageWidth>10</PackageWidth>
<PackageLength>10</PackageLength>
<PackageWeight>1</PackageWeight>
<DisciplinaZapatillas>Tenis</DisciplinaZapatillas>
<Genero>Mujer</Genero>
</ProductData>
</Product>
<Product>
<SellerSku>SKU-TEST-78905</SellerSku>
<Name>PRODUCT TEST - TEST - TEST</Name>
<PrimaryCategory>811</PrimaryCategory>
<Description>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.</Description>
<Brand>EPATE</Brand>
<ProductId>4066749430450</ProductId>
<Variation>US 7</Variation>
<Color>Azul</Color>
<ColorBasico>Rojo</ColorBasico>
<Talla>38</Talla>
<BusinessUnits>
<BusinessUnit>
<OperatorCode>facl</OperatorCode>
<Price>59990</Price>
<SpecialPrice>35990</SpecialPrice>
<SpecialFromDate>2023-05-26 00:00:00</SpecialFromDate>
<SpecialToDate>2023-10-31 23:59:59</SpecialToDate>
<Stock>36</Stock>
<Status>active</Status>
</BusinessUnit>
</BusinessUnits>
<ProductData>
<ConditionType>Nuevo</ConditionType>
<PackageHeight>10</PackageHeight>
<PackageWidth>10</PackageWidth>
<PackageLength>10</PackageLength>
<PackageWeight>1</PackageWeight>
<DisciplinaZapatillas>Tenis</DisciplinaZapatillas>
<Genero>Mujer</Genero>
</ProductData>
</Product>
</Request>
Las etiquetas XML tienen el siguiente significado:
Etiqueta | Tipo | Descripción |
---|---|---|
SellerSku | String | Un identificador único para el producto dentro de la instancia de Seller Center que se agregará al sistema. Este identificador suele asignarse libremente. Los identificadores armonizados, como UPC o EAN, se pueden configurar a través de ProductId. Obligatorio |
ParentSku | String | Este campo define la estructura para gestionar productos con variaciones, como tallas o colores. Establece un producto principal como "padre" y lo vincula con las variantes mediante su SellerSku como ParentSku. Se puede proporcionar un ParentSku específico; de lo contrario, se utiliza automáticamente el _SellerSku _de la primera variación. Facilita la organización y gestión efectiva de productos con variaciones. |
Status | String | Uno de los siguientes valores: 'active', 'inactive' o 'deleted'. Opcional, predeterminado en 'active'. |
Name | String | El nombre del producto que se muestra al usuario final. Obligatorio. Debe tener entre 2 y 255 caracteres. |
Variation | String | Si un producto está disponible en múltiples variaciones (por ejemplo, colores o tamaños), éste es el valor de la variación. Por ejemplo, si el producto es una chaqueta que viene en diferentes tamaños, este sería el tamaño de la variación de la chaqueta que se agrega con la llamada (por ejemplo, 'Extra Small'). |
Color | String | Indica el color principal del producto. |
ColorBasico | String | Indica el color principal del producto. En caso de no tener uno, selecciona la opción multicolor. |
Talla | String | Indica la talla de la prenda del producto. |
PrimaryCategory | Integer | El ID de la categoría principal de su producto. Para obtener el ID de cada una de las categorías del sistema, llame a GetCategoryTree. Obligatorio |
Categories | String | Una lista separada por comas de una de las tres subcategorías a las que pertenece el producto. Cada una de las subcategorías dadas debe descender de la categoría especificada por el parámetro PrimaryCategory. Opcional |
BrowseNodes | String | Una lista separada por comas de una o dos categorías adicionales que no están necesariamente relacionadas con PrimaryCategory. Opcional |
Description | String | La descripción del producto, como se muestra al usuario final. 6 a 25000 caracteres. Se permite agregar determinadas etiquetas HTML, pero se deben utilizar como caracteres de escape (ver más abajo). Obligatorio |
Brand | String | La marca del producto. Obligatorio |
BusinessUnits | Subsection | Contiene el OperatorCode, el estado, precios, fechas de precios especiales y stock del producto |
OperatorCode | String | Código de operador para el producto, los disponibles son: FACL: Chile FAPE: Perú FACO: Colombia Siempre será 'FA' seguido del código de país |
Status | String | Estado del producto en ese operador. Es uno de los siguientes valores: 'active' (activo), 'inactive' (inactivo), 'deleted' (eliminado). Por defecto el valor es 'active' |
Price | Decimal | El precio del producto. No es realmente un valor de tipo Double, sino Decimal. Obligatorio |
SpecialPrice | Decimal | El precio del producto mientras está en oferta debe ser más bajo que el precio. Si se especifica SpecialPrice, se debe especificar SpecialFromDate o SpecialToDate; viceversa, si se especifica al menos uno de SpecialFromDate o SpecialToDate, SpecialPrice es obligatorio. |
SpecialFromDate | DateTime | Hora y fecha de comienzo de la oferta del del producto. Si se pasa, SpecialPrice se vuelve obligatorio. |
SpecialToDate | DateTime | Hora y fecha de finalización de la oferta del del producto. Si se pasa, SpecialPrice se vuelve obligatorio. |
TaxClass | String | La clase fiscal a la que pertenece el producto. Las clases de impuestos disponibles dependen de la instalación específica contra la que se ejecuta la llamada. Opcional |
ShipmentType | String | Indica si el producto se envía directamente al recibirlo ('crossdocking') o se envía directamente ('dropshipping'). Los tipos de envío permitidos dependen de lo que esté configurado para un vendedor específico. Opcional |
ProductId | Numberfield | Un código armonizado para el producto debe ser número de largo 1 a 18, como el Código de producto universal (UPC), el Número de artículo internacional (EAN), el Número de artículo comercial global (GTIN) o el Número de libro estándar internacional (ISBN). Se debe rellenar con números. Opcional |
Condition | String | Indica si el producto es nuevo o usado. Uno de "new" (nuevo), "used" (usado) o "refurbished" (reacondicionado). Opcional |
ProductData | Subsection | Contiene los atributos que poseen AttributeType distinto a "system" en la API GetCategoryAttribute y que no son parte de la BusinessUnit. Opcional |
Stock | Integer | Stock asociado a lo disponible, sin considerar productos reservados. Opcional |
VolumetricWeight | Number DECIMAL(10,2) | |
ProductGroup | String | El nombre del grupo |
Datos de la respuesta
Utilice la información de respuesta generada para recuperar más detalles del Feed a través de otra llamada a la API FeedStatus . Consulte los detalles de la respuesta a través de FeedList. Tenga en cuenta que mientras realiza la llamada ProductCreate, sólo hacemos una validación básica. Se realizará una validación completa mientras se procesa el feed, por lo que puede ser posible que al agregar 100 productos, sólo se creen 90 de ellos.
Éxito
<?xml version="1.0" encoding="UTF-8"?>
<SuccessResponse>
<Head>
<RequestId>cb106552-87f3-450b-aa8b-412246a24b34</RequestId>
<RequestAction>ProductCreate</RequestAction>
<ResponseType/>
<Timestamp>2016-06-22T04:40:14+0200</Timestamp>
</Head>
<Body/>
</SuccessResponse>
Errores
<?xml version="1.0" encoding="UTF-8"?>
<ErrorResponse>
<Head>
<RequestAction>ProductCreate</RequestAction>
<ErrorType>Platform</ErrorType>
<ErrorCode>1000</ErrorCode>
<ErrorMessage>Could not save product: An exact match of the document is being processed, cb106552-87f3-450b-aa8b-412246a24b34</ErrorMessage>
</Head>
<Body/>
</ErrorResponse>
Código de error | Mensaje |
---|---|
1000 | Could not save product: %s (No se pudo guardar el producto) |
1000 | Format Error Detected (Error de formato detectado) |
Marcado en la descripción
La descripción del producto puede ser texto sin formato así:
<Description>la descripción</Description>
También puede contener ciertas etiquetas HTML, incluidas ul, li y span. Si HTML está incrustado, debe escaparse como datos de caracteres, así:
<Description><![CDATA[<div>la descripción <b>negrita</b></div>]]></Description>
Crear múltiples variaciones
Todas las variaciones deben estar asociadas a un ParentSku, que no es más que el _SellerSku_del producto considerado como padre por el comercio al momento de crear una variación:
- Puedes especificar el ParentSku en la solicitud, y el producto generado será considerado una variación de este. Esto es válido tanto para productos padres ya existentes como para aquellos que aún no han sido creados, pero se incluyen en la misma solicitud junto con las variaciones.
- En caso de no proporcionar un ParentSku, se utilizará automáticamente el SellerSku de la primera variación como ParentSku.
Error en la carga de productos.
Es importante validar siempre la existencia de un producto padre antes de crear nuevas variables.
En el caso que el producto padre se encuentre en el mismo request que los hijos, ten en consideración que si la carga del producto padre falla, automáticamente generará un rechazo en la carga de los productos asignados como variables.
Solo variaciones en ropa y calzado
Actualmente solo se pueden generar variaciones de color y tallas para las categorizas de calzado y ropa, estamos trabajan próximamente tener variaciones en otras categorías.
A continuación, se encuentra un ejemplo de asociación a un ParentSku que aún no ha sido creado y que comparte request con los productos variantes:
- Primero se solicita la creación del producto SellerSku: SKU-TEST-999999
- Después se crea el producto SellerSku: SKU-TEST-88888888 y se asociada cómo ParentSku:SKU-TEST-999999
<?xml version="1.0" encoding="UTF-8"?>
<Request>
<Product>
<SellerSku>SKU-TEST-999999</SellerSku> <!-- creación del SellerSku que será padre -->
<Name>PRODUCT TEST - TEST - TEST</Name>
<PrimaryCategory>811</PrimaryCategory>
<Description>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.</Description>
<Brand>EPATE</Brand>
<ProductId>430450</ProductId>
<Variation>US 7</Variation>
<Color>Blanco</Color>
<ColorBasico>Blanco</ColorBasico>
<Talla>39</Talla>
<BusinessUnits>
<BusinessUnit>
<OperatorCode>facl</OperatorCode>
<Price>59990</Price>
<SpecialPrice>35990</SpecialPrice>
<SpecialFromDate>2023-05-26 00:00:00</SpecialFromDate>
<SpecialToDate>2023-10-31 23:59:59</SpecialToDate>
<Stock>36</Stock>
<Status>active</Status>
</BusinessUnit>
</BusinessUnits>
<ProductData>
<ConditionType>Nuevo</ConditionType>
<PackageHeight>10</PackageHeight>
<PackageWidth>10</PackageWidth>
<PackageLength>10</PackageLength>
<PackageWeight>1</PackageWeight>
<DisciplinaZapatillas>Tenis</DisciplinaZapatillas>
<Genero>Mujer</Genero>
</ProductData>
</Product>
<Product>
<SellerSku>SKU-TEST-88888888</SellerSku> <!-- creación del SellerSku que será variante -->
<ParentSku>SKU-TEST-999999</ParentSku> <!-- asignación del ParentSku, asociado al SellerSku, que se creo primero -->
<Name>PRODUCT TEST - TEST - TEST</Name>
<PrimaryCategory>811</PrimaryCategory>
<Description>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.</Description>
<Brand>EPATE</Brand>
<ProductId>888888</ProductId>
<Variation>US 7</Variation>
<Color>Blanco</Color>
<ColorBasico>Blanco</ColorBasico>
<Talla>39</Talla>
<BusinessUnits>
<BusinessUnit>
<OperatorCode>facl</OperatorCode>
<Price>59990</Price>
<SpecialPrice>35990</SpecialPrice>
<SpecialFromDate>2023-05-26 00:00:00</SpecialFromDate>
<SpecialToDate>2023-10-31 23:59:59</SpecialToDate>
<Stock>36</Stock>
<Status>active</Status>
</BusinessUnit>
</BusinessUnits>
<ProductData>
<ConditionType>Nuevo</ConditionType>
<PackageHeight>10</PackageHeight>
<PackageWidth>10</PackageWidth>
<PackageLength>10</PackageLength>
<PackageWeight>1</PackageWeight>
<DisciplinaZapatillas>Tenis</DisciplinaZapatillas>
<Genero>Mujer</Genero>
</ProductData>
</Product>
</Request>