Importación de productos

URL del Webservice : https://sws.spartoo.es/mp/xml_import_products.php

Este webservice sirve para crear y actualizar los productos en el site de Spartoo.
Este servicio web se utiliza para crear y actualizar productos en el sitio web de Spartoo.
Por cada producto enviado, el servicio web enviará un código de error indicando si todo se realizó correctamente o no. Ciertos errores bloquean (fatal), otros no bloquean (warning).

Este servicio web sirve para crear productos y actualizar tu catálogo. El puede ser utilizado para enviar la totalidad del catálogo o solamente algunos productos.

Frecuencia de llamadas:
- Cuando este servicio web de utiliza para hacer una actualización completa del catálogo, te aconsejamos utilizarlo una vez cada seis horas heures.
- Cuando este servicio web se utiliza para hacer una actualización parcial (algunos productos), aceptamos una frecuencia máxima de una llamada cada diez minutos.

Este servicio web funciona en modo "Actualización" y no en modo "Eliminación". Es decir que los productos que no son enviados en el XML no serán eliminados.
Para retira un producto del sitio, hay que dejar el stock a cero.

Lista de parámetros

Los parámetros de este webservice deben pasarse obligatoriamente en POST

Parámetro Descripción
partenaire Debe de contener tu identificador único:
xml Cadena de caracteres XML que contiene la lista de productos que se deben crear o actualizar


Parámetros opcionales que pueden ser pasados en POST

Parámetros Descripción
force_description Ponerlo en 1 si se desea forzar la actualización de las descripciones productos: suprimir descripciones existentes, editar la descripción de un producto de stock nulo, etc.
force_overwrite Ponerlo en 1 si se desea hacer una purga puntual del catalogo: suprime todo lo existente y se guarda solo lo que se envia en esa llamada.


Formato del parámetro xml


Los campos de texto deben de estar protegidos por etiquetas CDATA si contienen carácteres especiales que harán el XML inválido.

Formato mono país

<root>
	<products>
		<product>
			<reference_partenaire>string</reference_partenaire>
			<product_name>string</product_name>
			<manufacturers_name>string</manufacturers_name>
			<product_sex>char</product_sex>
			<product_price>float</product_price>
			<product_quantity>int</product_quantity>
			<color_id>int</color_id>
			<product_style>int</product_style>
			<product_description>string</product_description>
			<product_color>string</product_color>
			<heel_height>float</heel_height>
			<country_origin>int</country_origin>
			<code_hs>int</code_hs>
			<size_list>
				<size>
					<size_name>string</size_name>
					<size_quantity>int</size_quantity>
					<size_reference>string</size_reference>
					<ean>string</ean>
					<code_hs>int</code_hs>
					<product_price>float</product_price>
					<discount>
						<startdate>timestamp</startdate>
						<stopdate>timestamp</stopdate>
						<price_discount>float</price_discount>
						<rate>int</rate>
						<sales/>
					</discount>
				</size>
				<!-- ... Varias etiquetas "size" posibles ... -->
			</size_list>
			<product_composition>int</product_composition>
			<voering_composition>int</voering_composition>
			<first_composition>int</first_composition>
			<zool_composition>int</zool_composition>
			<photos>
				<url1>url</url1>
				<url2>url</url2>
				<url3>url</url3>
				<url4>url</url4>
				<url5>url</url5>
				<url6>url</url6>
				<url7>url</url7>
				<url8>url</url8>
			</photos>
			<discount>
				<startdate>timestamp</startdate>
				<stopdate>timestamp</stopdate>
				<price_discount>float</price_discount>
				<rate>int</rate>
				<sales>0/1</sales>
			</discount>
			<extra_infos>
				<info>
					<id>int</id>
					<value>float</value>
				</info>
				<!-- ... Varias etiquetas "info" posibles ... -->
			</extra_infos>
			<selections>
				<selection>int</selection>
				<!-- ... Varias etiquetas "selection" posibles ... -->
			</selections>
		</product>
		<!-- ... Varias etiquetas "product" posibles ... -->
	</products>
</root>


Formato multi país

<root>
	<products>
		<product>
			<reference_partenaire>string</reference_partenaire>
			<manufacturers_name>string</manufacturers_name>
			<product_sex>char</product_sex>
			<product_quantity>int</product_quantity>
			<color_id>int</color_id>
			<product_style>int</product_style>
			<heel_height>float</heel_height>
			<country_origin>int</country_origin>
			<code_hs>int</code_hs>
			<languages>
				<language>
					<code>string</code>
					<product_name>string</product_name>
					<product_description>string</product_description>
					<product_color>string</product_color>
					<product_price>float</product_price>
					<discount>
						<startdate>timestamp</startdate>
						<stopdate>timestamp</stopdate>
						<price_discount>float</price_discount>
						<rate>int</rate>
						<sales />
					</discount>
				</language>
				<!-- ... Varias etiquetas "language" posibles ... -->
			</languages>
			<size_list>
				<size>
					<size_name>string</size_name>
					<size_quantity>int</size_quantity>
					<size_reference>string</size_reference>
					<ean>string</ean>
					<code_hs>int</code_hs>
					<languages>
						<language>
							<code>string</code>
							<product_price>float</product_price>
							<discount>
								<startdate>timestamp</startdate>
								<stopdate>timestamp</stopdate>
								<price_discount>float</price_discount>
								<rate>int</rate>
								<sales/>
							</discount>
						</language>
						<!-- ... Varias etiquetas "language" posibles ... -->
					</languages>
				</size>
				<!-- ... Varias etiquetas "size" posibles ... -->
			</size_list>
			<product_composition>int</product_composition>
			<voering_composition>int</voering_composition>
			<first_composition>int</first_composition>
			<zool_composition>int</zool_composition>
			<photos>
				<url1>url</url1>
				<url2>url</url2>
				<url3>url</url3>
				<url4>url</url4>
				<url5>url</url5>
				<url6>url</url6>
				<url7>url</url7>
				<url8>url</url8>
			</photos>
			<extra_infos>
				<info>
					<id>int</id>
					<value>float</value>
				</info>
				<!-- ... Varias etiquetas "info" posibles ... -->
			</extra_infos>
			 <selections>
				<selection>int</selection>
				<!-- ... Varias etiquetas "selection" posibles ... -->
			</selections>
		</product>
		<!-- ... Varias etiquetas "product" posibles ... -->
	</products>
</root>


Descripción de los campos de XML de entrada


Referencia de la talla de un producto.
Este campo sirve únicamente para ser reenviado en los exports de los pedidos o devoluciones. Una buena práctica es generar esta referencia concatenando los campos reference_partenaire y size_name uniéndolos con un guión bajo "_".
Etiqueta Descripción Obligatorio
reference_partenaire Identificador producto partner
Es el sku que identifica cada modelo y color de una marca. El identificador del producto solo puede contener caracteres alfanuméricos y los caracteres - (guión medio) _ (guión bajo) y . (punto).
product_name Nombre comercial del modelo
No debe contener otra información como la categoría, el color o la marca del producto. Tampoco debe contenter caracteres o etiquetas html.
No
manufacturers_name Nombre de la marca del producto.
code_idu Code IDU del producto (ver la ley AGEC) No
product_sex Género del producto.
> Ver los valores posibles
product_price Precio del producto en euros (no obligatorio para el precio de las tallas). / No
color_id Código del color, destinado a los filtros de los menús.
Si no se precisa, el producto no aparecerá si un cliente filtra por color.
> Ver valores posibles
No
product_style Categoría del producto
> Ver los valores posibles
product_description Descriptivo del producto. Aparece en la ficha del producto. No se admite html o javascript. No
product_color Campo de texto libre para indicar el nombre del color. Aparece en la ficha del producto. No
product_quantity Stock total de un producto
Se ignora cuando se detectan uno o varios campos size_quantity para el producto.
Para los productos de talla única se requiere indicar el product_quantity si el size_quantity no está registrado.
No
size Lista de tallas y de su stock.
Obligatorio para los productos con talla. Opcional para los productos sin tallas ( Bolsos / Accesorios ).
/ No
size_name Talla del producto.
> Ver los valores posibles
size_quantity Para cada talla, se debe precisa el stock.
Pour desactivar un producto, el stock debe enviarse a 0.
Cuando todas las tallas de un producto llevan stock 0, el producto se desactiva y no aparece en Spartoo.
size_reference No
ean EAN del producto al nivel de la talla. No
photos Lista de fotos y sus url.
Es obligatorio tener al menos una foto.
Recomendamos tener 3 fotos. Podemos integrar un máximo de 8 fotos.
La foto será descargada una sola vez, luego será guardada en nuestro servidor, tras haberla redimensionado para adaptarla al standard Spartoo.
Las fotos deben tener formato jpg, ser cuadradas y tener al menos 350x350 píxeles. Si las fotos son superiores o iguales a 800x800 píxeles, el cliente podrá hacer zoom.
url1, url2 ... url8 Enlaces de las fotos.
Hay que proporcionar un enlace para cada foto. El nombre del archivo debe contener solo caracteres alfanuméricos y caracteres como "-" (guión), "_" (guión bajo) y "." (punto). Los espacios, así como las letras acentuadas (por ejemplo: é, à y ñ) no son autorizadas.
heel_height Altura del tacón en centímetros (cm). Únicamente para los zapatos de mujer. Debe ser múltiplo de 0,5. No
product_composition Composición del corte del producto. Únicamente para los zapatos.
> Ver los valores posibles
No
voering_composition Composición del forro del productos. Únicamente para los zapatos
> Ver los valores posibles
No
first_composition Composición de la plantilla del producto. Únicamente para los zapatos
> Ver los valores posibles
No
zool_composition Composición de la suela del producto. Únicamente para los zapatos
> Ver los valores posibles
No
discount Permite aplicar una promoción a un producto o una talla.
El campo rate del campo discount concierne a la reducción del precio en porcentaje con respecto al campo product_price.
El campo price_discount del campo discount concierne al precio final con descuento del producto. El porcentaje de descuento mostrado será calculado.
Si los dos campos están presentes, el campo price_discount es prioritario sobre el campo rate.
Si el descuento es inmediato, no es necesario precisar el campo startdate. Si la etiqueta sales se precisa, la promoción será una promoción de Rebajas. Si no, se tratará de una promoción clásica. Indicar este parámetro permite a los productos aparecer en la página de Rebajas durante el periodo de Rebajas.
No
extra_infos Permite especificar informaciones complementarias dependientes del tipo de producto.
Cada información está formada por un id ( > Ver los valores ) y de un valor en forma numérica.
No


Ejemplo de parámetro xml

<root>
	<products>
		<product>
			<reference_partenaire>98</reference_partenaire>
			<product_name><![CDATA[ALL STAR HI]]></product_name>
			<manufacturers_name><![CDATA[Converse]]></manufacturers_name>
			<product_sex>M</product_sex>
			<product_price>64.99</product_price>
			<product_quantity>5</product_quantity>
			<color_id>8</color_id>
			<product_style>10010</product_style>
			<product_description><![CDATA[Míticas entre las míticas, la Chuck Taylor All Star de Converse son imprescindibles. 
¡Aquí te presentamos la versión bota con un estampado clásico! 
]]></product_description>
			<product_color><![CDATA[Rojo]]></product_color>
			<country_origin>73</country_origin>
			<code_hs>64059090</code_hs>
			<size_list>
			 <size>
				<size_name>38</size_name>
				<size_quantity>4</size_quantity>
				<size_reference>98_38</size_reference>
				<ean>123456789011></ean>
			 </size>
			 <size>
				<size_name>39</size_name>
				<size_quantity>1</size_quantity>
				<size_reference>98_39</size_reference>
				<ean>123456789012></ean>
			 </size>
			</size_list>
			<product_composition>4</product_composition>
			<photos>
				<url1>https://imgext.spartoo.com/photos/98/98/98_350_A.jpg</url1>
				<url2>https://imgext.spartoo.com/photos/98/98/98_350_B.jpg</url2>
				<url3>https://imgext.spartoo.com/photos/98/98/98_350_C.jpg</url3>
				<url4>https://imgext.spartoo.com/photos/98/98/98_350_D.jpg</url4>
				<url5>https://imgext.spartoo.com/photos/98/98/98_350_E.jpg</url5>
				<url6>https://imgext.spartoo.com/photos/98/98/98_350_F.jpg</url6>
				<url7>https://imgext.spartoo.com/photos/98/98/98_350_G.jpg</url7>
				<url8>https://imgext.spartoo.com/photos/98/98/98_350_H.jpg</url8>
			</photos>
			<discount>
				<startdate>1199170800</startdate>
				<stopdate>1204354800</stopdate>
				<rate>20</rate>
			</discount>
		</product>
	</products>
</root>

Formato XML devuelto


<root>
	<products>
		<product>
			<reference_partenaire>string</reference_partenaire>
			<status>string</status>
			<action>string</action>
			<errors>
				<error>
					<id>int</id>
					<description>string</description>
					<level>string</level>
				</error>
				<!-- ... Varias etiquetas "error" posibles ... -->
			</errors>
		</product>
		<!-- ... Varias etiquetas "product" posibles ... -->
	</products>
	<errors>int</errors>
</root>


Lista de los códigos de error de la webservice


Código Descripción
1 Sin error de parámetros
-1 El parámetro partenaire no ha pasado a parámetro o está vacio
-2 El parámetro partenaire no existe
-11 El parámetro xml no ha pasado a parámetro o está vacio
-15 Error de síntesis XML, verifica tu fichero XML
-428 Tu cuenta ha sido desactivada. Ya no puede realizar llamadas a servicios web
-429 Has realizado demasiadas llamadas a este servicio web durante esta hora

Descripción de campos de la respuesta XML


Balise Descripción
reference_partenaire Identificador producto del partner
status OK si el producto es insertado en la base de datos
KO si el producto no ha podido ser insertado
action Listado de acciones posibles :
  • created : El producto ha sido creado.
  • not created :El producto no ha sido creado. Nota : Un producto puede tener un status 'OK' pero no haber sido creado debido a algunos 'Warning'.
  • updated : El producto ha sido actualizado.
  • not updated : El producto no ha sido actualizado. Nota : Un producto puede tener un status 'OK' pero no haber sido creado debido a algunos 'Warning'.
errors Lista de errores de procesamiento:
  • id : código de error del producto
  • level : nivel del error
    • Warning : no impide la integración del producto
    • Fatal : bloquea la integración del producto
  • description: descripción del texto del error


Lista de códigos de error de producto


Código Nivel Descripción
1 Fatal La referencia asociada no es suficientemente larga
2 Fatal La referencia asociada no es válida , sólo puede contener caracteres alfanuméricos
3 Warning El nombre del producto no está especificado
4 Fatal La marca no está especificada
5 Fatal El género XXX no es válido, los únicos valores posibles son: H , F , H, K , G , B
6 Fatal El precio debe ser un número
7 Fatal El precio debe ser positivo
8 Warning El precio nos parece demasiado elevado ( > 1.000 €)
81 Fatal El precio no puede ser superior a 180 €
9 Fatal La cantidad debe ser un número entero
10 Fatal La cantidad debe ser positiva
11 Warning El color xxx no existe : el producto no estará disponible a través de los filtros de color
13 Fatal La categoría xxx no existe
14 Warning La descripción del producto está vacía
15 Warning El color a mostrar está vacío
16 Warning No hay lista de tallas : utilizar la talla única
17 Warning La composición está especificada pero no es válida
18 Fatal La fotografía 1 es obligatoria
19 Warning La tasa de descuento de la promoción debe ser entre 0 y 100 , la promoción no se tendrá en cuenta
20 Warning La talla xxx no existe
201 Fatal Se requiere el código EAN
202 Fatal El código EAN xxx de la referencia xxx en la talla xxx ya está utilizado.
205 Fatal Referencia Partner demasiado larga
23 Warning La foto xxx es más pequeña que 350x350 : se verá de mala calidad en el sitio
24 Warning La foto xxx es más pequeña que 350x350 : no se mostrará en el sitio
25 Fatal Talla xxx : Imposible regular el stock
26 Fatal No hay stock : el producto no será creado
27 Fatal No se puede acceder a la foto 1 ( url xxx)
28 Warning No se puede acceder a la foto xxx ( url xxx )
30 Fatal La cantidad xxx es muy elevada (Quantité max : xxx)
33 Fatal Un producto de genero xxx no puede pertenecer a la categoría xxx
34 Fatal La palabra xxx ha sido blacklistada y no debería aparecer.
35 Fatal Nombre del producto es demasiado largo, solo debe contener el nombre del modelo. Error(es) en el/los país/es xxx
341 Fatal La palabra xxx ha sido blacklistada y no debería aparecer en la descripción del producto.
36 Fatal No se puede importar el producto: el producto tiene una duplicación del par tamaño / color.
37 Fatal Este producto no contiene información alguna para el sitio.
38 Fatal la talla xxx solo se puede configurar una vez como referencia xxx
39 Warning La referencia del partner está presente varias veces en el flujo, los duplicados han sido ignorados
451 Fatal No hay precio para la talla xxx del país xxx. (necesario para un descuento)
452 Warning Fecha de finalización del descuento expirada para la talla xxx del país xxx.
453 Fatal "ratio" (xxx) inválido para la talla xxx del país xxx.
454 Fatal "ratio" (xxx) > 85% para la talla xxx del país xxx.
455 Warning La talla xxx tiene un precio en un país (xxx) no definido por el producto.
456 Warning La talla xxx tiene un precio en xxx idéntico al precio global en ese país


Ejemplo de devolución XML


Ejemplo de respuesta para una llamada servicio web KO :

<root>
	<products></products>
	<errors>-1</errors>
</root>

Ejemplo de respuesta para una llamada servicio web OK :

<root>
	<products>
		<product>
		<reference_partenaire>EEAJBCC</reference_partenaire>
		<status>KO</status>
		<action>not created</action>
		<errors>
			<error>
				<id>14</id>
				<description>La descripción del producto está vacía</description>
				<level>warning</level>
			</error>
			<error>
				<id>4</id>
				<description>La marca no está especificada</description>
				<level>fatal</level>
			</error>
		</errors>
		</product>
		<product>
			<reference_partenaire>KJHGFDS</reference_partenaire>
			<status>OK</status>
			<action>created</action>
		</product>
	</products>
	<errors>1</errors>
</root>

Fichero XSD

Fichero XSD Multi países