顧客グループのフロントエンドに税抜き価格を表示
-
12-12-2019 - |
質問
B2B顧客向けにカタログでは税抜価格を表示したいのですが、通常どおり税で計算します。
これは 2 番目のストア ビューで実行できることはわかっていますが、2 番目のビューなしでこれは可能ですか?
解決
答えであっても、追加のアドバイスを与えたい質問に承認された質問:
ローカルへのオブザーバを作成していませんが、app/code/core/Mage/Tax/Model/Config.php
をローカルに作成しました。
承認された回答はグループIDのみをチェックします。私はさらに行った、そしてtaxclassidをチェックしてください。これはハードコードされていますが、オブザーバや拡張子に包まれたときに、バックエンドでも設定設定でも実行できます。
私の修正機能はのように見えます
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);
}
}
.
これは私が必要としていたすべてを行い、私は今まで表示や論理的な "エラー"を持っていませんでした。
その他の値は税込の間に税金が表示されているため、設定は少し「ドイツのような」です。これが他の人たちも役立つことを願っています。
他のヒント
システム>構成>税金とそこに移動すると、最後のタブ「表示」を探します。「商品価格の表示」では、「税を含めて除外」を選択してからConfigを保存します。
に基づく https://github.com/astorm/Chaos の構成値を変更するオブザーバーを作成しました。 tax/calculation/price_includes_tax
ページおよびユーザーグループに応じて一時的に税抜価格を表示します。
これは短いコメントですが、誰かの役に立つかもしれません:
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;
}
}
所属していません magento.stackexchange