2013-01-23 15 views

Odpowiedz

6

Ponieważ nie jest możliwe domyślnie wewnątrz, Magento, co można spróbować to:

Stwórz 2 pola w Admin -> Katalog -> Atrybut dla tierprice_to_date i tierprice_from_date i dodać go do price grupa w Twoich zestawach atrybutów.

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

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

Następnie należy utworzyć niestandardowy moduł z obserwatorem, który sprawdź cenę kiedy elementy są dodawane do koszyka za pomocą impreza 'sales_quote_add_item':

Utwórz: 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> 

Utwórz: app/code/local/MageIgniter/TierPriceDa teRange/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; 
} 

Utwórz: app/etc/modules/MageIgniter_TierPriceDateRange.xml

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

Następnie wyczyścić pamięć podręczną, jeśli w ogóle.

+0

Polecam korzystanie z funkcji 'isStoreDateInInterval'. Użycie: 'Mage :: app() -> getLocale() -> isStoreDateInInterval (null, tierprice_from_date, tierprice_to_date' – Ian

+0

czy możesz mi powiedzieć, w jaki sposób mogę przypisać nowe atrybuty do każdej grupy klientów w sekcji ceny warstw. dane dla każdej grupy klientów: –

+0

@RohitGoel Zobacz http://stackoverflow.com/questions/18241595/how-do-you-add-custom-attributes-to-customer-groups- in-magento –

2

Nie jest to możliwe w standardowej konfiguracji Magento. Musiałbyś zbudować (lub zbudować dla ciebie) niestandardowy moduł, aby było to możliwe.

Zobacz także http://www.magentocommerce.com/boards/viewthread/230679/

+0

Tak, chciałem pomocy przy tworzeniu modułu. dzięki anyways :) –

+0

czy możesz mi powiedzieć, w jaki sposób mogę przypisać nowe atrybuty do każdej grupy klientów w sekcji cenowej. Muszę dodać różne dane dla każdej grupy klientów. –

Powiązane problemy