Twig Extension: f2_variant_list
Parâmetros recomendados:
ATENÇÃO: Para utilizar os parâmetros recomendados é obrigatório o uso do parâmetro “useSearchParameters“! Quando este parâmetro for configurado como “true“, fica obrigatório o envio dos parâmetros [REQUIRED] no caso o “page“ e “itemsPerPage“, a falta de um dos dois acarreta em erro 500!
-
useSearchParameter
-
page [REQUIRED]
-
itemsPerPage [REQUIRED]
-
sortOrder
-
filter
-
?? searchTerm
-
shoppingStoreReferenceCode
-
category
-
?? showFilters
-
showCustomVariants
-
showOnlyAvailable
-
showDescriptions
Passo 1
/flexyadmin/template/edit/system/FlexyFtwoStoreBundle:Product:list.html.twig |
{% set result = f2_variant_list(
{
'category.referenceCode'
: category ? category.referenceCode :
null
,
'page.current'
: app.request.get(
'page'
, 1),
'page.limit'
: app.request.get(
'items-per-page'
, 45),
'sort.order'
: app.request.get(
'order'
,
'createdAt-desc'
),
'product.property.filter'
: filterString,
'variant.withStock'
:
false
,
'variant.show.onlyWithStock'
:
true
,
'product.aggregateAllVariants'
:
true
,
'product.property.countResults'
:
false
,
'product.property.allowWithoutResults'
:
false
,
'distributionCenter.referenceCode'
: distributionCenterReferenceCode is defined ? distributionCenterReferenceCode :
null
}
) %}
{% set result = f2_variant_list(
{
'category.referenceCode'
: category ? category.referenceCode :
null
,
'page.current'
: app.request.get(
'page'
, 1),
'page.limit'
: app.request.get(
'items-per-page'
, 45),
'sort.order'
: app.request.get(
'order'
,
'createdAt-desc'
),
'product.property.filter'
: filterString,
'variant.withStock'
:
false
,
'variant.show.onlyWithStock'
:
true
,
'product.aggregateAllVariants'
:
true
,
'product.property.countResults'
:
false
,
'product.property.allowWithoutResults'
:
false
,
'distributionCenter.referenceCode'
: distributionCenterReferenceCode is defined ? distributionCenterReferenceCode :
null
,
'product.show.descriptions'
:
true
}
) %}
Passo 2
/flexyadmin/template/edit/system/FlexyFtwoStoreBundle:Include:variant.html.twig |
|
-
?? excludedProductTypes
-
?? returnFormat
Parâmetros depreciados:
Estes parâmetros ainda funcionam mas não devem ser indicados a clientes e se possivel deve-se indicar a modificação, destes pelos parâmetros acima.
-
category.referenceCode
-
shoppingStore.referenceCode
-
distributionCenter.referenceCode
-
sort.order
-
product.property.filter
-
product.property.countResults
-
product.aggregateAllVariants
-
product.show.descriptions
-
variant.withStock
-
page.limit
-
page.current
Parâmetros depreciados não mapeados:
-
distributionCenter.id
-
distributionCenter.withStock
-
product.property.allowWithoutResults
-
variant.show.onlyWithStock
-
product.filter.recursive
Descrição:
Esta twig extension tem o propósito de trazer uma listagem de produtos filtrada a partir dos parâmetros atribuídos a ela, ela deve funcionar em todas as partes do front-end.
No nosso template padrão ela é usada nas telas de mostrar todos os produtos e categorias.
Através dela é possível iterar até chegar ao objeto VariantDto, que é usado na construção do front de cada Variant de produto no arquivo: views/Include/variant.html.twig.
Para criar cada um destes items, são usados os atributos de cada VariantDto:
-
imagem do produto:
variant.product.masterImage
-
nome do item:
variant.product.name
-
preço final do item:
variant.finalPrice
Área de atuação:
-
Todos os produtos de Shopping.
-
Categorias de Shopping.
-
Todos os produtos de Loja.
-
Categorias de Loja.
Modo de Usar:
Visão geral:
f2_variant_list({
parâmetro: 'valor',
})
VariantDto setado como variant. A iteração do Variants que é igual a result.pagination.
variant
Parâmetros recomendados:
useSearchParameters:
Parâmetro utilizado para ativar os parâmetros recomendados.
Observações:
Este parâmetro é obrigatório para poder usar os parâmetros recomendados, ele foi criado pois temos que manter a compatibilidade com os parâmetros antigos.
Se este parâmetro não estiver sendo mandado ou estiver sendo mandado com valor 'false', o sistema irá ignorar parâmetros recomendados, mesmo se mandados.
Quando esse parâmetro não está ativo os parâmetros recomendados marcados com a flag [REQUIRED] não são mais obrigatórios.
Uso:
f2_variant_list({
useSearchParameters: true,
//Outros parâmetros...
})
Retorno exemplo da função usando parâmetro “useSearchParameters”: false (retornará listagem default):
{% set filters = {
useSearchParameters: false
} %}
{% set result = f2_variant_list(filters) %}
page [REQUIRED]
É utilizado para indicar a partir de qual página deve iniciar a busca.
Observações:
Se a paginação ainda estiver ativa na pagina, o paginador mostrará que essa pesquisa de produtos se encontra na pagina escolhida por esse parâmetro.
Com o código padrão da Flexy o código pega a página atual na qual o usuário estiver (quando passada pela URL), porém pode ser uma página fixa dependendo da necessidade do cliente apenas adicionando o numero da página desejada.
Uso:
f2_variant_list({
useSearchParameters: true,
page: app.request.get('page', 1),
})
Retorno exemplo da função usando parâmetro “page”(é necessário também enviar o parâmetro “itemsPerPage” junto ao “page“):
{% set filters = {
useSearchParameters: true,
page: app.request.get('page', 4),
itemsPerpage: app.request.get('itemsPerPage', 12)
} %}
{% set result = f2_variant_list(filters) %}
itemsPerPage [REQUIRED]
É utilizado para definir a quantidade de produtos que devem ser trazidos por página.
Observações:
O máximo de produtos por página é 100.
Se for mandado algum valor inválido ou acima do limite máximo a busca de produtos retornará vazia.
Uso:
f2_variant_list({
useSearchParameters: true,
itemsPerPage: app.request.get('itemsPerPage', 12)
})
Retorno exemplo da função usando parâmetro “itemsPerPage”(é necessário também enviar o parâmetro “page” junto ao “itemsPerPage“):
{% set filters = {
useSearchParameters: true,
page: app.request.get('page', 1)
itemsPerpage: app.request.get('itemsPerPage', 33)
} %}
{% set result = f2_variant_list(filters) %}
sortOrder
É usado para ordenar a lista de produtos que será trazida.
Observações:
No template padrão tem o comportamento de dar prioridade para a escolha do cliente de como quer que seja ordenado a listagem de produtos apresentada a ele (mandando o parâmetro por meio da URL).
Parâmetros aceitos:
-
category-asc
-
createdAt-desc ---> Lançamentos
-
sales-desc ---> Mais Vendidos
-
price-asc ---> Menor preço
-
price-desc ---> Maior preço
-
name-asc ---> Nome A - Z
-
name-desc ---> Nome Z - A
Uso:
f2_variant_list({
useSearchParameters: true,
sortOrder: app.request.get('order', 'category-asc')
})
Retorno exemplo da função usando parâmetro “sortOrder: 'price-desc'”(ordem descendente de preço neste caso):
{% set filters = {
useSearchParameters: true,
page: app.request.get('page', 1)
itemsPerpage: app.request.get('itemsPerPage', 15),
app.request.get('order', 'price-desc')
} %}
{% set result = f2_variant_list(filters) %}
filter
É usado para filtrar os produtos pelas propriedades.
Observações:
Padrão de filtros aceito:
'propertyReferenceCode|valueName|valueName*propertyReferenceCode|valueName'
Uso:
f2_variant_list({
useSearchParameters: true,
filter: app.request.get('filter', filterString)
})
{% set filters = {
useSearchParameters: true,
page: app.request.get('page', 1)
itemsPerpage: app.request.get('itemsPerPage', 15),
filter: app.request.get('filter', filterString)
} %}
{% set result = f2_variant_list(filters) %}
shoppingStoreReferenceCode
Tem o objetivo de dar contexto de loja para a lista trazida (mostrando produtos habilitados para essa Loja e levando em consideração apenas o estoque dessa Loja).
Observações:
Uso:
f2_variant_list({
useSearchParameters: true,
shoppingStoreReferenceCode: shoppingStore.referenceCode
})
Retorno exemplo da função usando parâmetro “shoppingStoreReferenceCode: shoppingStore.referenceCode
” (neste caso inserindo direto na url:
https://marketplace.ftwo.local/loja/aluguamoskajakes/produto/listar):
{% set filters = {
useSearchParameters: true,
page: app.request.get('page', 1)
itemsPerpage: app.request.get('itemsPerPage', 15),
shoppingStoreReferenceCode: shoppingStore.referenceCode
} %}
{% set result = f2_variant_list(filters) %}
category
É usado para trazer apenas os produtos que tiverem essa categoria marcadas em si.
Para usa-lo apenas deve-se mandar um referenceCode de uma categoria.
Quando shoppingStoreReferenceCode estiver sendo enviada como parâmetro irá pegar a categoria com o contexto de Loja.
Se preenchido o isShopping, será levado em consideração o contexto de shopping, mesmo que passado shoppingStoreReferenceCode.
Uso:
f2_variant_list({
useSearchParameters: true,
category: {
referenceCode: category ? category.referenceCode : null,
isShopping: category ? (category.shoppingStore ? 'false' : 'true') : null
}
})
{% set filters = {
useSearchParameters: true,
page: app.request.get('page', 1)
itemsPerpage: app.request.get('itemsPerPage', 15),
category: {
referenceCode: category ? category.referenceCode : null,
isShopping: category ? (category.shoppingStore ? 'false' : 'true') : null
}
} %}
{% set result = f2_variant_list(filters) %}
showCustomVariants
Tem o objetivo de trazer variações de produtos (além da variação principal).
Observações:
Se usado em contexto de Shopping, levará em consideração todas as Lojas deste Shopping.
Se usado em contexto de Loja, levará em consideração apenas os produtos dessa Loja.
Uso:
f2_variant_list({
useSearchParameters: true,
showOnlyAvailable: true
})
Retorno exemplo da função usando parâmetro “showOnlyAvilable: true”:
{% set filters = {
useSearchParameters: true,
page: app.request.get('page', 1)
itemsPerpage: app.request.get('itemsPerPage', 15),
showOnlyAvailable: true
}
} %}
{% set result = f2_variant_list(filters) %}
showDescriptions
Tem o objetivo de trazer as descrições de cada produto junto da listagem de produtos.
Uso:
f2_variant_list({
useSearchParameters: true,
showDescriptions: true
})
Retorno exemplo da função usando parâmetro “showDescriptions: true”:
{% set filters = {
useSearchParameters: true,
page: app.request.get('page', 1)
itemsPerpage: app.request.get('itemsPerPage', 15),
showDescriptions: true
}
} %}
{% set result = f2_variant_list(filters) %}
Parâmetros depreciados:
category.referenceCode:
Parâmetro recomendado para substituição desse: category.
Tem o objetivo de pesquisar pelo código de referência da categoria.
sort.order:
Parâmetro recomendado para substituição desse: sortOrder.
É usado para ordenar a lista de produtos que será trazida.
Uso:
f2_variant_list({
'sort.order': 'name-asc'
})
product.property.filter:
Parâmetro recomendado para substituição desse: filter.
É usado para filtrar os produtos pelas propriedades.
product.property.countResults:
Esse parâmetro foi depreciado, ele ainda pode ser passado mas não causa mais resultados, agora o objeto trazido pela Extension sempre traz a contagem de produtos com cada uma das propriedades.
Tinha o objetivo de trazer a quantidade de produtos listados que tenham cada uma das propriedades.
product.aggregateAllVariants:
Parâmetro recomendado para substituição desse: showCustomVariants.
Tem o objetivo de trazer variações de produtos (além da variação principal).
Uso:
f2_variant_list({
'product.aggregateAllVariants': true
})
product.show.descriptions:
Parâmetro recomendado para substituição desse: showDescriptions.
Tem o objetivo de trazer as descrições de cada produto junto da listagem de produtos.
Uso:
f2_variant_list({
'product.show.descriptions': true
})
variant.withStock:
Parâmetro recomendado para substituição desse: showOnlyAvailable.
Uso:
f2_variant_list({
'variant.withStock': true
})
page.limit:
Parâmetro recomendado para substituição desse: itemsPerPage.
É utilizado para definir a quantidade de produtos que devem ser trazidos por página.
Uso:
f2_variant_list({
'page.limit': 12
})
page.current:
Parâmetro recomendado para substituição desse: page.
É utilizado para indicar a partir de qual página deve iniciar a busca.
Uso:
f2_variant_list({
'page.current': 2
})
Esperamos que este material possa ter auxiliado no seu uso à plataforma Flexy, no entanto, caso ainda hajam dúvidas ou necessidades, por favor, entre em contato com nossa equipe de atendimento, que terá prazer em auxiliá-lo.
Comentários
0 comentário
Por favor, entre para comentar.