Pregunta

Me gustaría mostrar el precio sin impuestos en el catálogo para los clientes de B2B pero de calcular los impuestos como normalmente.

Sé que esto se puede hacer con una segunda vista de la tienda, pero es esto posible sin una segunda opinión?

¿Fue útil?

Solución

Incluso si es una respuesta aceptada pregunta quiero dar algunos consejos adicionales:

Como no he creado un observador, sino clonado app/code/core/Mage/Tax/Model/Config.php local, he cambiado la getPriceDisplayType función con algunos adicionales.

El aceptó responder a los cheques para el id de grupo único.He ido más allá y comprobar la TaxClassId.Es codificado por ahora, pero se podría hacer a través de una configuración ajuste en el backend, cuando envuelto en calidad de observador o de extensión.

Mis funciones modificadas parece

public function getPriceDisplayType($store = null)
{
    $customerGroupId = Mage::getModel('customer/customer')->getGroupId();
    $customerGroup = Mage::getModel('customer/group')->load($customerGroupId);
    $customerTaxId = $customerGroup->getTaxClassId($customerGroupId);

    if ($customerTaxId == 5) {
        $this->changeConfigTemp('tax/cart_display/price', '1');
        $this->changeConfigTemp('tax/cart_display/subtotal', '1');
        $this->changeConfigTemp('tax/display/type', '1');
        $this->changeConfigTemp('tax/sales_display/price', '1');
        $this->changeConfigTemp('tax/sales_display/subtotal', '1');
        $this->changeConfigTemp('tax/display/show_in_catalog', '1');
    } else {
        return (int)$this->_getStoreConfig(self::CONFIG_XML_PATH_PRICE_DISPLAY_TYPE, $store);
    }
}

Esto ha hecho todo lo que necesitaba y no he tenido una pantalla o lógicos de "error" hasta ahora.

La configuración es un poco 'alemán como' como grandtotals se muestran, incluyendo impuestos, mientras que otros valores de w/o impuestos.Espero que esto ayude a otros también.

Otros consejos

Ir al sistema> Configuración> Impuesto y allí, busque la última pestaña "Pantalla".En "Mostrar precios de productos" elige "incluyendo y excluyendo impuestos" y luego guarde la configuración.

Basado en https://github.com/astorm/Chaos He creado un observador que hace cambiar la configuración del valor de tax/calculation/price_includes_tax temporal mostrar los precios sin impuestos de función en la página de usuario y de grupo.

Esta es corto en los comentarios, pero puede ayudar a alguien:

class YourThing_TaxChanger_Model_Observer
{
    static protected $_hasRun = false;

    public function setup($observer)
    {
        if($this->_shouldBail($observer))
        {
            return;
        }

        $roleId = Mage::getSingleton('customer/session')->getCustomerGroupId();
        //echo Mage::getSingleton('customer/group')->load($roleId)->getData('customer_group_code');
        $page = Mage::app()->getFrontController()->getRequest()->getControllerName();

        // check user group and page
        if ($roleId == 2 && (in_array($page, array('product', 'category', 'result'))))
        {
            // show price without tax
            $this->changeConfigTemp('tax/calculation/price_includes_tax', '1');
            // germansetup tax info
            //$this->changeConfigTemp('tax/sales_display/price', Mage_Tax_Model_Config::DISPLAY_TYPE_EXCLUDING_TAX);
        }
    }

    /**
     * Change a config value without saving it.
     */
    protected function changeConfigTemp($path, $value)
    {
        $config = Mage::getConfig();
        $store = Mage::app()->getStore();
        $code  = $store->getCode();
        $config->setNode("stores/$code/" . $path, $value);
    }

    protected function _shouldBail($observer)
    {
        $config = Mage::getConfig();
        if(!$config)
        {
            return true;
        }
        if(Mage::app()->getStore()->isAdmin())
        {
            return true;
        }

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