Question

J'ai un problème obtenir le tierPriceHtml à afficher pour chaque élément sur la page du panier.

est ce que j'ai à l'intérieur checkout/cart/item/default.phtml:

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

Cependant, cela ne sera pas écho quoi que ce soit. J'ai aussi essayé cela avec pas de chance:

echo $this->getTierPriceHtml()

Comment puis-je faire cela? Dois-je faire quelque chose pour modifier le fichier checkout.xml pour l'afficher?

Voici toute ma caisse / panier / article / fichier default.phtml:

http://pastebin.com/4wK2P9zU

Était-ce utile?

La solution

Je suppose que vous voulez afficher les prix à plusieurs niveaux pour chaque élément de chariot sur la vue panier page, il pourrait être utile de préciser dans votre question.

On dirait que vous essayez d'appeler la méthode getTierPrice() de la classe Mage_Catalog_Model_Product au lieu de la classe Mage_Catalog_Block_Product_Abstract.

Vous pouvez créer votre propre bloc personnalisé qui va Mage_Catalog_Block_Product_Abstract mais la meilleure façon d'obtenir ce que vous voulez est de créer une nouvelle instance de Mage_Catalog_Block_Product_View pour chaque élément.

Ajouter cette après $_item = $this->getItem(); dans la caisse / panier / article / default.phtml:

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

Et puis où vous voulez mettre vos informations sur les prix:

<?php echo $_tierPricing->getTierPriceHtml();?>
  1. Sur la première ligne, nous créons un nouveau bloc de vue produit et passer dans l'ID de produits. Il est important cela se fait maintenant au cours de la phase de création plutôt après que le bloc est instancié pour éviter les erreurs dans la méthode _prepareLayout.
  2. Ensuite, nous avons défini le modèle de prix à plusieurs niveaux, vous devriez probablement faire un nouveau modèle utilisé juste pour le panier. Peut-être checkout/cart/item/tierprices.phtml
  3. Maintenant, nous pouvons utiliser la méthode getTierPriceHtml () avec succès.

Autres conseils

J'ai été en mesure d'obtenir un tableau de prix différenciés pour le produit comme celui-ci:

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

Avec cela, vous pouvez formater le tableau en quelque chose de facile à lire. Voici un exemple de sortie de ma démonstration:

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"
  }
}

La mise en œuvre par le travail suggère de jharrison.au mais si vous voulez utiliser une autre conception pour le prix de niveau dans le panier, vous devez modifier

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

pour

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

Merci

Licencié sous: CC-BY-SA avec attribution
Non affilié à magento.stackexchange
scroll top