Shopware 5.6
Hallo zusammen,
Ich will nach dem dem Event
Shopware_Modules_Order_SaveOrder_OrderCreated
prüfen eine Position der Bestellung den Attribut pre_order_status abfragen. Dazu habe ich in meinem Plugin die Klasse Subscriber/SaveOrder_OrderCreatedSubscriber.php angelegt:
use Enlight\Event\SubscriberInterface;
use Shopware\Bundle\AttributeBundle\Service\CrudService;
use Symfony\Component\DependencyInjection\Container;
class SaveOrder_OrderCreatedSubscriber implements SubscriberInterface
{
/**
* @var Container $container
*/
private $container;
public function __construct(Container $container)
{
$this->container = $container;
}
public static function getSubscribedEvents(): array
{
return [
'Shopware_Modules_Order_SaveOrder_OrderCreated' => 'onShopware_Modules_Order_SaveOrder_OrderCreated'
];
}
public function onShopware_Modules_Order_SaveOrder_OrderCreated(\Enlight_Event_EventArgs $args)
{
/** @var CrudService $service */
$service = $this->container->get('shopware_attribute.crud_service');
// Gibt NULL zurück
$attributePreOrderExists = $service->get('s_articles_attributes', 'pre_order_product_state');
// Iterieren über orderId aus $details und prüfen ob pre_order_product_state == 1
$details = $args->get('details');
}
}
Service.xml:
%analog_pre_order.plugin_dir%
Leider gibt $attributePreOrderExists NULL zurück. Ist mein Ansatz richtig oder würde jemand das Problem anders lösen? Vielen Dank für eure Zeit, ich freue mich auf eure Kommentare!
LG Jonas