2013-04-29 124 views
1

由于某种原因,我需要包括非待售产品在内的所有产品。但我不确定这是否是magento没有显示的唯一情况。如何将不可销售的产品添加到产品集合中

目前我得到的所有退货产品都有现货,并有正常产品的价格等。

收集不拾起非销售或没有价格的产品。这是我们创造的一种不同类型的产品,价格不是快照中的强制选项。

category containing 2 products

现在,我想这两种产品的集合。 目前,我只得到一个价格显示,底部一个。

我试图

<?php 


class Ubt_Featured_Block_Featured extends 
Mage_Core_Block_Template { 

private $_itemPerPage = 2; 
private $_category_id = 4; 

public function allProducts() { 


    $category = Mage::getModel('catalog/category')->load($this->_category_id); 
    $_collections = $category->getProductCollection(); 
    $_productCollection = $this->getCollection($_collections); // calling the function that have been created in block page. 

    return $_productCollection; 
} 

public function totalPages() { 
    $category = Mage::getModel('catalog/category')->load(4); 
    $_collections_count = $category->getProductCollection()->count(); 
    return $number_of_pages = $_collections_count/$this->_itemPerPage; 
} 

public function getCollection($collection = 'null') { 

    if ($collection != 'null') { 


     $collection->addWebsiteFilter(); 
     $collection->addUrlRewrite($this->_category_id); 
     $collection->addMinimalPrice()->addFinalPrice()->addTaxPercents(); 

     Mage::getSingleton('catalog/product_visibility') 
       ->addVisibleInCatalogFilterToCollection($collection); 

     Mage::getSingleton('catalog/product_status') 
       ->addVisibleFilterToCollection($collection); 

     $collection->addAttributeToSelect(array('entity_id', 'sku', 'name', 'short_description', 
      'description', 'price', 'thumbnail', 'image', 'url_path', 'type_of'), 'inner') 
       ->addAttributeToFilter('is_saleable', array('like' => '0'))  ; 


     $collection->setCurPage(1); 
     $collection->setPageSize($this->_itemPerPage); 

     return $collection; 
    } 
} 

}

使用这个它没有显示任何东西。空白页。但如果我从getCollection()方法中删除 - > addAttributeToFilter('is_saleable',array('like'=>'0')),那么我会得到包含一个产品的正常集合。 var_dump下面。

array 
    'entity_id' => string '1' (length=1) 
    'entity_type_id' => string '4' (length=1) 
    'attribute_set_id' => string '4' (length=1) 
    'type_id' => string 'simple' (length=6) 
    'sku' => string 'q' (length=1) 
    'has_options' => string '0' (length=1) 
    'required_options' => string '0' (length=1) 
    'created_at' => string '2013-03-05 22:00:39' (length=19) 
    'updated_at' => string '2013-04-29 01:29:30' (length=19) 
    'cat_index_position' => string '0' (length=1) 
    'grant_catalog_category_view' => string '-1' (length=2) 
    'grant_catalog_product_price' => string '-1' (length=2) 
    'grant_checkout_items' => string '-1' (length=2) 
    'price' => string '22.0000' (length=7) 
    'tax_class_id' => string '2' (length=1) 
    'final_price' => string '22.0000' (length=7) 
    'minimal_price' => string '22.0000' (length=7) 
    'min_price' => string '22.0000' (length=7) 
    'max_price' => string '22.0000' (length=7) 
    'tier_price' => null 
    'name' => string 'Prod 01' (length=7) 
    'short_description' => string 'q' (length=1) 
    'description' => string 'q' (length=1) 
    'thumbnail' => string '/h/a/hands.jpg' (length=14) 
    'image' => string '/h/a/hands.jpg' (length=14) 
    'url_path' => string 'prod-01.html' (length=12) 
    'type_of' => null 
    'request_path' => string 'sub-cat-01/prod-01.html' (length=23) 
    'is_salable' => string '1' (length=1) 
    'stock_item' => 
    object(Varien_Object)[546] 
     protected '_data' => 
     array 
      'is_in_stock' => string '1' (length=1) 
     protected '_hasDataChanges' => boolean false 
     protected '_origData' => null 
     protected '_idFieldName' => null 
     protected '_isDeleted' => boolean false 
     protected '_oldFieldsMap' => 
     array 
      empty 
     protected '_syncFieldsMap' => 
     array 
      empty 
    'tax_percent' => float 10 
    'category_ids' => 
    array 
     0 => string '2' (length=1) 
     1 => string '3' (length=1) 
     2 => string '4' (length=1) 
    'event' => boolean false 

请建议。谢谢

以下是这个产品类型的差异没有任何价格输入的选项,以便人们不能将其添加到购物车,没有价格显示。它就像一个cms页面一样。当我们在产品列表页面中点击它时,它会转到产品页面,而没有添加到购物车选项。这是从产品清单和所有这一切。

但我想在主页上调用这些产品,并且所有其他产品都显示,但不是这个。

enter image description here

enter image description here

----配置。XML

<?xml version="1.0"?> 

<config> 
    <modules> 
     <Rik_ReferralProduct> 
      <version>0.1.0</version> 
     </Rik_ReferralProduct> 
    </modules> 
    <global> 
     <models> 
      <referralproduct> 
       <class>Rik_ReferralProduct_Model</class> 
      </referralproduct> 
     </models> 
     <catalog> 
      <product> 
       <type> 
        <referralproduct translate="label" module="catalog"> 
         <label>Referral Product</label> 
         <model>referralproduct/product_type_referral</model> 
         <is_qty>1</is_qty> 
         <index_data_retreiver>referralproduct/catalogIndex_data_referral</index_data_retreiver> 
         <composite>0</composite> 
        </referralproduct> 
       </type> 
      </product>   
     </catalog> 
     <blocks> 
      <adminhtml> 
       <rewrite> 
        <catalog_product_edit_tabs>Rik_ReferralProduct_Block_Adminhtml_Catalog_Product_Edit_Tabs</catalog_product_edit_tabs> 
       </rewrite> 
      </adminhtml> 
     </blocks> 
    </global> 
    <!--<adminhtml>--> 
     <!--<layout>--> 
      <!--<updates>--> 
       <!--<referralproduct>--> 
        <!--<file>referral.xml</file>--> 
       <!--</referralproduct>--> 
      <!--</updates>--> 
     <!--</layout>--> 
    <!--</adminhtml>--> 
</config> 
+0

试' - > addAttributeToFilter(“is_saleable”,阵列(“gteq” =>“0”))',这将让所有可销售的产品,以及不可售 – Kalpesh 2013-04-29 10:20:16

+0

我试过没工作 – RIK 2013-04-29 15:13:10

回答

1

它散发出来的问题是,在我的这个方法我的“内”字。删除它后,我的所有产品都在我的收藏中。

$collection->addAttributeToSelect(array('entity_id', 'sku', 'name', 'short_description', 
     'description', 'price', 'thumbnail', 'image', 'url_path', 'type_of'), 'inner') 
      ->addAttributeToFilter('is_saleable', array('like' => '0'))  ; 
0

Magento的检查,如果产品(库存股),无论数量,如果{产品[stock_data] [is_in_stock]}是真的,这将是合格的产品,如果是假的也不会出售(不管量)

===========================

添加此行代码产品采集前

Mage::helper('catalog/product')->setSkipSaleableCheck(true); 

============================

会告诉目录产品型号isAvailabe方法跳过isSalable支票下面的方法

public function isAvailable() 
{ 
    return $this->getTypeInstance(true)->isSalable($this) 
     || Mage::helper('catalog/product')->getSkipSaleableCheck(); 
} 
+0

我还没有尝试过这个解决方案。它是否自动收集不显示产品不可售?如果magento检查产品是否出售,该如何检查? – RIK 2013-04-29 15:12:06

+0

如果{product [stock_data] [is_in_stock]}为真,那么Magento会检查产品(库存是否为库存),否则这是可销售的产品,如果它为假,则不会销售(不管数量如何) – Meabed 2013-04-29 18:07:05

+0

不,案子。我编辑了这个问题,请检查。感谢 – RIK 2013-04-30 07:50:32

相关问题