Varianten Lagerbestand / Lieferbarkeit im Listing anzeigen von Kindervarianten

Folgendes Problem.

Ich habe ein Produkt welches es in verschieden Farben gibt. Dafür habe ich ein Produkt mit Varianten erstellt.

Wozu gibt es das Elternprodukt / Elternvariante bzw. den Lagerbestand dafür? Bei Varianten gibt es doch nie ein Elternprodukt welches man verkaufen kann, da es Varianten hat.

Da es kein Elterprodukt gibt, stell ich den Lagerbestand auf 0. Bei den Kindervarianten (Produkt in rot, Produkt in weiss) stell ich den verfügbaren Lagerbestand ein.

Im Listing möchte das Elternprodukt anzeigen.
Wenn min. eine Variante des Elternprodukt auf Lager ist, soll angezeigt werden das es „Sofort Lieferbar“ ist.
Falls keine Variante auf Lager ist, soll angezeigt werden „Nicht Lagernd“.

Mit folgendem Code, erhalte ich nur den Lagerbestand des Elternprodukts.
Gibt es eine Möglichkeit mit einer Schleife die Lagerbestände aller Varianten des Elternprodukts / Kindervarianten abzufragen?
Oder ist das nur per Plugin möglich? Wenn ja welches kann das?

{% sw_extends '@Storefront/storefront/component/product/card/action.html.twig' %}

{% block component_product_box_action_detail %}
    {{ parent() }}
    {% if not isAvailable %}
        <span class="product-cheapest-price">[ {{ 'detail.soldOut'|trans|sw_sanitize }} ]</span>
    {% endif %}
{% endblock %}

Ich könnte im Listing eine Kindervarianten zum Anzeigen auswählen, aber wenn von diesem dann der Lagerbestand auf 0 gesunken ist, wird angezeigt „Nicht Lagernd“ und man erkennt nicht, dass andere Varianten dieses Produkts „Sofort Lieferbar“ sind.

Das Elternelement ist dafür da, dass es Werte an die Kinder vererben kann. Die Administration wird lediglich nicht geändert bei Elternelementen. Sprich du kannst zwar bei Lager einen Wert eintragen, dieser wird aber nirgends verwendet.

Wenn du die Werte der anderen Kinder haben möchtest, dann musst du per Subscriber die Werte aus der Datenbank auslesen und diese dem Frontend bereitstellen. Dann kannst du entsprechende Variable auswerten und die Anzeige variieren.

Ob es ein Plugin im Store durch dafür gibt, keine Ahnung. Es gibt ein Varian Listing Plugin, das kann aber deutlich mehr.

Vielen Dank für deine Antwort.

Das stimmt nicht so ganz. Wenn ich den Code im Beitrag davor verwende, dann wird der Lagerbestand des Elternprodukt ausgegeben.
Schade das der Lagerbestand der Varianten nicht per Twig verfügbar ist.

Ich frage mich, wenn der Lagerbestand des Elternprodukts eigentlich nirgends verwendet wird, warum hat SW es dann drin?

Ich habe es nicht getestet, kann mir beim besten Willen aber nicht vorstellen, dass der Lagerbestand des Elternelements herangezogen wird. Das würde überhaupt kein Sinn ergeben.

Wie ich oben bereits beschrieben habe, nutzt Shopware für die Eingabeoberfläche in der Administration das gleiche Template, unabhängig davon ob es ein einfaches Produkt oder eine Variante ist. Daher ändert sich nichts an der Darstellung, du kannst Werte vergeben, aber diese werden zum Teil nicht verwendet.

Eben per Zufall gesehen. Hört sich genau danach an: GitHub - FriendsOfShopware/FroshVariantWithStock

1 „Gefällt mir“

Wenn ein Kinderprodukt verkauft wird. Wird der Bestand vom Elternprodukt abgezogen?

Nein. Elternprodukte werden nie berücksichtigt. Die sind nur eine leere Hülle.