siqu
27. Mai 2025 um 17:46
1
Hallo,
ich habe ein Plugin geschrieben, welches gelieferte Pseudo Produkte in den Warenkorb legt.
$item->setLabel($label);
$item->setPriceDefinition($priceDefinition);
$item->setPrice($calculatedPrice);
$item->setPayloadValue("price", $price);
$item->setRemovable(true);
$item->setStackable(true);
$item->setGood(true);
$item->setPayloadValue("linkedProduct", $linkedProduct);
Funktioniert wie es soll.
Nun würde ich gern noch ein Bild URL mitliefern, so dass die Produkte im Warenkorb ein Bild bekommen.
Gern auch einen Link zu einer Doku, denn selbst da finde ich nix.
So was klappt schon mal nicht
$item->setCover("0192edbc7c7472668446449d426e7c9d");
$item->setPayloadValue(cover, [media => [url => https://www.abc.de/poolueberdach-casablanca-infinity-a.jpg]]);
Danke
Nicht getestet, müsste ich tippen, würde ich sagen: Bild nicht dynamisch zuordnen sondern eines aus Media auswählen. Falls es nur dynamisch geht, dann zuvor in Media speichern und dann über dessen uuid zuordnen.
siqu
28. Mai 2025 um 09:59
3
Das versuchte ich ja mit
$item->setCover("0192edbc7c7472668446449d426e7c9d");
Jetzt hab ich gefunden, dass es vermutlich so heißen muss
$item->setCoverId("0192edbc7c7472668446449d426e7c9d");
Geht aber auch nicht.
Und das auch nicht
$item->setPayloadValue("coverId", "0192edbc7c7472668446449d426e7c9d");
siqu
28. Mai 2025 um 10:58
4
Füge es jetzt so hinzu.
$item->setPayloadValue("imageUrl", "https://www.abc.de/bild.png");
Wobei imageUrl einfach ein Bezeichner ist.
Und habe noch die Datei zum Überschreiben angelegt.
{% sw_extends '@Storefront/storefront/component/line-item/type/generic.html.twig' %}
{% block component_line_item_type_generic_image %}
<div class="col-auto line-item-info-img">
<div class="line-item-img-container">
{% if lineItem.payload.imageUrl is defined %}
<img src="{{ lineItem.payload.imageUrl }}" alt="{{ lineItem.label }}" class="line-item-image">
{% else %}
{{ parent() }}
{% endif %}
</div>
</div>
{% endblock %}