function mapItemDetailToDB($Detail, $always_process_foreign_transactions = false)
 {
     //#type $Detail TransactionType
     // echo "<pre>";print_r($Detail);echo"</pre>";#die();
     $data['item_id'] = $Detail->Item->ItemID;
     $data['transaction_id'] = $Detail->TransactionID;
     $data['date_created'] = self::convertEbayDateToSql($Detail->CreatedDate);
     $data['price'] = $Detail->TransactionPrice->value;
     $data['quantity'] = $Detail->QuantityPurchased;
     $data['buyer_userid'] = @$Detail->Buyer->UserID;
     $data['buyer_name'] = @$Detail->Buyer->RegistrationAddress->Name;
     $data['buyer_email'] = @$Detail->Buyer->Email;
     $data['eBayPaymentStatus'] = $Detail->Status->eBayPaymentStatus;
     $data['CheckoutStatus'] = $Detail->Status->CheckoutStatus;
     $data['ShippingService'] = @$Detail->ShippingServiceSelected->ShippingService;
     //$data['ShippingAddress_Country'] = $Detail->Buyer->BuyerInfo->ShippingAddress->Country;
     //$data['ShippingAddress_Zip']     = $Detail->Buyer->BuyerInfo->ShippingAddress->PostalCode;
     $data['ShippingAddress_City'] = @$Detail->Buyer->BuyerInfo->ShippingAddress->CityName;
     $data['PaymentMethod'] = $Detail->Status->PaymentMethodUsed;
     $data['CompleteStatus'] = $Detail->Status->CompleteStatus;
     $data['LastTimeModified'] = self::convertEbayDateToSql($Detail->Status->LastTimeModified);
     $data['OrderLineItemID'] = $Detail->OrderLineItemID;
     $data['site_id'] = $this->site_id;
     $data['account_id'] = $this->account_id;
     $auction_item = ListingsModel::getItemByEbayID($Detail->Item->ItemID);
     // skip items not found in listings
     if ($listingItem) {
         $data['post_id'] = $listingItem->post_id;
         $data['item_title'] = $listingItem->auction_title;
         WPLE()->logger->info("process transaction #" . $Detail->TransactionID . " for item '" . $data['item_title'] . "' - #" . $Detail->Item->ItemID);
         WPLE()->logger->info("post_id: " . $data['post_id']);
     } else {
         $data['post_id'] = false;
         $data['item_title'] = $Detail->Item->Title;
         // only skip if foreign_transactions option is disabled
         if (get_option('wplister_foreign_transactions') != 1 && !$always_process_foreign_transactions) {
             WPLE()->logger->info("skipped transaction #" . $Detail->TransactionID . " for foreign item #" . $Detail->Item->ItemID);
             $this->addToReport('skipped', $data);
             return false;
         } else {
             WPLE()->logger->info("IMPORTED transaction #" . $Detail->TransactionID . " for foreign item #" . $Detail->Item->ItemID);
         }
     }
     // avoid empty transaction id
     if (intval($data['transaction_id']) == 0) {
         // use negative OrderLineItemID to separate from real TransactionIDs
         $data['transaction_id'] = 0 - str_replace('-', '', $data['OrderLineItemID']);
     }
     // use buyer name from shipping address if registration address is empty
     if ($data['buyer_name'] == '') {
         $data['buyer_name'] = @$Detail->Buyer->BuyerInfo->ShippingAddress->Name;
     }
     // save GetSellerTransactions reponse in details
     $data['details'] = self::encodeObject($Detail);
     return $data;
 }
Beispiel #2
0
 public function showSiteDetails($id)
 {
     // init model
     $sitesModel = new SitesModel();
     // get transaction record
     $transaction = $sitesModel->getItem($id);
     // get auction item record
     $auction_item = ListingsModel::getItemByEbayID($transaction['item_id']);
     $aData = array('transaction' => $transaction, 'auction_item' => $auction_item);
     $this->display('transaction_details', $aData);
 }