diff --git a/src/Plugin/Checkout/ShippingInformationPlugin.php b/src/Plugin/Checkout/ShippingInformationPlugin.php index cc88e796..a1efe605 100644 --- a/src/Plugin/Checkout/ShippingInformationPlugin.php +++ b/src/Plugin/Checkout/ShippingInformationPlugin.php @@ -107,46 +107,47 @@ public function aroundSaveAddressInformation(\Magento\Checkout\Model\ShippingInf $cartId, \Magento\Checkout\Api\Data\ShippingInformationInterface $addressInformation) { + $carrierCode = $addressInformation->getShippingCarrierCode(); + $methodCode = $addressInformation->getShippingMethodCode(); + $shippingMethod = $carrierCode . '_' . $methodCode; + $quote = $this->quoteRepository->getActive($cartId); + $address = $quote->getShippingAddress(); + try { - $carrierCode = $addressInformation->getShippingCarrierCode(); - $methodCode = $addressInformation->getShippingMethodCode(); - $shippingMethod = $carrierCode . '_' . $methodCode; - $quote = $this->quoteRepository->getActive($cartId); - $address = $quote->getShippingAddress(); - - $validation = $this->checkoutSession->getShipAddressValidation(); - if (is_array($validation) && isset($validation['key'])) { - if (isset($validation['validation_status'])) { - $additionalDetail['address_valid'] = $validation['validation_status']; - $address->setValidationStatus($validation['validation_status']); - } - if (isset($validation['destination_type'])) { - $additionalDetail['destination_type'] = $validation['destination_type']; - $address->setDestinationType($validation['destination_type']); + if($this->checkoutSession) { + $validation = $this->checkoutSession->getShipAddressValidation(); + if (is_array($validation) && isset($validation['key'])) { + if (isset($validation['validation_status'])) { + $additionalDetail['address_valid'] = $validation['validation_status']; + $address->setValidationStatus($validation['validation_status']); + } + if (isset($validation['destination_type'])) { + $additionalDetail['destination_type'] = $validation['destination_type']; + $address->setDestinationType($validation['destination_type']); + } + $this->checkoutSession->setShipAddressValidation(null); } - $this->checkoutSession->setShipAddressValidation(null); } $address->save(); - $additionalDetail = new \Magento\Framework\DataObject; - $extAttributes = $addressInformation->getShippingAddress()->getExtensionAttributes(); - - //push out event so other modules can save their data TODO add carrier_group_id - $this->eventManager->dispatch('shipperhq_additional_detail_checkout', - ['address_extn_attributes' => $extAttributes, 'additional_detail'=> $additionalDetail, - 'carrier_code' => $carrierCode]); - $additionalDetailArray = $additionalDetail->convertToArray(); - $this->shipperLogger->postDebug('ShipperHQ Shipper', 'processing additional detail ', $additionalDetail); - $result = $proceed($cartId, $addressInformation); - - $this->carrierGroupHelper->saveCarrierGroupInformation($address, - $shippingMethod, $additionalDetailArray); - } catch (\Exception $e) { $this->shipperLogger->postCritical('Shipperhq_Shipper', 'Shipping Information Plugin', 'Exception raised ' .$e->getMessage()); } + $additionalDetail = new \Magento\Framework\DataObject; + $extAttributes = $addressInformation->getShippingAddress()->getExtensionAttributes(); + + //push out event so other modules can save their data TODO add carrier_group_id + $this->eventManager->dispatch('shipperhq_additional_detail_checkout', + ['address_extn_attributes' => $extAttributes, 'additional_detail'=> $additionalDetail, + 'carrier_code' => $carrierCode]); + $additionalDetailArray = $additionalDetail->convertToArray(); + $this->shipperLogger->postDebug('ShipperHQ Shipper', 'processing additional detail ', $additionalDetail); + $result = $proceed($cartId, $addressInformation); + + $this->carrierGroupHelper->saveCarrierGroupInformation($address, + $shippingMethod, $additionalDetailArray); if($address->getCustomerId()) { $customerAddresses = $quote->getCustomer()->getAddresses();