Compra a granel
The following has evaluated to null or missing:
==> mostrarTituloH2 [in template "20102#20129#105831" at line 4, column 40]
----
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 hayH2 = getterUtil.getBoolean... [in template "20102#20129#105831" at line 4, column 1]
----
1<#assign title = .vars['reserved-article-title'].getData()>
2<div class="containerInterior">
3<#assign hayH1 = getterUtil.getBoolean(MostrarTituloH1.getData())>
4<#assign hayH2 = getterUtil.getBoolean(mostrarTituloH2.getData())>
5
6<#if hayH1>
7 <h1 aria-level="1" role="heading" id="titulo">${layout.getName(locale)}</h1>
8</#if>
9<#if hayH2>
10
11 <#if TituloContenido.getData()?? && TituloContenido.getData() != "">
12 <#assign contenido = TituloContenido.getData()>
13 <#else>
14 <#assign contenido = title>
15 </#if>
16
17 <#if hayH1>
18 <p id="subtitulo"
19 aria-level="2"
20 role="heading"
21 style="
22 color: #007f33 !important;
23 font-size: 45px;
24 font-family: 'IberPangea Medium', sans-serif;
25 line-height: 45px;
26 margin-top: .75em;
27 margin-bottom: .9em;">
28 ${contenido}
29 </p>
30 <#else>
31 <p id="subtitulo"
32 style="
33 color: #007f33 !important;
34 font-size: 45px;
35 font-family: 'IberPangea Medium', sans-serif;
36 line-height: 45px;
37 margin-top: .75em;
38 margin-bottom: .9em;">
39 ${contenido}
40 </p>
41 </#if>
42
43</#if>
44
45<#if getterUtil.getBoolean(MostrarCategorias.getData())>
46
47
48
49 <#assign journalArticleId = .vars['reserved-article-id'].data>
50 <#assign journalArticleLocalService = serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService")>
51
52 <#assign assetCategoryPropertyLocalService = serviceLocator.findService("com.liferay.asset.category.property.service.AssetCategoryPropertyLocalService") />
53
54 <#assign article = journalArticleLocalService.getArticle(groupId, .vars['reserved-article-id'].data) />
55 <#assign assetEntryLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetEntryLocalService")>
56 <#assign asset = assetEntryLocalService.getEntry('com.liferay.journal.model.JournalArticle', article.resourcePrimKey) >
57 <#assign layoutLocalService = serviceLocator.findService("com.liferay.portal.kernel.service.LayoutLocalService") />
58
59 <p class="tag-categorias">
60
61 <#list asset.getCategories() as category>
62
63
64
65 <#if assetCategoryPropertyLocalService.fetchCategoryProperty(category.getCategoryId(), "friendlyURL")??>
66
67 <#assign categoryFriendly = '/tag/' + assetCategoryPropertyLocalService.fetchCategoryProperty(category.getCategoryId(), "friendlyURL").getValue() />
68
69 <#if layoutLocalService.fetchLayoutByFriendlyURL(groupId, false, categoryFriendly)??>
70 <#assign categoryLayout = layoutLocalService.fetchLayoutByFriendlyURL(groupId, false, categoryFriendly) />
71 <#assign categoryLayoutURL = portalUtil.getLayoutFullURL(categoryLayout, themeDisplay) />
72
73 <a class="tag-categoria" href="${categoryLayoutURL}">${category.getTitle(locale)?cap_first}</a>
74
75 <#else>
76 <a class="tag-categoria" href="/tag/#">${category.getTitle(locale)?cap_first}</a>
77
78 </#if>
79 </#if>
80
81
82
83
84 </#list>
85
86 </p>
87
88</#if>
89<div id="contenidoEntradilla">${DescripcionDetalleContenido.getData()}</div>
90
91
92<#if ContenidoWebcofl.getSiblings()?has_content>
93 <#list ContenidoWebcofl.getSiblings() as cur_ContenidoWebcofl>
94 <#assign
95 webContentData = jsonFactoryUtil.createJSONObject(cur_ContenidoWebcofl.getData())
96 />
97
98 <#if webContentData?length gt 5>
99 <@liferay_asset["asset-display"]
100 className = webContentData.className
101 classPK = webContentData.classPK?number
102 />
103
104 </#if>
105
106
107 </#list>
108</#if>
109</div>
110<@liferay_util["html-top"]>
111<style>
112 #decPagination div.containerInterior p#subtitulo {
113 font-family: "Iberpangea Medium";
114 font-size: 45px;
115 line-height: 45px;
116 color: #007F33;
117 margin-bottom: 20px;
118 }
119
120
121 div.contenidoCentrado div.contenidoInterior div.containerInterior p.tag-categorias a.tag-categoria:focus{
122 outline: 2px solid rgba(0, 0, 0, 0.7) !important;
123 }
124 p.tag-categorias > .tag-categoria {
125 width: auto !important;
126 max-width: inherit !important;
127 }
128
129 div.faldon h2 {
130 width: 100%;
131 float: left;
132 font-size: 1.26em;
133 font-family: IberPangeaText Light, sans-serif;
134 margin-bottom: 2em;
135 border-bottom: 1px solid #e0e0e0;
136 padding-bottom: .8em;
137 color: #427314 !important;
138
139 line-height: 1.35em;
140 margin-top: .75em;
141 }
142 .contenidoInterior div.faldon h2+ul li:before {
143 margin: .15em 0 0 -1.75em;
144 font-size: 1em;
145 }
146 .cursiva_texto {
147 font-style: italic;
148 }
149 .contenidoInterior h1 {
150 font-family: 'IberPangea', sans-serif !important;
151 font-size: 32px !important;
152 border: none !important;
153 line-height: 36px !important;
154 letter-spacing: 0px !important;
155 color: #00402A !important;
156 padding-left: 0em !important;
157 margin-bottom: 14px !important;
158 }
159 p span.table a.enlace-actualidad[href*="/tag/"],
160 p span.table a.enlace-actualidad[href*="/label/"],
161 p.tag-categorias a.tag-categoria[href*="/tag/"],
162 p.tag-categorias a.tag-categoria[href*="/label/"]{
163 line-height: 23px !important;
164 }
165 .contenidoInterior #contenidoEntradilla p.entradilla {
166 font-family: IberPangeaText, sans-serif !important;
167 font-size: 17px !important;
168 line-height: 23px !important;
169 font-weight: 700;
170 color: #615D5A !important;
171 margin-top: 2em;
172 }
173
174 .contenidoInterior h2#subtitulo{
175 font-family: 'IberPangea Medium', sans-serif !important;
176 margin-bottom: 0.4em;
177 }
178 #decPagination div.containerInterior{
179 max-width:980px;
180 margin:0 auto 25px;
181 }
182 #decPagination div.containerInterior h1#titulo{
183 font-family:"Iberpangea Medium";
184 font-size:32px;
185 line-height:36px;
186 color:#00402A;
187 text-transform:none;
188 border-left:none;
189 margin-top:20px;
190 }
191 #decPagination div.containerInterior h2#subtitulo{
192 font-family:"Iberpangea Medium";
193 font-size:45px;
194 line-height:45px;
195 color:#007F33;
196 margin-bottom:20px;
197 }
198 #decPagination div.containerInterior p.tag-categorias{
199 margin-bottom:30px !important;
200 }
201 #decPagination div.containerInterior p.tag-categorias a.tag-categoria{
202 margin-right:20px;
203 color:#00402A;
204 }
205 #decPagination div.containerInterior div#contenidoEntradilla p.entradilla{
206 font-family:"IberpangeaText";
207 font-size:20px ;
208 line-height:26px;
209 color:#615D5A;
210 }
211 @media all and (max-width:500px){
212 #decPagination div.containerInterior h1#titulo{
213 font-size:26px;
214 line-height:36px;
215 }
216 #decPagination div.containerInterior h2#subtitulo{
217 font-size:35px;
218 line-height:35px;
219 margin-bottom:20px;
220 }
221 #decPagination div.containerInterior div#contenidoEntradilla p.entradilla{
222 font-family:"IberpangeaText Bold";
223 font-size:16px ;
224 line-height:24px;
225 }
226 }
227 @media screen and (max-width: 47.95em) {
228 .contenidoInterior h1 {
229 font-size: 26px !important;
230 }
231 .contenidoInterior h2#subtitulo{
232 font-size: 35px;
233 line-height: 35px;
234 color: #007F33 !important;
235 margin-bottom: 1em;
236 }
237 .contenidoInterior #contenidoEntradilla p.entradilla {
238 margin-top: 0.8em;
239 }
240 .contenidoInterior #contenidoEntradilla p.entradilla {
241 line-height: 24px !important;
242 }
243 }
244
245
246</style>
247</@>

Los recipientes de usar y tirar inundan los supermercados, al igual que las montañas y los océanos. Las bandejas de poliestireno, las botellas de PET, los tetrabriks o los envases de plástico son ya parte habitual del paisaje: se calcula que en la actualidad hay cerca de 140 millones de toneladas de residuos plásticos en los océanos, mares y ríos del mundo, según un estudio científico publicado en 2022 por la OCDE.
La mayoría de estos residuos procede de tierra firme, como los casos de objetos de plásticos que llegan al mar desde vertederos, a través de las corrientes de agua que fluyen por los mismos. Según Greenpeace, el 80 % de los residuos que acaban en el océanos vienen de tierra firme, mientras que el 20 % restante proviene de la actividad marítima.
Una alternativa para vivir sin plásticos
Esta situación ha dado lugar al nacimiento de iniciativas como Residuo Cero (Zero Waste), un movimiento internacional que promueve el consumo responsable y la reutilización con el objetivo de reducir al máximo el número de desechos en los hogares. La iniciativa nació en el blog personal de la francesa Bea Johnson, que pone el foco en la disminución del uso de plásticos a través de acciones cotidianas como el uso de tarros de cristal y bolsas de tela, o la compra a granel.
Otra iniciativa de éxito es Food in the nude. Puesta en marcha en Nueva Zelanda, nació con el objetivo de poner fin al envasado con plásticos de los productos frescos en los supermercados. Los productores alimenticios firmaron una declaración por la cuál se comprometen a hacer que todos los envases y etiquetas sean 100% reutilizables, reciclables o compostables en 2025. Según el diario NZ Herald, las ventas de algunas hortalizas se dispararon hasta en un 300 % en aquellos establecimientos que abandonaron los envases de plástico.
Un par de pepinos, cuatro tomates o una cebolla envueltos con plásticos sobre una bandeja de PVC. El descontento de los clientes ante este tipo de packagings ha provocado el boom de un tipo de consumo que consiste en adquirir alimentos y bienes domésticos sin embalaje. A diferencia de los productos envasados, que nos obligan a comprar la cantidad establecida por el fabricante, la compra a granel es más flexible y nos da libertad para decidir cuánto vamos a comprar. El consumidor acude a la tienda con sus propios recipientes o bolsas reutilizables y se lleva solo lo que desea, ya sea por peso o por unidad.
Productos a granel: Qué comprar y dónde
Muchos de los alimentos que incluimos en la lista de la compra se pueden adquirir sin envase. De hecho, cada vez más establecimientos ofrecen a sus clientes esa posibilidad. A continuación, repasamos qué se puede comprar y dónde:
Frutas, verduras y hortalizas
Las fruterías de barrio y los mercados de abastos suelen venderlos al peso. Esta es la práctica habitual también en numerosos supermercados.
Cereales, pastas y legumbres
En los supermercados suelen venir envasados. Para conseguirlos al peso tendrás que recurrir a tiendas de productos ecológicos o probar en alguna tienda de barrio.
Carnes, pescados y embutidos
Es muy sencillo encontrarlos a granel, tanto en tiendas de barrio —carnicerías, pescaderías y charcuterías— como en los supermercados y los mercados de abastos.
Pan y bollería
Las panaderías y las pastelerías de barrio ofrecen estos productos a granel. Una opción que cada vez brindan más supermercados.
Aceite, cerveza, vino y leche
En muchas almazaras, bodegas, granjas, ferias, mercados de abastos y comercios especializados venden estos productos por litros.

Las ventajas de comprar a granel
La compra a granel es una opción de consumo responsable en auge por los numerosos beneficios que ofrece, tanto para nosotros mismos como para el medio ambiente:
- Adquirimos la cantidad necesaria de cada producto. Así ahorramos dinero, consumimos alimentos más frescos y desperdiciamos menos comida porque sobre o se ponga mala.
- Reducimos el número de envases o plásticos de un solo uso que terminan en vertederos o diseminados por la naturaleza. Según el Banco Mundial, cada persona genera 0,74 kg de residuos sólidos al día.
- Mejoramos nuestra alimentación porque los productos a granel son más naturales y tienen menos aditivos perjudiciales para la salud.
- Seleccionamos los alimentos de mejor calidad. Las bandejas de fruta y verdura, por ejemplo, son indivisibles y no permiten descartar las unidades en peor estado.
- Contribuimos al comercio y la agricultura local. Los alimentos a granel más comunes provienen de granjas y cultivos cercanos, lo que facilita conocer la procedencia de lo que consumimos.
- Ahorramos dinero (si sabemos dónde comprar). Algunos lugares que venden a granel suelen ser más caros, pero nos ahorramos pagar por el envasado y evitamos adquirir cantidades innecesarias.