2013-01-23 5 views

risposta

6

Poiché questo non è possibile, per default all'interno, Magento quello che si può provare è:

creare 2 campi in Amministrazione -> Catalogo -> attributo per tierprice_to_date e tierprice_from_date e aggiungerlo alla price gruppo nei tuoi set di attributi.

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

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

Quindi creare un modulo personalizzato con osservatori che controllare il prezzo quando gli elementi vengono aggiunti al carrello utilizzando evento 'sales_quote_add_item':

Crea: 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> 

Crea: app/code/local/MageIgniter/TierPriceDa teRange/Modello/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; 
} 

Crea: app/etc/modules/MageIgniter_TierPriceDateRange.xml

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

Poi Cancella cache, se presenti.

+0

Raccomanderei l'uso della funzione 'isStoreDateInInterval'. Utilizzo: 'Mage :: app() -> getLocale() -> isStoreDateInInterval (null, tierprice_from_date, tierprice_to_date' – Ian

+0

puoi dirmi come posso assegnare nuovi attributi a ciascun gruppo di clienti nella sezione prezzi a livelli. dati per ciascun gruppo di clienti –

+0

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

2

Questo non è possibile all'interno della configurazione standard di Magento. Dovresti costruire (o farlo costruire per te) un modulo personalizzato per renderlo possibile.

Vedi anche http://www.magentocommerce.com/boards/viewthread/230679/

+0

sì, volevo aiuto con la creazione di un modulo. grazie comunque :) –

+0

puoi dirmi come posso assegnare nuovi attributi a ciascun gruppo di clienti nella sezione prezzi a livelli. Devo aggiungere dati diversi per ogni gruppo di clienti. –