Magento: показывает цены без НДС / НДС в зависимости от группы клиентов - PullRequest
10 голосов
/ 16 декабря 2011

Ранее я реализовал витрину «только для торговли», в которой указаны цены как для покупателя, так и без него. Им по-прежнему выставляется счет по НДС, просто в каталоге указаны цены без НДС, а также обычные цены с НДС.

Я хотел бы иметь возможность реализовать ту же функциональность, не создавая новую витрину магазина, т. Е. Если кто-то входит в группу «трейдеров», он получает цены, указанные в том числе и без НДС. Они по-прежнему имеют одинаковую налоговую ставку, как и все остальные, поэтому я не хочу иметь налоговую группу в 0%, я хочу просто иметь возможность переключать цены в зависимости от их группы. Сюда также входят ярлыки, поэтому здесь указана не только цена, но и четкое указание вкл. / Без НДС / НАЛОГА.

Мне потребовалось некоторое время, чтобы найти это в Google с «налогом» вместо «НДС», однако на сегодняшний день я не нашел много подсказок относительно того, с чего начать. Если есть причина, почему это не может быть сделано легко, то я хотел бы знать. В противном случае, если есть попытка взломать интерфейс, например, какой-то условный прототип для снятия-скрытия цен / ярлыков, который должен быть маршрутом.

EDIT

Вдохновленный Clockworkgeek Я сделал это, еще не идеальное модульное решение, но то, что мне пока подходит:

Клонированный основной файл в app / code / local / Mage / Tax / Model / Config.php и обновленный функция getPriceDisplayType:

public function getPriceDisplayType($store = null)
{   $customer = Mage::helper('customer')->getCustomer();
    if ($customer->getGroupId() > 1) {
        return self::DISPLAY_TYPE_BOTH;
    } else {
    return (int)Mage::getStoreConfig(self::CONFIG_XML_PATH_PRICE_DISPLAY_TYPE, $store);
    }
}

Это зависит от того, 0 не вошел в систему, 1 - это обычные клиенты и любая «особая» группа выше этой. Сначала я не думал, что это работает, но потом вошел в систему ...

Ответы [ 2 ]

7 голосов
/ 16 декабря 2011

Существует параметр конфигурации для включения или исключения налога, но он не зависит от клиента. Я считаю, что самым прямым способом было бы переопределить точку, в которой это читается. Следующий псевдокод ...

class Your_Module_Model_Config extends Mage_Tax_Model_Config
{
    public function getPriceDisplayType($store = null)
    {
        $customer = Mage::helper('customer')->getCustomer();
        if ($customer->getGroupId() == 'TRADE') {
            return self::DISPLAY_TYPE_BOTH;
        }
        return parent::getPriceDisplayType($store);
    }
}
0 голосов
/ 07 июня 2013

Вы можете попробовать это, чтобы показать цены без налога только для указанных групп клиентов: http://www.magentocommerce.com/magento-connect/catalog/product/view/id/18364/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...