/** * Load product pricing data for a whole array of products at once */ public static function loadPricesForRecordSet(ARSet $products) { $set = ARSet::buildFromArray($products->getData()); foreach ($products as $key => $product) { if ($product->parent->get()) { $set->add($product->parent->get()); } } $ids = array(); foreach ($set as $key => $product) { $ids[$product->getID()] = $key; } $priceArray = self::fetchPriceData(array_flip($ids)); $pricing = array(); foreach ($priceArray as $price) { $pricing[$price['productID']][$price['currencyID']] = $price; } foreach ($pricing as $productID => $productPricing) { $product = $set->get($ids[$productID]); $product->loadPricing($productPricing); } }
/** * Merge two record sets * * @param ActiveRecord $record */ public function merge(ARSet $set) { $this->data = array_merge($this->data, $set->getData()); }