sync code server
This commit is contained in:
		
							parent
							
								
									d8e59641f9
								
							
						
					
					
						commit
						e13aaed393
					
				|  | @ -18,18 +18,28 @@ class CheckOrderStatus implements ObserverInterface | ||||||
|         $this->dir = $dir; |         $this->dir = $dir; | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     public function execute(\Magento\Framework\Event\Observer $observer) |     protected function _saveLog($content) | ||||||
|     { |     { | ||||||
|         $order = $observer->getEvent()->getOrder(); |  | ||||||
|         $customerId = $order->getCustomerId(); |  | ||||||
|         $OrderStatus = $order->getStatus(); |  | ||||||
|         $file = $this->dir->getPath('log') . '/' . 'CheckOrderStatus.log'; |         $file = $this->dir->getPath('log') . '/' . 'CheckOrderStatus.log'; | ||||||
|  | 
 | ||||||
|         if (!file_exists($file)) { |         if (!file_exists($file)) { | ||||||
|             $fh = fopen($file, 'w') or die("Can't create file"); |             $fh = fopen($file, 'w') or die("Can't create file"); | ||||||
|             fclose($fh); |             fclose($fh); | ||||||
|         } |         } | ||||||
|         $current = file_get_contents($file); |         $currentContent = file_get_contents($file); | ||||||
|         $current .= $customerId . ':' . $OrderStatus . " \n"; |         $currentContent .= date("Y-m-d H:i:s") . ':'; | ||||||
|         file_put_contents($file, $current); |         $currentContent .= $content; | ||||||
|  |         $currentContent .= "\n"; | ||||||
|  |         file_put_contents($file, $currentContent); | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     public function execute(\Magento\Framework\Event\Observer $observer) | ||||||
|  |     { | ||||||
|  |         $order = $observer->getEvent()->getOrder(); | ||||||
|  | 
 | ||||||
|  |         $order = [ | ||||||
|  |             'customer_id' => $order->getCustomerId(), | ||||||
|  |             'status' => $order->getStatus(), | ||||||
|  |         ]; | ||||||
|     } |     } | ||||||
| } | } | ||||||
|  |  | ||||||
|  | @ -0,0 +1,15 @@ | ||||||
|  | <?php | ||||||
|  | namespace IpSupply\SyncOrder\Sync; | ||||||
|  | 
 | ||||||
|  | class Buyer implements \JsonSerializable | ||||||
|  | { | ||||||
|  |     public $username = ''; | ||||||
|  |     public $fullName = ''; | ||||||
|  |     public $primaryPhone = ''; | ||||||
|  |     public $email = ''; | ||||||
|  | 
 | ||||||
|  |     public function jsonSerialize() | ||||||
|  |     { | ||||||
|  |         return get_object_vars($this); | ||||||
|  |     } | ||||||
|  | } | ||||||
|  | @ -0,0 +1,21 @@ | ||||||
|  | <?php | ||||||
|  | namespace IpSupply\SyncOrder\Sync; | ||||||
|  | 
 | ||||||
|  | class Detail implements \JsonSerializable { | ||||||
|  |     public $productId = 0; | ||||||
|  |     public $title = ''; | ||||||
|  |     public $sku = ''; | ||||||
|  |     public $condition = ''; | ||||||
|  |     public $qty = 0; | ||||||
|  |     public $price = 0; | ||||||
|  |     public $amount = 0; | ||||||
|  | 
 | ||||||
|  |     function __construct() { | ||||||
|  | 
 | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     public function jsonSerialize() | ||||||
|  |     { | ||||||
|  |         return get_object_vars($this); | ||||||
|  |     } | ||||||
|  | } | ||||||
|  | @ -0,0 +1,49 @@ | ||||||
|  | <?php | ||||||
|  | namespace IpSupply\SyncOrder\Sync; | ||||||
|  | 
 | ||||||
|  | use GuzzleHttp\Client; | ||||||
|  | use GuzzleHttp\Psr7\Request as GuzzRequest; | ||||||
|  | use IpSupply\SyncOrder\Config\Getter; | ||||||
|  | 
 | ||||||
|  | final class Index | ||||||
|  | { | ||||||
|  |     protected $_config; | ||||||
|  | 
 | ||||||
|  |     function __construct() | ||||||
|  |     { | ||||||
|  |         $this->_config = Getter::get('config'); | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     protected function _headers($headers = array()) | ||||||
|  |     { | ||||||
|  |         return array_merge([ | ||||||
|  |             'Authorization' => 'Bearer ' . '' | ||||||
|  |         ], $headers); | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     protected function _client() { | ||||||
|  |         $client = new Client([ | ||||||
|  |             'headers' => $this->_headers(), | ||||||
|  |             'base_url' => $this->_config['url'], | ||||||
|  |         ]); | ||||||
|  | 
 | ||||||
|  |         return $client; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     public function syncOrder($order): bool | ||||||
|  |     { | ||||||
|  |         if ($order instanceof \Magento\Sales\Model\Order\Interceptor) { | ||||||
|  |             $payload = [ | ||||||
|  |                 'url' => $this->_config['url'], | ||||||
|  |                 'source' => 'magento', | ||||||
|  |                 ...(new Order($order))->jsonSerialize() | ||||||
|  |             ]; | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  |             return true; | ||||||
|  |         } else { | ||||||
|  |             throw new \ErrorException('$order is not instance \Magento\Sales\Model\Order\Interceptor'); | ||||||
|  |             return false; | ||||||
|  |         } | ||||||
|  |     } | ||||||
|  | } | ||||||
|  | @ -0,0 +1,29 @@ | ||||||
|  | <?php | ||||||
|  | namespace IpSupply\SyncOrder\Sync; | ||||||
|  | 
 | ||||||
|  | class Order implements \JsonSerializable | ||||||
|  | { | ||||||
|  |     public $orderId = 0; | ||||||
|  |     public $statusPayment = ''; | ||||||
|  |     public $orderDate = ''; | ||||||
|  |     public $subTotal = ''; | ||||||
|  |     public $total = ''; | ||||||
|  |     public $shippingPrice = ''; | ||||||
|  |     public $currency = ''; | ||||||
|  | 
 | ||||||
|  |     function __construct(\Magento\Sales\Model\Order\Interceptor $order) | ||||||
|  |     { | ||||||
|  |         $this->orderId = $order->getId(); | ||||||
|  |         $this->statusPayment = $order->getStatus(); | ||||||
|  |         $this->orderDate = $order->getUpdatedAt(); | ||||||
|  |         $this->subTotal = $order->getSubtotal(); | ||||||
|  |         $this->total = $order->getTotalInvoiced(); | ||||||
|  |         $this->shippingPrice = $order->getShippingInvoiced(); | ||||||
|  |         $this->currency = $order->getOrderCurrencyCode(); | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     public function jsonSerialize() | ||||||
|  |     { | ||||||
|  |         return get_object_vars($this); | ||||||
|  |     } | ||||||
|  | } | ||||||
|  | @ -0,0 +1,38 @@ | ||||||
|  | <?php | ||||||
|  | namespace IpSupply\SyncOrder\Sync; | ||||||
|  | 
 | ||||||
|  | class ShippingAddress implements \JsonSerializable | ||||||
|  | { | ||||||
|  |     public $name = ''; | ||||||
|  |     public $street1 = ''; | ||||||
|  |     public $street2 = ''; | ||||||
|  |     public $cityName = 0; | ||||||
|  |     public $stateOrProvince = ''; | ||||||
|  |     public $country = ''; | ||||||
|  |     public $countryName = ''; | ||||||
|  |     public $phone = ''; | ||||||
|  |     public $email = ''; | ||||||
|  |     public $postalCode = ''; | ||||||
|  | 
 | ||||||
|  |     function __construct($address) | ||||||
|  |     { | ||||||
|  |         if ($address instanceof \Magento\Sales\Model\Order\Address) { | ||||||
|  |             $this->email = $address->getEmail(); | ||||||
|  |             $this->name = $address->getName(); | ||||||
|  |             $this->street1 = $address->getStreetLine(1); | ||||||
|  |             $this->street2 = $address->getStreetLine(2); | ||||||
|  |             $this->country = $address->getCountryId(); | ||||||
|  |             $this->cityName = $address->getCity(); | ||||||
|  |             $this->phone = $address->getTelephone(); | ||||||
|  |             $this->postalCode = $address->getPostcode(); | ||||||
|  |             $this->countryName = $address->getCountryId(); | ||||||
|  |         } else { | ||||||
|  |             // do something else
 | ||||||
|  |         } | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     public function jsonSerialize() | ||||||
|  |     { | ||||||
|  |         return get_object_vars($this); | ||||||
|  |     } | ||||||
|  | } | ||||||
|  | @ -18,17 +18,27 @@ $objectManager->get('Magento\Framework\Registry')->register('isSecureArea', true | ||||||
| 
 | 
 | ||||||
| // Handle
 | // Handle
 | ||||||
| 
 | 
 | ||||||
| $orderId = 000000006; | $orderId = '00000009'; | ||||||
| // $objectManager = \Magento\Framework\App\ObjectManager::getInstance();
 | // $objectManager = \Magento\Framework\App\ObjectManager::getInstance();
 | ||||||
| $order = $objectManager->create('\Magento\Sales\Model\OrderRepository')->get($orderId); | $orderRepository = $objectManager->create('\Magento\Sales\Model\OrderRepository'); | ||||||
|  | if ($orderRepository instanceof \Magento\Sales\Model\OrderRepository) { | ||||||
|  |     $order = $orderRepository->get($orderId); | ||||||
|  | } | ||||||
| var_dump( | var_dump( | ||||||
|     get_class($order), |     get_class($order), | ||||||
|     count($order->getItems()) |  | ||||||
| ); | ); | ||||||
| if ($order instanceof \Magento\Sales\Model\Order\Interceptor) { | if ($order instanceof \Magento\Sales\Model\Order\Interceptor) { | ||||||
|     foreach ($order->getItems() as $item) { |     $shippingAddress = $order->getShippingAddress(); | ||||||
|         var_dump($item->discount()); |     var_dump($order->getBillingAddress()->getCity()); | ||||||
|  |     if ($shippingAddress instanceof \Magento\Sales\Model\Order\Address) { | ||||||
|  |         var_dump($shippingAddress->getStreet()); | ||||||
|     } |     } | ||||||
|  |     var_dump(get_class($order->getShippingAddress())); | ||||||
|  |     // var_dump($order->getCustomer()->getEmail());
 | ||||||
|  |     // foreach ($order->getShippingAddress() as $item) {
 | ||||||
|  |     //     // var_dump($item->getTelephone());
 | ||||||
|  |     //     // var_dump($item->get());
 | ||||||
|  |     // }
 | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue