Pregunta

Estoy teniendo un problema para conseguir la tierPriceHtml de visualización de cada elemento de la página de compras.

Esto es lo que tengo dentro checkout/cart/item/default.phtml:

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

Sin embargo, esto no aparecerá en pantalla cualquier cosa. También he intentado esto sin suerte:

echo $this->getTierPriceHtml()

¿Cómo puedo hacer esto? ¿Debo hacer algo para modificar el archivo checkout.xml con el fin de mostrarlo?

Aquí está mi entera / compra / elemento checkout file / default.phtml:

http://pastebin.com/4wK2P9zU

¿Fue útil?

Solución

Estoy asumiendo que desea mostrar la diferenciación de precios para cada artículo de la compra en la página del carrito de vista, podría valer la pena aclarar esto en su pregunta.

Parece que usted está tratando de llamar al método de la clase getTierPrice() Mage_Catalog_Model_Product lugar de la clase Mage_Catalog_Block_Product_Abstract.

Se puede crear su propio bloque personalizado que se extiende Mage_Catalog_Block_Product_Abstract pero la forma más fácil de lograr lo que desea es crear una nueva instancia de Mage_Catalog_Block_Product_View para cada elemento.

Añadir esto después de $_item = $this->getItem(); dentro de la caja / compra / artículo / default.phtml:

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

Y a continuación, en la que desea poner su información de precios:

<?php echo $_tierPricing->getTierPriceHtml();?>
  1. En la primera línea que crear un nuevo bloque de vista del producto y pase en Identificación de los productos. Es importante esto se hace ahora durante la fase de creación en lugar después de que el bloque se instancia a errores de evitar en el método _prepareLayout.
  2. A continuación, establecemos la plantilla de precios diferenciados, probablemente debería hacer una nueva plantilla que se utiliza sólo para el carro. Tal vez checkout/cart/item/tierprices.phtml
  3. Ahora podemos usar el método getTierPriceHtml () con éxito.

Otros consejos

Yo era capaz de conseguir una gran variedad de precios diferenciados para el producto como este:

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

Con esto se podría formatear la matriz en algo fácil de leer. Aquí está un ejemplo de salida de mi 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"
  }
}

La aplicación sugerir por el trabajo jharrison.au pero si desea utilizar otro diseño para el precio de nivel en el carrito de la compra tiene que modificar

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

para

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

Gracias

Licenciado bajo: CC-BY-SA con atribución
No afiliado a magento.stackexchange
scroll top