Produtos

Através da API de Produtos é possível consultar e listar os produtos contidos na loja virtual.

Endereço para Integração
URL de Acesso https://{URL_LOJA}/web_api/products
Protocolo Rest/HTTP

Consultar Informações do Produto

Para retornar as informações do produto, basta realizar uma requisição via GET, enviando na URL o código do produto desejado.

Veja abaixo uma chamada de exemplo para consultar informações do produto:

    <script type="text/javascript">  
		var productId =  "84";
		
		$.ajax({
			method: "GET",
			url: "/web_api/products/"+productId
		}).done(function( response, textStatus, jqXHR ) {
			console.log(response);
		}).fail(function( jqXHR, status, errorThrown ){
			var response = $.parseJSON( jqXHR.responseText );
			console.log(response);
		});
    </script>

Na consulta do produto, a API retorna a resposta em JSON.

Abaixo um detalhamento de cada nó do JSON de resposta:

JSON de Resposta
Product Dados do Produto
Product.ean EAN do Produto
Product.id Código do Produto
Product.name Nome do Produto
Product.price Preço do Produto
Product.promotional_price Preço Promocional do Produto
Product.start_promotion Data Inicial da Promoção do Produto
Product.end_promotion Data Final da Promoção do Produto
Product.brand Marca do Produto
Product.model Modelo do Produto
Product.category_id Código da Categoria do Produto
Product.available Disponibilidade do Produto
Product.hot Produto em Destaque
Product.release Liberação do Produto
Product.additional_button Botão Adicional do Produto
Product.has_variation Confirmação de Produto com Variação
Product.url Objeto com as URLs do Produto
Product.url.http URL Simples do Produto
Product.url.https URL Segura do Produto
Product.payment_option Informações de Pagamento
Product.payment_option_details[] Informações de Pagamento
Product.payment_option_details[].display_name Nome da Forma de Pagamento
Product.payment_option_details[].plots Quantidade de parcelas
Product.payment_option_details[].value Valor da parcela
Product.related_categories Categorias Relacionadas do Produto
Product.release_date Data da Liberação do Produto
Product.virtual_product Produto Virtual
Product.ProductImage[] Imagens do Produto
Product.ProductImage[].http URL Simples da Imagem do Produto
Product.ProductImage[].https URL Segura da Imagem do Produto
Product.ProductImage[].thumbs Miniatura da Imagem do Produto
Product.ProductImage[].thumbs.30 Miniatura de Tamanho 30px
Product.ProductImage[].thumbs.30.http URL Simples da Miniatura de 30px
Product.ProductImage[].thumbs.30.https URL Segura da Miniatura de 30px
Product.ProductImage[].thumbs.90 Miniatura de Tamanho 90px
Product.ProductImage[].thumbs.90.http URL Simples da Miniatura de 90px
Product.ProductImage[].thumbs.90.https URL Segura da Miniatura de 90px
Product.ProductImage[].thumbs.180 Miniatura de Tamanho 180px
Product.ProductImage[].thumbs.180.http URL Simples da Miniatura de 180px
Product.ProductImage[].thumbs.180.https URL Segura da Miniatura de 180px
Product.Variant[] Variações do Produto

Exemplo de resposta com sucesso baseando no envio do exemplo acima:


    {
		"Product": {
			"ean": "8882",
			"id": "84",
			"name": "Produto Teste 4",
			"description": "Produto para Teste Automatizado. Produto sem variação.<\/p>\r\n",
			"description_small": "Produto de Teste 4",
			"price": "199.90",
			"promotional_price": "0.00",
			"start_promotion": "0000-00-00",
			"end_promotion": "0000-00-00",
			"brand": "Paginacao",
			"model": "Modelo 3",
			"category_id": "16",
			"available": "1",
			"availability": "Em estoque",
			"hot": "1",
			"release": "0",
			"additional_button": "",
			"has_variation": "",
			"additional_message": "Mensagem.",
			"warranty": "1 ano",
			"rating": "0",
			"count_rating": "0",
			"ProductImage": [
				{
					"http": "http://images.tcdn.com.br/img/img_prod/123/1.png",
					"https": "https://images.tcdn.com.br/img/img_prod/123/1.png",
					"thumbs": {
						"30": {
							"http": "http://images.tcdn.com.br/img/img_prod/123/30_1.png",
							"https": "https://images.tcdn.com.br/img/img_prod/123/30_1.png"
						},
						"90": {
							"http": "http://images.tcdn.com.br/img/img_prod/123/90_1.png",
							"https": "https://images.tcdn.com.br/img/img_prod/123/90_1.png"
						},
						"180": {
							"http": "http://images.tcdn.com.br/img/img_prod/400636/180_1.png",
							"https": "https://images.tcdn.com.br/img/img_prod/400636/180_1.png"
						}
					}
				}
			],
			"image": "1",
			"url": {
				"http": "http://sualojavirtual.commercesuite.com.br/produto-teste-4-pr.htm",
				"https": "https://sualojavirtual.commercesuite.com.br/produto-teste-4-pr.htm"
			},
			"Properties": [],
			"payment_option": "ou 12x com juros de R$ 18,89",
			"related_categories": [
				"16"
			],
			"release_date": "0000-00-00",
			"virtual_product": "",
			"Variant": []
		}
	}
    

Attrs

Caso deseje exibir apenas alguns atributos da API, pode-se utilizar o parâmetro attrs.

O parâmetro Attrs deve ser passado pela url da requisição da API, nela você deve passar os atributos da qual deseja exibir separados por (,).

Exemplo:

   https://{URL_LOJA}/web_api/products?attrs=Product.ean,Product.price

Terá como resposta o conteúdo abaixo:


   "Products": [
       {
         "Product": {
           "ean": "",
           "id": "110",
           "price": "3000.00"
         }
       },

Abaixo um exemplo de utilização desse parâmetro:


    <script type="text/javascript">
      var params = {};

      params["id"] = "2";
      params["attrs"] = "Product.price,Product.ean";

      $.ajax({
        method: "GET",
        url: "/web_api/products/",
        data: params
      }).done(function( response, textStatus, jqXHR ) {
        console.log(response);
      }).fail(function( jqXHR, status, errorThrown ){
        var response = $.parseJSON( jqXHR.responseText );
        console.log(response);
      });
    </script>

Listagem de Produtos

Para a listagem de produtos, deverá ser realizada uma requisição via GET.

Podem ser enviados alguns parâmetros nesta integração para realizar filtros na listagem de produtos, segue abaixo o dado necessário para envio:

Dados de Entrada Obrig. Descrição
id Não Código do Produto
name Não Nome do Produto
category_id Não Categoria do Produto
ean Não EAN do Produto
price Não Preço do Produto
brand Não Marca do Produto
available Não Dsiponibilidade do Produto
attrs Não Atributos do Produto
created Não Data de Criação do Produto
modified Não Data de Modificação do Produto
stock Não Estoque do Produto
promotion Não Produto Promocional
free_shipping Não Produto com Frete Grátis
release Não Produto em Lançamento
hot Não Produto em Destaque
quantity_sold Não Quantidade Vendida do Produto
rand Não Retornar Produtos Randômicos
sort Não Ordenação da Consulta
limit Não Quantidade Limite de Registros
page Não Página da Consulta

Veja abaixo uma chamada de exemplo listagem de produtos:

    <script type="text/javascript">  
		var params = {};

		params["category_id"] = "123";
		params["page"] = "2";
		params["limit"] = "20";

		$.ajax({
			method: "GET",
			url: "/web_api/products/",
			data: params
		}).done(function( response, textStatus, jqXHR ) {
			console.log(response);
		}).fail(function( jqXHR, status, errorThrown ){
			var response = $.parseJSON( jqXHR.responseText );
			console.log(response);
		});
    </script>

Na listagem de produtos, a API retorna a resposta em JSON.

Abaixo um detalhamento de cada nó do JSON de resposta:

JSON de Resposta
paging Dados do Produto
paging.total Total de Registros
paging.page Páginas corrente
paging.offset Registro Inicial da Página
paging.limit Limite de Registros
paging.maxLimit Máximo de Registros
sort Ordenação
availableFilters Filtros Disponíveis
appliedFilters Filtros Utilizados
Products[] Lista de Produtos
Products[].Product Dados do Produto
Products[].Product.ean EAN do Produto
Products[].Product.id Código do Produto
Products[].Product.name Nome do Produto
Products[].Product.price Preço do Produto
Products[].Product.promotional_price Preço Promocional do Produto
Products[].Product.start_promotion Data Inicial da Promoção do Produto
Products[].Product.end_promotion Data Final da Promoção do Produto
Products[].Product.brand Marca do Produto
Products[].Product.model Modelo do Produto
Products[].Product.category_id Código da Categoria do Produto
Products[].Product.available Produto Disponível
Products[].Product.availability Disponibilidade do Produto
Products[].Product.hot Produto em Destaque
Products[].Product.release Liberação do Produto
Products[].Product.additional_button Botão Adicional do Produto
Products[].Product.has_variation Confirmação de Produto com Variação
Products[].Product.url Objeto com as URLs do Produto
Products[].Product.url.http URL Simples do Produto
Products[].Product.url.https URL Segura do Produto
Products[].Product.payment_option Informações de Pagamento
Products[].Product.related_categories Categorias Relacionadas do Produto
Products[].Product.release_date Data da Liberação do Produto
Products[].Product.virtual_product Produto Virtual
Products[].Product.ProductImage[] Imagens do Produto
Products[].Product.ProductImage[].http URL Simples da Imagem do Produto
Products[].Product.ProductImage[].https URL Segura da Imagem do Produto
Products[].Product.ProductImage[].thumbs Miniatura da Imagem do Produto
Products[].Product.ProductImage[].thumbs.30 Miniatura de Tamanho 30px
Products[].Product.ProductImage[].thumbs.30.http URL Simples da Miniatura de 30px
Products[].Product.ProductImage[].thumbs.30.https URL Segura da Miniatura de 30px
Products[].Product.ProductImage[].thumbs.90 Miniatura de Tamanho 90px
Products[].Product.ProductImage[].thumbs.90.http URL Simples da Miniatura de 90px
Products[].Product.ProductImage[].thumbs.90.https URL Segura da Miniatura de 90px
Products[].Product.ProductImage[].thumbs.180 Miniatura de Tamanho 180px
Products[].Product.ProductImage[].thumbs.180.http URL Simples da Miniatura de 180px
Products[].Product.ProductImage[].thumbs.180.https URL Segura da Miniatura de 180px
Products[].Product.Variant[] Variações do Produto

Exemplo de resposta com sucesso baseando no envio do exemplo acima:


	{
		"paging": {
			"total": 201,
			"page": 1,
			"offset": 0,
			"limit": 1,
			"maxLimit": 50
		},
		"sort": [ { "id": "asc" } ],
		"availableFilters": [
			"id", "name", "category_id", "ean", "available", "price",
			"brand", "model", "hot", "quantity_sold", "release",
			"free_shipping", "weight", "image", "release_date", "stock",
			"promotion", "modified", "created" ],
		"appliedFilters": [],
		"Products": [
			{
				"Product": {
					"ean": "8882",
					"id": "84",
					"name": "Produto Teste 4",
					"price": "199.90",
					"promotional_price": "0.00",
					"start_promotion": "0000-00-00",
					"end_promotion": "0000-00-00",
					"brand": "Paginacao",
					"model": "Modelo 3",
					"category_id": "16",
					"available": "1",
					"availability": "Em estoque",
					"hot": "1",
					"release": "0",
					"additional_button": "",
					"has_variation": "",
					"url": {
						"http": "http://sualoja.commercesuite.com.br/produto1.htm",
						"https": "https://sualoja.commercesuite.com.br/produto1.htm"
					},
					"payment_option": "ou 12x com juros de R$ 18,89",
					"related_categories": ["16"],
					"release_date": "0000-00-00",
					"virtual_product": "",
					"ProductImage": [{
						"http": "http://images.tcdn.com.br/img/img_prod/123/1.png",
						"https": "https://images.tcdn.com.br/img/img_prod/123/1.png",
						"thumbs": {
							"30": {
								"http": "http://images.tcdn.com.br/img/img_prod/123/30_1.png",
								"https": "https://images.tcdn.com.br/img/img_prod/123/30_1.png"
							},
							"90": {
								"http": "http://images.tcdn.com.br/img/img_prod/123/90_1.png",
								"https": "https://images.tcdn.com.br/img/img_prod/123/90_1.png"
							},
							"180": {
								"http": "http://images.tcdn.com.br/img/img_prod/132/180_1.png",
								"https": "https://images.tcdn.com.br/img/img_prod/123/180_1.png"
							}
						}
					} ],
					"Variant": []
				}
			}
		]
	}