我需要保留客户对象的自定义属性中引号中的值。用户必须在结帐时添加其他字段。
我为customer_address实体添加了2个自定义属性,并将它们添加到扩展属性中。在方法SaveAddressInformation之前也挂了插件,以便将我的属性的值添加到报价,预展开的报价表中。另外,感谢观察者,我按顺序从报价中保存了这些值。
现在,为了使注册用户将该数据保存在地址中,我需要以某种方式将报价中的值转移并保存到customer_address_entity表中
我只是不明白我能做到这一点。
public function beforeSaveAddressInformation(
\Magento\Checkout\Api\ShippingInformationManagementInterface $subject,
$cartId,
\Magento\Checkout\Api\Data\ShippingInformationInterface $addressInformation
) {
$extensionAttributes = $addressInformation->getShippingAddress()->getExtensionAttributes();
if ($extensionAttributes) {
$cityId = $extensionAttributes->getCityId();
$warehouseId = $extensionAttributes->getWarehouseId();
$quote = $this->quoteRepository->getActive($cartId);
$quote->setCityId($cityId);
$quote->setWarehouseId($warehouseId);
}
}
观察者: $ order = $ observer-> getEvent()-> getOrder();
$quote = $this->quoteRepository->get($order->getQuoteId());
$order->setCityId($quote->getCityId());
$order->setWarehouseId($quote->getWarehouseId());
return $this;
}