如何从客户对象的自定义属性中的报价中保存价值?

时间:2019-05-24 15:42:03

标签: php magento2

我需要保留客户对象的自定义属性中引号中的值。用户必须在结帐时添加其他字段。

我为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;
}

0 个答案:

没有答案