/o//commerce-media/accounts/-1/images/18669290?download=true

Liferay Enterprise Search Experiences (Blueprints)
DXP App
Analytics and Optimization
18669239

** This app is bundled with Liferay DXP 7.4 and Liferay DXP Quarterly Releases, see https://learn.liferay.com/dxp/latest/en/using-search/liferay-enterprise-search/activating-liferay-enterprise-search.html for more details.

Search Blueprints allows you to:
* Override Liferay DXP's search behavior with a visual query builder with options to influence search with no code
* Provide personalized and context aware search results
* Boost, hide, or filter results by various factors like proximity, categories, tags, user segment, etc.

Learn more at https://learn.liferay.com/dxp/latest/en/using-search/liferay-enterprise-search/search-experiences.html .

To learn about compatibility, see the compatibility matrix: https://help.liferay.com/hc/en-us/articles/360016511651#Liferay-Enterprise-Search.

DEVELOPER
DEVELOPER
21/11/24 18:49
Published date
21/11/24 18:49
Published Date
21/11/24 18:49
SUPPORTED OFFERINGS
Liferay PaaS
Supported Versions
7.3
Resource Requirements
Edition
EE
PRICE
S'ha produït un error mentre es processava la plantilla.
The following has evaluated to null or missing:
==> channel.items  [in template "3192443#3192485#null" at line 18, column 30]

----
Tip: It's the step after the last dot that caused this error, not those before it.
----
Tip: If the failing expression is known to legally refer to something that's sometimes null or missing, either specify a default value like myOptionalVar!myDefault, or use <#if myOptionalVar??>when-present<#else>when-missing</#if>. (These only cover the last step of the expression; to cover the whole expression, use parenthesis: (myOptionalVar.foo)!myDefault, (myOptionalVar.foo)??
----

----
FTL stack trace ("~" means nesting-related):
	- Failed at: #assign channelId = channel.items[0].id  [in template "3192443#3192485#null" at line 18, column 9]
----
1<#if themeDisplay?has_content> 
2	<#assign scopeGroupId = themeDisplay.getScopeGroupId() /> 
3</#if> 
4 
5<#if currentURL?has_content> 
6	<#if currentURL?contains('web')> 
7		<#assign 
8			index = 2 
9			partsUrl = currentURL?split('/') 
10			siteName = partsUrl[index..index]?join('/') 
11		/> 
12	</#if> 
13</#if> 
14 
15<#assign channel = restClient.get("/headless-commerce-delivery-catalog/v1.0/channels?accountId=-1&filter=name eq 'Marketplace Channel' and siteGroupId eq '${scopeGroupId}'") /> 
16 
17<#if channel?has_content> 
18	<#assign channelId = channel.items[0].id /> 
19</#if> 
20 
21<#if (CPDefinition_cProductId.getData())??> 
22	<#assign productId = CPDefinition_cProductId.getData() /> 
23</#if> 
24 
25<#assign 
26	product = restClient.get("/headless-commerce-delivery-catalog/v1.0/channels/"+ channelId +"/products/"+ productId +"?accountId=-1&nestedFields=productSpecifications") 
27	productSpecifications = product.productSpecifications![] 
28/> 
29 
30<div> 
31	<#if productSpecifications?has_content> 
32		<#assign priceModels = productSpecifications?filter(item -> stringUtil.equals(item.specificationKey, "price-model")) /> 
33 
34		<#if priceModels?has_content> 
35		  	<#list priceModels as priceModel> 
36				<div class="bg-neutral-8">${priceModel.value}</div> 
37		  	</#list> 
38		</#if> 
39	</#if> 
40</div> 
help & support
SHARE LINK
Copy & Share

HTML Example

A paragraph is a self-contained unit of a discourse in writing dealing with a particular point or idea. Paragraphs are usually an expected part of formal writing, used to organize longer prose.