Re: 送料無料条件から送料個別課金の商品を除外する

ホーム フォーラム 使い方全般 送料無料条件から送料個別課金の商品を除外する Re: 送料無料条件から送料個別課金の商品を除外する

#66171

Takashi Terada
モデレーター

どうやら自己解決出来そうです、ただ1点不明点が増えたので、お伺いしたいと思います。

– 自己解決部分 –

> 1.「送料無料条件」の判定を変更

> 「usceshop.class.php」を変更しますが、既存ファイルを変更しないで済む方法が有れば、

> 教えていただけないでしょうか。

送料計算のフックではなく、送料計算後(関数set_cart_fees内)のフックを使用する事で解決しました。

フック名:usces_filter_set_cart_fees_shipping_charge

> 2.「usces_filter_getShippingCharge」フックを追加

> 知りたい情報:

> ・商品毎の【送料個別課金】がtrueかfalseか

> ・商品毎の【送料】

> ・基本設定で設定した【送料無料条件の金額】

getShippingChargeを参考に「$this」の箇所を「$usces」に書き換えたら、いけそうです。

カート内の商品の送料を計算する時に、【送料個別課金】がtrueかfalseで「商品金額と送料」を分けて集計しようと思います。

・商品毎の【送料個別課金】がtrueかfalseか

 $usces->getItemIndividualSCharge($rows)

・商品毎の【送料】

 $rows * $rows

・基本設定で設定した【送料無料条件の金額】

 $usces->options

– 質問 –

上記の通り、function「getShippingCharge」を参考にさせて頂きましたが、「foreach ( $cart as $rows )」の中で「送料」を計算する際、「if( -1 == $fixed_charge_id ){」で判断して別々の集計をしています。

この判定の意味を教えて頂けないでしょうか。

「$fixed_charge_id」は「$this->options[$d_method_index]」で取得しているので商品毎でなく、基本設定に関連すると思うのですが送料関係(送料無料条件の金額とか)をいじっても、「-1」の分岐にしか行きません。コメントでは「送料ID」とされています。

送料計算を自作の関数に持ち出すので、不明点は潰しておきたいと思います。

お手数ですがご説明願えないでしょうか。

– 要望 –

今回は問題は解決しそうですが、送料計算を自作の関数に持ち出す事に不安感はあります。

商品毎に送料を「送料無料条件」判定の対象にするかの設定が出来るようになると助かります。

現在でも高機能でバランスの取れたオンラインストアだと思います、今後改良の余地があれば宜しくお願い致します。

以上