<?php // //namespace BobGroup\BobGo\Observer; // //use Magento\Framework\Event\Observer; //use Magento\Framework\Event\ObserverInterface; //use Magento\Framework\App\Config\ScopeConfigInterface; //use Magento\Framework\HTTP\Client\Curl; //use Psr\Log\LoggerInterface; // //class ConfigChangeObserver implements ObserverInterface //{ // protected $scopeConfig; // protected $curl; // protected $logger; // // public function __construct( // ScopeConfigInterface $scopeConfig, // Curl $curl, // LoggerInterface $logger // ) { // $this->scopeConfig = $scopeConfig; // $this->curl = $curl; // $this->logger = $logger; // } // // public function execute(Observer $observer) // { // $sectionId = $observer->getEvent()->getSection(); // // // Ensure we're working with the 'carriers' section // if ($sectionId === 'carriers') { // $isEnabled = $this->scopeConfig->getValue('carriers/bobgo/active', \Magento\Store\Model\ScopeInterface::SCOPE_STORE); // // // Check if the extension is enabled // if ($isEnabled) { // $url = 'https://api.dev.bobgo.co.za/rates-at-checkout/magento'; // // // Prepare the payload // $payload = json_encode([ // "identifier" => "woodemo3.bobgo.co.za", // "rate" => [ // "origin" => [ // "country" => "ZA", // "postal_code" => "0181", // "province" => "GP", // "city" => "Pretoria", // "name" => null, // "address1" => "125 Dallas Avenue", // "address2" => "Newlands", // "address3" => null, // "phone" => "", // "fax" => "", // "email" => null, // "address_type" => null, // "company_name" => "" // ], // "destination" => [ // "country" => "ZA", // "postal_code" => "0181", // "province" => "GP", // "city" => "Pretoria", // "name" => null, // "address1" => null, // "address2" => "", // "address3" => null, // "phone" => "", // "fax" => "", // "email" => null, // "address_type" => null, // "company_name" => "", // "shipping_suburb" => "Elarduspark" // ], // "currency" => "ZAR", // "locale" => "en", // "items" => [ // [ // "name" => "Colours With Variants - Has dimensions - Red", // "sku" => "sku-1", // "quantity" => 2, // "price" => 500, // "vendor" => "", // "requires_shipping" => true, // "taxable" => true, // "fulfillment_service" => "manual", // "properties" => null, // "product_id" => 160824, // "grams" => 2000, // "height" => 20, // "length" => 43, // "width" => 63, // "variant_id" => 160826, // "shipping_class" => "colours", // "shipping_class_id" => 41 // ] // ] // ] // ]); // // try { // // Set headers // $this->curl->addHeader("Accept", "*/*"); // $this->curl->addHeader("Accept-Encoding", "deflate, gzip, br"); // $this->curl->addHeader("Content-Type", "application/json; charset=utf-8"); // $this->curl->addHeader("Host", "api.dev.bobgo.co.za"); // $this->curl->addHeader("User-Agent", "Magento/2.x"); // // // Send the request // $this->curl->post($url, $payload); // // // Check response status // if ($this->curl->getStatus() == 200) { // $response = $this->curl->getBody(); // $this->logger->info('Bob Go API response:', ['response' => $response]); // } else { // $status = $this->curl->getStatus(); // $this->logger->error('Bob Go API request failed.', ['status' => $status, 'url' => $url]); // } // } catch (\Exception $e) { // $this->logger->error('Bob Go API request error:', ['exception' => $e->getMessage()]); // } // } // } // } //}