From 92da7cd3db2ab42e681fe25cba015862ba50ae6d Mon Sep 17 00:00:00 2001 From: Nicolas D <50154923+nicolasddev@users.noreply.github.com> Date: Wed, 23 Feb 2022 20:07:49 -0500 Subject: [PATCH 01/16] Update Order.php --- app/code/Magento/Sales/Model/Order.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/code/Magento/Sales/Model/Order.php b/app/code/Magento/Sales/Model/Order.php index f272a4638a170..385706c2c707f 100644 --- a/app/code/Magento/Sales/Model/Order.php +++ b/app/code/Magento/Sales/Model/Order.php @@ -1372,7 +1372,7 @@ public function getShippingMethod($asObject = false) if (!$asObject || !$shippingMethod) { return $shippingMethod; } else { - list($carrierCode, $method) = explode('_', $shippingMethod, 2); + list($carrierCode, $method) = preg_split("/::/", $shippingMethod, 2); return new \Magento\Framework\DataObject(['carrier_code' => $carrierCode, 'method' => $method]); } } From 6569f97a1b826eb8ee95c1d5fa03a34a0896e288 Mon Sep 17 00:00:00 2001 From: Nicolas D <50154923+nicolasddev@users.noreply.github.com> Date: Wed, 23 Feb 2022 20:23:04 -0500 Subject: [PATCH 02/16] Update Order.php --- app/code/Magento/Sales/Model/Order.php | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/app/code/Magento/Sales/Model/Order.php b/app/code/Magento/Sales/Model/Order.php index 385706c2c707f..126769864e98d 100644 --- a/app/code/Magento/Sales/Model/Order.php +++ b/app/code/Magento/Sales/Model/Order.php @@ -118,6 +118,11 @@ class Order extends AbstractModel implements EntityInterface, OrderInterface public const REPORT_DATE_TYPE_CREATED = 'created'; public const REPORT_DATE_TYPE_UPDATED = 'updated'; + + /** + * Delimiters + */ + public const DELIMITER_SHIPPING_METHOD = '::'; /** * @var string @@ -1372,7 +1377,7 @@ public function getShippingMethod($asObject = false) if (!$asObject || !$shippingMethod) { return $shippingMethod; } else { - list($carrierCode, $method) = preg_split("/::/", $shippingMethod, 2); + list($carrierCode, $method) = preg_split("/".self::DELIMITER_SHIPPING_METHOD."/", $shippingMethod, 2); return new \Magento\Framework\DataObject(['carrier_code' => $carrierCode, 'method' => $method]); } } From bfb6e55aedcb0c58a2ff2eafd8b1d3cb8bdc071f Mon Sep 17 00:00:00 2001 From: Nicolas D <50154923+nicolasddev@users.noreply.github.com> Date: Wed, 23 Feb 2022 20:26:40 -0500 Subject: [PATCH 03/16] Update PaymentFailuresService.php --- .../Magento/Sales/Model/Service/PaymentFailuresService.php | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/app/code/Magento/Sales/Model/Service/PaymentFailuresService.php b/app/code/Magento/Sales/Model/Service/PaymentFailuresService.php index a05ed2be9c82c..a2e6e1e9ea5a6 100644 --- a/app/code/Magento/Sales/Model/Service/PaymentFailuresService.php +++ b/app/code/Magento/Sales/Model/Service/PaymentFailuresService.php @@ -16,6 +16,7 @@ use Magento\Quote\Api\CartRepositoryInterface; use Magento\Quote\Api\Data\CartInterface as Quote; use Magento\Sales\Api\PaymentFailuresInterface; +use Magento\Sales\Model\Order; use Magento\Store\Model\ScopeInterface; use Magento\Store\Model\Store; use Psr\Log\LoggerInterface; @@ -215,7 +216,7 @@ private function getShippingMethod(Quote $quote): string $shippingInfo = $quote->getShippingAddress()->getShippingMethod(); if ($shippingInfo) { - $data = explode('_', $shippingInfo); + $data = preg_split("/".Order::DELIMITER_SHIPPING_METHOD."/", $shippingInfo); $shippingMethod = $data[0]; } From ea120bfaf161177df72687702df47765368177dd Mon Sep 17 00:00:00 2001 From: Nicolas D <50154923+nicolasddev@users.noreply.github.com> Date: Wed, 23 Feb 2022 20:28:42 -0500 Subject: [PATCH 04/16] Update ShippingMethodManagement.php --- app/code/Magento/Quote/Model/ShippingMethodManagement.php | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/app/code/Magento/Quote/Model/ShippingMethodManagement.php b/app/code/Magento/Quote/Model/ShippingMethodManagement.php index 8d851c71b6602..be657e09dc11a 100644 --- a/app/code/Magento/Quote/Model/ShippingMethodManagement.php +++ b/app/code/Magento/Quote/Model/ShippingMethodManagement.php @@ -25,6 +25,7 @@ use Magento\Quote\Model\Quote\Address\Rate; use Magento\Quote\Model\Quote\TotalsCollector; use Magento\Quote\Model\ResourceModel\Quote\Address as QuoteAddressResource; +use Magento\Sales\Model\Order; /** * Shipping method read service @@ -224,7 +225,7 @@ public function apply($cartId, $carrierCode, $methodCode) $this->quoteAddressResource->delete($shippingAddress); throw new StateException(__('The shipping address is missing. Set the address and try again.')); } - $shippingMethod = $carrierCode . '_' . $methodCode; + $shippingMethod = $carrierCode . Order::DELIMITER_SHIPPING_METHOD . $methodCode; $shippingAddress->setShippingMethod($shippingMethod); $shippingAssignments = $quote->getExtensionAttributes()->getShippingAssignments(); if (!empty($shippingAssignments)) { From cc49253226d34a5bc3fd6a7148cbcbe4d818e1f2 Mon Sep 17 00:00:00 2001 From: Nicolas D <50154923+nicolasddev@users.noreply.github.com> Date: Wed, 23 Feb 2022 20:30:35 -0500 Subject: [PATCH 05/16] Update ShippingInformationManagement.php --- .../Magento/Checkout/Model/ShippingInformationManagement.php | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/app/code/Magento/Checkout/Model/ShippingInformationManagement.php b/app/code/Magento/Checkout/Model/ShippingInformationManagement.php index f397a8ddc9cf1..db5c895c5a5d3 100644 --- a/app/code/Magento/Checkout/Model/ShippingInformationManagement.php +++ b/app/code/Magento/Checkout/Model/ShippingInformationManagement.php @@ -27,6 +27,7 @@ use Magento\Quote\Model\QuoteAddressValidator; use Magento\Quote\Model\ShippingAssignmentFactory; use Magento\Quote\Model\ShippingFactory; +use Magento\Sales\Model\Order; use Psr\Log\LoggerInterface as Logger; /** @@ -184,7 +185,7 @@ public function saveAddressInformation( $carrierCode = $addressInformation->getShippingCarrierCode(); $address->setLimitCarrier($carrierCode); $methodCode = $addressInformation->getShippingMethodCode(); - $quote = $this->prepareShippingAssignment($quote, $address, $carrierCode . '_' . $methodCode); + $quote = $this->prepareShippingAssignment($quote, $address, $carrierCode . Order::DELIMITER_SHIPPING_METHOD . $methodCode); $quote->setIsMultiShipping(false); From e5d5987e572a761ea72fdef96a3dd2844f1224e1 Mon Sep 17 00:00:00 2001 From: Nicolas D <50154923+nicolasddev@users.noreply.github.com> Date: Wed, 23 Feb 2022 20:32:37 -0500 Subject: [PATCH 06/16] Update Rate.php --- app/code/Magento/Quote/Model/Quote/Address/Rate.php | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/app/code/Magento/Quote/Model/Quote/Address/Rate.php b/app/code/Magento/Quote/Model/Quote/Address/Rate.php index 3f96be4bd25a4..6697126d7c18d 100644 --- a/app/code/Magento/Quote/Model/Quote/Address/Rate.php +++ b/app/code/Magento/Quote/Model/Quote/Address/Rate.php @@ -6,6 +6,7 @@ namespace Magento\Quote\Model\Quote\Address; use Magento\Framework\Model\AbstractModel; +use Magento\Sales\Model\Order; /** * @api @@ -98,7 +99,7 @@ public function importShippingRate(\Magento\Quote\Model\Quote\Address\RateResult ); } elseif ($rate instanceof \Magento\Quote\Model\Quote\Address\RateResult\Method) { $this->setCode( - $rate->getCarrier() . '_' . $rate->getMethod() + $rate->getCarrier() . Order::DELIMITER_SHIPPING_METHOD . $rate->getMethod() )->setCarrier( $rate->getCarrier() )->setCarrierTitle( From 53721d08dda218961829e211e37ba77f6ba09e38 Mon Sep 17 00:00:00 2001 From: Nicolas D <50154923+nicolasddev@users.noreply.github.com> Date: Wed, 23 Feb 2022 20:35:21 -0500 Subject: [PATCH 07/16] Update ShippingProcessor.php --- .../Model/Quote/ShippingAssignment/ShippingProcessor.php | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/app/code/Magento/Quote/Model/Quote/ShippingAssignment/ShippingProcessor.php b/app/code/Magento/Quote/Model/Quote/ShippingAssignment/ShippingProcessor.php index ccad63ab41549..c8ed72514df62 100644 --- a/app/code/Magento/Quote/Model/Quote/ShippingAssignment/ShippingProcessor.php +++ b/app/code/Magento/Quote/Model/Quote/ShippingAssignment/ShippingProcessor.php @@ -10,6 +10,7 @@ use Magento\Quote\Model\ShippingFactory; use Magento\Quote\Model\ShippingAddressManagement; use Magento\Quote\Model\ShippingMethodManagement; +use Magento\Sales\Model\Order; class ShippingProcessor { @@ -65,10 +66,9 @@ public function save(ShippingInterface $shipping, CartInterface $quote) { $this->shippingAddressManagement->assign($quote->getId(), $shipping->getAddress()); if (!empty($shipping->getMethod()) && $quote->getItemsCount() > 0) { - $nameComponents = explode('_', $shipping->getMethod()); - $carrierCode = array_shift($nameComponents); - // carrier method code can contains more one name component - $methodCode = implode('_', $nameComponents); + $nameComponents = explode(Order::DELIMITER_SHIPPING_METHOD, $shipping->getMethod()); + $carrierCode = $nameComponents[0]; + $methodCode = $nameComponents[1]; $this->shippingMethodManagement->apply($quote->getId(), $carrierCode, $methodCode); } } From 53f9ffafb5566d302e30bde46fabb4e375554cee Mon Sep 17 00:00:00 2001 From: Nicolas D <50154923+nicolasddev@users.noreply.github.com> Date: Wed, 23 Feb 2022 20:37:39 -0500 Subject: [PATCH 08/16] Update TotalsInformationManagement.php --- .../Magento/Checkout/Model/TotalsInformationManagement.php | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/app/code/Magento/Checkout/Model/TotalsInformationManagement.php b/app/code/Magento/Checkout/Model/TotalsInformationManagement.php index 25e2f0ba4e005..200b768265c0e 100644 --- a/app/code/Magento/Checkout/Model/TotalsInformationManagement.php +++ b/app/code/Magento/Checkout/Model/TotalsInformationManagement.php @@ -6,6 +6,7 @@ namespace Magento\Checkout\Model; use Magento\Checkout\Api\Data\TotalsInformationInterface; +use Magento\Sales\Model\Order; /** * Class for management of totals information. @@ -54,7 +55,7 @@ public function calculate( $quote->setShippingAddress($addressInformation->getAddress()); if ($addressInformation->getShippingCarrierCode() && $addressInformation->getShippingMethodCode()) { $shippingMethod = implode( - '_', + Order::DELIMITER_SHIPPING_METHOD, [$addressInformation->getShippingCarrierCode(), $addressInformation->getShippingMethodCode()] ); $quoteShippingAddress = $quote->getShippingAddress(); From 06b69f614991f2d06487571645965565fca1ef7e Mon Sep 17 00:00:00 2001 From: Nicolas D <50154923+nicolasddev@users.noreply.github.com> Date: Wed, 23 Feb 2022 20:39:09 -0500 Subject: [PATCH 09/16] Update Allmethods.php --- app/code/Magento/Shipping/Model/Config/Source/Allmethods.php | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/app/code/Magento/Shipping/Model/Config/Source/Allmethods.php b/app/code/Magento/Shipping/Model/Config/Source/Allmethods.php index f64c24856eba5..0cce062f92f67 100644 --- a/app/code/Magento/Shipping/Model/Config/Source/Allmethods.php +++ b/app/code/Magento/Shipping/Model/Config/Source/Allmethods.php @@ -5,6 +5,8 @@ */ namespace Magento\Shipping\Model\Config\Source; +use Magento\Sales\Model\Order; + /** * @inheritdoc */ @@ -66,7 +68,7 @@ public function toOptionArray($isActiveOnlyFlag = false) continue; } $methods[$carrierCode]['value'][] = [ - 'value' => $carrierCode . '_' . $methodCode, + 'value' => $carrierCode . Order::DELIMITER_SHIPPING_METHOD . $methodCode, 'label' => '[' . $carrierCode . '] ' . $methodTitle, ]; } From a057482e308122b572dd368cbc3d69c606d79120 Mon Sep 17 00:00:00 2001 From: Nicolas D <50154923+nicolasddev@users.noreply.github.com> Date: Wed, 23 Feb 2022 20:40:31 -0500 Subject: [PATCH 10/16] Update checkout-data-resolver.js --- .../view/frontend/web/js/model/checkout-data-resolver.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/code/Magento/Checkout/view/frontend/web/js/model/checkout-data-resolver.js b/app/code/Magento/Checkout/view/frontend/web/js/model/checkout-data-resolver.js index ad44c00763dcd..07d67718db07f 100644 --- a/app/code/Magento/Checkout/view/frontend/web/js/model/checkout-data-resolver.js +++ b/app/code/Magento/Checkout/view/frontend/web/js/model/checkout-data-resolver.js @@ -137,7 +137,7 @@ define([ if (!availableRate && selectedShippingRate) { availableRate = _.find(ratesData, function (rate) { - return rate['carrier_code'] + '_' + rate['method_code'] === selectedShippingRate; + return rate['carrier_code'] + '::' + rate['method_code'] === selectedShippingRate; }); } From 0a8e8b84267f55c91bc45f4d63f3367b519a103a Mon Sep 17 00:00:00 2001 From: Nicolas D <50154923+nicolasddev@users.noreply.github.com> Date: Wed, 23 Feb 2022 20:41:47 -0500 Subject: [PATCH 11/16] Update shipping-rates.js --- .../Checkout/view/frontend/web/js/view/cart/shipping-rates.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/code/Magento/Checkout/view/frontend/web/js/view/cart/shipping-rates.js b/app/code/Magento/Checkout/view/frontend/web/js/view/cart/shipping-rates.js index 9a1ad85624a77..9c0af4a286f8b 100644 --- a/app/code/Magento/Checkout/view/frontend/web/js/view/cart/shipping-rates.js +++ b/app/code/Magento/Checkout/view/frontend/web/js/view/cart/shipping-rates.js @@ -25,7 +25,7 @@ define([ shippingRateGroups: ko.observableArray([]), selectedShippingMethod: ko.computed(function () { return quote.shippingMethod() ? - quote.shippingMethod()['carrier_code'] + '_' + quote.shippingMethod()['method_code'] : + quote.shippingMethod()['carrier_code'] + '::' + quote.shippingMethod()['method_code'] : null; }), @@ -76,7 +76,7 @@ define([ */ selectShippingMethod: function (methodData) { selectShippingMethodAction(methodData); - checkoutData.setSelectedShippingRate(methodData['carrier_code'] + '_' + methodData['method_code']); + checkoutData.setSelectedShippingRate(methodData['carrier_code'] + '::' + methodData['method_code']); return true; } From 26d924df778cb2de3c43901b2243818b833c8035 Mon Sep 17 00:00:00 2001 From: Nicolas D <50154923+nicolasddev@users.noreply.github.com> Date: Wed, 23 Feb 2022 20:43:05 -0500 Subject: [PATCH 12/16] Update shipping.js --- .../Magento/Checkout/view/frontend/web/js/view/shipping.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/code/Magento/Checkout/view/frontend/web/js/view/shipping.js b/app/code/Magento/Checkout/view/frontend/web/js/view/shipping.js index 51ebb9dbf11d1..c2f5f62cb3d03 100644 --- a/app/code/Magento/Checkout/view/frontend/web/js/view/shipping.js +++ b/app/code/Magento/Checkout/view/frontend/web/js/view/shipping.js @@ -260,7 +260,7 @@ define([ isLoading: shippingService.isLoading, isSelected: ko.computed(function () { return quote.shippingMethod() ? - quote.shippingMethod()['carrier_code'] + '_' + quote.shippingMethod()['method_code'] : + quote.shippingMethod()['carrier_code'] + '::' + quote.shippingMethod()['method_code'] : null; }), @@ -270,7 +270,7 @@ define([ */ selectShippingMethod: function (shippingMethod) { selectShippingMethodAction(shippingMethod); - checkoutData.setSelectedShippingRate(shippingMethod['carrier_code'] + '_' + shippingMethod['method_code']); + checkoutData.setSelectedShippingRate(shippingMethod['carrier_code'] + '::' + shippingMethod['method_code']); return true; }, From 4de1aa466343f1868f31f22fdf7a028b01038350 Mon Sep 17 00:00:00 2001 From: Nicolas D <50154923+nicolasddev@users.noreply.github.com> Date: Wed, 23 Feb 2022 20:44:09 -0500 Subject: [PATCH 13/16] Update shipping-rates.html --- .../view/frontend/web/template/cart/shipping-rates.html | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/app/code/Magento/Checkout/view/frontend/web/template/cart/shipping-rates.html b/app/code/Magento/Checkout/view/frontend/web/template/cart/shipping-rates.html index f79a58053cba4..bf9cede5992bf 100644 --- a/app/code/Magento/Checkout/view/frontend/web/template/cart/shipping-rates.html +++ b/app/code/Magento/Checkout/view/frontend/web/template/cart/shipping-rates.html @@ -23,12 +23,12 @@ click: $parents[1].selectShippingMethod, checked: $parents[1].selectedShippingMethod, attr: { - value: carrier_code + '_' + method_code, - id: 's_method_' + carrier_code + '_' + method_code, + value: carrier_code + '::' + method_code, + id: 's_method_' + carrier_code + '::' + method_code, disabled: false } "/> -