Domanda

Sto avendo un problema ricevendo il tierPriceHtml alla visualizzazione per ogni voce sulla pagina del carrello.

Questo è quello che ho dentro checkout/cart/item/default.phtml:

$custom = Mage::getModel('catalog/product')->load($_item->getProductId());
$tierPrice = $custom->getTierPriceHtml();
echo $tierPrice;

Tuttavia, questo eco non fuori qualche cosa. Ho provato anche questo senza fortuna:

echo $this->getTierPriceHtml()

Come posso fare questo? Devo fare qualcosa per modificare il file checkout.xml per visualizzarlo?

Ecco la mia intera cassa / carrello / item / file di default.phtml:

http://pastebin.com/4wK2P9zU

È stato utile?

Soluzione

sto supponendo che si desidera visualizzare la prezzi differenziati per ogni voce della spesa sulla pagina del carrello di vista, forse vale la pena chiarire questo nella vostra domanda.

Sembra che si sta tentando di chiamare il metodo getTierPrice() dalla classe Mage_Catalog_Model_Product anziché la classe Mage_Catalog_Block_Product_Abstract.

Si potrebbe creare un proprio blocco personalizzato che si estende Mage_Catalog_Block_Product_Abstract ma il modo più semplice per ottenere ciò che si vuole è quello di creare una nuova istanza di Mage_Catalog_Block_Product_View per ogni elemento.

Aggiungi questo dopo $_item = $this->getItem(); all'interno checkout / cart / item / default.phtml:

$_tierPricing = $this->getLayout()->createBlock(
    'catalog/product_view',
    'product.tierprices',
    array(
        'product_id' => $_item->getProductId()
    )
);
$_tierPricing->setTemplate('catalog/product/view/tierprices.phtml');

E poi dove si vuole mettere il vostro informazioni sui prezzi:

<?php echo $_tierPricing->getTierPriceHtml();?>
  1. Nella prima riga creiamo un nuovo blocco vista del prodotto e passare in ID dei prodotti. E 'importante che questo è fatto oggi durante la fase di creazione piuttosto dopo il blocco viene creata un'istanza per errori evitare in modo _prepareLayout.
  2. Poi abbiamo impostato il modello di prezzi differenziati, probabilmente si dovrebbe fare un nuovo modello utilizzato solo per il carrello. Forse checkout/cart/item/tierprices.phtml
  3. Ora possiamo usare il metodo getTierPriceHtml () con successo.

Altri suggerimenti

sono stato in grado di ottenere una vasta gamma di prezzi differenziati per il prodotto in questo modo:

$custom = Mage::getModel('catalog/product')->load($_item->getProductId());
var_dump($custom->getTierPrice());

Con questo si può formattare l'array in qualcosa di facile lettura. Ecco un esempio di output dal mio demo:

array(3) {
  [0]=>
  array(7) {
["price_id"]=>
string(2) "11"
["website_id"]=>
string(1) "0"
["all_groups"]=>
string(1) "1"
["cust_group"]=>
int(32000)
["price_qty"]=>
string(6) "5.0000"
["price"]=>
string(8) "599.0000"
["website_price"]=>
string(8) "599.0000"
 }
 [1]=>
array(7) {
["price_id"]=>
string(2) "12"
["website_id"]=>
string(1) "0"
["all_groups"]=>
string(1) "1"
["cust_group"]=>
int(32000)
["price_qty"]=>
string(7) "10.0000"
["price"]=>
string(8) "499.0000"
["website_price"]=>
string(8) "499.0000"
}
[2]=>
array(7) {
["price_id"]=>
string(2) "13"
["website_id"]=>
string(1) "0"
["all_groups"]=>
string(1) "1"
["cust_group"]=>
int(32000)
["price_qty"]=>
string(7) "15.0000"
["price"]=>
string(8) "399.0000"
 ["website_price"]=>
 string(8) "399.0000"
  }
}

L'implementazione suggerire dal lavoro jharrison.au, ma se si desidera utilizzare un altro progetto per il prezzo livello nel carrello della spesa è necessario modificare

$_tierPricing->setTemplate('catalog/product/view/tierprices.phtml');

per

$_tierPricing->setTierPriceTemplate('catalog/product/view/tierprices.phtml');

Grazie

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a magento.stackexchange
scroll top