0

Magentoのホームページに特別価格(セール)の商品を表示する方法はありません。たくさん試しましたが、できません...

{{block type="catalog/product_list" name="home.catalog.product.list" alias="products_homepage" template="catalog/product/list.phtml"}}

これも機能していません。

4

4 に答える 4

2

書きます :
app/code/local/Mage/Catalog/Block/Product/Special.php

<?php
    class Mage_Catalog_Block_Product_Special extends Mage_Catalog_Block_Product_List
    {
       function get_prod_count()
       {
          //unset any saved limits
          Mage::getSingleton('catalog/session')->unsLimitPage();
          return (isset($_REQUEST['limit'])) ? intval($_REQUEST['limit']) : 9;
       }// get_prod_count
       function get_cur_page()
       {
          return (isset($_REQUEST['p'])) ? intval($_REQUEST['p']) : 1;
       }// get_cur_page
       /**
        * Retrieve loaded category collection
        *
        * @return Mage_Eav_Model_Entity_Collection_Abstract
       **/
       protected function _getProductCollection()
       {
            $todayDate  = Mage::app()->getLocale()->date()->toString(Varien_Date::DATETIME_INTERNAL_FORMAT);
            $tomorrow = mktime(0, 0, 0, date('m'), date('d')+1, date('y'));
            $dateTomorrow = date('m/d/y', $tomorrow);
            $collection = Mage::getResourceModel('catalog/product_collection');
            $collection->setVisibility(Mage::getSingleton('catalog/product_visibility')->getVisibleInCatalogIds());
            $collection = $this->_addProductAttributesAndPrices($collection)
             ->addStoreFilter()
             ->addAttributeToSort('entity_id', 'desc') //<b>THIS WILL SHOW THE LATEST PRODUCTS FIRST</b>
             ->addAttributeToFilter('special_from_date', array('date' => true, 'to' => $todayDate))
             ->addAttributeToFilter('special_to_date', array('or'=> array(0 => array('date' => true, 'from' => $dateTomorrow), 1 => array('is' => new Zend_Db_Expr('null')))), 'left')
             ->setPageSize($this->get_prod_count())
             ->setCurPage($this->get_cur_page());
            $this->setProductCollection($collection);
            return $collection;
       }// _getProductCollection
    }// Mage_Catalog_Block_Product_New
    ?>

CMS ページ----> ホームページ (管理者パネル) で、[デザイン] タブをクリックし、[ページ レイアウト] --> [レイアウト更新 xml] にこのコードを入力します。

<reference name="content">
   <block type="catalog/product_special" name="product_special" template="catalog/product/list.phtml">
       <block type="catalog/product_list_toolbar" name="product_list_toolbar" template="catalog/product/list/toolbar.phtml">
              <action method="setDefaultDirection"><dir>desc</dir></action>
              <action method="setDefaultOrder"><field>entity_id</field></action>
              <block type="page/html_pager" name="product_list_toolbar_pager" />
       </block>
      <action method="addColumnCountLayoutDepend"><layout>three_columns</layout><count>3</count></action>
      <action method="setToolbarBlockName"><name>product_list_toolbar</name></action>
   </block>
</reference>

これが役立つことを願っています:P

于 2012-10-30T07:45:44.920 に答える
1

また、セットから「special_price」属性を取得する必要があります。これは簡単で、次のコードを追加するだけです。

 ->addAttributeToSelect(array('name', 'price', 'small_image', 'status','special_price'), 'inner')
于 2012-09-03T19:31:38.403 に答える
0

それは、製品をどのように提供したいかによって異なります。Layout Update XMLすべてのセール製品がすでにセール カテゴリにある場合は、カテゴリのフィールド内で次の操作を行うことができます (Designタブを参照)。

<reference name="content">
    <block type="catalog/product_list" template="catalog/product/list.phtml">
        <action method="setCategoryId"><category_id>[your_category_id]</category_id></action>
    </block>
</reference>

ただし、すべてのカテゴリからすべてのセール商品を取得する場合は、新しいブロック タイプを作成する必要があります。これの良い例は、Mage_Catalog_Block_Product_Newブロック型です。このブロックは、ストアからすべての新製品を取得するために使用されます。_beforeToHtml()製品コレクションのロード方法が異なるだけで、ブロックの正確なコピーがほとんど必要になります。

でロードするコレクション_beforeToHtml()は次のとおりです。

    $collection = Mage::getResourceModel('catalog/product_collection');

    $dateToday = date('m/d/y');
    $tomorrow = mktime(0, 0, 0, date('m'), date('d')+1, date('y'));
    $dateTomorrow = date('m/d/y', $tomorrow);

    $collection
        ->addAttributeToFilter('special_price', array('gt' => 0))
     ->addAttributeToFilter('special_from_date', array('date' => true, 'to' => $dateToday))
     ->addAttributeToFilter('special_to_date', array('or'=> array(
            0 => array('date' => true, 'from' => $dateTomorrow),
            1 => array('is' => new Zend_Db_Expr('null')))
     ), 'left');

これにより、特別価格が 0 より大きく、その特別な日付が現在の日付と一致するすべての製品が取得されます。

于 2012-07-30T19:15:55.787 に答える
0

拡張機能を無料で使用できます: http://www.magentocommerce.com/magento-connect/top-seller-new-feature-most-viewed-catalog-sale-recently-ordered-all-products-7 -in-one-catalog-by-etatvasoft.html . システムに移動 >> 設定 >> Tatvasoft >> カタログ拡張設定 >> 欲しい機能 >> 有効化 >> はい また、これらの行を cms>pages>home に追加することを忘れないでください

To see Bestsellers products
{{block type="catalogextensions/bestsellers_home_list" name="bestsellers_list" template="catalogextensions/home_bestsellers.phtml"}}
To see Featured products
{{block type="catalogextensions/featured_home_list" name="featured_list" template="catalogextensions/home_featured.phtml"}}
In Default attribute set >> 'Is Featured' attributes is added. You need to select “yes” value to show product as feature product
To see Mostviewed products
{{block type="catalogextensions/mostviewed_home_list" name="mostviewed_list" template="catalogextensions/home_mostviewed.phtml"}}
To see Newproduct products
{{block type="catalogextensions/newproduct_home_list" name="newproduct_list" template="catalogextensions/home_newproduct.phtml"}}
To see catalog Sale products
{{block type="catalogextensions/promotional_home_list" name="promotional_list" template="catalogextensions/home_promotional.phtml"}}
For showing the products in promotional rule, One catalog rule needs to be setup.
To see RecentlyOrdered products
{{block type="catalogextensions/lastordered_home_list" name="lastordered_home_list" template="catalogextensions/home_lastordered.phtml"}}
To see All products without any category filter
href=" echo $this->getUrl('catalogextensions/index/allproduct');" for All Products link

また、言及することを忘れないでください 製品の特別価格と有効化が紹介されています>はい

于 2014-04-16T12:32:29.487 に答える