コード例 #1
0
ファイル: OrderController.php プロジェクト: sea129/kbay
 private function saveOrders($orders, $ebayID)
 {
     $result = [];
     foreach ($orders as $order) {
         $orderModal = EOrder::findOne(['ebay_order_id' => $order->OrderID]);
         if ($orderModal === NULL) {
             $orderModal = new EOrder();
         }
         if (isset($order->ShippedTime)) {
             $orderModal->status = EOrder::STATUS_SHIPPED;
             $orderModal->shipped_time = $order->ShippedTime->format('Y-m-d H:i:s');
         } else {
             $orderModal->status = 0;
             $orderModal->shipped_time = NULL;
         }
         if (isset($order->PaidTime)) {
             $orderModal->paid_time = $order->PaidTime->format('Y-m-d H:i:s');
         } else {
             //order not paid
             $orderModal->paid_time = NULL;
         }
         $orderModal->ebay_id = $ebayID;
         $orderModal->user_id = Yii::$app->user->id;
         $orderModal->ebay_order_id = $order->OrderID;
         $orderModal->ebay_seller_id = $order->SellerUserID;
         $orderModal->sale_record_number = $order->ShippingDetails->SellingManagerSalesRecordNumber;
         //$orderModal->sale_record_number = 'sf';
         $orderModal->buyer_id = $order->BuyerUserID;
         $orderModal->total = $order->Total->value;
         $orderModal->created_time = $order->CreatedTime->format('Y-m-d H:i:s');
         $orderModal->recipient_name = $order->ShippingAddress->Name;
         $orderModal->recipient_phone = $order->ShippingAddress->Phone;
         $orderModal->recipient_address1 = $order->ShippingAddress->Street1;
         $orderModal->recipient_address2 = $order->ShippingAddress->Street2;
         $orderModal->recipient_city = $order->ShippingAddress->CityName;
         $orderModal->recipient_state = $order->ShippingAddress->StateOrProvince;
         $orderModal->recipient_postcode = $order->ShippingAddress->PostalCode;
         $orderModal->checkout_message = $order->BuyerCheckoutMessage;
         $orderModal->shipping_service = $order->ShippingServiceSelected->ShippingService;
         if (!$orderModal->save()) {
             foreach ($orderModal->errors as $errorArray) {
                 foreach ($errorArray as $error) {
                     $result[] = $error;
                 }
             }
             return $result;
         } else {
             foreach ($order->TransactionArray->Transaction as $transaction) {
                 $transactionModal = EbayTransaction::findOne($transaction->TransactionID);
                 if ($transactionModal === NULL) {
                     $transactionModal = new EbayTransaction();
                 }
                 //$transactionModal = new EbayTransaction();
                 $transactionModal->transaction_id = $transaction->TransactionID;
                 $transactionModal->ebay_order_id = $orderModal->id;
                 $transactionModal->buyer_email = $transaction->Buyer->Email;
                 $transactionModal->created_date = $transaction->CreatedDate->format('Y-m-d H:i:s');
                 $transactionModal->final_value_fee = $transaction->FinalValueFee->value;
                 $transactionModal->item_id = $transaction->Item->ItemID;
                 $transactionModal->item_sku = $transaction->Item->SKU;
                 $transactionModal->item_title = $transaction->Item->Title;
                 $transactionModal->qty_purchased = $transaction->QuantityPurchased;
                 $transactionModal->sale_record_number = $transaction->ShippingDetails->SellingManagerSalesRecordNumber;
                 if (isset($transaction->ShippingDetails->ShipmentTrackingDetails)) {
                     $transactionModal->tracking_number = $transaction->ShippingDetails->ShipmentTrackingDetails['0']->ShipmentTrackingNumber;
                 }
                 if (isset($transaction->ShippingDetails->ShipmentTrackingDetails)) {
                     $transactionModal->shipping_carrier = $transaction->ShippingDetails->ShipmentTrackingDetails['0']->ShippingCarrierUsed;
                 }
                 $transactionModal->transaction_price = $transaction->TransactionPrice->value;
                 if (isset($transaction->Variation->VariationTitle)) {
                     $transactionModal->variation = $transaction->Variation->VariationTitle;
                 }
                 if (!$transactionModal->save()) {
                     foreach ($transactionModal->errors as $errorArray) {
                         foreach ($errorArray as $error) {
                             $result[] = $error;
                         }
                     }
                     return $result;
                 }
             }
             //end transaction loop
         }
         //end else
     }
     //end orders loop
 }