Produits et services

Chargement en cours...
Chargement en cours...
Chargement en cours...
Chargement en cours...
Une erreur s'est produite lors du traitement du gabarit.
The following has evaluated to null or missing:
==> cpd.getURL("fr_FR")  [in template "20099#20135#146274" at line 35, column 83]

----
Tip: If the failing expression is known to be 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: friendlyUrl = themeDisplay.getURLPort...  [in template "20099#20135#146274" at line 35, column 33]
	- Reached through: #assign-container  [in template "20099#20135#146274" at line 31, column 13]
----
1<#import "${templatesPath}/UTIL" as util> 
2<#import "${templatesPath}/UTIL_COMMERCE" as util_commerce> 
3 
4<#assign 
5	CPDefinitionLocalService=serviceLocator.findService("com.liferay.commerce.product.service.CPDefinitionLocalService") 
6	CPInstanceLocalService=serviceLocator.findService("com.liferay.commerce.product.service.CPInstanceLocalService") 
7
8 
9<#if entries?has_content> 
10	<div class="minium-product-tiles"> 
11		<#list entries as cpCatalogEntry> 
12			<#assign 
13				cpDefinitionId=cpCatalogEntry.getCPDefinitionId() 
14				cpSkus=cpCatalogEntry.getCPSkus() 
15				quantityInputId=renderResponse.getNamespace() + cpDefinitionId + "Quantity" 
16                cpd=CPDefinitionLocalService.getCPDefinition(cpDefinitionId) 
17
18			 
19            <#if cpSkus?? && (cpSkus?size > 0)> 
20                <#assign 
21                    cpSku=cpSkus[0]!"" 
22                    cpInstanceId=cpSku.CPInstanceId 
23			        cpi=CPInstanceLocalService.getCPInstance(cpInstanceId) 
24
25            <#else> 
26                <script> 
27                    console.log("${cpDefinitionId}"); 
28                </script> 
29            </#if> 
30 
31            <#assign 
32				cProductClassNameId=util.getClassNameId("com.liferay.commerce.product.model.CProduct") 
33				assetEntry=util_commerce.getAssetEntry(cpDefinitionId) 
34				 
35				friendlyUrl=themeDisplay.getURLPortal() + "/p/" + cpd.getURL("fr_FR") 
36 
37			    categoriesNames=util_commerce.getCategoriesNames(cpDefinitionId) 
38			    isFormation=util_commerce.contains(categoriesNames,"Formations") 
39			    isPublication=util_commerce.contains(categoriesNames,"Publications") 
40			    isOutil=util_commerce.contains(categoriesNames,"Outils") 
41			    isPrestation=util_commerce.contains(categoriesNames,"Prestations") 
42
43 
44			<div class="minium-product-tiles__item"> 
45				<div class="catalog-card-page col-lg-6 col-md-6 col-sm-6 col-xl-4 col-xs-12"> 
46					<div class="card"> 
47						<#list assetEntry.getCategories() as cat> 
48							<#if cat.isRootCategory()> 
49								<div class="etiquette"> 
50									<span class="${cat.name?lower_case}">${cat.name}</span> 
51								</div> 
52							</#if> 
53						</#list> 
54						<div class="product-image-container"> 
55							<a href="${friendlyUrl}"> 
56								<img class="product-image lozad" data-src="${cpCatalogEntry.defaultImageFileUrl}"></img> 
57					            <noscript> 
58						            <img class="product-image" src="${cpCatalogEntry.defaultImageFileUrl}"></img> 
59					            </noscript> 
60							</a> 
61						</div> 
62												 
63						<div class="product-expand"> 
64							<p class="card-subtitle product-sku">UGS : default</p> 
65							<div class="card-title"> 
66								<a href="${friendlyUrl}">${cpCatalogEntry.name}</a> 
67							</div> 
68							<div class="bouton-detail "> 
69								<a class="btn btn-primary text-white" href="${friendlyUrl}">Détails</a> 
70							</div> 
71						</div> 
72						 
73						<#--  
74							<div class="product-footer"> 
75								<div class="product-actions"> 
76									<div class="product-price"> 
77										<span class="commerce-price"> 
78											<@liferay_commerce["price"] 
79												CPDefinitionId=cpDefinitionId 
80												CPInstanceId=cpi.getCPInstanceId() 
81											/> 
82										</span> 
83										<span class="commerce-subscription-info"> </span> 
84									</div> 
85	 
86									<div class="autofit-row"> 
87										<div class="autofit-col"> 
88											<@liferay_commerce["quantity-input"] 
89												CPDefinitionId=cpDefinitionId 
90												useSelect=false  
91												value=1  
92											/> 
93										</div> 
94										<div class="autofit-col autofit-col-expand"> 
95											<div id="yokh"> 
96												<@liferay_commerce_cart["add-to-cart"] 
97													CPDefinitionId=cpDefinitionId 
98													CPInstanceId=cpi.getCPInstanceId() 
99													elementClasses="btn-block 
100													btn-primary text-truncate" 
101													taglibQuantityInputId=quantityInputId  
102												/> 
103											</div> 
104										</div> 
105									</div> 
106								</div> 
107	 
108								<div class="product-subactions"> 
109									<div class="autofit-row"> 
110										<div class="autofit-col autofit-col-expand"> 
111											<div class="product-list-info-compare"> 
112												<div class="commerce-compare-product-container"> 
113													<form 
114														action="https://qualif-terresinovia.adventiel.com/produits-et-services?p_p_id=com_liferay_commerce_product_content_web_internal_portlet_CPCompareContentPortlet&amp;p_p_lifecycle=1&amp;p_p_state=normal&amp;p_p_mode=view&amp;_com_liferay_commerce_product_content_web_internal_portlet_CPCompareContentPortlet_javax.portlet.action=editCompareProduct&amp;p_auth=ZXcvwU6r&amp;p_p_auth=CjzMppmb" 
115														class="form " 
116														data-fm-namespace="_com_liferay_commerce_product_content_web_internal_portlet_CPCompareContentPortlet_" 
117														id="_com_liferay_commerce_product_content_web_internal_portlet_CPCompareContentPortlet_mkhn_Fm" 
118														method="post" 
119														name="_com_liferay_commerce_product_content_web_internal_portlet_CPCompareContentPortlet_mkhn_Fm" > 
120														<input class="field form-control" id="_com_liferay_commerce_product_content_web_internal_portlet_CPCompareContentPortlet_formDate" name="_com_liferay_commerce_product_content_web_internal_portlet_CPCompareContentPortlet_formDate" type="hidden" value="1549531302847"> 
121														<input class="field form-control" id="_com_liferay_commerce_product_content_web_internal_portlet_CPCompareContentPortlet_redirect" name="_com_liferay_commerce_product_content_web_internal_portlet_CPCompareContentPortlet_redirect" type="hidden" value="/produits-et-services"> 
122														<input class="field form-control" id="_com_liferay_commerce_product_content_web_internal_portlet_CPCompareContentPortlet_cpDefinitionId" name="_com_liferay_commerce_product_content_web_internal_portlet_CPCompareContentPortlet_cpDefinitionId" type="hidden" value="166472"> 
123														<div class="form-group form-inline input-checkbox-wrapper"> 
124															<label for="_com_liferay_commerce_product_content_web_internal_portlet_CPCompareContentPortlet_166472Compare"> 
125																<input class="field" id="_com_liferay_commerce_product_content_web_internal_portlet_CPCompareContentPortlet_166472Compare" name="_com_liferay_commerce_product_content_web_internal_portlet_CPCompareContentPortlet_166472Compare" onclick="this.form.submit();" type="checkbox"> 
126																Comparer 
127															</label> 
128														</div> 
129														<input class="field form-control" id="_com_liferay_commerce_product_content_web_internal_portlet_CPCompareContentPortlet_checkboxNames"	name="_com_liferay_commerce_product_content_web_internal_portlet_CPCompareContentPortlet_checkboxNames"	type="hidden" value="166472Compare"> 
130													</form> 
131												</div> 
132											</div> 
133										</div> 
134									</div> 
135								</div> 
136							</div> 
137						--> 
138					</div> 
139				</div> 
140			</div> 
141		</#list> 
142	</div> 
143</#if>