Importação dos produtos

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

Este webservice serve para criar e atualizar os produtos no site da Spartoo.
Para cada produto, o webservice envia um código de erro indicando se correu tudo bem ou não. Alguns erros podem bloquear o produto (fatal), outros não (warning).

Este webservice funciona em modo "Atualização" e não em modo "Supressão". Isto significa que os produtos que não são enviados no ficheiro XML não serão suprimidos.
Para retirar um produto do site, é preciso colocar o stock a 0.

Lista dos parâmetros

Os parâmetros deste webservice devem passar obrigatoriamente em POST

Parâmetro Descrição
partenaire Deve conter a sua identificação única:
xml Sequência de caracteres XML contendo a lista dos elementos a serem criados ou atualizados


Parametros opcionais que podem ser passados em POST

Parâmetro Descrição
force_overwrite Colocar 1 se desejar corrigir os erros de integração relacionados a uma queda significativa dos preços


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.

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>
				<!-- ... Várias balizas "size" possíveis ... -->
			</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>
				<!-- ... Várias balizas "info" possíveis ... -->
			</extra_infos>
			<selections>
				<selection>int</selection>
				<!-- ... Várias balizas "selection" possíveis ... -->
			</selections>
		</product>
		<!-- ... Várias balizas "product" possíveis ... -->
	</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>
				<!-- ... Várias balizas "language" possíveis ... -->
			</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>
						<!-- ... Várias balizas "language" possíveis ... -->
					</languages>
				</size>
				<!-- ... Várias balizas "size" possíveis ... -->
			</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>
				<!-- ... Várias balizas "info" possíveis ... -->
			</extra_infos>
			 <selections>
				<selection>int</selection>
				<!-- ... Várias balizas "selection" possíveis ... -->
			</selections>
		</product>
		<!-- ... Várias balizas "product" possíveis ... -->
	</products>
</root>


Descrição dos campos XML de entrada


Obrigatório para o serviço logístico
Baliza Descrição Obrigatória
reference_partenaire Identificação do produto parceiro
A identificação do produto só pode conter caracteres alfanuméricos e os caracteres - (hífen) _ (underscore) e . (ponto).
Sim
product_name Nome do modelo
Não deve conter a categoria, a cor ou a marca do produto
Não
manufacturers_name Nome da marca do produto Sim
product_sex Género do produto
> Ver os valores possíveis
Sim
product_price Preço do produto em euros (não obrigatório para preços de tamanho) Sim Não
color_id Cor destinada aos filtros dos menus
Se não for indicada, o produto não aparecerá se o cliente utilizar o filtro por cor
> Ver os valores possíveis
Não
product_style Categoria
> Ver os valores possíveis
Sim
product_description Descrição do produto. Aparece na página do produto. Não
product_color Campo de texto livre para a cor. Aparece na página do produto. Não
product_quantity Stock total de um produto
Ignorado se for detetada uma ou mais tags size_quantity para o produto.
Para produtos de tamanho único, será necessária uma etiqueta product_quantity se a etiqueta size_quantity não for especificada.
Não
size Lista dos tamanhos e respetivo stock.
Facultativo para os produtos sem tamanho ( Bolsas / Acessórios). Caso contrário é Obrigatório.
Oui / Non
size_name Nome do tamanho
> Ver os valores possíveis
Sim
size_quantity Para cada tamanho deve ser especificado o stock.
Para desativar um produto, deve definir o stock para 0.
Quando o stock chega a 0, o produto é desativado e deixa de aparecer em Spartoo.
Sim
size_reference Referência do produto por tamanho.
Este campo serve apenas para ser enviado nas exportações de encomendas ou devoluções. Uma boa solução será de gerar esta referência ligando os campos reference_partenaire e size_name através de um underscore "_".
Não
ean EAN do produto por tamanho Não / Sim
fotos Lista das fotos e respetivos URL.
É obrigatória pelo menos uma foto.
Recomendamos ter pelo menos 3 fotos. Podemos integrar no máximo 8 fotos.
A foto será baixada apenas uma vez, será em seguida armazenada nos nossos servidores depois de redimensionada para as dimensões Spartoo
As fotos devem estar no formato jpg, quadradas e com pelo menos 350x350 pixeis. Se elas forem superiores ou iguais a 800x800 pixeis, haverá um possível zoom no site.
Sim
url1, url2 ... url8 Links para as fotos
Deve fornecer um link para cada foto. O nome do arquivo deve conter apenas caracteres alfanuméricos e caracteres "-" (hífens), "_" (underscore) e "." (pontos). Espaços, bem como letras acentuadas (por ex. é, à e ã) não são autorizados.
Sim
country_origin País de origem do produto
> Ver os valores possíveis
heel_height Altura do tacão em centímetro (cm). Unicamente para os calçados femininos. Deve ser um múltiplo de 0,5. No
product_composition Composição do cano do produto. Apenas para o calçado.
> Ver os valores possíveis
Não
voering_composition Composição do forro do produto. Apenas para o calçado.
> Ver os valores possíveis
Não
first_composition Composição da palmilha do produto. Apenas para o calçado.
> Ver os valores possíveis
Não
zool_composition Composição da sola do produto. Apenas para o calçado.
> Ver os valores possíveis
Não
discount Permite aplicar uma promoção no produto ou no tamanho.
O campo ratedo campo discountdiz respeito à redução do preço em percentagem em relação ao campo product_price.
O campo price_discount do campo discount diz respeito à redução em preço fixo. A percentagem de redução apresentada será calculada.
Se os dois campos estiverem presentes, o campo price_discount é prioritário em relação ao campo rate.
Se o desconto é imediato, não será necessário indicar o campo startdate. Se a baliza sales for indicada, a promoção será uma promoção de saldos. Caso contrário, será uma promoção clássica. Indicar este parâmetro permite que os produtos estejam presentes na página de saldos durante o período de saldos.
Não
extra_infos Permite especificar informações complementares dependentes do tipo de produto.
Cada informação tem um ID ( Ver os valores ) e de um valor no formato numérico.
Não
seleções Permite especificar os contextos de utilização do produto através de uma lista de ID.
O conjunto dos contextos está aqui.
Não


Exemplo 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ítica, a Chuck Taylor ALL STAR da Converse é incontornável. 
Aqui em versão de cano alto em lona e estampado uniforme clássico, esta sapatilha é intemporal e nunca está fora de moda! 
]]></product_description>
			<product_color><![CDATA[Vermelho]]></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 do XML devolvido


<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>
				<!-- ... Várias balizas "error" possíveis ... -->
			</errors>
		</product>
		<!-- ... Várias balizas "product" possíveis ... -->
	</products>
	<errors>int</errors>
</root>


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
-15 Erro de sintaxe XML, verifique o seu ficheiro XML
-428 A sua conta foi desativada. Não pode mais efetuar chamadas ao webservice
-429 Efetuou demasiado chamadas para o Webservice nesta hora corrida

Descrição dos campos da resposta XML


Baliza Descrição
reference_partenaire Identificação do produto do parceiro
status OK se o produto foi inserido na base de dados
KO se o produto não foi inserido
action Lista das ações:
  • created: o produto foi criado.
  • not created: o produto não foi criado. Nota: um produto pode ter um estatuto 'OK' mas não ter sido criado devido a certos erros 'Warning'.
  • updated: o produto foi atualizado.
  • not updated: o produto não foi atualizado. Nota: um produto pode ter um estatuto 'OK' mas não ter sido atualizado devido a certos erros 'Warning'.
errors Lista de erros:
  • id : código de erro do produto
  • level : nível do erro
    • Warning : não impede a integração do produto
    • Fatal : bloqueia a integração do produto
  • Descrição: descrição textual do erro


Lista dos códigos de erros dos produtos


Code Nível Descrição
1 Fatal A referência do parceiro é demasiado curta
2 Fatal A referência do parceiro não é válida. A referência só pode ter caracteres alfanuméricos
3 Warning O nome do produto não foi especificado
4 Fatal A marca não foi especificada
5 Fatal O género não é válido. Os únicos valores possíveis são: H, F, M, K, G, B
6 Fatal O preço deve ser um número
7 Fatal O preço deve ser positivo
8 Warning O preço é demasiado elevado ( > 1000€ )
81 Fatal O preço não poderá ser superior a 180€
9 Fatal A quantidade deve ser um número inteiro
10 Fatal A quantidade deve ser positiva
11 Warning A cor xxx não existe: o produto não estará disponível através dos filtros de cor
13 Fatal A categoria xxx não existe
14 Warning A descrição do produto está vazia
15 Warning A descrição da cor está vazia
16 Warning Não há lista de tamanhos: utilização do tamanho único
17 Warning A composição foi especificada, mas não é válida
18 Fatal A imagem 1 é obrigatória
19 Warning Esta promoção não é válida. A taxa de desconto da promoção deve ser entre 0 e 100.
20 Warning O tamanho xxx não existe
201 Fatal O código EAN é obrigatório
202 Fatal O código EAN xxx na referência xxx no tamanho xxx já está a ser utilizado.
205 Fatal Referência parceiro demasiado comprida
23 Warning A imagem xxx é inferior a 350x350: esta imagem terá uma má qualidade no site
24 Warning A imagem xxx é inferior a 350x350: esta imagem não será apresentada no site
25 Fatal Tamanho xxx: Impossível regular o stock
26 Fatal Não há stock: o produto não será criado
27 Fatal Impossível aceder à imagem 1 ( url xxx )
28 Warning Impossível aceder à imagem xxx ( url xxx )
30 Fatal A quantidade do tamanho xxx é demasiada elevada (Quantité max : xxx)
33 Fatal Um produto de género xxx não pode pertencer a categoria xxx
34 Fatal A palavra xxx está bloqueada e não deve aparecer no nome do produto.
35 Fatal Nome do produto muito comprido, deve conter apenas o nome do modelo. Erro(s) no(s) país(es): xxx
341 Fatal A palavra xxx está bloqueada e não deve aparecer na descrição do produto.
36 Fatal Impossível importar o produto: o produto possui uma duplicação do par tamanho/cor.
37 Fatal Não forneceu informações de idioma para este produto
38 Fatal O tamanho xxx só pode ser definido uma vez para a referência xxx
39 Warning A referência parceira está presente várias vezes, as duplicações foram ignoradas
451 Fatal Não há preço para o tamanho xxx no país xxx. (necessário para um desconto)
452 Warning Data final do desconto excedida para o tamanho xxx do país xxx.
453 Fatal "taxa" (xxx) invalido para o tamanho xxx do país xxx.
454 Fatal "taxa" (xxx) > 85% para o tamanho xxx do país xxx.
455 Warning O tamanho xxx tem um preço num país (xxx) não definido para o produto.
456 Warning O tamanho xxx tem um preço de xxx idêntico ao preço global neste país.


Exemplos de devolução XML


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

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

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

<root>
	<products>
		<product>
		<reference_partenaire>EEAJBCC</reference_partenaire>
		<status>KO</status>
		<action>not created</action>
		<errors>
			<error>
				<id>14</id>
				<description>A descrição do produto está vazia</description>
				<level>warning</level>
			</error>
			<error>
				<id>4</id>
				<description>A marca não foi 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>

Ficheiros XSD

Ficheiro XSD Multi países