Catálogo de Produtos
Saiba como sincronizar o catálogo de produtos de sua loja
Importando o catálogo de produtos (Feed XML)
Por aqui nós utilizamos o formato Product Feed Specification do Google para integração do catálogo via XML. Sua loja deve disponibilizar uma URL e informar a frequência de atualização do arquivo, para que possamos fazer o download do feed e sincronizar os dados do catálogo.
O arquivo XML deve listar o catálogo completo da loja. Produtos que não existiam na última sincronização serão adicionados à nossa base de dados; produtos existentes serão atualizados e produtos que tornaram-se ausentes no XML serão removidos.
- Note que os campos devem estar na **ordem definida neste documento.
- Deve estar em “encoding” UTF-8
Namespaces do Feed XML
Os elementos do XML definidos pelos namespace serão validados com os seguintes Schemas:
- g: -> http://feeds.dc.chaordicsystems.com/v1/files/schemas/gxml.xsd
- c: -> http://feeds.dc.chaordicsystems.com/v1/files/schemas/chaordic.xsd
- Sem namespace -> http://feeds.dc.chaordicsystems.com/v1/files/schemas/RSS20.xsd
XML
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <rss xmlns:g="http://base.google.com/ns/1.0" xmlns:c="http://www.chaordic.com.br/ns/catalog/1.0" version="2.0"> ....
Campos do cabeçalho
<title>
opcional
Nome da loja.
<link>
opcional
URL da loja.
<description>
opcional
Breve descrição sobre a loja.
<last_build_date>
opcional
Data da última atualização do conteúdo do feed.
Campos do produto <item>
<g:item_group_id>
opcional
Identificador único do produto. Quando uma lista de SKUs pertencer a um produto, este campo funciona como agrupador dos SKUS.
<g:id>
obrigatório
Identificador único do SKU.
<title>
obrigatório
Título comum para todas as variações do mesmo produto.
<description>
opcional
Descrição do produto.
Categorias*
obrigatório
Conjunto de categorias relacionadas ao produto. Geralmente o mesmo que aparece no “breadcrumb” da navegação. Escolha um dos dois seguintes elementos para informar:
g:product_type – Elemento simplificado
Utilize esse elemento caso sua loja não possua mais de uma categoria/sub com o mesmo nome. Declare-as na ordem em que aparecem na navegação (Cat > Sub > Subsub, …)
Ex: “Móveis > Sala > Cadeiras”
c:categories – Elemento alternativo
Utilize esse método caso sua loja possua mais de uma categoria/sub com o mesmo nome. Para cada categoria/sub da lista, declare um subelemento c:category com o nome da categoria dentro do elemento e os seguintes atributos:
id
obrigatório se parentId for informado.
String
Identificador da categoria/subcategoria. Pode ser um numeral ou o próprio nome da categoria/sub, desde que seja único no site.
Ex: “015”
parentId
obrigatório para subcategorias.
String
Identificador da categoria/sub a qual esta subcategoria pertence.
Ex: “014”
<link>
obrigatório
URL para página de detalhamento do produto ou SKU.
Imagens*
obrigatório
Conjunto de URLs para as imagens ou para a imagem principal do produto/SKU. Escolha um dos dois seguintes elementos para informar:
g:image_link – Elemento simplificado
Utilize esse elemento caso deseje informar apenas uma imagem para o produto/SKU.
c:images – Elemento alternativo
Utilize esse elemento caso deseje informar várias imagens em diferentes tamanhos. Para cada imagem da lista, declare um subelemento c:image com o nome a URL da imagem dentro do elemento e os seguintes atributos:
id
obrigatório
String
Identificador da imagem no formato largura x altura.
Ex: “250×250”
<g:sale_price>
obrigatório
Preço de venda atual, comumente apresentado no ecommerce como preço “por”. O valor deve ser apresentado juntamente com a moeda no formato ISO 4217.
Ex: 79.99 BRL
<g:price>
opcional
Preço anterior de listagem do produto, comumente apresentado no ecommerce como preço “de”. O valor deve ser apresentado juntamente com a moeda no formato ISO 4217.
Ex: 100.00 BRL
<g:installment>
opcional
Deve conter o número máximo de parcelas ou número de parcelas padrão exibido na página do produto.
<g:availability>
obrigatório
Quando o produto/SKU estiver com estoque disponível para vendas esta tag deve conter “in stock”, caso contrário, deve conter “out of stock”.
<g:brand>
opcional
Marca do produto.
<g:gender>
opcional
Quando necessário, pode-se informar o gênero a que se destina o produto.
<g:color>
opcional
Cor do SKU.
<g:size>
opcional
Tamanhos disponíveis do SKU. Pode ser um valor numérico (36, 37, 38 …) ou textual (P, M, G, …)
<g:shipping>
opcional
Valor do frete, caso seja comum para qualquer localidade do país. O valor deve ser apresentado juntamente com a moeda no formato ISO 4217.
<g:condition>
opcional
Informa se o produto é novo “new”, usado “used” ou “refurbished”.
<g:custom_label_N>
opcional
Informações eventuais sobre o produto. Máximo de 5 labels, N iniciando em 0 (custom_label_0).
Tags*
opcional
Conjunto de tags do produto/SKU.
c:tags
Utilize esse elemento caso deseje informar uma ou mais tags para um produto. Para cada tag, declare um subelemento c:tag com o valor dentro dele.
Ex: Promoção
Outros detalhes do produto*
opcional
Conjunto de detalhes adicionais para o produto que não estão definidos nos elementos anteriores.
c:details
Utilize esse elemento caso deseje informar um ou mais detalhes para um produto. Para cada detalhe, declare um subelemento c:detail com o valor dentro dele e os seguintes atributos:
id
obrigatório
String
Indetificador da propriedade que está sendo informada.
Ex: “numPaginas”
Especificações do SKU*
opcional
Conjunto de especificações adicionais para o SKU que não estão definidos nos elementos anteriores.
c:specs
Utilize esse elemento caso deseje informar uma ou mais especificação para um SKU. Para cada especificação, declare um subelemento c:spec com o valor dentro dele e os seguintes atributos:
id
obrigatório
String
Indetificador da propriedade que está sendo informada.
Ex: “flavor”, “color”, “size”, “media_type”
Exemplo de Feed no formato XML
Feed XML minímo
XML
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <rss xmlns:date="http://exslt.org/dates-and-times" xmlns:g="http://base.google.com/ns/1.0" version="2.0"> <channel> <title>YOUR store products</title> <link>http://www.yourstore.com.br/</link> <description>This is a valid sample feed with minimum required data</description> <last_build_date>2015-08-29T18:50:51</last_build_date> <item> <g:id>123</g:id> <title>Casaco Feminino Jeans Com Bolsos</title> <g:product_type>Feminino > Jaquetas</g:product_type> <!-- OR with CDATA <g:product_type><![CDATA[Feminino > Jaquetas]]></g:product_type> --> <link>http://www.yourstore.com.br/Jaquetas/Casaco-Feminino-Jeans-Com-Bolsos/p</link> <g:image_link>http://img-yourstore.com.br/images/AAA.jpg</g:image_link> <g:availability>in stock</g:availability> <g:price>159.99 BRL</g:price> <g:sale_price>159.99 BRL</g:sale_price> <g:installment> <g:months>5</g:months> <g:amount>31.99 BRL</g:amount> </g:installment> </item> </channel> </rss>
Feed XML recomendado
XML
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <rss xmlns:g="http://base.google.com/ns/1.0" version="2.0"> <channel> <title>YOUR store products</title> <link>http://www.yourstore.com.br/</link> <description>This is a Feed with recommended fields</description> <item> <g:id>AAA01</g:id> <!-- The sku id --> <title>Casaco Feminino Jeans Com Bolsos</title> <description>Casaco feminino elaborado em jeans com composição 100% algodão.</description> <g:google_product_category>Vestuário e acessórios > Roupas</g:google_product_category> <g:product_type>Feminino > Jaquetas</g:product_type> <link>http://www.yourstore.com.br/Jaquetas/Casaco-Feminino-Jeans-Com-Bolsos/p</link> <g:image_link>http://img-yourstore.com.br/images/AAA.jpg</g:image_link> <g:condition>new</g:condition> <g:availability>in stock</g:availability> <g:price>159.99 BRL</g:price> <g:sale_price>159.99 BRL</g:sale_price> <g:gtin>7909245516136</g:gtin> <g:brand>Brand</g:brand> <g:item_group_id>AAA</g:item_group_id> <!-- The product id --> <g:color>AZUL</g:color> <g:gender>FEMALE</g:gender> <g:age_group>adult</g:age_group> <g:size>P</g:size> <g:shipping> <g:country>BR</g:country> <g:service>Frete Grátis</g:service> <g:price>0.0 BRL</g:price> </g:shipping> <g:installment> <g:months>5</g:months> <g:amount>31.99 BRL</g:amount> </g:installment> </item> <item> <g:id>AAA02</g:id> <!-- The sku id --> <title>Casaco Feminino Jeans Com Bolsos</title> <description>Casaco feminino elaborado em jeans com composição 100% algodão.</description> <g:google_product_category>Vestuário e acessórios > Roupas</g:google_product_category> <g:product_type>Feminino > Jaquetas</g:product_type> <link>http://www.yourstore.com.br/Jaquetas/Casaco-Feminino-Jeans-Com-Bolsos/p</link> <g:image_link>http://img-yourstore.com.br/images/AAA.jpg</g:image_link> <g:condition>new</g:condition> <g:availability>in stock</g:availability> <g:price>159.99 BRL</g:price> <g:sale_price>159.99 BRL</g:sale_price> <g:gtin>7909245516136</g:gtin> <g:brand>Brand</g:brand> <g:item_group_id>AAA</g:item_group_id> <!-- The product id --> <g:color>AZUL</g:color> <g:gender>FEMALE</g:gender> <g:age_group>adult</g:age_group> <g:size>P</g:size> <g:shipping> <g:country>BR</g:country> <g:service>Frete Grátis</g:service> <g:price>0.0 BRL</g:price> </g:shipping> <g:installment> <g:months>5</g:months> <g:amount>31.99 BRL</g:amount> </g:installment> </item> </channel> </rss>
XML Feed com suporte para integração Chaordic JS (chaordic_meta.product)
XML
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <rss xmlns:g="http://base.google.com/ns/1.0" xmlns:c="http://www.chaordic.com.br/ns/catalog/1.0" version="2.0"> <channel> <title>YOUR store products</title> <link>http://www.yourstore.com.br/</link> <description>This is a feed with recommended + Chaordic Schema fields</description> <item> <g:item_group_id>AAA</g:item_group_id><!-- ID PARA AGRUPAR SKUS --> <g:id>AAA02</g:id> <title>Casaco Feminino Jeans Com Bolsos</title> <description>Casaco feminino elaborado em jeans com composição 100% algodão. Contempla gola tradicional, recortes frente, bolsos com fechamento por botão localizados na altura do busto e desgastes na coloração. Peça chave para os dias frios da estação!</description> <c:categories> <c:category>Outra categoria</c:category> <c:category c:id="1">Casa</c:category> <c:category c:id="2" c:parentId="1">Banheiro</c:category> <c:category c:id="3" c:parentId="2"><![CDATA[Utensílios]]></c:category> </c:categories> <link>http://www.yourstore.com.br/Jaquetas/Casaco-Feminino-Jeans-Com-Bolsos/p</link> <c:images> <c:image c:id="250x250">http://wwww.yourhost.com/images/bla.png</c:image> <c:image c:id="320x320">http://wwww.yourhost.com/images/bla_large.png</c:image> </c:images> <g:condition>new</g:condition> <g:availability>in stock</g:availability> <g:price>159.99 BRL</g:price> <g:sale_price>159.99 BRL</g:sale_price> <g:gtin>7909245516136</g:gtin> <g:brand>Brand</g:brand> <g:color>AZUL</g:color> <g:gender>FEMALE</g:gender> <g:age_group>adult</g:age_group> <g:size>P</g:size> <g:shipping> <g:country>BR</g:country> <g:service>Frete Grátis</g:service> <g:price>0.0 BRL</g:price> </g:shipping> <g:installment> <g:months>5</g:months> <g:amount>31.99 BRL</g:amount> </g:installment> <c:tags> <c:tag>lancamento</c:tag> <c:tag>Verão</c:tag> <c:tag>Mais vendido</c:tag> <c:tag>Super vendido</c:tag> </c:tags> <c:details> <c:detail c:id="numPages">123</c:detail> <c:detail c:id="volts">110v</c:detail> </c:details> <c:specs> <c:spec c:id="flavor">baunilha</c:spec> <c:spec c:id="voltage">220v</c:spec> <c:spec c:id="size">G</c:spec> <c:spec c:id="color">azul</c:spec> <c:spec c:id="mediaType">Ebook</c:spec> </c:specs> </item> <item> <g:item_group_id>AAA</g:item_group_id><!-- ID PARA AGRUPAR SKUS --> <g:id>AAA01</g:id> <title>Casaco Feminino Jeans Com Bolsos</title> <description>Casaco feminino elaborado em jeans com composição 100% algodão. Contempla gola tradicional, recortes frente, bolsos com fechamento por botão localizados na altura do busto e desgastes na coloração. Peça chave para os dias frios da estação!</description> <c:categories> <c:category>Outra categoria</c:category> <c:category c:id="1">Casa</c:category> <c:category c:id="2" c:parentId="1">Banheiro</c:category> <c:category c:id="3" c:parentId="2"><![CDATA[Utensílios]]></c:category> </c:categories> <link>http://www.yourstore.com.br/Jaquetas/Casaco-Feminino-Jeans-Com-Bolsos/p</link> <c:images> <c:image c:id="250x250">http://wwww.yourhost.com/images/bla.png</c:image> <c:image c:id="320x320">http://wwww.yourhost.com/images/bla_large.png</c:image> </c:images> <g:condition>new</g:condition> <g:availability>in stock</g:availability> <g:price>159.99 BRL</g:price> <g:sale_price>159.99 BRL</g:sale_price> <g:gtin>7909245516136</g:gtin> <g:brand>Brand</g:brand> <g:gender>FEMALE</g:gender> <g:age_group>adult</g:age_group> <g:shipping> <g:country>BR</g:country> <g:service>Frete Grátis</g:service> <g:price>0.0 BRL</g:price> </g:shipping> <g:installment> <g:months>5</g:months> <g:amount>31.99 BRL</g:amount> </g:installment> <c:tags> <c:tag>lancamento</c:tag> <c:tag>Verão</c:tag> <c:tag>Mais vendido</c:tag> <c:tag>Super vendido</c:tag> </c:tags> <c:details> <c:detail c:id="numPages">123</c:detail> </c:details> <c:specs> <c:spec c:id="flavor">baunilha</c:spec> <c:spec c:id="voltage">110v</c:spec> <c:spec c:id="size">G</c:spec> <c:spec c:id="color">azul</c:spec> <c:spec c:id="mediaType">Ebook</c:spec> </c:specs> </item> </channel> </rss>
Validando o XML:
Para verificar se o XML é válido e está pronto para a importação é sugerido a utilização da ferramenta xmlstartletShell
xmlstarlet fo meuarquivo.xml