Er trad een fout op tijdens de verwerking van de sjabloon.
The following has evaluated to null or missing:
==> channel.items[0]  [in template "3192443#3192485#null" at line 8, column 30]

----
Tip: It's the final [] step 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 8, column 9]
----
1<#if themeDisplay?has_content> 
2	<#assign scopeGroupId = themeDisplay.getScopeGroupId() /> 
3</#if> 
4 
5<#assign channel = restClient.get("/headless-commerce-delivery-catalog/v1.0/channels?accountId=-1&filter=name eq 'Marketplace Channel' and siteGroupId eq '${scopeGroupId}'") /> 
6 
7<#if channel?has_content> 
8	<#assign channelId = channel.items[0].id /> 
9</#if> 
10 
11<#if (CPDefinition_cProductId.getData())??> 
12	<#assign productId = CPDefinition_cProductId.getData() /> 
13</#if> 
14 
15<#assign 
16	product = restClient.get("/headless-commerce-delivery-catalog/v1.0/channels/"+ channelId +"/products/"+ productId +"?accountId=-1&images.accountId=-1&nestedFields=images") 
17	productImage = product.images?filter(item -> item.tags?seq_contains("app icon"))![] 
18/> 
19 
20<#if productImage?has_content> 
21	<#assign productThumbnail = productImage[0].src?split("/o") /> 
22	<#if productThumbnail?has_content && productThumbnail?size gte 2> 
23		<#assign productThumbnail1 = "/o/${productThumbnail[1]}"!"" /> 
24	<#else> 
25		<#assign productThumbnail1 = "/o/commerce-media/default/?groupId=${scopeGroupId}" /> 
26	</#if> 
27<#else> 
28	<#if product.urlImage?has_content> 
29		<#assign productThumbnail = product.urlImage?split("/o") /> 
30		<#if productThumbnail?has_content && productThumbnail?size gte 2> 
31			<#assign productThumbnail1 = "/o/${productThumbnail[1]}"!"" /> 
32		<#else> 
33			<#assign productThumbnail1 = "/o/commerce-media/default/?groupId=${scopeGroupId}" /> 
34		</#if> 
35	<#else> 
36		<#assign productThumbnail1 = "/o/commerce-media/default/?groupId=${scopeGroupId}" /> 
37	</#if> 
38</#if> 
39 
40${productThumbnail1} 

Liferay Connector to Elasticsearch 6
Er trad een fout op tijdens de verwerking van de sjabloon.
The following has evaluated to null or missing:
==> channel.items[0]  [in template "3192443#3192485#null" at line 62, column 30]

----
Tip: It's the final [] step 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 62, column 9]
----
1<style> 
2	.app-container { 
3		font-size: MEDIUM; 
4
5 
6	.app-container .app-category { 
7		background-color: #e6ebf5; 
8		padding: 6px 8px 4px 
9
10 
11	.app-container .app-product-type { 
12		border-color: #2e5aac !important; 
13		color:#2e5aac; 
14		padding: 4px 8px; 
15
16 
17	@media screen and (max-width: 768px) { 
18		.app-container { 
19			font-size: small; 
20
21
22 
23	@media screen and (max-width: 576px) { 
24		.app-container { 
25			font-size: x-small; 
26
27 
28		.app-container .app-category, 
29		.app-container .app-product-type { 
30			padding: 2px 4px; 
31
32
33</style> 
34 
35<#assign 
36	PRODUCT_TYPE_CLOUD = "CLOUD" 
37	PRODUCT_TYPE_DXP = "DXP" 
38	PRODUCT_TYPE_FREE = "FREE" 
39	PRODUCT_TYPE_PAID = "PAID" 
40	VOCABULARY_PRODUCT_CATEGORY = "MARKETPLACE APP CATEGORY" 
41/> 
42 
43<#if themeDisplay?has_content> 
44	<#assign scopeGroupId = themeDisplay.getScopeGroupId() /> 
45</#if> 
46 
47<#assign siteName = "marketplace" /> 
48 
49<#if currentURL?has_content> 
50	<#if currentURL?contains('web')> 
51		<#assign 
52			index = 2 
53			partsUrl = currentURL?split('/') 
54			siteName = partsUrl[index..index]?join('/') 
55		/> 
56	</#if> 
57</#if> 
58 
59<#assign channel = restClient.get("/headless-commerce-delivery-catalog/v1.0/channels?accountId=-1&filter=name eq 'Marketplace Channel' and siteGroupId eq '${scopeGroupId}'") /> 
60 
61<#if channel?has_content> 
62	<#assign channelId = channel.items[0].id /> 
63</#if> 
64 
65<#if (CPDefinition_cProductId.getData())??> 
66	<#assign productId = CPDefinition_cProductId.getData() /> 
67</#if> 
68 
69<#assign 
70	product = restClient.get("/headless-commerce-delivery-catalog/v1.0/channels/"+ channelId +"/products/"+ productId +"?accountId=-1&nestedFields=productSpecifications,categories") 
71	categories = product.categories![] 
72	productSpecifications = product.productSpecifications![] 
73/> 
74 
75<div class="app-container color-neutral-3 d-flex flex-wrap font-size-paragraph-small justify-content-between w-100"> 
76	<div class="d-flex"> 
77		<#if categories?has_content> 
78			<#list categories as category> 
79				<#if category.vocabulary?upper_case == VOCABULARY_PRODUCT_CATEGORY> 
80					<div class="app-category bg-neutral-8 border-radius-small mb-1 mr-2 px-1 rounded"> 
81						${category.name} 
82					</div> 
83				</#if> 
84			</#list> 
85		</#if> 
86 
87		<#if productSpecifications?has_content> 
88 
89			<#assign productTypes = productSpecifications?filter(item -> stringUtil.equals(item.specificationKey, "type")) /> 
90 
91			<#list productTypes as productType> 
92				<#if productType.value?upper_case == PRODUCT_TYPE_DXP> 
93					<#assign 
94						icon = "dxp-svg" 
95						type = "DXP App" 
96					/> 
97				<#elseif productType.value?upper_case == PRODUCT_TYPE_CLOUD> 
98					<#assign 
99						icon = "cloud-svg" 
100						type = "Cloud App" 
101					/> 
102				</#if> 
103 
104				<#if type?has_content && icon?has_content> 
105					<div class="app-product-type border border-radius-small d-flex mb-1 mr-2 px-1 rounded"> 
106						<div class="app-product-type-icon mr-1"> 
107							<img alt="Icon" class="mb-1" src="/documents/d/${siteName}/${icon}" /> 
108						</div> 
109 
110						<div class="bg-neutral-8">${type}</div> 
111					</div> 
112				</#if> 
113			</#list> 
114		</#if> 
115	</div> 
116</div> 
18591931
Liferay Connector to Elasticsearch 6 connects Liferay DXP 7.0 to Elasticsearch 6 search engine. This client application is a drop-in replacement for the default Elasticsearch 2.x connector that ships with the Foundation app suite in Liferay Digital Experience Platform 7.0.

For detailed compatibility information including the compatible Elasticsearch 6 minor versions and required patch levels, see the Search Engine Compatibility Matrix: https://help.liferay.com/hc/en-us/articles/360016511651 .

In Liferay DXP 7.1 and 7.2, this app is installed by default and updated through Liferay DXP Fix Packs and Service Pack releases. Using Liferay Marketplace to update the app on Liferay DXP 7.1 or 7.2 will cause an error.

Elastic, Elasticsearch, and X-Pack are trademarks of Elasticsearch BV, registered in the U.S. and in other countries.
DEVELOPER
Er trad een fout op tijdens de verwerking van de sjabloon.
The following has evaluated to null or missing:
==> channel.items[0]  [in template "3192443#3192485#null" at line 18, column 30]

----
Tip: It's the final [] step 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 developerNames = productSpecifications?filter(item -> stringUtil.equals(item.specificationKey, "developer-name")) /> 
33 
34			<#if developerNames?has_content> 
35		  		<#list developerNames as developerName> 
36					<div class="bg-neutral-8">${developerName.value}</div> 
37		  		</#list> 
38			</#if> 
39	</#if> 
40</div> 
DEVELOPER
18-7-23 0:00
Published date
Er trad een fout op tijdens de verwerking van de sjabloon.
The string doesn't match the expected date/time/date-time format. The string to parse was: "18-7-23 0:00". The expected format was: "MM/dd/yy HH:mm".
The nested reason given follows:
Unparseable date: "18-7-23 0:00"

----
FTL stack trace ("~" means nesting-related):
	- Failed at: ${CPDefinition_displayDate.getData()?...  [in template "3192443#3192485#null" at line 4, column 9]
----
1<#setting date_format="MMMMM d, yyyy"> 
2 
3<#if (CPDefinition_displayDate.getData())??> 
4	${CPDefinition_displayDate.getData()?datetime("MM/dd/yy HH:mm")?date} 
5</#if> 
Published Date
18-7-23 0:00
SUPPORTED OFFERINGS
Self-Hosted, Self-Managed
Supported Versions
Er trad een fout op tijdens de verwerking van de sjabloon.
The following has evaluated to null or missing:
==> channel.items[0]  [in template "3192443#3192485#null" at line 22, column 30]

----
Tip: It's the final [] step 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 22, column 9]
----
1<#assign 
2	VOCABULARY_PRODUCT_CATEGORY = "MARKETPLACE LIFERAY VERSION" 
3/> 
4 
5<#if themeDisplay?has_content> 
6	<#assign scopeGroupId = themeDisplay.getScopeGroupId() /> 
7</#if> 
8 
9<#if currentURL?has_content> 
10	<#if currentURL?contains('web')> 
11		<#assign 
12			index = 2 
13			partsUrl = currentURL?split('/') 
14			siteName = partsUrl[index..index]?join('/') 
15		/> 
16	</#if> 
17</#if> 
18 
19<#assign channel = restClient.get("/headless-commerce-delivery-catalog/v1.0/channels?accountId=-1&filter=name eq 'Marketplace Channel' and siteGroupId eq '${scopeGroupId}'") /> 
20 
21<#if channel?has_content> 
22	<#assign channelId = channel.items[0].id /> 
23</#if> 
24 
25<#if (CPDefinition_cProductId.getData())??> 
26	<#assign productId = CPDefinition_cProductId.getData() /> 
27</#if> 
28 
29<#assign 
30	product = restClient.get("/headless-commerce-delivery-catalog/v1.0/channels/"+ channelId +"/products/"+ productId +"?accountId=-1&nestedFields=categories") 
31	categories = product.categories![] 
32/> 
33 
34<div class="app-container color-neutral-3 d-flex flex-wrap font-size-paragraph-small justify-content-between w-100"> 
35	<div class="d-flex"> 
36		<#if categories?has_content> 
37			<#function getVersions(version)> 
38				<#return version.vocabulary?upper_case == "MARKETPLACE-LIFERAY-VERSION"> 
39			</#function> 
40 
41			${categories?sort_by("name")?reverse?filter(getVersions)?map(version -> version.name)?join(", ")} 
42		</#if> 
43	</div> 
44</div> 
Resource Requirements
Er trad een fout op tijdens de verwerking van de sjabloon.
The following has evaluated to null or missing:
==> channel.items[0]  [in template "3192443#3192485#null" at line 18, column 30]

----
Tip: It's the final [] step 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	specifications = product.productSpecifications![] 
28/> 
29 
30<div> 
31	<#if specifications?has_content> 
32 
33		<#assign 
34			specificationCPUs = specifications?filter(item -> stringUtil.equals(item.specificationKey, "cpu")) 
35			specificationRAMs = specifications?filter(item -> stringUtil.equals(item.specificationKey, "ram")) 
36			 cpuQuantity = "" 
37				  memoryQuantity = "" 
38		/> 
39 
40		<#if specificationCPUs?has_content> 
41		 	<#list specificationCPUs as cpu> 
42				<#assign cpuQuantity = cpu.value /> 
43 
44				<#if cpuQuantity?has_content> 
45					${cpuQuantity} 
46					<#if cpuQuantity?eval gt 1> 
47						CPUS 
48					</#if> 
49 
50					<#if cpuQuantity?eval lt 2> 
51						CPU 
52					</#if> 
53				</#if> 
54		  	</#list> 
55		</#if> 
56 
57		<#if specificationRAMs?has_content> 
58		  	<#list specificationRAMs as ram> 
59				<#assign memoryQuantity = ram.value /> 
60 
61				<#if cpuQuantity?has_content && memoryQuantity?has_content >, </#if> 
62 
63				<#assign memoryQuantity = ram.value /> 
64 
65				<#if memoryQuantity?has_content> 
66					${memoryQuantity} GB RAM 
67				</#if> 
68		  	</#list> 
69		</#if> 
70	</#if> 
71</div> 
Edition
EE
PRICE
Er trad een fout op tijdens de verwerking van de sjabloon.
The following has evaluated to null or missing:
==> channel.items[0]  [in template "3192443#3192485#null" at line 18, column 30]

----
Tip: It's the final [] step 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
Terms & Conditions
SHARE LINK
Copy & Share Link

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.