Hallo,
ich möchte gern die CustomFields (https://docs.shopware.com/en/shopware-6-en/settings/custom-fields) den LineItem (https://github.com/shopware/platform/blob/master/src/Core/Checkout/Cart/LineItem/LineItem.php) für den Warenkorb hinzufügen.
Hat jemand eine Idee wie ich das umsetzen könnte? Ich möchte diese dann in der Storefront ausgeben (/checkout/cart)
Viele Grüße
Patrick
Würde mich grade auch interessieren…
Ok, so kann man es machen:
custom/plugins/RHWebChildTheme/src/Resources/config/services.xml
und dann in custom/plugins/RHWebChildTheme/src/Subscriber/CartSubscriber.php
config = $config;
$this->productRepository = $SalesChannelRepositoryInterface;
}
/**
* @inheritDoc
*/
public static function getSubscribedEvents()
{
return [
LineItemAddedEvent::class => 'onLineItemAdded',
];
}
public function onLineItemAdded(LineItemAddedEvent $event)
{
$lineItem = $event->getLineItem();
$myProduct = $this->getProductById($lineItem->getReferencedId(), $event->getContext());
$customFields = $myProduct->getCustomFields();
if(!empty($customFields['custom_wholesale_purchaseunit'])) {
$lineItem->setPayloadValue('custom_wholesale_purchaseunit', $customFields['custom_wholesale_purchaseunit']);
}
}
private function getProductById($productId, $context) {
$mainProduct = $this->productRepository->search(
new Criteria([
$productId
]),
$context
)->getEntities()->first();
return $mainProduct;
}
}