# Variable referencePrice mit Wert füllen wenn leer/null \[Grundpreis in Shopware 6 immer anzeigen\]

**URL:** https://forum.shopware.com/t/variable-referenceprice-mit-wert-fuellen-wenn-leer-null-grundpreis-in-shopware-6-immer-anzeigen/103253
**Category:** Programmierung
**Created:** [7. März 2024 um 15:31 UTC](https://forum.shopware.com/t/variable-referenceprice-mit-wert-fuellen-wenn-leer-null-grundpreis-in-shopware-6-immer-anzeigen/103253 "2024-03-07T15:31:28Z")
**Posts on this page:** 20
**Page:** 2

<div class="post-metadata">

### Author: ![Anotherone](https://avatars.discourse-cdn.com/v4/letter/a/6de8d8/32.png) [@Anotherone](https://forum.shopware.com/u/Anotherone)
#### Post date: [12. Mai 2024 um 14:14 UTC](https://forum.shopware.com/t/variable-referenceprice-mit-wert-fuellen-wenn-leer-null-grundpreis-in-shopware-6-immer-anzeigen/103253/22 "2024-05-12T14:14:11Z")

</div>

Gerne. Müsste aber eher die component/line-item/line-item.html.twig sein, oder? Ich schau mal.

---

<div class="post-metadata">

### Author: ![Andreas\_147](https://avatars.discourse-cdn.com/v4/letter/a/59ef9b/32.png) [@Andreas\_147](https://forum.shopware.com/u/Andreas_147)
#### Post date: [12. Mai 2024 um 14:46 UTC](https://forum.shopware.com/t/variable-referenceprice-mit-wert-fuellen-wenn-leer-null-grundpreis-in-shopware-6-immer-anzeigen/103253/23 "2024-05-12T14:46:24Z")

</div>

Ich denke, es müsste die `/component/product/feature/item.html.twig` sein, denn dort heißt es:

```auto
    {% elseif feature.type == TYPE_PRODUCT_REFERENCE_PRICE and lineItem.price.referencePrice is not null %}
        {% set type = 'feature-reference-price' %}
    {% endif %}

```

Was dann die `/component/product/feature/types/feature-reference-price.html.twig` für die Darstellung nuten bzw. einsetzen sollte.

---

<div class="post-metadata">

### Author: ![Anotherone](https://avatars.discourse-cdn.com/v4/letter/a/6de8d8/32.png) [@Anotherone](https://forum.shopware.com/u/Anotherone)
#### Post date: [12. Mai 2024 um 19:17 UTC](https://forum.shopware.com/t/variable-referenceprice-mit-wert-fuellen-wenn-leer-null-grundpreis-in-shopware-6-immer-anzeigen/103253/24 "2024-05-12T19:17:46Z")

</div>

Im Offcanvas-Warenkorb scheint es die nötigen Werte wirklich nur zu geben, wenn referencePrice nicht null ist. Im Moment verstehe ich leider nicht, warum der überhaupt null ist, weiß jemand, wo entschieden wird, das der null ist? Ich finde im Code zwar folgendes

```auto
private function calculateReferencePrice(float $price, ?ReferencePriceDefinition $definition, CashRoundingConfig $config): ?ReferencePrice
    {
        if (!$definition) {
            return null;
        }

        if ($definition->getPurchaseUnit() <= 0 || $definition->getReferenceUnit() <= 0) {
            return null;
        }

```

aber beide Werte sind ja nicht \<=0 (sondern 1) oder klemmt es an $definition?

Nachtrag: Es klemmt tatsächlich an $definition. Muss mich weiter durch den Code graben.

---

<div class="post-metadata">

### Author: ![Anotherone](https://avatars.discourse-cdn.com/v4/letter/a/6de8d8/32.png) [@Anotherone](https://forum.shopware.com/u/Anotherone)
#### Post date: [12. Mai 2024 um 19:25 UTC](https://forum.shopware.com/t/variable-referenceprice-mit-wert-fuellen-wenn-leer-null-grundpreis-in-shopware-6-immer-anzeigen/103253/25 "2024-05-12T19:25:46Z")

</div>

Ich denke, ich habs gefunden

```auto
private function buildReferencePriceDefinition(ReferencePriceDto $definition, UnitCollection $units): ?ReferencePriceDefinition
    {
        if (
            $definition->getPurchase() === null
            || $definition->getPurchase() <= 0
            || $definition->getUnitId() === null
            || $definition->getReference() === null
            || $definition->getReference() <= 0
            || $definition->getPurchase() === $definition->getReference()
        ) {
            return null;
        }

        $unit = $units->get($definition->getUnitId());
        if ($unit === null) {
            return null;
        }

        return new ReferencePriceDefinition(
            $definition->getPurchase(),
            $definition->getReference(),
            $unit->getTranslation('name')
        );
    }

```

Konkret:

```auto
$definition->getPurchase() === $definition->getReference()

```

D.h. hier kommt man nur mit einem Plugin weiter, da PHP-Code geändert werden muss…

---

<div class="post-metadata">

### Author: ![Andreas\_147](https://avatars.discourse-cdn.com/v4/letter/a/59ef9b/32.png) [@Andreas\_147](https://forum.shopware.com/u/Andreas_147)
#### Post date: [13. Mai 2024 um 10:30 UTC](https://forum.shopware.com/t/variable-referenceprice-mit-wert-fuellen-wenn-leer-null-grundpreis-in-shopware-6-immer-anzeigen/103253/26 "2024-05-13T10:30:23Z")

</div>

Danke dir @Anotherone das du alles durchprobiert hast und für deine Hilfe! Schade, das es nur über ein Plugin geht. Ich hatte gehofft, man kann es ähnlich „umgehen“ wie auf der Detailseite.

Ich könnte mir schon vorstellen, das es interessenten für so ein Plugin gäbe - es ist so in SW6 einfach unglücklich gelöst. Shopware hätte diese „Ausnahmeregelung“ in der Preisangabenverordnung nicht nutzen müssen - einfach Grundpreis darstellen, wenn es einen gibt, auch wenn der Inhalt 1 Liter oder 1kg ist. Oder eben einen Ein- und Ausschalter, falls jemand wirklich diese Ausnahmeregelung nutzen will. Grad beim Grundpreis denke ich, lieber einmal zuviel angezeigt als zu wenig.

---

<div class="post-metadata">

### Author: ![Anotherone](https://avatars.discourse-cdn.com/v4/letter/a/6de8d8/32.png) [@Anotherone](https://forum.shopware.com/u/Anotherone)
#### Post date: [13. Mai 2024 um 17:44 UTC](https://forum.shopware.com/t/variable-referenceprice-mit-wert-fuellen-wenn-leer-null-grundpreis-in-shopware-6-immer-anzeigen/103253/27 "2024-05-13T17:44:09Z")

</div>

Hatte ich auch gedacht, aber der Wert fehlt leider und den kann man rein im HTML eben nicht herbeizaubern. Find es auch unglücklich, das der Wert nicht, wie sonst, zumindest „roh“ vorhanden ist… Ich seh das genauso, das hätte man dem Betreiber überlassen können, ob das dargestellt wird oder nicht, zumindest die Inhaltsangabe (1 Kilogramm / 1 Liter).

Nachtrag: Mir ist grad aufgefallen, das im „großen“ Warenkorb gar kein Grundpreis angezeigt wird, auch bei denen, wo sonst einer angezeigt wird. Ist das nur bei mir so?

Nachtrag #2: Hab mal geschaut, das lineItem sieht keine Felder dafür vor, es muss im price mit übergeben werden.

---

<div class="post-metadata">

### Author: ![Andreas\_147](https://avatars.discourse-cdn.com/v4/letter/a/59ef9b/32.png) [@Andreas\_147](https://forum.shopware.com/u/Andreas_147)
#### Post date: [13. Mai 2024 um 18:06 UTC](https://forum.shopware.com/t/variable-referenceprice-mit-wert-fuellen-wenn-leer-null-grundpreis-in-shopware-6-immer-anzeigen/103253/28 "2024-05-13T18:06:50Z")

</div>

Ich habs grade mal getestet, bei mir zeigt er überall einen Grundpreis an, wenn die Grundeinheit nicht „1“ ist - auch im Warenkorb (Offcanvas ebenso wie „checkout/cart“).

Hast du vielleicht die wesentlichen Merkmale bei dem Testprodukt nicht aktiviert oder angepasst? Das könnte eine Möglichkeit sein.

Bestünde - theoretisch - eigentlich die Möglichkeit das ganze evtl. über die „Zusatzfelder“ doch in den Warenkorb zu bekommen?

---

<div class="post-metadata">

### Author: ![Anotherone](https://avatars.discourse-cdn.com/v4/letter/a/6de8d8/32.png) [@Anotherone](https://forum.shopware.com/u/Anotherone)
#### Post date: [13. Mai 2024 um 18:49 UTC](https://forum.shopware.com/t/variable-referenceprice-mit-wert-fuellen-wenn-leer-null-grundpreis-in-shopware-6-immer-anzeigen/103253/29 "2024-05-13T18:49:55Z")

</div>

Kurios, in meinem 6.5.8.7 Testshop wird er im Warenkorb nicht angezeigt, im 6.6.20 Testshop ist es da. Danke fürs schauen.

---

<div class="post-metadata">

### Author: ![Anotherone](https://avatars.discourse-cdn.com/v4/letter/a/6de8d8/32.png) [@Anotherone](https://forum.shopware.com/u/Anotherone)
#### Post date: [14. Mai 2024 um 00:14 UTC](https://forum.shopware.com/t/variable-referenceprice-mit-wert-fuellen-wenn-leer-null-grundpreis-in-shopware-6-immer-anzeigen/103253/30 "2024-05-14T00:14:14Z")

</div>

![Bildschirmfoto 2024-05-14 um 00.19.29](https://europe1.discourse-cdn.com/flex013/uploads/shopware/original/3X/7/f/7f70429856744882292c694f7d469f5748027fb7.png)

---

<div class="post-metadata">

### Author: ![Andreas\_147](https://avatars.discourse-cdn.com/v4/letter/a/59ef9b/32.png) [@Andreas\_147](https://forum.shopware.com/u/Andreas_147)
#### Post date: [14. Mai 2024 um 13:44 UTC](https://forum.shopware.com/t/variable-referenceprice-mit-wert-fuellen-wenn-leer-null-grundpreis-in-shopware-6-immer-anzeigen/103253/31 "2024-05-14T13:44:47Z")

</div>

Jetzt bin ich aber neugierig - wie hast du das denn hinbekommen?

---

<div class="post-metadata">

### Author: ![Anotherone](https://avatars.discourse-cdn.com/v4/letter/a/6de8d8/32.png) [@Anotherone](https://forum.shopware.com/u/Anotherone)
#### Post date: [14. Mai 2024 um 14:43 UTC](https://forum.shopware.com/t/variable-referenceprice-mit-wert-fuellen-wenn-leer-null-grundpreis-in-shopware-6-immer-anzeigen/103253/32 "2024-05-14T14:43:01Z")

</div>

Mit einem kleinen Plugin, was die Werte nachträgt. Lustigerweise funktioniert damit dann auch direkt die Listing und die Detailansicht ohne weitere Änderungen. War am Anfang echt genervt, da die entscheidende (eine) Zeile in der vierten Unterfunktion sitzt, natürlich private und somit nicht überschreibbar. Dann wird auch noch eine Ableitung dazwischen gehängt (AppScriptProductPriceCalculator), so das man nicht mal direkt damit arbeiten konnte, aber am Ende kam mir die richtige Idee und jetzt sind es gerade mal ein paar Zeilen. Wenn Du es ausprobieren willst, kann ich Dir gern die ZIP-Datei schicken.

---

<div class="post-metadata">

### Author: ![Andreas\_147](https://avatars.discourse-cdn.com/v4/letter/a/59ef9b/32.png) [@Andreas\_147](https://forum.shopware.com/u/Andreas_147)
#### Post date: [14. Mai 2024 um 15:44 UTC](https://forum.shopware.com/t/variable-referenceprice-mit-wert-fuellen-wenn-leer-null-grundpreis-in-shopware-6-immer-anzeigen/103253/33 "2024-05-14T15:44:38Z")

</div>

Ich danke dir sehr für deine ganze Arbeit, das Problem mit der Grundpreisangabe zu lösen! Ich würde mich sehr freuen, wenn ich dein Plugin verwenden dürfte!!

P.S.: Ich habe die letzten Tage auch immer mit Version 6.5.8.7 an meinem künftigen SW6 Shop „gebastelt“ und heute mal Testweise das Update auf 6.6.2.0 eingespielt. Dabei ist mir aufgefallen, das nach dem Update der von dir erstellte Code für die `buy-widget-price.html.twig` nicht mehr funktioniert.

In Version 6.5.8.7 kein Problem, nach dem Update bleibt aber auf der Produkt-Detailseite der Grundpreis weg, wenn der Inhalt 1 ist - es wird dann nur noch (wie im Standard) „Inhalt 1 Liter“ angezeigt. Erklären kann ich es mir nicht.

---

<div class="post-metadata">

### Author: ![Andreas\_147](https://avatars.discourse-cdn.com/v4/letter/a/59ef9b/32.png) [@Andreas\_147](https://forum.shopware.com/u/Andreas_147)
#### Post date: [16. Mai 2024 um 14:19 UTC](https://forum.shopware.com/t/variable-referenceprice-mit-wert-fuellen-wenn-leer-null-grundpreis-in-shopware-6-immer-anzeigen/103253/34 "2024-05-16T14:19:14Z")

</div>

!Hier stand einmal blödsinn!

---

<div class="post-metadata">

### Author: ![Max\_Shop](https://avatars.discourse-cdn.com/v4/letter/m/58f4c7/32.png) [@Max\_Shop](https://forum.shopware.com/u/Max_Shop)
#### Post date: [16. Mai 2024 um 16:54 UTC](https://forum.shopware.com/t/variable-referenceprice-mit-wert-fuellen-wenn-leer-null-grundpreis-in-shopware-6-immer-anzeigen/103253/35 "2024-05-16T16:54:27Z")

</div>

> [@Andreas\_147](#):
>
> bei Varianten-Artikeln im Listing generell keine Grundpreisangabe erfolgt

Lese dir doch bitte noch einmal die Shopware Dokumentation durch, dann lernst du auch, wie man dies einstellt:

> **[Shopware 6 - Kataloge - Produkte anlegen](https://docs.shopware.com/de/shopware-6-de/kataloge/produkte?category=shopware-6-de%2Fkataloge#masse-verpackung)**
>
> In diesem Artikel beschreiben wir das Anlegen von Artikeln im Shopware Admin. Über den Menüpunkt Kataloge \> Produkte \> Produkt anlegen hast Du eine Vielzahl von Einstellungsmöglichkeiten. Sämtliche Artikelkonfigurationen kannst Du unter diesem Punkt...

> **[Shopware 6 - Kataloge - Produkte anlegen](https://docs.shopware.com/de/shopware-6-de/kataloge/produkte?category=shopware-6-de%2Fkataloge#varianten)**
>
> In diesem Artikel beschreiben wir das Anlegen von Artikeln im Shopware Admin. Über den Menüpunkt Kataloge \> Produkte \> Produkt anlegen hast Du eine Vielzahl von Einstellungsmöglichkeiten. Sämtliche Artikelkonfigurationen kannst Du unter diesem Punkt...

Und bitte informiere dich auch im Detail über rechtliche Regelungen, bevor du Behauptungen aufstellst.

Die Diskussion hatte ich bereits vor ein oder zwei Jahren hier im Forum initiiert. Die Suche wird den Thread sicherlich preisgeben. Da kannst du dann auch die Argumente nachlesen.

---

<div class="post-metadata">

### Author: ![Andreas\_147](https://avatars.discourse-cdn.com/v4/letter/a/59ef9b/32.png) [@Andreas\_147](https://forum.shopware.com/u/Andreas_147)
#### Post date: [16. Mai 2024 um 17:52 UTC](https://forum.shopware.com/t/variable-referenceprice-mit-wert-fuellen-wenn-leer-null-grundpreis-in-shopware-6-immer-anzeigen/103253/36 "2024-05-16T17:52:54Z")

</div>

Wollte gerade schreiben „vergesst meinen Beitrag“ - mein Fehler war, dass ich das Variantensystem von Shopware 6 nicht verstanden habe (es ist halt doch ganz anders als bei SW5). Ich habe da scheinbar einen „Primärartikel“ von dem dann die Varianten abgeleitet werden. Wenn dieser eine Grundeinheit von „1“ hat, wird auch kein Grundpreis dargestellt. Was lernen ich daraus? Die Hauptvariante oder der „Primärartikel“ sollte den Inhalt der kleinsten Variante aufweisen, dann klappt auch alles. Sorry!

---

<div class="post-metadata">

### Author: ![Andreas\_147](https://avatars.discourse-cdn.com/v4/letter/a/59ef9b/32.png) [@Andreas\_147](https://forum.shopware.com/u/Andreas_147)
#### Post date: [10. Juni 2024 um 08:02 UTC](https://forum.shopware.com/t/variable-referenceprice-mit-wert-fuellen-wenn-leer-null-grundpreis-in-shopware-6-immer-anzeigen/103253/37 "2024-06-10T08:02:22Z")

</div>

Da Shopware im Standard ja bei z.B. 1 Liter oder 1kg keinen Grundpreis anzeigt, hatte ich versucht, das über Template-Anpassungen zu lösen. Das geht auch ein wenig,  
aber spätestens im Warenkorb gibt es keine Möglichkeit, da die benötigten Werte nicht übertragen werden.

Trotzdem kann ich den Beitrag als gelöst markieren - denn @anotherone hat ein Plugin geschrieben, das alle Probleme löst. Es packt die Probleme an der Wurzel - mit dem Plugin  
bekommt Ihr (ohne dass Ihr irgend etwas am Template anpassen müsst) den Grundpreis IMMER angezeigt. Im Listing, auf der Detailseite, in der Suchleiste, im Offcanvas und im Hauptwarenkorb, beim Checkout, in der Merkliste, im Kundenkonto - und sogar in der Bestellbestätigung!

Wenn Ihr ebenfalls interesse an einem Plugin habt, damit der Grundpreis immer angezeigt wird, wendet euch bitte an @anotherone

---

<div class="post-metadata">

### Author: ![system](https://europe1.discourse-cdn.com/flex013/uploads/shopware/original/3X/2/9/29c7587ba660f00e4995d1743162782e5d6d8653.svg) [@system](https://forum.shopware.com/u/system)
#### Post date: [10. Juli 2024 um 08:03 UTC](https://forum.shopware.com/t/variable-referenceprice-mit-wert-fuellen-wenn-leer-null-grundpreis-in-shopware-6-immer-anzeigen/103253/38 "2024-07-10T08:03:13Z")

</div>

Dieses Thema wurde automatisch 30 Tage nach der letzten Antwort geschlossen. Es sind keine neuen Antworten mehr erlaubt.

---

<div class="post-metadata">

### Author: ![Max\_Shop](https://avatars.discourse-cdn.com/v4/letter/m/58f4c7/32.png) [@Max\_Shop](https://forum.shopware.com/u/Max_Shop)
#### Post date: [14. Oktober 2025 um 14:03 UTC](https://forum.shopware.com/t/variable-referenceprice-mit-wert-fuellen-wenn-leer-null-grundpreis-in-shopware-6-immer-anzeigen/103253/39 "2025-10-14T14:03:11Z")

</div>

Würdest du mir den Code Block, vermutlich Subscriber, bitte auch mal schicken? Möchte sehen, ob ich das identisch gelöst habe oder ob es einen einfacheren Weg gibt. Dank dir.

---

<div class="post-metadata">

### Author: ![Max\_Shop](https://avatars.discourse-cdn.com/v4/letter/m/58f4c7/32.png) [@Max\_Shop](https://forum.shopware.com/u/Max_Shop)
#### Post date: [15. Oktober 2025 um 07:36 UTC](https://forum.shopware.com/t/variable-referenceprice-mit-wert-fuellen-wenn-leer-null-grundpreis-in-shopware-6-immer-anzeigen/103253/40 "2025-10-15T07:36:21Z")

</div>



---

<div class="post-metadata">

### Author: ![Anotherone](https://avatars.discourse-cdn.com/v4/letter/a/6de8d8/32.png) [@Anotherone](https://forum.shopware.com/u/Anotherone)
#### Post date: [15. Oktober 2025 um 07:47 UTC](https://forum.shopware.com/t/variable-referenceprice-mit-wert-fuellen-wenn-leer-null-grundpreis-in-shopware-6-immer-anzeigen/103253/41 "2025-10-15T07:47:46Z")

</div>

Ich hab es nicht als Subscriber, sondern als ProductPriceCalculator gelöst

```php
public function calculate(iterable $products, SalesChannelContext $context): void {
        // parent
        $this->getDecorated()->calculate($products, $context);

        /** @var SalesChannelProductEntity $product */
        foreach ($products as $product) {
            $unit = $product->getUnit();
            $purchaseUnit = $product->getPurchaseUnit();
            $referenceUnit = $product->getReferenceUnit();
            if (!empty($unit) && $purchaseUnit > 0 && $referenceUnit > 0 && $purchaseUnit === $referenceUnit) {
                $price = $product->getCalculatedPrice();
                $referencePrice = new ReferencePrice($price->getUnitPrice(), $purchaseUnit, $referenceUnit, $unit->getName());
                $price->assign(['referencePrice' => $referencePrice]);
            }
        }
    }

```

Ist das mit dem Subscriber einfacher?

[Vorherige Seite](https://forum.shopware.com/t/variable-referenceprice-mit-wert-fuellen-wenn-leer-null-grundpreis-in-shopware-6-immer-anzeigen/103253.md?page=1)

[Nächste Seite](https://forum.shopware.com/t/variable-referenceprice-mit-wert-fuellen-wenn-leer-null-grundpreis-in-shopware-6-immer-anzeigen/103253.md?page=3)
