A entidade de item representa itens comercializáveis pela plataforma. Essa entidade pode representar produtos, serviços, tickets, entre outros.
Dados básicos
Os dados básicos do item podem ser acessados a partir das seguintes propriedades:
- id
Número de identificação do item - prices
Coleção de registros da entidade ItemPrice representando os preços do item. Cada preço tem:
- price
Valor do preço de venda do item, já com as precificações aplicadas, se houver. Outras propriedades na documentação da entidade.
- price
- main_image
Imagem principal do item - averageRate
Avaliação média do item - fiveStarsCommentsPercentage
Percentual de avaliações 5 - fourStarsCommentsPercentage
Percentual de avaliações 4 - threeStarsCommentsPercentage
Percentual de avaliações 3 - twoStarsCommentsPercentage
Percentual de avaliações 2 - oneStarCommentsPercentage
Percentual de avaliações 1 - zeroStarCommentsPercentage
Percentual de avaliações 0 - images
Coleção com todas as imagens do item. Cada imagem tem:- source
Caminho da imagem no servidor - main
Flag sobre a imagem ser a principal ou não
- source
- categories
Coleção de registros da entidade Category representando cada categoria do item. - tags
Coleção com as tags do item. Cada tag tem:
- name
Nome da tag
- name
- identification
Coleção com os dados de identificação do item. Cada identificação tem:
- name
Nome do item - sku
Código SKU do item - ean
Código EAN do item
- name
- inventory
Coleção com os dados do inventário do item. Cada inventário tem:- max_quantity
Estoque máximo - available_quantity
Quantidade disponível - min_quantity
Estoque mínimo
- max_quantity
- urls
Coleção de URLs do item. Cada URL tem:- url
URL do item - redirect_to
Caminho de redirecionamento da URL do item
- url
- measures
Coleção de medidas do item. Cada medida tem:
- gross_weight
Peso bruto do item - net_weight
Peso líquido do item - width
Largura do item - height
Altura do item - length
Comprimento do item - box_width
Largura da caixa do item - box_height
Altura da caixa do item - box_length
Comprimento da caixa do item
- gross_weight
- variations
Coleção de variações do item. São tratadas como itens a parte, sua estrutura é igual à do item pai.
Exemplo:
Nome do item: {{ $item->identification->first()->name }} (SKU: $item->identification->first()->sku }}
Preço: {{ $item->prices->first()->price }}
<a href="{{ $item->urls->first()->url }}">Clique aqui e veja mais detalhes</a>
Campos extras
Para carregar campos extras deve-se, a partir de uma instância da entidade Item, chamar a propriedade extraFields
. Essa propriedade contém uma Collection com todos os campos extras relacionados ao item e seus respectivos valores, onde cada índice da coleção pode ser acessado pelo slug do campo extra. Exemplo:
$item->extraFields->get('slug')
Para acessar os valores de cada campo extra, a propriedade values
está disponível e retorna uma nova instância do objeto Collection com cada um dos n valores que um item pode ter para o mesmo campo extra. Dessa forma, para acessar os valores dos campos extras de um item, pode-se fazer:
@foreach($item->extraFields as $slug => $extraField)
// Label do campo extra
{{$extraField->label}}
// Slug do campo extra que pode ser acessado além do valor encontrado em $slug
{{$extraField->slug}}
// Valores do campo extra
@foreach($extraField->values as $value)
// Para campos de valores simples (texto, numérico) ou valores grandes (textarea, wysiwyg)
{{$value->value}}
// Para campos com opções
{{$value->extraFieldOption->key}}
{{$value->extraFieldOption->label}}
{{$value->extraFieldOption->order}}
// Para campos de relação com entidade, onde 'record' retorna uma instancia da entidade relacionada
{{$value->record->...}
// Para campos de arquivos/imagens, podendo ser combinado com o Thumbor
{{$value->source}}
@endforeach
@endforeach
O exemplo acima mostra como percorrer todos os valores de todos os campos extras através de dois loops. Para pegar os valores para um único campo extra, a instrução pode ser um pouco mais simples. Veja a seguir:
{{ $item->extraFields->get('slug') }}
O código acima retornará a relação do item com o campo extra. Caso a relação não exista, ou seja, caso o item não tenha nenhum valor com esse campo extra, o retorno será vazio (null
). É uma boa prática verificar se a relação é diferente de vazio para prosseguir:
@if(null !== $item->extraFields->get('slug'))
...
@endif
Uma vez que exista um ou mais valores para o campo extra para o item a propriedade values
retornará uma coleção com todos esses valores e, como mostrado acima, poderá ser iterado num loop (foreach, for e etc) ou ainda, caso tenha somente um valor, o método first()
da coleção pode ser chamado para pegar o primeiro registro de valor:
@if(null !== $item->extraFields->get('slug'))
// Para campos de valores simples (texto, numerico) ou valores grandes (textarea, wysiwyg)
{{ $item->extraFields->get('slug')->values->first()->value }}
// Para campos com opções
{{ $item->extraFields->get('slug')->values->first()->extraFieldOption->key }}
{{ $item->extraFields->get('slug')->values->first()->extraFieldOption->label }}
{{ $item->extraFields->get('slug')->values->first()->extraFieldOption->order }}
// Para campos de relação com entidade, onde 'record' retorna uma instancia da entidade relacionada
{{ $item->extraFields->get('slug')->values->first()->record->... }}
// Para campos de arquivos/imagens, podendo ser combinado com o Thumbor
{{ $item->extraFields->get('slug')->values->first()->source }}
@endif
Grupos de componentização
Para carregar campos extras deve-se, a partir de uma instância da entidade Item, chamar a propriedade componentizations
. Essa propriedade contém todas as possibilidades de componentização do item em questão. Exemplo:
@foreach($item->componentizations as $componentization)
// Dados do grupo de componentização
{{$componentization->group->description}}
// Opções de componentização
@foreach($componentization->components as $component)
// Quantidade padrão do componente
{{$component->quantity}}
// Quantidade mínima possível do componente
{{$component->min_quantity}}
// Quantidade máxima possível do componente
{{$component->max_quantity}}
// Item componente (retorna uma nova instância da entidade Item que representa o componente relacionado)
{{$component->component}}
// Preço fixo do componente (geralmente definido se diferente do preço padrão do item componente)
{{$component->price->price}}
@endforeach
@endforeach
Comentários
0 comentário
Por favor, entre para comentar.