Magento Forum

   
Problema al recuperar los precios
 
soyinigo
Jr. Member
 
Total Posts:  1
Joined:  2013-01-19
 

Buenas tardes.

He comprado un template para retocar y customizarlo a mi gusto. He topado con un problema que no soy capaz de solucionar, quizás porque no entiendo muy bien como funciona Magento internamente en este módulo. El tema es que yo quiero que al poner el precio y el precio especial, en el catálogo de productos donde aparecen todos, aparezca un precio sobre el otro, y en la ficha de producto aparezca uno a la derecha del otro. El código html y php para ello es muy sencillito, el problema es que no sé cómo diferenciar en qué página me encuentro, para hacer un if o una función aparte.

Más claramente, mis pasos han sido los siguientes:

1. He visto que desde el view.phtml del template (app\design\frontend\default\MITEMPLATE\catalog\product\view.phtml), se hace la siguiente llamada:

<?php echo $this->getChildHtml('product_type_data'?>

2. Rastreando mediante el FileSeek todos los ficheros que contengan la cadena product_type_data, he visto que hay muchos ficheros catalog.xml

3. En esos ficheros he encontrado bloques de código del estilo:

<PRODUCT_TYPE_simple translate="label" module="catalog">
        <
label>Catalog Product View (Simple)</label>
        <
reference name="product.info">
            <
block type="catalog/product_view_type_simple" name="product.info.simple" as="product_type_data" template="catalog/product/view/type/default.phtml">
                <
block type="core/text_list" name="product.info.simple.extra" as="product_type_data_extra" translate="label">
                    <
label>Product Extra Info</label>
                </
block>
            </
block>
        </
reference>
    </
PRODUCT_TYPE_simple>

He copiado éste porque tiene toda la pinta de ir por aquí la cosa. El tema es que si me voy al default.phtml que me indica y pongo una traza, veo que sí pasa por ahí, y concretamente lanza la llamada:

<?php echo $this->getPriceHtml($_product?>

4. La definición de este método la he encontrado en Abstract.php.

/**
     * Returns product price block html
     *
     * @param Mage_Catalog_Model_Product $product
     * @param boolean $displayMinimalPrice
     * @param string $idSuffix
     * @return string
     */
    public function getPriceHtml($product$displayMinimalPrice false$idSuffix '')
    
{
        $type_id 
$product->getTypeId();
        if (
Mage::helper('catalog')->canApplyMsrp($product)) {
            $realPriceHtml 
$this->_preparePriceRenderer($type_id)
                ->
setProduct($product)
                ->
setDisplayMinimalPrice($displayMinimalPrice)
                ->
setIdSuffix($idSuffix)
                ->
toHtml();
            
$product->setAddToCartUrl($this->getAddToCartUrl($product));
            
$product->setRealPriceHtml($realPriceHtml);
            
$type_id $this->_mapRenderer;
        
}

        
return $this->_preparePriceRenderer($type_id)
            ->
setProduct($product)
            ->
setDisplayMinimalPrice($displayMinimalPrice)
            ->
setIdSuffix($idSuffix)
            ->
toHtml();
    
}

Aquí ya es dónde me he bloqueado, y no sé cómo, tanto desde catálogo como ficha de producto, se acaba ejecutando el mismo código en price.phtml.

En definitiva, lo que quiero saber es cómo funciona la arquitectura de Magento para recuperar cosas como los precios, y cómo puedo hacer para que desde catálogo ejecute un código y desde ficha de producto otro.

No sé si me he sabido explicar bien, pero espero que algún entendido sepa darme una respuesta más o menos aproximada.

Muchas gracias.

 
Magento Community Magento Community
Magento Community
Magento Community
Magento Community
Magento Community
    Back to top