如何在订单过程中更新 Shopware 6 中的订单自定义字段?

问题描述

我想在结账的订单过程中添加一个日期选择器。订单的自定义字段应该在哪个步骤更新?订单或其他实体的自定义字段更新是如何完成的? 我想添加官方文档中显示的字段。

$this->customFieldSetRepository->create([
    [
        'name' => 'swag_example','customFields' => [
            ['name' => 'swag_example_size','type' => CustomFieldTypes::INT],['name' => 'swag_example_color','type' => CustomFieldTypes::TEXT]
        ]
    ]
],$context);

解决方法

您希望在订购过程中的具体位置添加该数据?

一个例子是从确认到完成 -> 购物车被转换为订单。 您只需要为此创建一个订阅者:

<?php

class OrderProcessSubscriber implements EventSubscriberInterface
{

    public static function getSubscribedEvents()
    {
        return [
            CartConvertedEvent::class => 'addCustomFieldsToConvertedCart',];
    }

    public function addCustomFieldsToConvertedCart(CartConvertedEvent $event)
    {
        $convertedCart['customFields']['my_custom_field'] =  'test';
        $event->setConvertedCart($convertedCart);
    }
}

?>