protected function processSet(ARSet $set) { if (isset($this->params['price'])) { ProductPrice::loadPricesForRecordSet($set); } return parent::processSet($set); }
public static function getTotalBundlePrice(Product $product, Currency $currency) { $products = new ARSet(); $bundle = self::getBundledProductSet($product); foreach ($bundle as $item) { $products->add($item->relatedProduct->get()); } ProductPrice::loadPricesForRecordSet($products); $total = 0; foreach ($bundle as $item) { $itemTotal = $item->relatedProduct->get()->getPrice($currency) * $item->getCount(); $total += $itemTotal; } return $total; }
public function unserialize($serialized) { parent::unserialize($serialized); // load products $productIds = array(); foreach ($this->orderedItems as $item) { $productIds[] = $item->getProduct()->getID(); } $products = ActiveRecordModel::getInstanceArray('Product', $productIds, Product::LOAD_REFERENCES); // load product prices $set = new ARSet(); foreach ($products as $product) { $set->add($product); } ProductPrice::loadPricesForRecordSet($set); }