Ir al contenido

Nutritional values

Una tienda de alimentación debe mostrar una tabla de información nutricional (Reglamento UE 1169/2011). Polski for WooCommerce permite añadir una tabla a cada producto en un formato conforme con la normativa.

Según el artículo 30 del Reglamento FIC, la tabla de información nutricional debe contener al menos:

Nutriente Unidad Clave JSON
Valor energético kJ / kcal energy_kj, energy_kcal
Grasas g fat
de las cuales ácidos grasos saturados g saturated_fat
Hidratos de carbono g carbohydrates
de los cuales azúcares g sugars
Proteínas g protein
Sal g salt

Además, se pueden indicar los siguientes (art. 30, apdo. 2 FIC):

Nutriente Unidad Clave JSON
Ácidos grasos monoinsaturados g monounsaturated_fat
Ácidos grasos poliinsaturados g polyunsaturated_fat
Polialcoholes (polioles) g polyols
Almidón g starch
Fibra alimentaria g fibre
Vitamina A µg vitamin_a
Vitamina D µg vitamin_d
Vitamina E mg vitamin_e
Vitamina K µg vitamin_k
Vitamina C mg vitamin_c
Tiamina (B1) mg thiamine
Riboflavina (B2) mg riboflavin
Niacina (B3) mg niacin
Vitamina B6 mg vitamin_b6
Ácido fólico µg folic_acid
Vitamina B12 µg vitamin_b12
Biotina µg biotin
Ácido pantoténico mg pantothenic_acid
Potasio mg potassium
Cloruro mg chloride
Calcio mg calcium
Fósforo mg phosphorus
Magnesio mg magnesium
Hierro mg iron
Zinc mg zinc
Cobre mg copper
Manganeso mg manganese
Fluoruro mg fluoride
Selenio µg selenium
Cromo µg chromium
Molibdeno µg molybdenum
Yodo µg iodine

Vaya a Polski > Ajustes > Contenido y confianza y active el submódulo “Valores nutricionales”.

Ajuste Predeterminado Descripción
Unidad de referencia por 100 g Unidad predeterminada: por 100 g o por 100 ml
Mostrar % IR Sí Ingesta de referencia (% de la necesidad diaria)
Posición de la tabla Pestaña Dónde mostrar la tabla en la página de producto
Nutrientes opcionales Fibra, vitaminas Qué nutrientes opcionales mostrar

Introducción de datos en el editor de producto

Sección titulada «Introducción de datos en el editor de producto»

En la pestaña “Alimentación” del editor de producto encontrará el formulario de valores nutricionales. Rellene los campos con valores numéricos por 100 g o 100 ml.

Cada producto puede tener una unidad de referencia individual. Las bebidas deben configurarse como “por 100 ml”, y los productos sólidos como “por 100 g”. Si no se establece, se utilizará el valor predeterminado de los ajustes.

Opcionalmente, también puede indicar el tamaño de la ración y los valores nutricionales por ración:

Campo Descripción
Tamaño de la ración p. ej. “30 g”, “250 ml”, “1 rebanada (25 g)”
Raciones por envase p. ej. “10”

Los valores nutricionales se almacenan en la base de datos como JSON en el campo meta _polski_nutrients. Formato:

{
"energy_kj": 1046,
"energy_kcal": 250,
"fat": 9.5,
"saturated_fat": 3.2,
"carbohydrates": 31.0,
"sugars": 5.4,
"fibre": 2.1,
"protein": 8.7,
"salt": 1.2,
"ref_unit": "100g",
"serving_size": "30g",
"servings_per_package": 10
}
  • Los valores deben ser números (int o float)
  • Separador decimal en el JSON: punto (p. ej. 9.5)
  • Los valores no pueden ser negativos
  • energy_kj y energy_kcal deben ser coherentes (1 kcal = 4,184 kJ)
  • Los subnutrientes no pueden superar al nutriente principal (p. ej. saturated_fat <= fat)

Utilice el shortcode [polski_nutrients] para mostrar la tabla de información nutricional.

Parámetro Tipo Predeterminado Descripción
product_id int actual ID del producto
show_rws bool true Si se muestra el % IR
show_serving bool false Si se muestra la columna por ración
fields string all Nutrientes a mostrar (separados por comas)
layout string table Diseño: table, list, compact
wrapper string div Elemento HTML envolvente

Tabla de información nutricional completa:

[polski_nutrients]

Con valores por ración:

[polski_nutrients show_serving="true"]

Solo nutrientes básicos:

[polski_nutrients fields="energy_kcal,fat,carbohydrates,protein,salt"]

Diseño compacto (sin tabla):

[polski_nutrients layout="compact"]

Para un producto concreto:

[polski_nutrients product_id="123" show_rws="true" show_serving="true"]

En una plantilla PHP:

echo do_shortcode('[polski_nutrients product_id="' . $product->get_id() . '"]');

El shortcode genera una tabla conforme con el estándar de la UE:

<div class="polski-nutrients">
<table class="polski-nutrients__table">
<thead>
<tr>
<th>Valor nutricional</th>
<th>por 100 g</th>
<th>% IR*</th>
</tr>
</thead>
<tbody>
<tr>
<td>Valor energético</td>
<td>1046 kJ / 250 kcal</td>
<td>13%</td>
</tr>
<tr>
<td>Grasas</td>
<td>9,5 g</td>
<td>14%</td>
</tr>
<tr class="polski-nutrients__sub">
<td>de las cuales ácidos grasos saturados</td>
<td>3,2 g</td>
<td>16%</td>
</tr>
<!-- ... -->
</tbody>
<tfoot>
<tr>
<td colspan="3">
* Ingesta de referencia para un adulto medio (8400 kJ / 2000 kcal)
</td>
</tr>
</tfoot>
</table>
</div>

El plugin calcula el % IR automáticamente a partir de los valores de referencia del anexo XIII del Reglamento FIC:

Nutriente Valor de referencia
Energía 8400 kJ / 2000 kcal
Grasas 70 g
Ácidos grasos saturados 20 g
Hidratos de carbono 260 g
Azúcares 90 g
Proteínas 50 g
Sal 6 g
Fibra alimentaria 25 g
$nutrients_json = get_post_meta($product_id, '_polski_nutrients', true);
$nutrients = json_decode($nutrients_json, true);
if ($nutrients) {
$energy_kcal = $nutrients['energy_kcal'] ?? 0;
$protein = $nutrients['protein'] ?? 0;
}
$nutrients = [
'energy_kj' => 1046,
'energy_kcal' => 250,
'fat' => 9.5,
'saturated_fat' => 3.2,
'carbohydrates' => 31.0,
'sugars' => 5.4,
'protein' => 8.7,
'salt' => 1.2,
'ref_unit' => '100g',
];
update_post_meta($product_id, '_polski_nutrients', wp_json_encode($nutrients));
add_filter('polski/nutrients/values', function (array $nutrients, int $product_id): array {
// Redondeo de los valores según las directrices de la UE
if (isset($nutrients['energy_kcal'])) {
$nutrients['energy_kcal'] = round($nutrients['energy_kcal']);
}
return $nutrients;
}, 10, 2);

La columna polski_nutrients en el CSV debe contener los valores en formato JSON:

"Muesli de frutas","{""energy_kj"":1590,""energy_kcal"":380,""fat"":8.2,""saturated_fat"":1.5,""carbohydrates"":64.0,""sugars"":22.0,""fibre"":7.5,""protein"":9.8,""salt"":0.05,""ref_unit"":""100g""}"

Las comillas dentro del JSON deben duplicarse ("") en el archivo CSV.

.polski-nutrients__table {
width: 100%;
border-collapse: collapse;
font-size: 0.9em;
}
.polski-nutrients__table th,
.polski-nutrients__table td {
padding: 0.4em 0.8em;
border-bottom: 1px solid #e0e0e0;
text-align: left;
}
.polski-nutrients__sub td:first-child {
padding-left: 1.5em;
font-style: italic;
}
.polski-nutrients__table tfoot td {
font-size: 0.8em;
color: #666;
padding-top: 0.8em;
}

La tabla de información nutricional no se muestra

Sección titulada «La tabla de información nutricional no se muestra»
  1. Compruebe que el submódulo de valores nutricionales está activado
  2. Asegúrese de que el campo _polski_nutrients del producto está relleno con un JSON válido
  3. Verifique el formato JSON - utilice un validador (p. ej. jsonlint.com)

Los valores se muestran con un punto en lugar de una coma

Sección titulada «Los valores se muestran con un punto en lugar de una coma»

El plugin da formato a los números automáticamente según la configuración polaca (coma decimal). Si ve un punto, compruebe que la localización de WordPress está establecida en pl_PL.

Compruebe que la opción “Mostrar % IR” está activada en los ajustes y que el parámetro show_rws del shortcode no está establecido en false.

Esta página tiene únicamente carácter informativo y no constituye asesoramiento jurídico. Consulte a un abogado antes de la implementación. Polski for WooCommerce es software de código abierto (GPLv2) proporcionado sin garantía.