![]() Server : Apache System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64 User : corals ( 1002) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system Directory : /home/corals/old/app/code/Cnc/Shipping/Preference/Colissimo/Model/ |
<?php /** * Copyright (c) 2021 Kaliop Digital Commerce (https://digitalcommerce.kaliop.com) All Rights Reserved. * https://opensource.org/licenses/OSL-3.0 Open Software License (OSL 3.0) * Krzysztof Majkowski <[email protected]> */ namespace Cnc\Shipping\Preference\Colissimo\Model; use Colissimo\Shipping\Api\Data\ShippingDataInterface; use Colissimo\Shipping\Model\Carrier\Colissimo; class Address extends \Colissimo\Shipping\Model\Address { /** * @overridden * * Overridden due to fix crash according to msi usage. */ public function updateShippingAddress($order, $quote) { if (!$order) { return $this; } if (!$quote) { return $this; } $address = $order->getShippingAddress(); if (!$address) { return $this; } if ($address->getAddressType() !== 'shipping') { return $this; } /* Reset Data */ $address->setData(ShippingDataInterface::COLISSIMO_PRODUCT_CODE, null); $address->setData(ShippingDataInterface::COLISSIMO_PICKUP_ID, null); $address->setData(ShippingDataInterface::COLISSIMO_NETWORK_CODE, null); $shippingMethods = $quote->getShippingAddress()->getShippingMethod(); if (is_array($shippingMethods)) { foreach ($shippingMethods as $source => $shippingMethod) { if (!$shippingMethod) { continue; } list($code, $method) = explode('_', $shippingMethod); if ($code !== Colissimo::SHIPPING_CARRIER_CODE) { continue; } /* Set code */ $productCode = $this->shippingHelper->getConfig($method . '/product_code'); if ($productCode) { $address->setData(ShippingDataInterface::COLISSIMO_PRODUCT_CODE, $productCode); } /* Set pickup data */ $pickup = $this->pickup->getPickupAddress($quote->getId()); if (is_array($pickup)) { $address->setCompany($pickup['company']) ->setStreet([$pickup['street']]) ->setPostcode($pickup['postcode']) ->setCity($pickup['city']) ->setCountryId($pickup['country_id']) ->setFax('') ->setCustomerAddressId(null) ->setData(ShippingDataInterface::COLISSIMO_PICKUP_ID, $pickup['pickup_id']) ->setData(ShippingDataInterface::COLISSIMO_PRODUCT_CODE, $pickup['pickup_type']) ->setData(ShippingDataInterface::COLISSIMO_NETWORK_CODE, $pickup['network_code']) ->setSameAsBilling(0) ->setSaveInAddressBook(0); $region = $this->shippingHelper->getRegion($pickup['country_id'], $pickup['postcode']); if ($region->hasData()) { $address->setRegion($region->getDefaultName()) ->setRegionId($region->getRegionId()) ->setRegionCode($region->getCode()); } if ($pickup['telephone']) { $address->setTelephone($pickup['telephone']); } // Do not delete data if there is an error in the order // $this->pickup->reset($quote->getId()); } } } return $this; } }