Zum Inhalt springen

Nährwerte

Ein Lebensmittelshop muss eine Nährwerttabelle anzeigen (EU-Verordnung Nr. 1169/2011). Das Plugin Polski for WooCommerce ermöglicht es, jedem Produkt eine Tabelle in einem vorschriftskonformen Format hinzuzufügen.

Die Nährwerttabelle muss mindestens enthalten:

NährstoffEinheitJSON-Schlüssel
EnergiewertkJ / kcalenergy_kj, energy_kcal
Fettgfat
davon gesättigte Fettsäurengsaturated_fat
Kohlenhydrategcarbohydrates
davon Zuckergsugars
Eiweißgprotein
Salzgsalt

Zusätzlich kannst du angeben:

NährstoffEinheitJSON-Schlüssel
Einfach ungesättigte Fettsäurengmonounsaturated_fat
Mehrfach ungesättigte Fettsäurengpolyunsaturated_fat
Mehrwertige Alkohole (Polyole)gpolyols
Stärkegstarch
Ballaststoffegfibre
Vitamin Aµgvitamin_a
Vitamin Dµgvitamin_d
Vitamin Emgvitamin_e
Vitamin Kµgvitamin_k
Vitamin Cmgvitamin_c
Thiamin (B1)mgthiamine
Riboflavin (B2)mgriboflavin
Niacin (B3)mgniacin
Vitamin B6mgvitamin_b6
Folsäureµgfolic_acid
Vitamin B12µgvitamin_b12
Biotinµgbiotin
Pantothensäuremgpantothenic_acid
Kaliummgpotassium
Chloridmgchloride
Calciummgcalcium
Phosphormgphosphorus
Magnesiummgmagnesium
Eisenmgiron
Zinkmgzinc
Kupfermgcopper
Manganmgmanganese
Fluoridmgfluoride
Selenµgselenium
Chromµgchromium
Molybdänµgmolybdenum
Jodµgiodine

Gehe zu WooCommerce > Einstellungen > Polski > Lebensmittel und aktiviere das Submodul “Nährwerte”.

EinstellungStandardBeschreibung
Referenzeinheitpro 100 gStandardeinheit: pro 100 g oder pro 100 ml
% RM anzeigenJaReferenzmenge (% des Tagesbedarfs)
Position der TabelleReiterWo die Tabelle auf der Produktseite angezeigt wird
Optionale NährstoffeBallaststoffe, VitamineWelche optionalen Nährstoffe angezeigt werden

Fülle im Reiter “Lebensmittel” des Produkteditors das Nährwertformular aus. Trage die Zahlenwerte pro 100 g oder 100 ml ein.

Jedes Produkt kann eine eigene Einheit haben. Stelle Getränke auf “pro 100 ml” und feste Produkte auf “pro 100 g” ein. Ohne Einstellung verwendet das Plugin den Standardwert.

Optional gibst du die Portionsgröße und die Werte pro Portion an:

FeldBeschreibung
Portionsgrößez. B. “30 g”, “250 ml”, “1 Scheibe (25 g)“
Anzahl der Portionen pro Verpackungz. B. “10”

Die Nährwerte werden in der Datenbank als JSON im Meta-Feld _polski_nutrients gespeichert. Format:

{
"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
}
  • Die Werte müssen Zahlen sein (int oder float)
  • Dezimaltrennzeichen im JSON: Punkt (z. B. 9.5)
  • Die Werte dürfen nicht negativ sein
  • energy_kj und energy_kcal sollten konsistent sein (1 kcal = 4.184 kJ)
  • Unterbestandteile dürfen den übergeordneten Bestandteil nicht überschreiten (z. B. saturated_fat <= fat)

Verwende den Shortcode [polski_nutrients], um die Nährwerttabelle anzuzeigen.

ParameterTypStandardBeschreibung
product_idintaktuellProdukt-ID
show_rwsbooltrueOb % RM angezeigt wird
show_servingboolfalseOb die Spalte pro Portion angezeigt wird
fieldsstringallAnzuzeigende Nährstoffe (durch Kommas getrennt)
layoutstringtableLayout: table, list, compact
wrapperstringdivUmschließendes HTML-Element

Vollständige Nährwerttabelle:

[polski_nutrients]

Mit Werten pro Portion:

[polski_nutrients show_serving="true"]

Nur die grundlegenden Nährstoffe:

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

Kompaktes Layout (ohne Tabelle):

[polski_nutrients layout="compact"]

Für ein bestimmtes Produkt:

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

Im PHP-Template:

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

Der Shortcode generiert eine dem EU-Standard entsprechende Tabelle:

<div class="polski-nutrients">
<table class="polski-nutrients__table">
<thead>
<tr>
<th>Nährstoff</th>
<th>pro 100 g</th>
<th>% RM*</th>
</tr>
</thead>
<tbody>
<tr>
<td>Energiewert</td>
<td>1046 kJ / 250 kcal</td>
<td>13%</td>
</tr>
<tr>
<td>Fett</td>
<td>9,5 g</td>
<td>14%</td>
</tr>
<tr class="polski-nutrients__sub">
<td>davon gesättigte Fettsäuren</td>
<td>3,2 g</td>
<td>16%</td>
</tr>
<!-- ... -->
</tbody>
<tfoot>
<tr>
<td colspan="3">
* Referenzmenge für einen durchschnittlichen Erwachsenen (8400 kJ / 2000 kcal)
</td>
</tr>
</tfoot>
</table>
</div>

Das Plugin berechnet die % RM automatisch auf Basis dieser Referenzwerte:

NährstoffReferenzwert
Energie8400 kJ / 2000 kcal
Fett70 g
Gesättigte Fettsäuren20 g
Kohlenhydrate260 g
Zucker90 g
Eiweiß50 g
Salz6 g
Ballaststoffe25 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 {
// Rundung der Werte gemäß den EU-Richtlinien
if (isset($nutrients['energy_kcal'])) {
$nutrients['energy_kcal'] = round($nutrients['energy_kcal']);
}
return $nutrients;
}, 10, 2);

Die Spalte polski_nutrients im CSV enthält die Werte als JSON:

"Früchtemüsli","{""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""}"

Anführungszeichen innerhalb des JSON müssen in der CSV-Datei verdoppelt werden ("").

.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;
}
  1. Prüfe, ob das Submodul Nährwerte aktiviert ist
  2. Stelle sicher, dass das Produkt ein ausgefülltes Feld _polski_nutrients mit korrektem JSON hat
  3. Überprüfe das JSON-Format - verwende einen Validator (z. B. jsonlint.com)

Das Plugin formatiert die Zahlen automatisch mit dem polnischen Komma. Wenn du einen Punkt siehst, prüfe, ob das WordPress-Locale auf pl_PL eingestellt ist.

Prüfe, ob die Option ”% RM anzeigen” in den Einstellungen aktiviert ist und ob der Parameter show_rws im Shortcode nicht auf false gesetzt ist.

Diese Seite dient ausschließlich zu Informationszwecken und stellt keine Rechtsberatung dar. Konsultiere vor der Umsetzung einen Anwalt. Polski for WooCommerce ist Open-Source-Software (GPLv2), die ohne Gewährleistung bereitgestellt wird.