Consultar 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

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

Exemplo ao lado de como consultar informações do produto:

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
 <script type="text/javascript"> 

 let producId = 88;
 fetch(`/web_api/products/${producId}`)
   .then(response => response.json())
   .then(result => {
     console.log(result.Product);
   })
   .catch(err => {
     console.error('Falha', err);
   });
 </script>
 {
 "Product": {
   "ean": "8882",
   "id": "84",
   "name": "Produto Teste 4",
   "description": "Produto para Teste",
   "description_small":"Produto de Teste",
   "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/123/1.png",
     "https": 
       "https://images/123/1.png",
     "thumbs": {
     "30": {
       "http": 
         "http://images/123/30_1.png",
       "https": 
         "https://images/123/30_1.png"
       },
       "90": {
         "http": 
           "http://images/123/90_1.png",
         "https": 
           "https://images/123/90_1.png"
       },
       "180": {
         "http": 
           "http://images/123/180_1.png",
         "https": 
           "https://images/123/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 (,).

Disponivel em todas APIs Publicas

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

Terá como resposta o conteúdo ao lado:

<script type="text/javascript"> 
       fetch(`/web_api/products/?attrs=Product.name`)
       .then(response => response.json())
       .then(result => {
           console.log(result);
       })
       .catch(err => {
           console.error('Falha', err);
       });
   </script>
   "Products": [
      {
        "Product": {
          "ean": "",
          "id": "110",
          "price": "3000.00"
        }
      },
   

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

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
   <script type="text/javascript"> 
       fetch(`/web_api/products/?category_id=1&limit=20` )
         .then(response => response.json())
         .then(result => {
           console.log(result);
         })
         .catch(err => {
         console.error('Falha', err);
       });
   </script>
   {
   "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/produto1.htm",
           "https": "https://sualoja/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/123/1.png",
           "https": "https://images/123/1.png",
           "thumbs": {
               "30": {
                   "http": "http://images/123/30_1.png",
                   "https": "https://images/123/30_1.png"
               },
               "90": {
                   "http": "http://images/123/90_1.png",
                   "https": "https://images/123/90_1.png"
               },
               "180": {
                   "http": "http://images/132/180_1.png",
                   "https": "https://images/123/180_1.png"
               }
           }
       } ],
       "Variant": []
       }
   }
   ]
   

Variações de Produto

Através da API de Variações de Produtos é possível identificar todas as variações contidas na loja virtual e identificar o produto relacionado à variação.

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

Consultar Variação do Produt

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

Na consulta de variação do produto, a API retorna a resposta em JSON.

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

JSON de Resposta

Variant Dados da Variação do Produto
Variant.ean EAN da Variação do Produto
Variant.id Código da Variação do Produto
Variant.product_id Código do Produto
Variant.price Preço da Variação do Produto
Variant.promotional_price Preço Promocional da Variação do Produto
Variant.start_promotion Data Inicial da Promoção da Variação do Produto
Variant.end_promotion Data Final da Promoção da Variação do Produto
Variant.payment_option Informações de Pagamento
Variant.illustrative_image Imagem Ilustrativa da Variação do Produto
Variant.VariantImage[] Imagens da Variação do Produto
Variant.VariantImage[].http URL Simples da Imagem da Variação do Produto
Variant.VariantImage[].https URL Segura da Imagem da Variação do Produto
Variant.VariantImage[].thumbs Miniaturas da Imagem da Variação do Produto
Variant.VariantImage[].thumbs.30 Miniatura de Tamanho 30px
Variant.VariantImage[].thumbs.30.http URL Simples da Miniatura de 30px
Variant.VariantImage[].thumbs.30.https URL Segura da Miniatura de 30px
Variant.VariantImage[].thumbs.90 Miniatura de Tamanho 90px
Variant.VariantImage[].thumbs.90.http URL Simples da Miniatura de 90px
Variant.VariantImage[].thumbs.90.https URL Segura da Miniatura de 90px
Variant.VariantImage[].thumbs.180 Miniatura de Tamanho 180px
Variant.VariantImage[].thumbs.180.http URL Simples da Miniatura de 180px
Variant.VariantImage[].thumbs.180.https URL Segura da Miniatura de 180px
Variant.Sku[] Sku da Variação do Produto
Variant.Sku[].type Tipo da Variação do Produto
Variant.Sku[].value Dados da Variação do Produto
 <script type="text/javascript"> 

 let variantId = 88;
 fetch(`/web_api/variants/${variantId}`)
   .then(response => response.json())
   .then(result => {
     console.log(result.Product);
   })
   .catch(err => {
     console.error('Falha', err);
   });
 </script>
   {
   "Variant": {
       "id": "184",
       "ean": "",
       "product_id": "610",
       "price": "199.90",
       "start_promotion": "0000-00-00",
       "end_promotion": "0000-00-00",
       "promotional_price": "0.00",
       "payment_option": "ou 12x com juros de R$ 18,89",
       "illustrative_image": "",
       "VariantImage": [
       {
       "http": "http://images/123/1.png",
       "https": "https://images/123/1.png",
       "thumbs": {
           "30": {
               "http": "http://images/123/30_1.png",
               "https": "https://images/123/30_1.png"
           },
           "90": {
               "http": "http://images/123/90_1.png",
               "https": "https://images/123/90_1.png"
           },
           "180": {
               "http": "http://images123/180_1.png",
               "https": "https://images123/180_1.png"
           }
       }
       }],
       "Sku": [
       {
           "type": "Cor",
           "value": "Verde"
       },
       {
           "type": "Tamanho",
           "value": "G"
       }]
     }
   }

Listagem de Variações do Produto

Para a listagem de variações do produto, deverá ser realizada uma requisição via GET.

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

Dados de Entrada Obrig. Descrição
id Não Código do Produto
sort Não Ordenação da Consulta
limit Não Quantidade Limite de Registros
page Não Página da Consulta

JSON de Resposta

Variant Dados da Variação do Produto
Variant.ean EAN da Variação do Produto
Variant.id Código da Variação do Produto
Variant.product_id Código do Produto
Variant.price Preço da Variação do Produto
Variant.promotional_price Preço Promocional da Variação do Produto
Variant.start_promotion Data Inicial da Promoção da Variação do Produto
Variant.end_promotion Data Final da Promoção da Variação do Produto
Variant.payment_option Informações de Pagamento
Variant.illustrative_image Imagem Ilustrativa da Variação do Produto
Variant.VariantImage[] Imagens da Variação do Produto
Variant.VariantImage[].http URL Simples da Imagem da Variação do Produto
Variant.VariantImage[].https URL Segura da Imagem da Variação do Produto
Variant.VariantImage[].thumbs Miniaturas da Imagem da Variação do Produto
Variant.VariantImage[].thumbs.30 Miniatura de Tamanho 30px
Variant.VariantImage[].thumbs.30.http URL Simples da Miniatura de 30px
Variant.VariantImage[].thumbs.30.https URL Segura da Miniatura de 30px
Variant.VariantImage[].thumbs.90 Miniatura de Tamanho 90px
Variant.VariantImage[].thumbs.90.http URL Simples da Miniatura de 90px
Variant.VariantImage[].thumbs.90.https URL Segura da Miniatura de 90px
Variant.VariantImage[].thumbs.180 Miniatura de Tamanho 180px
Variant.VariantImage[].thumbs.180.http URL Simples da Miniatura de 180px
Variant.VariantImage[].thumbs.180.https URL Segura da Miniatura de 180px
Variant.Sku[] Sku da Variação do Produto
Variant.Sku[].type Tipo da Variação do Produto
Variant.Sku[].value Dados da Variação do Produto
 <script type="text/javascript"> 

 let variantId = 88;
 fetch(`/web_api/variants/${variantId}`)
   .then(response => response.json())
   .then(result => {
     console.log(result.Product);
   })
   .catch(err => {
     console.error('Falha', err);
   });
 </script>
   {   		
   "paging": {
       "total": 105,
       "page": 1,
       "offset": 0,
       "limit": 30,
       "maxLimit": 50
   },
   "sort": [
   {
       "id": "asc"
   }],
   "availableFilters": [
       "id",
       "product_id",
       "ean",
       "price",
       "promotional_price",
       "modified"
   ],
   "appliedFilters": [],
   "Variants": [
   {
       "Variant": {
           "id": "182",
           "ean": "",
           "product_id": "610",
           "price": "199.90",
           "start_promotion": "0000-00-00",
           "end_promotion": "0000-00-00",
           "promotional_price": "0.00",
           "payment_option": "ou 12x com juros de R$ 18,89",
           "illustrative_image": "",
           "Sku": [
               {
                   "type": "Cor",
                   "value": "Verde"
               },
               {
                   "type": "Tamanho",
                   "value": "P"
               }
           ]
       }
   }]
   }

Categorias

Através da API de Categorias é possível consultar as categorias contidas na loja virtual.

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

Lista de Categorias

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

Podem ser enviados na URL o código da categoria desejada, onde será retornada somente a categoria desejada e as respectivas subcategorias:

JSON de Resposta

Category[] Lista de Categorias
Category[].Category Dados da Categoria
Category[].Category.slug Caminho absoluto da Categoria
Category[].Category.id Código da Categoria
Category[].Category.parent_id Código da Categoria Pai
Category[].Category.name Nome da Categoria
Category[].Category.description Descrição da Categoria (meta title)
Category[].Category.title Título da categoria (meta title)
Category[].Category.link Objeto com as URLs da Categoria
Category[].Category.link.http URL Simples da Categoria
Category[].Category.link.https URL Segura da Categoria
Category[].Category.images[] Imagens da Categoria
Category[].Category.images[].http URL Simples da Imagem da Categoria
Category[].Category.images[].https URL Segura da Imagem da Categoria
Category[].Category.children[] Lista de Subcategorias
Category[].Category.children[].Category Dados da Subcategoria
 <script type="text/javascript"> 

 let variantId = 88;
 fetch(`/web_api/variants/${variantId}`)
   .then(response => response.json())
   .then(result => {
     console.log(result.Product);
   })
   .catch(err => {
     console.error('Falha', err);
   });
 </script>
   
{
   "Category": [
   {
    "Category": {
    "slug": "categoria-1",
    "id": "1",
    "parent_id": "",
    "name": "Categoria 1",
    "description": "categoria-1",
    "title": "",
    "link": {
     "http": "http://sualojavirtual/categoria-1",
     "https": "https://sualojavirtual/categoria-1"
     },
     "images": [
     {
       "http": "http://images1/123/img_1.png",
       "https": "https://images2/123/_1.png"
     }
     ],
     "children": [
     {
       "Category": {
       "slug": "categoria-1/subcategoria",
       "id": "3",
       "parent_id": "1",
       "name": "Subcategoria",
       "description": "Subcategoria",
       "title": "",
       "link": {
        "http": "http://sualojavirtual/categoria-1/subcategoria",
        "https": "https://sualojavirtual/categoria-1/subcategoria"
       },
       "images": [],
       "children": null
      }
    }]
   }]
  }

Busca de Produtos

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

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

Dados de Entrada Obrig. Descrição
query Não Texto de Busca
promotion Não Produto Promocional
id Não Códigos do Produto (Valores separados por “,”. Exemplo: 15,123,54)
category_id Não Categoria do Produto
price Não Faixa de Valor do Produto (Valores separados por “,”. Exemplo: 10.25,123.54)
rand Não Retornar Produtos Randômicos
sort Não Ordenação da Busca
limit Não Quantidade Limite de Registros
page Não Página da Busca

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

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

JSON de Resposta

paging Dados de Paginação
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.id Código do Produto
Products[].Product.name Nome do Produto
Products[].Product.available Produto Disponível
Products[].Product.price Preço do Produto
Products[].Product.shortcut Atalho do Produto
Products[].Product.category_id Código da Categoria do Produto
Products[].Product.description_small Descriçã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.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.rating Classificação do Produto
Products[].Product.count_rating Contador de Classificação do Produto
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.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.Properties[] Propriedades do Produto
Products[].Product.Category Dados da Categoria do Produto
Products[].Product.Category.id Código da Categoria do Produto
Products[].Product.Category.name Nome da Categoria do Produto
Products[].Product.Category.description Descrição da Categoria do Produto
<script type="text/javascript"> 
fetch(`/web_api/search/?query="Produto"&price="10.00,50.00"` )
   .then(response => response.json())
   .then(result => {
   console.log(result);
   })
   .catch(err => {
   console.error('Falha', err);
});
</script>
   {
   "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/produto1.htm",
           "https": "https://sualoja/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/123/1.png",
           "https": "https://images/123/1.png",
           "thumbs": {
               "30": {
                   "http": "http://images/123/30_1.png",
                   "https": "https://images/123/30_1.png"
               },
               "90": {
                   "http": "http://images/123/90_1.png",
                   "https": "https://images/123/90_1.png"
               },
               "180": {
                   "http": "http://images/132/180_1.png",
                   "https": "https://images/123/180_1.png"
               }
           }
       } ],
       "Variant": []
       }
   }
   ]
   

Carrinho de Compra

Através da API de Carrinho de compra é possível incluir produtos e resgatar informações do carrinho de compra, retornando a URL deste carrinho para exibição ao cliente.

Endereço para Integração
URL de Acesso https://{sualojavirtual}.commercesuite.com.br/web_api/cart
Protocolo Rest/HTTP

Sessão do Usuário

Na API de Carrinho de Compra também será necessário resgatar a informação da sessão do usuário no carrinho. Esta informação poderá ser capturada através de um código javascript.

Apesar da sessão do usuário já existir no dataLayer, algumas páginas possuem cache e poderão trazer as informações de forma incorreta. Para evitar este problema, caso seja necessário, disponibilizamos a sessão também no código fonte das páginas do sistema para que possa ser recuperado.

   <script type="text/javascript">  
       let dataSession = document.querySelector('html').getAttribute('data-session');
   </script>

Consultar Carrinho de Compra

Para retornar as informações do Carrinho de Compra, basta realizar uma requisição via GET, enviando na URL o código da sessão do carrinho.

Para a integração com esta API, deverá ser realizada uma requisição via GET, concatenando o código da sessão do usuário no final da URL.

A consulta de informações do carrinho de compra retorna uma resposta em JSON.

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

JSON de Resposta

Cart Nó principal da resposta
Cart.session_id Código da Sessão do Carrinho
Cart.product_id Código do Produto
Cart.product_name Nome do Produto
Cart.quantity Quantidade
Cart.price Preço do Produto
Cart.weight Peso do Produto
Cart.date Data
Cart.variant_id Código da Variação
Cart.user_id ID do usuário
Cart.user_cod Código do Usuário
Cart.hour Hora
Cart.product_url Objeto com as URLs do Produto
Cart.product_url.http URL Simples do Produto
Cart.product_url.https URL Segura do Produto
Cart.product_image Objeto com as imagens do Produto
Cart.product_image.http URL Simples da Imagem do produto
Cart.product_image.https URL Segura da Imagem do produto
Cart.product_image.thumbs Miniatura da Imagem do Produto
Cart.product_image.thumbs.30 Miniatura de Tamanho 30px
Cart.product_image.thumbs.30.http URL Simples da Miniatura de 30px
Cart.product_image.thumbs.30.https URL Segura da Miniatura de 30px
Cart.product_image.thumbs.90 Miniatura de Tamanho 90px
Cart.product_image.thumbs.90.http URL Simples da Miniatura de 90px
Cart.product_image.thumbs.90.https URL Segura da Miniatura de 90px
Cart.product_image.thumbs.180 Miniatura de Tamanho 180px
Cart.product_image.thumbs.180.http URL Simples da Miniatura de 180px
Cart.product_image.thumbs.180.https URL Segura da Miniatura de 180px
Cart.email Email do Usuário
Cart.additional_information Informações Adicionais
 <script type="text/javascript"> 

 let dataSession = document.querySelector('html').getAttribute('data-session');

 fetch(`/web_api/cart/${dataSession}`)
   .then(response => response.json())
   .then(result => {
     console.log(result.Product);
   })
   .catch(err => {
     console.error('Falha', err);
   });
 </script>
   {
   "Cart": {
   "email": "",
   "session_id": "pfhqg4ekivc5hqrdh3me2e8dp4",
   "product_id": "6",
   "product_name": "Nome do Produto",
   "quantity": "1",
   "price": "50.00",
   "weight": "100",
   "date": "2016-09-30",
   "variant_id": "0",
   "additional_information": "",
   "user_id": "0",
   "customer_id": "0",
   "user_cod": "0",
   "hour": "13:55:43",
   "product_url": {
    "http": "http://urldaloja/dragon-shield-fusion",
    "https": "https://urldaloja/dragon-shield-fusion"
   },
   "product_image": {
    "http": "http://images2/21139.jpg",
    "https": "https://images2/21139.jpg",
    "thumbs": {
    "30": {
        "http": "http://images2/21139.jpg",
        "https":  "https://images2/21139.jpg"
    },
    "90": {
        "http": "http://images2/21139.jpg",
        "https": "https://images2/21139.jpg"
    },
    "180": {
        "http": "http://images2/21139.jpg",
        "https": "https://images2/21139.jpg"
     }
    }
   }
  }

Incluir Produto no Carrinho

Para incluir produtos no carrinho de compra, basta realizar uma requisição via POST, enviando os parâmetros com informações do produto.

A requisição para a integração será via POST, onde segue abaixo o dado necessário para envio:

Dados de Entrada Obrig. Formato / Tam. Max Descrição
Cart Sim Objeto Nó principal da resposta
Cart.session_id Sim Texto / 32 Código da Sessão
Cart.product_id Sim Número Código do Produto
Cart.quantity Sim Número Quantidade
Cart.variant_id Não Número Código da Variação

Ao incluir produtos do carrinho de compra, é retorna uma resposta em JSON.

JSON de Resposta

message Mensagem de Retorno
id Código do Carrinho
session_id Código da Sessão do Carrinho
cart_url URL do Carrinho
code HTTP Code de Resposta
 <script type="text/javascript"> 
   let dataSession = document.querySelector('html').getAttribute('data-session');
   let dados = `{"Cart":{"session_id":"${dataSession}","product_id":"6","quantity":"1","variant_id":"0"}}`

   fetch('/web_api/cart/', {
       method: 'POST',
       headers: new Headers({'Content-Type':'application/json'}),
       body: dados
   }).then(response => response.json()
       .then(resp => console.log(resp))
       .catch(err => console.error('Falha', err))
   )
 </script>
   {
       'message': 'Created',
       'id': '615440',
       'session_id': 'rkqeli8b00a697r4q9jnbi6il6',
       'cart_url': 'https://sualojavirtual.commercesuite.com.br/loja/carrinho.php?loja=12&transID=rkqeli8b00a697r4q9jnbi6il6,
       'code': '201'
   }

Excluir Produto do Carrinho

Para excluir um produto especifico no carrinho de compra, basta realizar uma requisição utilizando o método DELETE, passando na url o session_id e o product_id do produto.

Esta requisição exclui um produto inteiro do carrinho. Caso ele tenha uma ou mais variações, todas são excluídas do carrinho.

Endereço para Integração
URL de Acesso https://{sualojavirtual}.commercesuite.com.br/web_api/carts/{session_id}/{product_id}
Protocolo Rest/HTTP

Ao excluir produtos do carrinho de compra, é retorna uma resposta em JSON.

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

JSON de Resposta

message Mensagem de Retorno
id Código do Carrinho
session_id Código da Sessão do Carrinho
cart_url URL do Carrinho
code HTTP Code de Res
 <script type="text/javascript"> 

 let dataSession = document.querySelector('html').getAttribute('data-session');
 let productID = 6


 fetch(`/web_api/carts/${dataSession}/${productID}`
   {
       method: "DELETE",
   })
   .then(response => response.json())
   .then(result => {
     console.log(result.Product);
   })
   .catch(err => {
     console.error('Falha', err);
   });
 </script>
   {
   'message': 'Deleted',
   'id': '615440',
   'session_id': 'rkqeli8b00a697r4q9jnbi6il6',
   'cart_url': 'https://sualojavirtual.commercesuite.com.br/loja/carrinho.php?loja=12&transID=rkqeli8b00a697r4q9jnbi6il6,
   'code': '201'
   }

Excluir Sessão do Carrinho de Compra

Para excluir a sessão de um carrinho de compra, basta realizar uma requisição utilizando o método DELETE, passando na url o session_id.

Esta requisição exclui todos os produtos e variações do carrinho. Inclusive o carrinho é excluído, ele torna-se indisponível após a operação.

Endereço para Integração
URL de Acesso https://{sualojavirtual}.commercesuite.com.br/web_api/carts/{session_id}
Protocolo Rest/HTTP

Ao excluir o carrinho de compra, é retorna uma resposta em JSON.

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

JSON de Resposta

message Mensagem de Retorno
id Código do Carrinho
session_id Código da Sessão do Carrinho
cart_url URL do Carrinho
code HTTP Code de Res
 <script type="text/javascript"> 

 let dataSession = document.querySelector('html').getAttribute('data-session');

 fetch(`/web_api/carts/${dataSession}`
   {
       method: "DELETE",
   })
   .then(response => response.json())
   .then(result => {
     console.log(result.Product);
   })
   .catch(err => {
     console.error('Falha', err);
   });
 </script>
   {
       'message': 'Deleted',
       'id': '615440',
       'session_id': 'rkqeli8b00a697r4q9jnbi6il6',
       'cart_url': 'https://sualojavirtual.commercesuite.com.br/loja/carrinho.php?loja=12&transID=rkqeli8b00a697r4q9jnbi6il6,
       'code': '200'
   }

Excluir Variação de um Produto no Carrinho

Para excluir uma variação especifica do produto no carrinho de compra, basta realizar uma requisição utilizando o método DELETE, passando na url o session_id e o product_id e o variant_id do produto.

Esta requisição exclui uma variação específica do carrinho.

Endereço para Integração
URL de Acesso https://{sualojavirtual}.commercesuite.com.br/web_api/carts/{session_id}/{product_id}/{variant_id}
Protocolo Rest/HTTP

Ao excluir uma variação do carrinho de compra, é retorna uma resposta em JSON.

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

JSON de Resposta

message Mensagem de Retorno
id Código do Carrinho
session_id Código da Sessão do Carrinho
cart_url URL do Carrinho
code HTTP Code de Resposta
 <script type="text/javascript"> 

 let dataSession = document.querySelector('html').getAttribute('data-session');
 let productID = 6;
 let variantID = 2


 fetch(`/web_api/carts/${dataSession}/${productID}/${variantID}`
   {
       method: "DELETE",
   })
   .then(response => response.json())
   .then(result => {
     console.log(result.Product);
   })
   .catch(err => {
     console.error('Falha', err);
   });
 </script>
       {
           'message': 'Deleted',
           'id': '615440',
           'session_id': 'rkqeli8b00a697r4q9jnbi6il6',
           'cart_url': 'https://sualojavirtual.commercesuite.com.br/loja/carrinho.php?loja=12&transID=rkqeli8b00a697r4q9jnbi6il6,
           'code': '201'
       }

Excluir Carrinho de Compra

Para excluir o carrinho de compra, basta realizar uma requisição utilizando o método DELETE.

Esta requisição exclui o carrinho com id passado por parâmetro. A exclusão só será feita caso o id tenha a sessão também passada.

Endereço para Integração
URL de Acesso https://{sualojavirtual}.commercesuite.com.br/web_ap/carts/{session_id}/id/{id}
Protocolo Rest/HTTP

Ao excluir o carrinho de compra, é retorna uma resposta em JSON.

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

JSON de Resposta

message Mensagem de Retorno
id Código do Carrinho
session_id Código da Sessão do Carrinho
cart_url URL do Carrinho
code HTTP Code de Res
 <script type="text/javascript"> 

 let dataSession = $("html").attr("data-session");
 let cartID = 615440;

 fetch(`/web_api/carts/${dataSession}/id/${cartID}`
   {
       method: "DELETE",
   })
   .then(response => response.json())
   .then(result => {
     console.log(result.Product);
   })
   .catch(err => {
     console.error('Falha', err);
   });
 </script>
   {
           'message': 'Deleted',
           'id': '615440',
           'session_id': 'rkqeli8b00a697r4q9jnbi6il6',
           'cart_url': 'https://sualojavirtual.commercesuite.com.br/loja/carrinho.php?loja=12&transID=rkqeli8b00a697r4q9jnbi6il6,
           'code': '200'
   }