Как установить Billingaddress во время sales_order_place_before программно - PullRequest
0 голосов
/ 07 января 2019

Мне нужно, чтобы все заказы имели один и тот же платежный адрес (потому что магазин используется внутри компании), но адрес доставки может отличаться. Я думал, что адрес выставления счета должен быть установлен программно во время sales_order_place_before.

Каким-то образом код выбрасывает мне 500 Error каждый раз, когда я хочу отправить свой заказ.

Я создал Observer, он срабатывает на sales_order_place_before, но почему-то не могу его запустить. Я ничего не могу найти по этой теме. Я нашел этот Обновить адрес доставки, аналогичный адресу выставления счета до / после размещения заказа с помощью Observer? , но он не работает для меня.

public function orderPlaceBefore($observer) {

    $order = $observer->getEvent()->getOrder();
    $billing_address = $order->getBillingAddress();
    $shippingAddress = Mage::getModel('sales/order_address')
        ->setCustomerId($billing_address->getCustomerId())
        ->setCustomerAddressId($billing_address->getCustomerAddressId())
        ->setAddressType(Mage_Sales_Model_Quote_Address::TYPE_SHIPPING)
        ->setFirstname($billing_address->getFirstname())
        ->setMiddlename($billing_address->getMiddlename())
        ->setLastname($billing_address->getLastname())
        ->setSuffix($billing_address->getSuffix())
        ->setCompany($billing_address->getCompany())
        ->setStreet($billing_address->getStreet())
        ->setCity($billing_address->getCity())
        ->setCountry_id($billing_address->getCountryId())
        ->setRegion($billing_address->getRegion())
        ->setRegion_id($billing_address->getRegionId())
        ->setPostcode($billing_address->getPostcode())
        ->setTelephone($billing_address->getTelephone())
        ->setFax($billing_address->getFax());

    $order->setShippingAddress($shippingAddress);

Спасибо большое заранее. Я действительно ничего не могу найти по этому поводу ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...