ec-cube2 icon indicating copy to clipboard operation
ec-cube2 copied to clipboard

SC_Helper_TaxRule の処理で国別、県別税率の処理の不整合

Open ttsuru opened this issue 10 years ago • 1 comments

キャッシュの確認の後にログインしているかどうかを判定しているため、TaxRuleの取得が一部不足している。

    public static function getTaxRule($product_id = 0, $product_class_id = 0, $pref_id = 0, $country_id = 0)
    {
        // 複数回呼出があるのでキャッシュ化
        static $data_c = array();

        // 初期化
        $product_id = $product_id > 0 ? $product_id : 0;
        $product_class_id = $product_class_id > 0 ? $product_class_id : 0;
        $pref_id = $pref_id > 0 ? $pref_id : 0;
        $country_id = $country_id > 0 ? $country_id : 0;

        // 一覧画面の速度向上のため商品単位税率設定がOFFの時はキャッシュキーを丸めてしまう
        if (OPTION_PRODUCT_TAX_RULE == 1) {
            $cache_key = "$product_id,$product_class_id,$pref_id,$country_id";
        } else {
            $cache_key = "$pref_id,$country_id";
        }

        if (empty($data_c[$cache_key])) {
            // ログイン済み会員で国と地域指定が無い場合は、会員情報をデフォルトで利用。管理画面では利用しない
            if (!(defined('ADMIN_FUNCTION') && ADMIN_FUNCTION == true)) {
                $objCustomer = new SC_Customer_Ex();
                if ($objCustomer->isLoginSuccess(true)) {
                    if ($country_id == 0) {
                        $country_id = $objCustomer->getValue('country_id');
                    }
                    if ($pref_id == 0) {
                        $pref_id = $objCustomer->getValue('pref');
                    }
                }
            }

ttsuru avatar Apr 17 '15 01:04 ttsuru

国別、県別税率は現状利用していないが不具合のあるコードなので備忘録として残しておきます

nanasess avatar Dec 16 '24 05:12 nanasess