From 1ccb2a5a465950af4e145cd781393308e907afca Mon Sep 17 00:00:00 2001 From: "@ChristelLoftus" <christel@bob.co.za> Date: Tue, 13 Aug 2024 13:49:45 +0200 Subject: [PATCH] Get the service level code --- Model/Carrier/BobGo.php | 56 +++++++++++++++++++++++++++-------------- 1 file changed, 37 insertions(+), 19 deletions(-) diff --git a/Model/Carrier/BobGo.php b/Model/Carrier/BobGo.php index 7cf58db..0af2cd8 100644 --- a/Model/Carrier/BobGo.php +++ b/Model/Carrier/BobGo.php @@ -827,43 +827,61 @@ class BobGo extends AbstractCarrierOnline implements \Magento\Shipping\Model\Car $result->append($error); } else { - $this->_logger->info('Rates is not empty:'); - foreach ($rates['rates'] as $title) { + $this->_logger->info('Rates are not empty.'); + + foreach ($rates['rates'] as $rate) { $method = $this->_rateMethodFactory->create(); - if (isset($title)){ + + if (isset($rate)) { + // Set the carrier code $method->setCarrier(self::CODE); + // Log the original service code + $this->_logger->info('Original service code: ' . $rate['service_code']); + + // Strip out the redundant 'bobgo_' prefix if present + $serviceCode = $rate['service_code']; + if (strpos($serviceCode, 'bobgo_') === 0) { + $serviceCode = substr($serviceCode, strlen('bobgo_')); + } + // Log the modified service code + $this->_logger->info('Modified service code: ' . $serviceCode); + + // Set the method with the modified service code + $method->setMethod($serviceCode); + + // Set additional info if required if ($this->getConfigData('additional_info') == 1) { - $min_delivery_date = $this->getWorkingDays(date('Y-m-d'), $title['min_delivery_date']); - $max_delivery_date = $this->getWorkingDays(date('Y-m-d'), $title['max_delivery_date']); + $min_delivery_date = $this->getWorkingDays(date('Y-m-d'), $rate['min_delivery_date']); + $max_delivery_date = $this->getWorkingDays(date('Y-m-d'), $rate['max_delivery_date']); $this->deliveryDays($min_delivery_date, $max_delivery_date, $method); - } - } - - $method->setMethod($title['service_code']); - $method->setMethodTitle($title['service_name']); - $price = $title['total_price']; - $cost = $title['total_price']; + // Set the method title, price, and cost + $method->setMethodTitle($rate['service_name']); + $price = $rate['total_price']; + $cost = $rate['total_price']; - // Log the values - $this->_logger->info('Price: ' . $price); - $this->_logger->info('Cost: ' . $cost); + $method->setPrice($price); + $method->setCost($cost); - // Set the values - $method->setPrice($price); - $method->setCost($cost); + // Log the values + $this->_logger->info('Price: ' . $price); + $this->_logger->info('Cost: ' . $cost); - $result->append($method); + $result->append($method); + } } } } + + + /** * Prepare received checkpoints and activity from Bob Go Shipment Tracking API * @param $response -- GitLab