Atualização dos produtos

URL do Webservice : https://sws.spartoo.pt/mp/xml_maj_stock_batch.php

Esse webservice é usado para atualizar o stock dos produtos no site da Spartoo.
Para cada produto enviado, o webservice irá enviar um código indicando se tudo decorreu sem incidência ou não

Esse webservice é usado para atualizar o stock dos produtos. Pode ser usado para enviar o catálogo inteiro ou apenas alguns produtos.

Este webservice funciona no modo "Atualizar" e não em modo "Esmagar". Ou seja, os produtos que não são enviados para o XML não serão excluídos.
Para remover um produto do site, deve colocar o stock associado a 0.

Lista dos parâmetros

Os parâmetros deste webservice devem ser passados em POST

Parâmetros Descritivo
Parceiro Deve conter o seu ID único:
XML Cadeia de caracteres XML que contém a lista de elementos a serem atualizados


Formato do parâmetro xml


Os campos de texto devem estar protegidos por balizas CDATA caso contenham caracteres especiais que possam tornar o XML inválido.

<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>
						<!-- ... Várias balizas "language" possíveis ... -->
					</languages>
					<!-- ... Várias balizas "languages" possíveis ... -->
				</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>


Descrição dos campos XML de entrada


Tag Descrição Obrigatória
reference_partenaire Identificador do produto parceiro. É o sku que identifica o produto de uma marca numa cor específica
O identificador do produto pode conter apenas caracteres alfanuméricos bem como os caracteres - (ífen) _ (underscore) e . (ponto).
Sim
product_quantity Stock total de um produto
Ignorar se um ou mais tags size_quantity forem detetados para o produto.
Para produtos em tamanho único, deve colocar obrigatoriamente um tag product_quantity se o tag size_quantity não estiver indicado.
Não
size Lista dos tamanhos e respetivo stock.
Opcional para produtos sem tamanhos (Bolsas / Acessórios). Obrigatório caso contrário.
Sim / Não
size_quantity Para cada tamanho, o stock deve ser especificado.
Para desativar um produto, deve colocar o stock a 0.
Quando o stock está a 0, o produto é desativado e não aparece mais na Spartoo.
Sim
size_reference Referência do produto ao tamanho. Sim
preço_do_produto Preço por tamanho Não
desconto Permite aplicar uma promoção ao produto.
O campo taxa do campo desconto diz respeito à redução percentual do preço em relação ao campo preço_produto.
O campo price_discount do campo desconto refere-se ao preço com desconto do produto. Será calculada a percentagem de desconto apresentada.
Se ambos os campos estiverem presentes, o campo price_discount terá precedência sobre o campo taxa.
Se o desconto for imediato, não é necessário especificar o campo startdate. Se o campo stopdate não for especificado, a promoção terá a duração padrão de um mês. Se for especificada a etiqueta sales, a promoção será uma promoção de vendas. Caso contrário, será uma promoção clássica. A especificação deste parâmetro permite que os produtos estejam presentes na página de vendas durante os períodos de vendas.
Não


Exemplo de parâmetro 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>
						<!-- ... Várias balizas "language" possíveis ... -->
					</languages>
					<!-- ... Várias balizas "languages" possíveis ... -->
				</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>

Formato do XML devolvido


<catalogue>
	<products>
		<product>
			<reference_partenaire>string</reference_partenaire>
			<size_list>
				<size>
					<size_reference>string</size_reference>
					<errors>int</errors>
				</size>
			</size_list>
		</product>
		<!-- ... Várias balizas "product" possíveis ... -->
	</products>
</catalogue>


Lista dos códigos de erros do webservice


Código Descrição
1 Sem erros nos parâmetros
-1 O parâmetro partenaire não passou no parâmetro ou está vazio
-2 O parâmetro do parceiro não existe
-11 O parâmetro xml não passou no parâmetro ou está vazio
-13 O parâmetro products_size_reference não passou no parâmetro ou está vazio
-15 Erro de sintaxe XML, verifique o seu ficheiro XML
-18 o stock é o mesmo de base e não foi atualizado
-20 Impossível atualizar o stock. O tamanho não é válido para este produto, o stock do produto e deste tamanho é 0.
-31 Esta size_reference não existe
-428 A sua conta foi desativada. Não pode mais efetuar chamadas ao webservice
-429 Efetuou demasiado chamadas para o Webservice nesta hora corrida



Exemplos de devolução XML


Exemplo de resposta a uma chamada web serviço KO :

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

Exemplo de resposta a uma chamada web serviço 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>