Mise a jour des produits

URL du Webservice : https://sws.spartoo.com/mp/xml_maj_stock_batch.php

Ce webservice sert à mettre à jour le stock des produits sur le site de Spartoo.
Pour chaque produit envoyé, le webservice va renvoyer un code indiquant si tout s'est bien passé ou non.

Ce webservice sert a mettre a jour le stock des produits. Il peut s'utiliser pour envoyer la totalité du catalogue ou seulement quelques produits.

Ce webservice fonctionne en mode "Mise à jour" et non en mode "Ecrasement". C'est à dire que les produits qui ne sont pas envoyés dans le XML ne seront pas supprimés.
Pour retirer un produit du site, il faut mettre son stock à 0.

Liste des paramètres

Les paramètres de ce webservice doivent être obligatoirement passés en POST

Paramètre Description
partenaire Doit contenir votre identifiant unique :
xml Chaîne de caractère XML contenant la liste des éléments à mettre à jour


Format du paramètre xml


Les champs texte doivent être protégés par des balises CDATA s'ils contiennent des caractères spéciaux qui rendrait le XML invalide.

<catalogue>
	<products>
		<product>
			<reference_partenaire>string</reference_partenaire>
			<size_list>
				<size>
					<size_reference>string</size_reference>
					<size_quantity>int</size_quantity>
					<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>
						<!-- ... Plusieurs balises "language" possibles ... -->
					</languages>
					<!-- ... Plusieurs balises "languages" possibles ... -->
				</size>
				<size>
					<size_reference>string</size_reference>
					<size_quantity>int</size_quantity>
				</size>
			</size_list>
		</product>
		<product>
			<reference_partenaire>string</reference_partenaire>
			<size_list>
				<size>
					<size_reference>string</size_reference>
					<size_quantity>int</size_quantity>
				</size>
				<size>
					<size_reference>string</size_reference>
					<size_quantity>int</size_quantity>
				</size>
			</size_list>
		</product>
	</products>
</catalogue>


Description des champs du XML d'entrée


Balise Description Obligatoire
reference_partenaire Identifiant produit du marchand. C'est le sku qu'identifie un produit d’une marque dans une couleur précise
L'identifiant du produit ne peut contenir que des caractères alphanumérique ainsi que les caractères - (tiret) _ (tiret bas) et . (point).
Oui
product_quantity Stock total d'un produit
Ignoré si un ou plusieurs balises size_quantity sont détectés pour le produit.
Pour les produits de taille unique il faut obligatoirement une balise product_quantity si la balise size_quantity n'est pas renseigné.
Non
size Liste des tailles et leur stock.
Facultatif pour les produits sans tailles ( Sacs / Accessoires ). Obligatoire Sinon.
Oui / Non
size_quantity Pour chaque taille, le stock doit être précisé.
Pour désactiver un produit, il faut mettre le stock à 0.
Quand le stock est à 0, le produit est désactivé et n'apparaît plus sur Spartoo.
Oui
size_reference Référence du produit à la taille. Oui
product_price Prix pour la taille Non
discount Permet d'appliquer une promotion sur le produit.
Le champ rate du champ discount concerne la réduction du prix en pourcentage par rapport au champ product_price.
Le champ price_discount du champ discount concerne le prix discounté du produit. Le pourcentage de réduction affiché sera calculé.
Si les deux champs sont présents, le champ price_discount est prioritaire sur le champ rate.
Si le discount est immédiat, il n'y a pas besoin de préciser le champ startdate. Si le champ stopdate n'est pas précisé, la promotion aura une durée par défaut d'un mois. Si la balise sales est précisée, la promotion sera une promotion de soldes. Sinon, ce sera une promotion classique. Indiquer ce paramètre permet aux produits d'être présent sur la page des soldes pendant les périodes de soldes.
Non


Exemple de paramètre xml

<catalogue>
	<products>
		<product>
			<reference_partenaire>98</reference_partenaire>
			<size_list>
				<size>
					<size_reference>98_38</size_reference>
					<size_quantity>5</size_quantity>
					<languages>
						<language>
							<code>FR</code>
							<product_price>100.00</product_price>
							<discount>
								<startdate>1199170800</startdate>
								<stopdate>1204354800</stopdate>
								<price_discount>90.00</price_discount>
								<rate>10</rate>
								<sales/>
							</discount>
						</language>
						<!-- ... Plusieurs balises "language" possibles ... -->
					</languages>
					<!-- ... Plusieurs balises "languages" possibles ... -->
				</size>
				<size>
					<size_reference>98_39</size_reference>
					<size_quantity>7</size_quantity>
				</size>
			</size_list>
		</product>
		<product>
			<reference_partenaire>158_tailor</reference_partenaire>
			<size_list>
				<size>
					<size_reference>158_37</size_reference>
					<size_quantity>2</size_quantity>
				</size>
				<size>
					<size_reference>158_36</size_reference>
					<size_quantity>0</size_quantity>
				</size>
			</size_list>
		</product>
	</products>
</catalogue>

Format du XML retourné


<catalogue>
	<products>
		<product>
			<reference_partenaire>string</reference_partenaire>
			<size_list>
				<size>
					<size_reference>string</size_reference>
					<errors>int</errors>
				</size>
			</size_list>
		</product>
		<!-- ... Plusieurs balises "product" possibles ... -->
	</products>
</catalogue>


Liste des codes d'erreurs du webservice


Code Description
1 Pas d'erreur de paramètres
-1 Le paramètre partenaire n’est pas passé en paramètre ou est vide
-2 Le paramètre partenaire n’existe pas
-11 Le paramètre xml n’est pas passé en paramètre ou est vide
-13 Le paramètre products_size_reference n’est pas passé en paramètre ou est vide
-15 Erreur de syntaxe XML, vérifiez votre fichier XML
-18 Le stock est le même que celui en base et n’a donc pas été mis à jour
-20 Impossible de mettre à jour le stock. La taille n'est plus valide pour ce produit, le stock pour ce produit et cette taille est à 0.
-31 Cette size_reference n’existe pas
-428 Votre compte a été désactivé. Vous ne pouvez plus faire d'appels aux webservices
-429 Vous avez fait trop d'appel a ce webservice pour cette heure glissante



Exemples de retour XML


Exemple de réponse à un appel web service KO :

<catalogue>
	<products></products>
	<errors>-1</errors>
</catalogue>

Exemple de réponse à un appel web service OK :

<catalogue>
	<products>
		<product>
			<reference_partenaire>EEAJBCC</reference_partenaire>
			<size_list>
				<size>
					<size_reference>EEAJBCC_38</size_reference>
					<errors>1</errors>
				</size>
			</size_list>
		</product>
		<product>
			<reference_partenaire>KJHGFDS</reference_partenaire>
			<size_list>
				<size>
					<size_reference></size_reference>
					<errors>-13</errors>
				</size>
			</size_list>
		</product>
	</products>
</catalogue>