質問 > フロント機能 > 送料商品別設定を有効にして複数購入した場合の送料計上について |
フロント機能
スレッド表示 | 古いものから | 前のトピック | 次のトピック | 下へ |
投稿者 | スレッド |
---|---|
tsuji |
投稿日時: 2015/10/26 10:40
対応状況: −−−
|
仙人 登録日: 2013/11/19 居住地: 投稿: 958 |
Re: 送料商品別設定を有効にして複数購入した場合の送料計上について nobsan 様
この方法ですと例えば下記の状況で不具合が発生します。 商品A、商品Bともに送料を500円と設定してあります。 商品Aを2つ、商品Bを1つ購入したとして、下記のような配送をすることにします 配送先1:商品A(送料:500円) 配送先2:商品Aと商品B(送料:500円+500円) 上記の場合、1500円が送料となるべきですが、下記の計算方法ですと 引用:
送料は1000円となります。 たとえ、これが下記だったとしても 引用:
送料は2000円となりますので、導き出したい送料1500円にはならないと思います。 配送先ごとの商品で送料計算を行う必要がありそうです。
|
nobsan |
投稿日時: 2015/10/16 17:36
対応状況: 解決済
|
常連 登録日: 2014/11/26 居住地: 投稿: 32 |
Re: 送料商品別設定を有効にして複数購入した場合の送料計上について yuh様
今、思いつくまま下記のスクリプトで試しましたら、どうやらこちらの意図通りの動きになったようです。 // 商品ごとの送料を加算 if (OPTION_PRODUCT_DELIV_FEE == 1) { $cartItems = $this->getCartList($productTypeId); $deliv_pref_num = count($deliv_pref); foreach ($cartItems as $arrItem) { $results['deliv_fee'] = $arrItem['productsClass']['deliv_fee'] * $deliv_pref_num; } } とりあえず、複数商品をカートに入れ、お届け先を単一にすれば一つ分の送料が計上され、 お届け先を複数にすればお届け先分の送料が計上されました。 当分はこれで運用しながら不具合が出ないかウォッチしようと思います。 色々お手数掛けました。 ありがとうございました。 |
nobsan |
投稿日時: 2015/10/16 16:52
対応状況: −−−
|
常連 登録日: 2014/11/26 居住地: 投稿: 32 |
Re: 送料商品別設定を有効にして複数購入した場合の送料計上について yuh様
ご教示頂いたソースで試しましたが、残念ながらうまく行きませんでした。 セッション配列にどういった値で格納されているか分からないため、その他のスクリプトが思いつきませんでした。 ただ、理論上なのですが、全国一律が前提ならば、関数の先頭でお届け先がいくつあるかを取得できれば、 foreach ($cartItems as $arrItem) { $results['deliv_fee'] += $arrItem['productsClass']['deliv_fee'] * $お届け先数; } というスクリプトが成り立つかな?と思いました。 そこでご教示頂きたいのですが、お届け先がいくつあるのかを任意の変数に整数で取得するにはどんなスクリプトを書けば良いでしょうか? 色々面倒なことをお伺いして恐縮ですがよろしくお願いします。 |
yuh |
投稿日時: 2015/10/16 11:39
対応状況: −−−
|
神 登録日: 2013/1/9 居住地: 大阪 投稿: 1819 |
Re: 送料商品別設定を有効にして複数購入した場合の送料計上について 全国一律でも矛盾は出ると思います。
対応するとすれば
こんな感じですかね? テストはあまりしてないので、不具合があるかもしれないので参考程度に。 |
nobsan |
投稿日時: 2015/10/16 11:22
対応状況: −−−
|
常連 登録日: 2014/11/26 居住地: 投稿: 32 |
Re: 送料商品別設定を有効にして複数購入した場合の送料計上について tsuji様 yuh様
ご丁寧かつ親身にご教示頂きましてありがとうございます。 実運用中なこともあり、早速お客様からこの件のお問い合わせが入ってしまい、ゆっくり修正する余裕がございません(汗) yuh様ご指摘の問題点はございますが、現時点での矛盾をとりあえず解消するため、tsuji様の案が有効であればやってみようと思いますが、全国一律であればtsuji様の案でも矛盾は出ないということで理解して良いでしょうか? |
tsuji |
投稿日時: 2015/10/16 9:19
対応状況: −−−
|
仙人 登録日: 2013/11/19 居住地: 投稿: 958 |
Re: 送料商品別設定を有効にして複数購入した場合の送料計上について yuh様
確かに計算が合わないですね。 失礼いたしました。 各配送先にどの商品が紐づいているかわからないので、 配送先数×商品にすると、本来配送先に紐づいていない 商品の送料が発生することになりますね。 nobsan 様 私の案は、yuh様のご指摘通り不具合を発生するものでした。 失礼いたしました。
|
nobsan |
投稿日時: 2015/10/16 8:57
対応状況: −−−
|
常連 登録日: 2014/11/26 居住地: 投稿: 32 |
Re: 送料商品別設定を有効にして複数購入した場合の送料計上について yuh様
ご教示ありがとうございます。 今のところ、当方の送料設定は全国一律ですので、 ご指摘の問題は起こらないものと考えられます。 ですが、ご指摘の点は地域別送料設定した場合には無視できませんね。 今後のために参考にさせていただきます。 ありがとうございます。 |
yuh |
投稿日時: 2015/10/15 20:23
対応状況: −−−
|
神 登録日: 2013/1/9 居住地: 大阪 投稿: 1819 |
Re: 送料商品別設定を有効にして複数購入した場合の送料計上について 計算合わなくなりませんか?
商品A 送料200円 3個 商品B 送料300円 2個 を 配送先1に商品Aを2個、商品Bを2個 配送先2に商品Aを1個 の場合、おそらく送料は 配送先1の分で500円 配送先2の分で200円 で合計700円 となるようにと思うんですが、その計算だと 送料 200×2 + 300×2で1000円になってしまうと思います。 単純にcalculateに$_SESSION['shipping']から計算すればいいだけだとは思います。 |
nobsan |
投稿日時: 2015/10/15 19:23
対応状況: −−−
|
常連 登録日: 2014/11/26 居住地: 投稿: 32 |
Re: 送料商品別設定を有効にして複数購入した場合の送料計上について tsuji様
>上記ですが、違う受取人で同県の場合も同じ都道府県IDが複数入りますので >この部分の数は配送先分の数になると思っております。 calculate関数が受け取る引数「$deliv_pref」は都道府県IDの合計数、つまり同じ都道府県IDでもカウントされて整数で渡されるということですね? 単純に、注文者=お届け先なら「1」、そうでない場合はお届け先の数、と。 であれば、商品数にあたる$arrItem['quantity']の部分を $results['deliv_fee'] += $arrItem['productsClass']['deliv_fee'] * $deliv_pref; とするだけで良いということになりますか? |
tsuji |
投稿日時: 2015/10/15 13:59
対応状況: −−−
|
仙人 登録日: 2013/11/19 居住地: 投稿: 958 |
Re: 送料商品別設定を有効にして複数購入した場合の送料計上について nobsan様
> ただ、その場合、違う受取人でも同県だと差異が出ることになります。 上記ですが、違う受取人で同県の場合も同じ都道府県IDが複数入りますので この部分の数は配送先分の数になると思っております。 ご確認ください。
|
(1) 2 » |
スレッド表示 | 古いものから | 前のトピック | 次のトピック | トップ |