質問

私は、最新バージョンのMagentoに「注目商品」属性が存在します。RWDのテーマのホームページに紹介製品を表示させるにはどうすればよいですか?

ありがとう

役に立ちましたか?

解決

Magento 1.9.xに追加されたデフォルトでこの属性が表示されません。ただし、カスタム製品属性に基づいて製品コレクションを作成するのは非常に簡単です。

コレクションを作成したら、テンプレートファイル、すなわち単一の製品機能、またはマルチプロダクトスライダを介して表示するHTMLを作成できます。

これを行う手順は

  • 新しいカスタム製品コレクション方式
  • を作成する
  • 新しいレイアウトブロックを作成する
  • 新しいテンプレートを作成する

例えば属性 'featured_product'で表示されている製品の製品コレクションを作成したい場合は、magento / app / code / local / mage / catalog / block / product

<?php
class Mage_Catalog_Block_Product_Featured extends mage_Catalog_Block_Product_Abstract
{
    protected $_productsCount = null;
    protected $_categoryId = null;

    const DEFAULT_PRODUCTS_COUNT = 12;

/**
 * Initialize block's cache
 */
protected function _construct()
{
    parent::_construct();

    $this->addColumnCountLayoutDepend('empty', 6)
        ->addColumnCountLayoutDepend('one_column', 5)
        ->addColumnCountLayoutDepend('two_columns_left', 4)
        ->addColumnCountLayoutDepend('two_columns_right', 4)
        ->addColumnCountLayoutDepend('three_columns', 3);

    $this->addData(array(
        'cache_lifetime'    => 86400,
        'cache_tags'        => array(Mage_Catalog_Model_Product::CACHE_TAG),
    ));
}

/**
 * Get Key pieces for caching block content
 *
 * @return array
 */
public function getCacheKeyInfo()
{
    return array(
       'CATALOG_PRODUCT_NEW',
       Mage::app()->getStore()->getId(),
       Mage::getDesign()->getPackageName(),
       Mage::getDesign()->getTheme('template'),
       Mage::getSingleton('customer/session')->getCustomerGroupId(),
       'template' => $this->getTemplate(),
       $this->getProductsCount(),
       Mage::app()->getStore()->getCurrentCurrencyCode(),
       empty($this->_categoryId) ? "ALL" : $this->_categoryId
    );
}

/**
 * Prepare collection with new products and applied page limits.
 *
 * return Mage_Catalog_Block_Product_New
 */
protected function _beforeToHtml()
{
    $collection = Mage::getResourceModel('catalog/product_collection');
    $collection->setVisibility(Mage::getSingleton('catalog/product_visibility')->getVisibleInCatalogIds());

    $collection = $this->_addProductAttributesAndPrices($collection)
        ->addStoreFilter()
        ->addAttributeToSelect('featured_product')
        ->addFieldToFilter(array(
            array('attribute'=>'ext_enable','eq'=>'1'),
        ))
        ->addAttributeToSort('name', 'desc')
        ->setPageSize($this->getProductsCount())
        ->setCurPage(1)
    ;

    // Limit to a specific category
    //if(!empty($this->_categoryId)) $collection->addCategoryFilter(Mage::getModel("catalog/category")->load($this->_categoryId));

    $this->setProductCollection($collection);

    return parent::_beforeToHtml();
}

/**
 * Set a specific category to take the products from.
 *
 * @param $catid
 * @return Mage_Catalog_Block_Product_New
 */
public function setCategory($catid)
{
    $this->_categoryId = (int)$catid;
    return $this;
}

/**
 * Set how much product should be displayed at once.
 *
 * @param $count
 * @return Mage_Catalog_Block_Product_New
 */
public function setProductsCount($count)
{
    $this->_productsCount = $count;
    return $this;
}

/**
 * Get how much products should be displayed at once.
 *
 * @return int
 */
public function getProductsCount()
{
    if (null === $this->_productsCount) {
        $this->_productsCount = self::DEFAULT_PRODUCTS_COUNT;
    }
    return $this->_productsCount;
    }
}
.

それから私は私のレイアウトに次のものを追加します。ブロックをホームページに表示させたい場合は、CMS_INDEX_INDEXセクション

内に配置できます。
            <block type="catalog/product_featured" name="catalog.product.featured" alias="featured_products">
            <action method="setTemplate"><template>catalog/product/featured.phtml</template></action>
        </block>
.

その後、私のテンプレートで、caturel.phtmlというカタログ/製品で新しいファイルを作成します。ここでは、私は製品コレクションを繰り返し、表示したいHTMLを作成することができます。これは単純な箇条書きリストです。

    <?php
    $_helper = $this->helper('catalog/output');
    $_productCollection = $this->getProductCollection();
?>
<div class="featured-products">
    <p>Featured Products - <?php echo count($_productCollection) ?></p>
    <ol class="featured-products-list" id="featured-products-list">
    <?php foreach ($_productCollection as $_product): ?>
        <li><?php echo $_product->getName() ?></li>
    <?php endforeach; ?>
    </ol>
</div>
.

ストアキャッシュを更新してホームページを送ったら、注目製品HTMLが表示されます。

これを行うのに役立つモジュールがたくさんありますが、この例ですぐにそれを迅速に達成することができます。

これはMagento Wiki https://wiki.magento.com/display/m1wiki/how + to.create +a + featured + product

他のヒント

ホームページhttp://inchoo.net/magento/featured-products-on-magento-frontpage-tutorial/

の機能を取得するためのこのリンクに従ってください。

http://inchoo.net/magento/Featured-Products-On. - マゲント - フロントページ/

このチュートリアルは、Magentoホームページへの製品を注視する方法を説明しています。

phtmlファイル:

<?php
$featuredProducts = Mage::getModel('catalog/category')->load($category_id)
->getProductCollection()
->addAttributeToSelect('*')
->addAttributeToFilter('featured_product', 1)
->addAttributeToFilter('status', 1);
.

?> local.xml

<cms_index_index>
<reference name="content">
    <block type="core/template" name="home.featured.product" template="custom/featuredproduct.phtml"/>
</reference>
.

ステップバイステップの説明のために直謝のために参照してください。 http://www.pearlbells.co.uk/adding.-CUSTOM-PRODUCE-ATTRAIVES-IN-MAGENTO /

ライセンス: CC-BY-SA帰属
所属していません magento.stackexchange
scroll top