Objetos do Opencode

Objetos são estruturas de dados utilizadas para facilitar a manipulação de determinadas informações.

Podemos citar por exemplo o objeto product que contem todos os atributos de um produto, e também o objeto categories que tem como retorno todas as categorias da loja.

As informações podem ser trazidas em um vetor (array). Por isso, para utilizar por exemplo uma categoria, é necessário passar seu índice na listagem de categorias, ou seja a posição que a categoria se encontra dentro desse vetor de categorias.

If

Podemos exibir na tela somente os itens que tiverem o atributo igual ao que foi passado, para isso podemos fazer uma comparação na exibição de produto utilizando o if:

Com o if também podemos verificar se o objeto em questão, no caso o objeto categories, contém determinado atributo cadastrado. Como exemplo ao lado, é verificado se as categorias contém uma imagem, caso tenha ela é exibida na tela:

Para saber mais sobre as opções da tag if, clique aqui para ir até a documentação do Twig

For

Podemos também exibir elementos de um objeto utilizando um laço for, exemplo ao lado:

Para saber mais sobre as opções da tag for, clique aqui para ir até a documentação do Twig

 <h1>{{ categories[0].name }}</h1>
<h1>Minha Categoria</h1>
  {% for product in products %}
     {% if product.id == '2' %}
        {{ product.id }}
     {% endif %}
  {% endfor %}
 {% for product in products %}
    {% if category.images %}     
      <img src="{{ category.images[0] }}" 
          alt="{{ category.name }}">
    {% endif %}
 {% endfor %}
 <ul>
  {% for category in categories %}
    <li>{{ category.name }}</li>
  {% endfor %}
  </ul>
 <ul>
      <li>Categoria 1</li>
      <li>Categoria 2</li>
      <li>Categoria 3</li>
      <li>Categoria 4</li>
      <li>Categoria 5</li>
  </ul>

Como manipular Objetos

Podemos manipular objetos de diversas maneiras, como exibir seus atributos na tela, utilizar laços de repetição e fazer validações, tudo isso de acordo com a necessidade.

As requisições de produtos sempre retornarão um array (vetor) de dados, por isso para exibir um produto você deve passar seu índice dentro desse vetor.

Para saber os dados retornados no objeto, você pode utilizar o debug do twig, ele irá exibir na tela a estrutura retornada no objeto

{{ dump(product.image) }}
Array
  (
      [0] => Array
          (
              [small] => http://images.tcdn.com.br/img/small.jpg
              [medium] => http://images.tcdn.com.br/img/medium.jpg
              [large] => http://images.tcdn.com.br/img/large.jpg
              [full] => http://images.tcdn.com.br/img/full.jpg
          )

  )

Tray

Esse objeto retorna algumas configurações e integrações relacionadas a loja.

Atributos Descrição
tray.analytics Script de estatísticas de visitas do Google Analytics
tray.credits Retorna informações de creditos da Tray message, status, url
tray.meta Retorna informações de meta dados configuradas na plataforma
tray.scripts Retorna os scripts internos da plataforma.
tray.styles Retornas as folhas de estilos internas da plataforma.
tray.paths Retorna caminho dos cdns utilizados no tema js, css, shop_image, system_image, theme
  Array
  (
  [analytics] =>[SCRIPTS]
  [credits] => Array
      (
          [message] => Tecnologia TrayCommerce
          [status] => ATIVA
          [url] => [URL_REDIRECT]
      )
  [meta] => [META-TAGS]
  [scripts] =>[SCRIPTS]
  [styles] =>[STYLES]
  [paths] => Array
      (
          [js] => [PATH_URL]
          [css] => [PATH_URL]
          [shop_image] =>[PATH_URL]
          [system_image] =>[PATH_URL]
          [theme] =>[PATH_URL]
      )
  )

Store

Esse objeto retorna os dados da loja.

Atributos Descrição
store.id Identificador único da loja
store.name Nome da loja
store.status Retorna o status da loja na plataforma
store.url URL da loja
store.secure_url Retorna a url em ambiente seguro (https)
store.chat Retorna o conteúdo do campo “Atendimento Online” cadastrado no Painel Administrativo
store.current_url Retorna a url atual
  Array
  (
  [id] => [STORE_ID]
  [name] => [STORE_NAME]
  [logo] => [STORE_IMAGE]
  [status] => ativa
  [url] => [STORE_URL]
  [secure_url] => [STORE_URL_SECURE]
  [chat] => [CHAT]
  [current_url] =>[CURRENT_URL]
  )

Category

O Objeto category é responsável por retornar a categoria atual do tema, através dela é possível fazer validações relacionas a categoria dos produtos.

Disponível nas páginas: Catalog.

Para saber mais sobre como gerenciar categorias acesse: Wiki - Gerenciar categorias

Atributos Descrição
category.slug Endpoint onde é acessado a categoria
category.id Identificador único da categoria
category.name Nome da categoria
category.description Descrição da categoria
category.order Ordem de exibição segundo as configurações da loja
category.title Titulo da Categoria (SEO)
category.small_description Descrição detalhada da categoria
category.link URL da categoria
category.has_acceptance_term Possui o termo “Aceito”
category.acceptance_term Retorna as opções de Termo
category.brands As marcas vinculadas aos produtos dessa categoria (name, selected)
category.children Subcategorias
category.parent ID da categoria mãe
Array
(
    [slug] => [SLUG]
    [id] => 2
    [name] => [NAME]
    [description] => [DESCRIPTION]
    [order] => 1
    [title] => 
    [small_description] =>[DESCRICAO_DETALHADA]
    [link] => [LINK_CATEGORY]
    [has_acceptance_term] =>  
    [acceptance_term] => 
    [brands] => Array
        (
            [0] => Array
                (
                    [name] => [BRAND_NAME]
                    [selected] => 
                )

            [1] => Array
                (
                    [name] => [BRAND_NAME]
                    [selected] => 
                )

            [2] => Array
                (
                    [name] => [BRAND_NAME]
                    [selected] => 
                )

        )

    [children] => Array
        (
        )

    [parent] => 
)
 <div>
    <h4>{{ category.id }}</h4>
    <h3> {{ category.name }}</h3>
  </div>
<div>
  <h4> ID da Categoria </h4>
  <h3> Nome da Categoria</h3>
</div>

Categories

O Objeto categories é responsável por retornar um array as categorias cadastradas no painel.

Disponível nas páginas: Todas.

Para saber mais sobre como gerenciar categorias acesse: Wiki - Gerenciar categorias

Atributos Descrição
categories[0].slug Endpoint onde é acessado a categoria
categories[0].id Identificador único da categoria
categories[0].parent_id Identificador único da categoria mãe
categories[0].name Nome da categoria
categories[0].description Descrição da categoria
categories[0].title Titulo da Categoria (SEO)
categories[0].small_description Descrição detalhada da categoria
categories[0].link URL da categoria
categories[0].has_product Retorna 1 caso tenha produtos
categories[0].images Imagem por categoria
categories[0].children Subcategorias
  [0] => Array
  (
  [slug] => [SLUG]
  [id] => [ID]
  [parent_id] => [PARENT_ID]
  [name] => [NAME]
  [description] => [DESCRIPTION]
  [title] => [TITLE]
  [small_description] =>  [SMALL_DESCRIPTION]
  [link] => [URL_CATEGORY]
  [has_product] => 1
  [images] => Array
      (
          [0] => [URL_IMAGE]
      )

  [children] => Array
  (
      [0] => Array
      (
          [slug] => [CHILDREN_SLUG]]
          [id] => [CHILDREN_ID]
          [parent_id] =>  [PARENT_ID]
          [name] =>[CHILDREN_NAME]
          [description] =>[CHILDREN_DESC]
          [title] => 
          [small_description] => 
          [link] => [CHILDREN_LINK]
          [has_product] => 1
          [images] => 
          [children] => 
      )
      )
  )
  <ul>
   {% for category in categories %}
    <li>
     <a href="{{ category.link }}">
       {{ category.name }}
      </a>
      {% if category.children %}
       <ul class="menu-children">
        {% if category.images %}
          <img src="{{ category.images[0] }}" 
          alt="{{ category.name }}">
       {% endif %}
      {% for child in category.children %}
       <li>
        <a href="{{ child.link }}">{{ child.name }}</a>
       </li>
       {% endfor %}
      </ul>
      {% endif %}
      </li>
      {% endfor %}
  </ul>

Banners

O objeto banners é responsável por trazer os banner cadastrados no painel e mostra-lo conforme as características necessárias.

Disponível nas páginas: Todas.

Para saber mais sobre como gerenciar banners acesse: Wiki - Cadastrar Banners | Wiki - Cadastrar Banners Banner JavaScript | Wiki - Banner por Categoria ou Marca

Para imprimir um banner,você poderá utilizar o helper de banner, onde exibem os banners em um bloco pre-moldado. Segue abaixo algumas chamadas:

Atributos Descrição
banner.home Exibido somente na página inicial do site. Antes dos produtos
banner.footer Exibido em todas as páginas, no rodapé.
banner.bottom Banner exibido na pagina na parte inferior
banner.side Exibido em todas as páginas, na lateral da loja
banner.title Exibido em todas as páginas antes do título
banner.floating Exibido na vitrine, apenas arquivos em FLASH
banner.popup Exibido na vitrine
banner.showcase Exibido somente na página inicial do site, ao lado do menu de categorias.
banner.extra1 Exibido em layouts personalizados
banner.extra2 Exibido em layouts personalizados
banner.extra3 Exibido em layouts personalizados
banner.extra4 Exibido em layouts personalizados

Se você deseja criar o banner do seu jeito, poderá utilizar as seguinte informações, lembrando que o padrão de chamada é sempre: banners.{position}.{key}.

Sintaxe: banners.{position}.{key}.

Atributos Descrição
banners.{position}.id Identificador único do banner
banners.{position}.type Tipo do banner, valores possíveis: “javascript”, “image”, “flash”, “gallery”
banners.{position}.description Descrição do banner
banners.{position}.src URL do banner
banners.{position}.link Link do banner
banners.{position}.width Largura da imagem ou do objeto flash
banners.{position}.height Altura da imagem ou do objeto flash
banners.{position}.alt Texto alternativo para a imagem do banner
banners.{position}.target Se o link vai abrir em uma nova janela ou na mesma
banners.{position}.banner_alt Banner alternativo caso não tenha suporte ao flash (apenas quando o tipo for “flash”), possui as chaves “src”, “link”, “target”
banners.{position}.margin_top Especifica a posição do banner referente ao topo da página (apenas banner “floating”)
banners.{position}.margin_left Especifica a posição do banner referente ao lado esquerdo da página
banners.extra1.interval* Intervalo da transição entre cada slide 3 a 10 (segundos)
banners.extra1.velocity* Velocidade da animação 0.5, 1.0, 1.5, 2.0
banners.extra1.animation* Tipo da animação blind, block, cube, cubeSpread, fade, fadeFour, glassCube, horizontal, tube
banners.extra1.stop_over* Pausar a troca de slides quando o mouse estiver sobre o banner 0, 1
banners.extra1.navigation* Tipos de navegação 0, 1, 2
banners.extra1.progressbar * Exibir barra de progresso 0, 1

* Disponível apenas e banners em js.

Array
(
[side] => Array
    (
      [id] => 18
      [type] => javascript
      [enable_navigation_keys] => 
      [interval] => 5000
      [velocity] => 0.5
      [class] => box_skitter_large
      [numbers] => 1
      [animation] => fade
      [stop_over] => 1
      [btn_pause] => 0
      [navigation] => 1
      [progressbar] => 
      [dynamic_size] => 
      [slides] => Array
          (
              [0] => Array
                  (
                      [image] =>[URL_IMAGE]
                      [link] =>[LINK]
                      [label] => [LABEL]
                      [target] => _blank
                      [width] => 265
                      [height] => 370
                  )

              [1] => Array
                  (
                      [image] =>[URL_IMAGE]
                      [link] =>[LINK]
                      [label] => [LABEL]
                      [target] => _blank
                      [width] => 265
                      [height] => 370
                  )
          )

  )

[home] => Array
  (
      [id] => 4
      [type] => javascript
      [enable_navigation_keys] => 
      [interval] => 5000
      [velocity] => 0.5
      [class] => box_skitter_large
      [numbers] => 1
      [animation] => fade
      [stop_over] => 1
      [btn_pause] => 0
      [navigation] => 1
      [progressbar] => 
      [dynamic_size] => 
      [slides] => Array
          (
              [0] => Array
                  (
                      [image] =>[URL_IMAGE]
                      [link] =>[LINK]
                      [label] => [LABEL]
                      [target] => _blank
                      [width] => 265
                      [height] => 370
                  )

              [1] => Array
                  (
                      [image] =>[URL_IMAGE]
                      [link] =>[LINK]
                      [label] => [LABEL]
                      [target] => _blank
                      [width] => 265
                      [height] => 370
                  )
          )

  )

)

        {% if banners.home %}
           {{ banner.home }}
        {% endif %}
      
         {% if banners.extra1 %}
           {{ banner.extra1 }}
        {% endif %}

{% if banners.home %}
    <a href="{{ banners.home.link }}" 
       target="{{ banners.home.target }}">
      <img src="{{ banners.home.src }}" 
          width="{{ banners.home.width }}"
          alt="{{ banners.home.alt }}" >
    </a>
{% endif %}
            
{% for slide in banners.extra1.slides %}
    <a href="{{ slide.link }}" target="{{ slide.target }}">
        <img src="{{ slide.image }}" alt="{{ slide.label }}">
    </a>
{% endfor %}                

Tags

O Objeto tags retorna uma lista com as palavras mais buscadas na loja.

Atributos Descrição
tags[0].font_size Tamanho da fonte com base na quantidade de vezes que foi buscada
tags[0].url URL para a página de busca
tags[0].word Palavra buscada
  Array
  (
      [0] => Array
          (
              [word] => Palavra1
              [font_size] => 100
              [url] => /Palavra1
          )

      [1] => Array
          (
              [word] => Palavra2
              [font_size] => 220
              [url] => /Palavra2
          )

      [2] => Array
          (
              [word] => Palavra3
              [font_size] => 100
              [url] => /Palavra3
          )

      [3] => Palavra1
          (
              [word] => Palavra4
              [font_size] => 100
              [url] => /Palavra4
          )
  )
{% for tag in tags %}
<a href="{{ tag.url }}" style="font-size: {{ tag.font_size }}%">
   {{ tag.word }}
</a>
{% endfor %}

Filters

O Objeto filters retorna um array com filtros que da a possibilidade de montar filtros com caracteristicas e variações de produtos.

Disponível nas páginas: catalog, search, home

Para saber mais sobre como gerenciar os Filtros Inteligentes acesse: Wiki - Filtro Inteligente

Chaves principais Descrição
categories Lista de categorias
brands Lista de marcas
prices Lista de preços
variations Lista de variações
features Lista de características

Nessas chaves são retornadas informações secundarias no filtro.

Chaves secundárias Descrição
title Título do filtro (ex: Categorias, Filtrar por marca, Faixa de preços)
items Lista de itens
  [categories] => Array
  (
  [title] => Categorias
  [applied] => 
  [items] => Array
  (
      [0] => Array
      (
      [title] => EPSON
      [count] => 2
      [url] => /mvc/store/catalog/?categoria=8
      [type] => link
      [applied] => 0
      )

      [1] => Array
      (
      [title] => HP
      [count] => 18
      [url] => /mvc/store/catalog/?categoria=10
      [type] => link
      [applied] => 0
      )

  )

  )

  [brands] => Array
  (
  [title] => Filtrar por Marca
  [applied] => 
  [items] => Array
  (
      [0] => Array
      (
          [title] => EPSON
          [count] => 2
          [url] => /mvc/store/catalog/?categoria=2&loja=332719&marca=marca_epson
          [type] => checkbox
          [applied] => 0
          [name] => marca
          [value] => marca_epson
      )

      [1] => Array
      (
          [title] => HP
          [count] => 18
          [url] => /mvc/store/catalog/?categoria=2&loja=332719&marca=marca_hp
          [type] => checkbox
          [applied] => 0
          [name] => marca
          [value] => marca_hp
      )

  )

  )

  [prices] => Array
  (
  [title] => Faixa de Preços
  [applied] => 
  [items] => Array
  (
  [0] => Array
      (
          [title] => De R$ 22,99 a R$ 156,81
          [count] => 13
          [url] => /mvc/store/catalog/?categoria=2&loja=332719&range=22.99-156.81
          [type] => checkbox
          [applied] => 0
          [name] => range
          [value] => 22.99-156.81
          [from] => 22.99
          [to] => 156.81
      )

  [1] => Array
      (
          [title] => De R$ 156,82 a R$ 291,63
          [count] => 4
          [url] => /mvc/store/catalog/?categoria=2&loja=332719&range=156.82-291.63
          [type] => checkbox
          [applied] => 0
          [name] => range
          [value] => 156.82-291.63
          [from] => 156.82
          [to] => 291.63
      )

  [2] => Array
      (
          [title] => De R$ 561,28 a R$ 696,09
          [count] => 2
          [url] => /mvc/store/catalog/?categoria=2&loja=332719&range=561.28-696.09
          [type] => checkbox
          [applied] => 0
          [name] => range
          [value] => 561.28-696.09
          [from] => 561.28
          [to] => 696.09
      )

      )

      )

Pages

O Objeto pages, contém informações das páginas da loja, como por exemplo a página atual e as paginas personalizadas.

Disponível nas páginas: todas

Para saber mais sobre Paginas Personalizadas acesse: Wiki - Paginas Personalizadas

Atributos Característica
pages.current Em qual página o usuário está navegando, ex: home
pages.custom Páginas Personalizadas cadastradas no Painel Administrativo

A baixo temos uma lista com retornos possíveis do Objeto pages.current

Retorno de pages.current Descrição
home Página inicial da loja
search Página de busca
catalog Página de catálogo (categoria)
product Página de produto
checkout_cart Carrinho de compras
register Página de cadastro
login Página de login
checkout_payment Escolha de pagamento na finalização de compra
company Quem somos
map Mapa do site

Em paginas personalizadas é retornado o slug da pagina.

  Array
  (
  [current] => home
  [custom] => Array
      (
      [0] => Array
          (
          [id] => 2
          [url] => /como-comprar
          [slug] => como-comprar
          [conteudo] => Para comprar em nossa loja é muito fácil ...
          [info] => comprar
          [name] => Como comprar
          [default] => 
          [status] => 1
          )

      [1] => Array
          (
          [id] => 3
          [url] => /seguranca
          [slug] => seguranca
          [conteudo] => Com relação aos seus dados pessoais de endereçamento, pagamento e conteúdo do pedido, você pode estar certo de que não serão utilizados para outros fins que não o de processamento dos pedidos realizados, não sendo portanto divulgados em hipótese alguma.
          [info] => seguranca
          [name] => Seguranca
          [default] => 
          [status] => 1
          )

      [2] => Array
          (
          [id] => 4
          [url] => /envio
          [slug] => envio
          [conteudo] => Todos os produtos serão enviados de acordo com a forma escolhida pelo cliente, em até 2 dias úteis da confirmação do pagamento. O prazo para a entrega varia de acordo com a forma de envio escolhida e não é de nossa responsabilidade, ,já que a entrega fica a cargo dos Correios....
          [info] => envio
          [name] => Envio
          [default] => 
          [status] => 1
          )
      )
  )
  {% if pages.current == 'home' %}
      <h4>
      Você está na nossa página inicial, navegue na nossa loja!
      </h4>
  {% else %}
      <h5>
          <a href="#">
          Clique a aqui para voltar a home
          </a>
      </h5>
  {% endif %}
  <ul>
  {% for custom in pages.custom %}
    <li>
      <a href="{{ custom.url }}">
          {{ custom.name }}
      </a>
    </li>
  {% endfor %}
  </ul>

Paginate

O Objeto paginate retorna um helper de paginação de produtos.

Disponível nas páginas: catalog, search

Se quiser utilizar um snippet pronto, utilize a seguinte chamada:

Ao lado um exemplo de montagem da exibição da paginação personalizada.

Para mais informações, visite a documentação oficial do helper Paginator.

{{ paginate.counter('Encontramos {:count} produto(s) em {:pages} página(s)') }}
   
{% if paginate.params.pageCount > 1 %}
 {{ paginate.first('Primeira', {'class': 'page-first'}) }}

 {% if paginate.hasPrev %}
   {{ paginate.prev('Anterior', {'class': 'page-prev'}) }}
 {% endif %}

 {{ paginate.numbers({
     'modulus': 9,
     'separator': '|',
     'class': 'page-link',
     'currentClass': 'page-current'
 }) }}

 {% if paginate.hasNext %}
     {{ paginate.next('Próxima', {'class': 'page-next'}) }}
 {% endif %}

 {{ paginate.last('Última', {'class': 'page-last'}) }}
 {% endif %}
   {{ element('snippets/pagination') }}

Seals

A Tray possui integração com 2 selos: Loja Protegida e Ebit.

Esses selos só são retornados caso estejam configurados na loja.

Disponível nas páginas: todas

Atributos Descrição
seals.ebit Retorna o HTML do selo do Ebit
seals.hackersafe Retorna o HTML do selo Loja Protegida
   {{ seals.ebit }}	
   {{ seals.hackersafe }}	 

ProductFeatured

Esse objeto retorna os produtos em destaque na categoria atual. As informações retornadas são as mesmas da Products.

Disponível nas páginas: catalog

   <a href="{{ productFeatured.link }}" 
   title="{{ productFeatured.name }}">
       <img src="{{ productFeatured.images[0].large }}" 
       alt="{{ productFeatured.name }}">
   </a>

PaymentMethods

Esse objeto trás todas as informações de formas de pagamentos a vista e a prazo cadastradas no painel.

Disponível nas páginas: Todas

Para saber mais sobre como gerenciar os meios de pagamento acesse: Wiki - Configurar formas de Pagamento

Nesse Objeto são retornadas as seguintes informações:

Atributos Descrição
paymentMethods.order Formas de pagamento à vista
paymentMethods.credit Formas de pagamento à prazo
Atributos Secundárias Descrição
display_name Nome da forma de Pagamento
thumbnail.url Url da imagem ilustrativa

Ao lado, exemplos de aplicação do Objeto paymentMethods:

Array ( 
 [order] => Array ( 
   [boletoonline] => Array ( 
     [display_name] => Boleto - TrayCheckout
     [thumbnail] => Array (
       [url]=> http://image.tcdn.com.br/img.png 
     )
   )
   [cartaojcbtraycheckout] => Array ( 
     [display_name] => CartãoJCB - TrayCheckout
     [thumbnail] => Array ( 
      [url] => http://image.tcdn.com.br/img.png 
      )
    )
  )
  [credit] => Array ( 
    [cartaovisa] => Array( 
      [display_name] => Visa - TrayCheckout 
      [thumbnail] => Array (
       [url] =>http://image.tcdn.com.br/img.png 
       )
   )
   [cartaomastercard] => Array ( 
     [display_name] => MasterCard -TrayCheckout 
     [thumbnail] => Array (
      [url] => http://image.tcdn.com.br/img.png 
      )
   ) 
   )
)

   <h5> A Vista </h5>
   {% for payment in paymentMethods.order %}
       <img src="{{ payment.thumbnail.url }}" alt="{{ payment.display_name }}">
   {% endfor %}
   <h5> A Prazo </h5>
   {% for payment in paymentMethods.credit %}
       <img src="{{ payment.thumbnail.url }}" alt="{{ payment.display_name }}">
   {% endfor %}

Product

Esse objeto trás todas as informações do produto, juntamente com algumas caracteristicas e configurações de recursos relacionados a ele.

Disponível nas páginas: Product

Para saber mais sobre como gerenciar produtos acesse: Wiki - Gerenciar produtos

Nesse Objeto são retornadas as seguintes informações:

Atributos Descrição
product.ean Exibe o código de barras do produto
product.modified Retorna a data de motificação do produto
product.is_kit Retorna 1 caso o produto tenha kit
product.slug Retorna o slug do produto
product.id Identificador único do produto
product.name Nome do produto
product.description Exibe a descrição completa do produto
product.description_small Exibe um resumo do produto
product.price Valor do produto
product.cost_price Retorna o preço de custo do produto
product.start_promotion Exibe a data de ínicio da promoção do produto
product.end_promotion Exibe a data de término da promoção do produto
product.brand Exibe a marca do produto
product.brand_id Retorna o id da marca do produto
product.model Exibe o modelo do produto
product.weight Exibe o peso do produto em gramas
product.length Exibe o comprimento do produto em centímetros
product.width Exibe a largura do produto em centímetros
product.height Exibe a altura do produto em centímetros
product.stock Quantidade de produtos em estoque
product.category_id Identificador único da categoria principal do produto
product.category_name Retorna o nome da categoria principal do produto
product.available Retorna se o produto está disponível
product.availability Informação de disponibilidade do produto
product.reference Exibe o código de referência do produto
product.has_variation Retorna verdadeiro caso o produto contenha variações
product.has_acceptance_terms Retorna verdadeiro se o produto possuir termos de aceitação
product.has_buy_together Retorna 1 caso o produto possua “Compre Junto”
product.additional_button Retorna verdadeiro se deve-se exibir selo adicional
product.additional_message Exibe a mensagem adicional do produto
product.quantity_sold Exibe a quantidade produtos vendidos
product.image Retorna 1 caso o produto tenha imagem
product.payment_option Retorna uma string com as opções de pagamento configuradas
product.payment_option_details Retorna as informações das formas de pagamento display_name, plots, value, type, tax
product.related_categories Retorna o ID das categorias relacionadas ao produto
product.release_date Retorna a data de lançamento do produto
product.virtual_product Retorna verdadeiro se o produto for virtual
product.minimum_stock Retorna o estoque minimo do produto
product.included_items Itens inclusos na compra do produto
product.related_products Array dos produtos relacionados
product.free_shipping Retorna verdadeiro se possuir frete grátis
product.ipi Retorna o ipi do produto
product.acceptance_term  
product.warranty_days Retorna a quantidade de dias em garantia
product.availability_days  
product.cubic_weight Retorna o peso cubico do produto
product.video Exibe a url do vídeo inserido no produto
product.metatag retorna um array com as meta tags configuradas no produto
product.payment_option_html Retornas um bloco html com as opções de pagamentos
product.percentage_discount Retorna a porcentagem de desconto do produto.
product.payment Retorna opões de parcelamento do produto
product.compared_product Retorna verdadeiro se o produto estiver na comparação
product.price_w_coupon Retorna o preço caso esteja com Cupon de desconto aplicado.
product.images Retorna as imagens do produto
product.variants Retorna um array com todas as informações das variações,os indices retornados são: id, ean, product_id, price, stock, minimum_stock, reference, start_promotion, end_promotion, promotional_price, payment_option, illustrative_image, Sku, VariantImage, payment_option_details
product.properties Retorna as caracteristicas do produto
product.price_offer Valor do produto em promoção
product.featured Retorna verdadeiro se for destaque
product.new Retorna verdadeiro se for lançamento
product.minimum_price Retorna o preço minimo do produto.
product.ranking count rating Ranking (avaliação) do produto
product.link Link para a página do produto
product.show_price Retorna 1 caso as informações de preço devam ser exibidas
product.upon_request Retorna se o produto está sob consulta
product.has_other_prices Retorna se o produto possui outros preços.
product.additional_information Exibe a informação adicional (máximo de 256 caracteres)
product.minimum_variant_price Retorna o melhor valor entre as variações do produto
product.payment_detail Retorna os detalhes das formas de pagamento
Array
 (
     [ean] => 
     [modified] => 2017-08-10 08:40:57
     [is_kit] => 0
     [slug] =>categoria/produto-teste
     [id] => 8
     [name] => Produto Teste
     [title] => 
     [description] => 
     [description_small] => Descrição
     [price] => 60
     [cost_price] => 25.00
     [start_promotion] => 2017-01-01
     [end_promotion] => 2017-01-31
     [brand] => Marca
     [brand_id] => 4
     [model] => xpto
     [weight] => 2
     [length] => 1
     [width] => 10
     [height] => 15
     [stock] => 720
     [category_id] => 14
     [category_name] => Categoria
     [available] => 1
     [availability] => 
     [reference] => M15001
     [additional_button] => 0
     [has_variation] => 0
     [has_acceptance_terms] => 0
     [has_buy_together] => 1
     [additional_message] => lorem ipsum
     [warranty] => 
     [quantity_sold] => 0
     [image] => 0
     [payment_option] => R$ 58,20 à vista com desconto Boleto - TrayCheckout
     [payment_option_details] => Array
    (
       [0] => Array
       (
           [display_name] => Boleto
           [type] => bank_billet
           [plots] => 1
           [value] => 58.20
           [tax] => 0.00
       )

    )

     [related_categories] => Array
         (
             [0] => 4
             [1] => 6
         )

     [release_date] => 
     [shortcut] => produto-teste
     [virtual_product] => 
     [minimum_stock] => 0
     [promotion_id] => 4
     [included_items] => Informação Adicional 2
     [related_products] => Array
     [free_shipping] => 1
     [current_price] => 60.00
     [ipi] => 0
     [acceptance_term_option] => 2
     [acceptance_term] => 
     [warranty_days] => 0
     [availability_days] => 0
     [cubic_weight] => 32
     [video] => 
     [metatag] => Array
    (
       [0] => Array
       (
        [type] => description
        [content] => Informação Adicional Teste
       )

       [1] => Array
       (
        [type] => description
        [content] => 
       )

       [2] => Array
       (
        [type] => keywords
        [content] => 
       )

    )

     [payment_option_html] =>  R$  58,20 à  vista com  desconto Boleto - TrayCheckout
     [percentage_discount] => 0.000000
     [payment] =>  R$ 58,20 à  vista com  desconto Boleto - TrayCheckout
     [product_price] => 60.00
     [calculated_price] => 60.00
     [compared_product] => 
     [price_w_coupon] => 60.00
     [images] => Array
         (
         )

     [variants] => Array
         (
         )

     [properties] => Array
         (
         )

     [price_offer] => 0
     [featured] => 1
     [new] => 1
     [minimum_price] => 0.00
     [ranking] => Array
         (
             [count] => 0
             [rating] => 0
             [ratingText] => 
         )

     [link] => http://loja.commercesuite.com.br/categoria/produto-teste
     [show_price] => 1
     [upon_request] => 
     [has_other_prices] => 
     [iconsRight] =>
     [iconsBottom] =>
     [iconsTop] =>
     [bonus] => 
     [wishlist] =>
     [social_content] =>
     [bundle] => 
     [additional_information] =>
     [additional_information_custom] =>
     [minimum_variant_price] => 0
     [payment_detail] => 
 )

<div>
   Codigo do produto: 
   <span>{{ product.id }}</span>
   <h3>{{ product.name }}</h3>
   <h3>{{ product.brand }}</h3>
</div>
{% if product.featured %}
   <span style="color:#fff; background:red">
   Produto em destaque!
   </span>
{% endif %}
<div>
{% if product.price_offer > 0 and product.show_price %}
   Esse produto está em promoção!
{% endif %}
{% if product.price > 0 and product.show_price %}
   <span> De: R$:</span>
   {{ product.price|currency }} 
   <small> por:</small>
{% endif %}
{{ product.payment }}
{% set ranking = product.ranking %}
{% if ranking %}
   Quantidade de avaliações: {{ ranking.count }}
   Nota do produto: {{ ranking.rating }}
{% endif %}
{{ product.description }}
</div>
   {% set images = product.images %}
   <img src="{{ images[0].small }}" alt="">
   {% set images = product.images %}
   <img src="{{ images[0].medium }}" alt="">
   {% set images = product.images %}
   <img src="{{ images[0].large }}" alt="">
   {% set images = product.images %}
   <img src="{{ images[0].full }}" alt="">

Products

O Objeto products está disponível de acordo com as regras de cada página:

  • Na “home” contém os produtos em destaque;
  • Na “catalog” contém os produtos de uma categoria específica de acordo com os filtros aplicados;
  • Na “search” contém os produtos de acordo com os critérios da busca e os filtros aplicados.

Disponível nas páginas: home, catalog, search

Para saber mais sobre como gerenciar produtos acesse: Wiki - Gerenciar produtos

As requisições de produtos sempre retornarão um array de dados onde cada chave está descrita abaixo:

Atributos Descrição
products.id Identificador único do produto
products.name Nome do produto
products.description_small Exibe um resumo do produto
products.price Valor do produto
products.start_promotion Exibe a data de ínicio da promoção do produto
products.end_promotion Exibe a data de término da promoção do produto
products.brand Exibe a marca do produto
products.model Exibe o modelo do produto
products.weight Exibe o peso do produto em gramas
products.length Exibe o comprimento do produto em centímetros
products.width Exibe a largura do produto em centímetros
products.height Exibe a altura do produto em centímetros
products.stock Quantidade de produtos em estoque
products.category_id Identificador único da categoria principal do produto
products.available Retorna se o produto está disponível
products.availability Informação de disponibilidade do produto
products.reference Exibe o código de referência do produto
products.additional_button Retorna verdadeiro se deve-se exibir selo adicional
products.has_variation Retorna verdadeiro caso o produto contenha variações
products.additional_message Exibe a mensagem adicional do produto
products.warranty Retorna a quantidade de dias em garantia
products.quantity_sold Exibe a quantidade produtos vendidos
products.images Retorna as imagens do produto
products.shortcut  
products.payment_option Retorna uma string com as opções de pagamento configuradas
products.related_categories Retorna o ID das categorias relacionadas ao produto
products.release_date Retorna a data de lançamento do produto
products.slug Retorna o slug do produto
products.free_shipping Retorna verdadeiro se possuir frete grátis
products.Category Catgeorias do produto id, name
products.image Retorna 1 caso o produto tenha imagem
products.payment Retorna opões de parcelamento do produto
products.payment_option_html Retornas um bloco html com as opções de pagamentos
products.product_price  
products.calculated_price  
products.variants Retorna um array com todas as informações das variações,os indices retornados são: id, ean, product_id, price, stock, minimum_stock, reference, start_promotion, end_promotion, promotional_price, payment_option, illustrative_image, Sku, VariantImage, payment_option_details
products.properties Retorna as caracteristicas do produto
products.price_offer Valor do produto em promoção
products.featured Retorna verdadeiro se for destaque
products.new Retorna verdadeiro se for lançamento
products.payment_option_details Retorna as informações das formas de pagamento display_name, plots, value, type, tax
products.minimum_price Retorna o preço minimo do produto.
products.ranking count rating Ranking (avaliação) do produto
products.link Link para a página do produto
products.show_price Retorna 1 caso as informações de preço devam ser exibidas
products.upon_request Retorna se o produto está sob consulta
products.has_other_prices Retorna se o produto possui outros preços.
products.bonus_html Retorna html com o recurso de pontos
 Array
(
 [0] => Array
  (
   [id] => 72
   [name] => Produto teste
   [description_small] => 
   [price] => 500.00
   [start_promotion] => 2017-01-01
   [end_promotion] => 2017-01-31
   [brand] => teste
   [model] => 
   [weight] => 
   [length] => 
   [width] => 
   [height] => 
   [stock] => 20
   [category_id] => 2
   [available] => 1
   [availability] => 
   [reference] => 
   [additional_button] => 1
   [has_variation] => 
   [additional_message] => 
   [warranty] => 
   [quantity_sold] => 
   [images] => Array
   (
   [0] => Array
   (
       [small] => https://images.tcdn.com.br/img/img_prod/30_.jpg
       [medium] => https://images.tcdn.com.br/img/img_prod/90_72_.jpg
       [large] => https://images.tcdn.com.br/img/img_prod/180_.jpg
       [full] => https://images.tcdn.com.br/img/img_prod/72_.jpg
   )
   )

   [shortcut] => teste-hoje
   [payment_option] => 72
   [related_categories] => 72
   [release_date] => 
   [slug] => mitica/teste-hoje
   [free_shipping] => 
   [Category] => Array
   (
       [id] => 2
       [name] => Mítica
   )

   [image] => 1
   [payment] => R$ 450,00 à  vista com  desconto Boleto - TrayCheckout
   [payment_option_html] => R$ 450,00 à  vista com  desconto Boleto - TrayCheckout
   [product_price] => 500.00
   [calculated_price] => 500.00
   [variants] => 
   [properties] => Array
       (
           [Pais] => Array
               (
                   [0] => Brasil
               )
       )
   [price_offer] => 0.00
   [featured] => 0
   [new] => 0
   [payment_option_details] => Array
   (
       [0] => Array
           (
               [display_name] => Boleto 
               [plots] => 1
               [value] => 450.00
           )

   )

   [minimum_price] => 0.00
   [ranking] => Array
   (
       [count] => 0
       [rating] => 0
       [ratingText] => 
   )

   [link] => http://loja.commercesuite.com.br/categoria/produto-teste
   [show_price] => 1
   [upon_request] => 
   [has_other_prices] => 
   [bonus_html] => 
   )
)

<div>
   Codigo do produto: <span>{{ products[0].id }}</span>
   <h3>{{ products[0].name }}</h3>
   <h3>{{ products[0].brand }}</h3>
</div>
{% if products[0].featured %}
   <span style="color:#fff; background:red">Produto em destaque!</span>
{% endif %}
<div>
   {% if products[0].price_offer > 0 and products[0].show_price %}
   Esse produto está em promoção!
   {% endif %}
   {% if products[0].price > 0 and products[0].show_price %}
   <span> De: R$:</span>{{ products[0].price|currency }} <small> por:</small>
   {% endif %}
   {{ products[0].payment }}
   {% set ranking = products[0].ranking %}
   {% if ranking %}
   Quantidade de avaliações: {{ ranking.count }} <br>
   Nota do produto: {{ ranking.rating }}
   {% endif %}
   {{ products[0].description }}
</div>
   {% set images = products.images %}
   <img src="{{ images[0].small }}" alt="">
   {% set images = products.images %}
   <img src="{{ images[0].medium }}" alt="">
   {% set images = products.images %}
   <img src="{{ images[0].large }}" alt="">
   {% set images = products.images %}
   <img src="{{ images[0].full }}" alt="">