Beispiel #1
0
 public function addMinimalPrices(Mage_Catalog_Model_Resource_Product_Collection $collection)
 {
     $minimalPrices = $this->_getResource()->getMinimalPrices($collection->getLoadedIds());
     foreach ($minimalPrices as $row) {
         $item = $collection->getItemById($row['entity_id']);
         if ($item) {
             $item->setData('minimal_price', $row['value']);
             $item->setData('minimal_tax_class_id', $row['tax_class_id']);
         }
     }
 }
 /**
  * given a collection of products and a collection deleted sku data remove
  * each product that matches in catalog id and client id in a specific website
  * @param Mage_Catalog_Model_Resource_Product_Collection $collection
  * @param array $dData
  * @return self
  */
 protected function _removeFromWebsites(Mage_Catalog_Model_Resource_Product_Collection $collection, array $dData)
 {
     foreach ($this->_helper->loadWebsiteFilters() as $siteFilter) {
         foreach ($this->_getSkusInWebsite($dData, $siteFilter) as $dSku) {
             $product = $collection->getItemById($dSku);
             if ($product) {
                 $product->setWebsiteIds($this->_removeWebsiteId($product->getWebsiteIds(), $siteFilter['mage_website_id']));
             }
         }
     }
     $collection->save();
     return $this;
 }
Beispiel #3
0
 /**
  * Add information about stock status to product collection
  *
  * @param   Mage_Catalog_Model_Resource_Product_Collection $productCollection
  * @param   int|null $websiteId
  * @param   int|null $stockId
  * @return  Mage_CatalogInventory_Model_Stock_Status
  */
 public function addStockStatusToProducts($productCollection, $websiteId = null, $stockId = null)
 {
     if ($stockId === null) {
         $stockId = Mage_CatalogInventory_Model_Stock::DEFAULT_STOCK_ID;
     }
     if ($websiteId === null) {
         $websiteId = Mage::app()->getStore()->getWebsiteId();
         if ((int) $websiteId == 0 && $productCollection->getStoreId()) {
             $websiteId = Mage::app()->getStore($productCollection->getStoreId())->getWebsiteId();
         }
     }
     $productIds = array();
     foreach ($productCollection as $product) {
         $productIds[] = $product->getId();
     }
     if (!empty($productIds)) {
         $stockStatuses = $this->_getResource()->getProductStatus($productIds, $websiteId, $stockId);
         foreach ($stockStatuses as $productId => $status) {
             if ($product = $productCollection->getItemById($productId)) {
                 $product->setIsSalable($status);
             }
         }
     }
     /* back compatible stock item */
     foreach ($productCollection as $product) {
         $object = new Varien_Object(array('is_in_stock' => $product->getData('is_salable')));
         $product->setStockItem($object);
     }
     return $this;
 }