6

Magento で階層価格のデータ範囲 (開始日と終了日) を追加する方法を知る必要があります。これにより、指定された日付範囲内でのみ価格が表示されます。

私はマジェントを初めて使用するので、どんなガイダンスも大いに役立ちます。

前もって感謝します。

4

2 に答える 2

6

これはデフォルトでは不可能であるため、magento で試すことができるのは次のとおりです。

Admin -> Catalog -> Attribute for に 2 つのフィールドを作成しtierprice_to_date、それをAttribute Sets のグループにtierprice_from_date追加します。price

/app/design/frontend/base/default/template/catalog/product/view.phtml 内

if(date between tierprice_from_date and tierprice_to_date){
    echo $this->getTierPriceHtml();
}

次に、 event を使用してアイテムがカートに追加されたときに価格をチェックするオブザーバーを含むカスタム モジュールを作成します'sales_quote_add_item'

作成: app/code/local/MageIgniter/TierPriceDateRange/etc/config.xml

<?xml version="1.0"?>
<config>
    <modules>
        <MageIgniter_TierPriceDateRange>
            <version>1.0.1</version>
        </MageIgniter_TierPriceDateRange>
    </modules>

    <global>
        <models>
            <tierpricedaterange>
                <class>MageIgniter_TierPriceDateRange_Model</class>
            </tierpricedaterange>
        </models>
         <events>
            <sales_quote_add_item>
                <observers>
                    <tierpricedaterange_observer>
                        <type>singleton</type>
                        <class>tierpricedaterange/observer</class>
                        <method>updatePrice</method>
                    </tierpricedaterange_observer>
                </observers>
            </sales_quote_add_item>
        </events>
    </global>
</config>

作成: app/code/local/MageIgniter/TierPriceDateRange/Model/Observer.php

class MageIgniter_TierPriceDateRange_Model_Observer 
{
    public function updatePrice($observer) {
    if(date NOT between tierprice_from_date and tierprice_to_date){
       $cartItem = $observer->getEvent()->getQuoteItem();
       // check if a tier price was apply and change it back to the original price (none tier price)
       $product = Mage::getModule('catalog/product')->load($product->getId());

       if($cartItem->getPrice() == $product->getTierPrice($cartItem->getQty())){
            $new_price = $product->getPrice();
            $product->setOriginalCustomPrice($new_price);
            $product->save();
       }
    }
   return $this;
}

作成: app/etc/modules/MageIgniter_TierPriceDateRange.xml

  <?xml version="1.0"?>
    <config>
           <modules>
                  <MageIgniter_TierPriceDateRange>
                          <active>true</active>
                          <codePool>local</codePool>
                  </MageIgniter_TierPriceDateRange>
           </modules>
    </config>

次に、キャッシュがある場合はクリアします。

于 2013-01-29T14:28:48.003 に答える
2

これは、標準の Magento 構成では不可能です。これを可能にするには、カスタム モジュールを作成する (または作成してもらう) 必要があります。

http://www.magentocommerce.com/boards/viewthread/230679/も参照してください

于 2013-01-29T08:47:23.360 に答える