public function update_pricing_info_for_asins($listing_ASINs, $account_id) { $listingsModel = new WPLA_ListingsModel(); // fetch Buy Box pricing info and process result $api = new WPLA_AmazonAPI($account_id); $result = $api->getCompetitivePricingForId($listing_ASINs); $listingsModel->processBuyBoxPricingResult($result); // return if lowest offers are disabled // if ( ! get_option('wpla_repricing_use_lowest_offer') ) return; // fetch Lowest Offer info and process result $api = new WPLA_AmazonAPI($account_id); $result = $api->getLowestOfferListingsForASIN($listing_ASINs); $listingsModel->processLowestOfferPricingResult($result); }
public function get_lowest_offers() { if (!isset($_REQUEST['listing'])) { return; } // get items $listing_ids = is_array($_REQUEST['listing']) ? $_REQUEST['listing'] : array($_REQUEST['listing']); if (!empty($listing_ids)) { $listingsModel = new WPLA_ListingsModel(); $listings = WPLA_ListingsModel::getItems($listing_ids, OBJECT); $account_id = $listings[0]->account_id; // echo "<pre>";print_r($listings);echo"</pre>";die(); // build array of ASINs $listing_ASINs = array(); foreach ($listings as $listing) { // prevent invalid marketplace errors if ($account_id != $listing->account_id) { $this->showMessage('You can only fetch pricing information from one account at a time. Item ' . $listing->asin . ' was skipped.', 1, 1); continue; } $listing_ASINs[] = $listing->asin; } // limit to 20 ASINs at a time - for now if (sizeof($listing_ASINs) > 20) { $listing_ASINs = array_splice($listing_ASINs, 0, 20); $this->showMessage('You can only fetch pricing information for up to 20 ASINs at a time.', 2, 1); } if (!empty($listing_ASINs)) { $api = new WPLA_AmazonAPI($account_id); $result = $api->getLowestOfferListingsForASIN($listing_ASINs); // echo "<pre>";print_r($result);echo"</pre>";die(); if ($result->success) { $message = ''; foreach ($result->products as $asin => $product) { foreach ($product->prices as $price) { $lowest_price = $price->LandedPrice; $condition = $price->condition; $subcondition = $price->subcondition; $shipping_fee = $price->Shipping; $shipping_msg = $shipping_fee ? "incl. {$shipping_fee} shipping" : 'free shipping'; $lowest_price = number_format_i18n(floatval($lowest_price), 2); $message .= sprintf('Lowest Offer for %s: %s ( %s / %s / %s )<br>', $asin, $lowest_price, $condition, $subcondition, $shipping_msg); } if (empty($product->prices)) { $message .= sprintf('No offers found for %s<br>', $asin); } } wpla_show_message($message); } // process result $listingsModel->processLowestOfferPricingResult($result); } } }