![]() 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/vendor/colissimo/module-shipping/Plugin/ |
<?php /** * Colissimo Shipping Module * * @author Magentix * @copyright Copyright © 2023 Magentix. All rights reserved. * @license https://www.magentix.fr/en/licence.html Magentix Software Licence * @link https://colissimo.magentix.fr/ */ namespace Colissimo\Shipping\Plugin; use Colissimo\Shipping\Api\Data\ShippingDataInterface; use Magento\Sales\Api\Data\OrderInterface; use Magento\Sales\Api\Data\OrderExtensionInterface; use Magento\Sales\Api\Data\OrderSearchResultInterface; use Magento\Sales\Model\Order\Address; use Magento\Sales\Api\OrderRepositoryInterface; use Magento\Sales\Model\Order\ShippingAssignment; class OrderRepository { /** * After Get * * @param OrderRepositoryInterface $subject * @param OrderInterface $order * * @return OrderInterface */ public function afterGet(OrderRepositoryInterface $subject, OrderInterface $order) { return $this->addShippingData($order); } /** * After GetList * * @param OrderRepositoryInterface $subject * @param OrderSearchResultInterface $searchCriteria * * @return OrderSearchResultInterface */ public function afterGetList(OrderRepositoryInterface $subject, OrderSearchResultInterface $searchCriteria) { foreach ($searchCriteria->getItems() as $order) { $this->addShippingData($order); } return $searchCriteria; } /** * Add Shipping data to order * * @param OrderInterface $order * * @return OrderInterface */ public function addShippingData(OrderInterface $order) { /** @var Address $shippingAddress */ $shippingAddress = $order->getShippingAddress(); if (!$shippingAddress) { return $order; } if (!$shippingAddress->getData(ShippingDataInterface::COLISSIMO_PICKUP_ID)) { return $order; } /** @var OrderExtensionInterface $extensionAttributes */ $extensionAttributes = $order->getExtensionAttributes(); if ($extensionAttributes === null) { return $order; } if (empty($extensionAttributes->getShippingAssignments())) { return $order; } /** @var ShippingAssignment $shipping */ $shipping = $extensionAttributes->getShippingAssignments()[0]; $address = $shipping->getShipping()->getAddress(); if ($address->getExtensionAttributes() === null) { return $order; } $address->getExtensionAttributes() ->setColissimoPickupId($shippingAddress->getData(ShippingDataInterface::COLISSIMO_PICKUP_ID)) ->setColissimoProductCode($shippingAddress->getData(ShippingDataInterface::COLISSIMO_PRODUCT_CODE)) ->setColissimoNetworkCode($shippingAddress->getData(ShippingDataInterface::COLISSIMO_NETWORK_CODE)); return $order; } }