S'ha produït un error mentre es processava la plantilla.
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} 

Social Map
S'ha produït un error mentre es processava la plantilla.
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> 
18582582
Organizations and users come straight to the point with Social Map.

This app is based on Google Maps and provides tailor-made maps for organization and user pages. Try out on http://www.enterpriseknowhow.ch .

So you can plot user addresses on user pages beside other content. On organization pages you get organization addresses displayed as well as organization member locations. Social Map geocodes Liferay Addresses using Google Geocode API - results (locations) will be stored in Liferay database.

Click on any marker to pop up an information window that also links profile pages provided at this place. Other links provide direct interaction for e-mail, Skype or a good old phone call. The information window also provides a link to export current data to your address book (VCard).

Thanks to marker clustering and spider-aggregation of markers, as well as filtering, an easy
navigation is guaranteed. The address table provides navigation tools and complements Social Map.

Features:
• Find organizations and users on Google Maps
• Integrate Social Graph-data
• Implement map types for public + private user pages and organization pages
• Provide user locations with user maps
• Provide current organization’s - and its members’ - location with the organization map
• Embed Social Map on any page, regardless of user- or organization page context by static definition of particular organization(s) or user.
• Link to other pages and interact through the information window: open user or organization pages, interact by mail, phone or skype and add the current entry to your personal address book (VCard)
• Easy navigation thanks clustering markers
• Spidernet for markers sharing the same address
• Filter, zoom and more features are provided by the toolbar.
• Address table provides a quick-locate and zoom
• Google Maps Styles: apply a fully customizable map style - style made with Google Wizard or loaded from the internet (100s of styles available)
• Configure maps for each type, profit from rich customization options.

Benefits:
• Obtain overview
• Interact directly
• Link user and organization profile pages
• Easy configuration of map types and styles

Use Cases:
• Locate hierarchical military units in their fixed or temporary headquarters
• Optimize your B2B/B2C traveling agenda
• Coordinate driving routes and means in case of issues (e.g. fire- or crime-fighting)
• Alert Locations and persons in case of terrorism warning
• Locate health organizations like hospitals, surgeons, cardiologs or other experts SOS
• Build your optimized vendor/service organisations units based on client location density
• Views, Hotels, Gastronomy, Leisure & Golf
• Meet your nearbys - intensify your virtual CRM/Customer Experience.
• Investigative Journalism: visualize your research, embed into existing content

Languages:
• English, German

Summary:
Straight to the point with Social Map - geographical allocation of users and organizations including information, direct interaction and integration of Social Graph data.



★ Your Digital Workplace, integration of other products ★
Combine Social Map with our other products, Social Graph and Agile Org Designer! Visualize networks and benefit of direct interaction with Social Graph - design agile organization structures with Agile Org Designer.
• Social Graph https://web.liferay.com/en/marketplace/-/mp/application/110763805
• Agile Org Designer https://web.liferay.com/en/marketplace/-/mp/application/105043058 Mit Social Map bringen Sie Benutzer und Organisationen auf den Punkt.

Die Anwendung basiert auf Google Maps und bietet zugeschnittene Karten für Benutzer- und Organisationsseiten. Ausprobieren unter http://www.enterpriseknowhow.ch !

Auf Benutzerseiten werden die jeweiligen Benutzeradressen dargestellt - auf den Organisationsseiten die Organisationsadresse(n). Auf Organisationsseiten können, nebst Adressen der Organisation, auch deren Mitglieder eingezeichnet werden. Social Map geokodiert Liferay-Adressmaterial mit Hilfe von Google Geocode API - Resultate (Koordinaten) werden in der Liferay-Datenbank abgelegt und automatisch aktualisiert.

Praktisch, das Infofenster zum jeweiligen Marker: von dort lässt sich direkt die jeweilige Profilseite aufrufen (Verknüpfung), aber auch direkt eine E-Mail schreiben, skypen oder ganz einfach per Telefon anrufen. Der im Infofenster angezeigte Eintrag kann direkt in Ihr Adressbuch übernommen werden (Export).

Dank Cluster- und Spider-Zusammenfassung von Markern, sowie Filter ist stets bequemer Umgang garantiert. Die Adresstabelle mit Schnellsprung, bzw. Zoom auf Adresse, sowie Hervorhebung rundet die Anwendung ab.

Highlights:
• Organisationen und Benutzer auf Google Maps einzeichnen
• Social Graph-Daten integrieren
• Karten für: private und öffentliche Benutzerseite, öffentliche Organisationsseite (oder beliebige)
• Benutzerkarte privat/öffentlich mit Benutzeradressen
• Organisationskarte, Organisation und deren Mitglieder
• Einbettbar in beliebigen Seiten durch Hinterlegung einer statischen Angabe zu Benutzer oder Organisation(en)
• Interaktion/Infofenster mit Links für Profilseite User/Organisation zur gegenseitigen Verknüpfung, Mail, Telefon, Skype-Call und Addressbuch-Export (VCard)
• Cluster-orientiertes Navigieren
• Spinnennetz für übereinanderliegende Punkte
• Toolbar mit Filter, Zoom und Zusatzbuttons
• Google Geocoding
• Reportbereich mit weiteren Funktionen Move und Zoom, sowie Hervorhebung Standorte
• Kartentyp für jede Seitenart, anpassbar - Vielzahl von Konfigurationsmöglichkeiten

Vorteile:
• rasch Uebersicht gewinnen
• direktes Interagieren
• Verknüpfung der Teilnehmer (Links zu Profilseiten)
• Google Map Styles: vollumfängliche Kunden-Definition von Karten-Stilen. Diese können via Google Wizard erstellt werden oder es wird eine der zahlreichen Vorlagen aus dem Internet verwendet
• Umfassende Anpassbarkeit der Kartentypen und von grafischen Stilen

Use Cases:
• Finde hierarchische militärische Formationen in festen und temporären Kommando-Posten
• B2B/B2C-Reiseagenda optimal planen
• Fahrten und Mittel für Notfälle koordinieren (bspw. Brandfall, Kriminalitätsbekämpfung)
• Gefährdete Personen und Orte anzeigen (Bsp. Terrorwarnung)
• Orte zu Gesundheitsversorgung (Spitäler, Spezialisten)
• Wählen Sie Standorte von Vertrieb- und Service-Organisationen basierend auf regionale Kundendichte
• Aussichtspunkte, Hotels, Gastronomie, Freizeit & Golf
• Vereinbarung von Treffen mit Freunden oder echtes Erlebnis mit bisher virtuellem CRM Kontakt nahe Aufenthaltsort.

Sprachen:
• Deutsch, Englisch

Fazit:
Social Map: Benutzer und Organisationen auf den Punkt gebracht - geografische Allokation, Information, Interaktion und Integration von Social Graph-Daten.

★ Ihr digitaler Arbeitsplatz - kombinieren Sie unsere Produkte ★
Integrieren Sie Social Map zusammen mit unseren Produkten Social Graph und Agile Org Designer. Social Graph visualisiert Netzwerke und bietet direkte Interaktion - mit Agile Org Designer designen Sie agile Organisationsstrukturen
• Social Graph https://web.liferay.com/de/marketplace/-/mp/application/110763805
• Agile Org Designer https://web.liferay.com/de/marketplace/-/mp/application/105043058
DEVELOPER
S'ha produït un error mentre es processava la plantilla.
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
06/06/18 00:00
Published date
June 6, 2018
Published Date
06/06/18 00:00
SUPPORTED OFFERINGS
Self-Hosted, Self-Managed
Supported Versions
S'ha produït un error mentre es processava la plantilla.
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
S'ha produït un error mentre es processava la plantilla.
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
CE, EE
PRICE
S'ha produït un error mentre es processava la plantilla.
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.