バージョン選択

フォーラム

メニュー

オンライン状況

61 人のユーザが現在オンラインです。 (48 人のユーザが フォーラム を参照しています。)
登録ユーザ: 1
ゲスト: 60
kbsw もっと...

サイト内検索

質問 > フロント機能 > 商品合計金額別、地域別で送料を変更したいのですが

フロント機能

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
paperyu
投稿日時: 2016/4/6 19:30
対応状況: −−−
半人前
登録日: 2016/4/6
居住地:
投稿: 21
商品合計金額別、地域別で送料を変更したいのですが
こんにちは。
初心者で非常に困っております。
Ver2.13.5です。

商品合計金額別、地域別で送料を変更したいのですが、送料が0円のまま反映されず、悪戦苦闘しております。
設定内容は下記のとおりです。

■送料の設定
 ◎北海道・沖縄は5,400円未満は1,080円/5,400円以上は送料無料

 ◎北海道・沖縄以外4,320円未満は864円/4,320円以上は送料無料

参考に下記のページを参考にphpを修正していたのですが反映されません。
http://xoops.ec-cube.net/modules/newbb/viewtopic.php?viewmode=thread&topic_id=10073&forum=10&post_id=48332#forumpost48332

何が違うのかどこがおかしいのか、お分かりの方がおられましたら、お教えいただけませんでしょうか?

どうぞ宜しくお願い致します。

■LC_Page_Shopping_Confirm.php

// 合計金額 
//$this->tpl_total_inctax[$this->cartKey] = $objCartSess->
getAllProductsTotal($this->cartKey); 

// 合計金額
 $CartProductsTotalPrice = $objCartSess->
 getAllProductsTotal($this->cartKey); 
 
 // 一時受注テーブルの読込
  $arrOrderTemp = $objPurchase->getOrderTemp($this->tpl_uniqid);
  
   switch ($arrData['deliv_pref']) { 
   case 1: // 北海道
    if ($CartProductsTotalPrice <= 5399) 
    { $hoge = 1080; break; } 
    case 2: // 青森県
    case 3: // 岩手県 
    case 4: // 宮城県 
    case 5: // 秋田県 
    case 6: // 山形県 
    case 7: // 福島県 
    case 8: // 茨城県 
    case 9: // 栃木県 
    case 10: // 群馬県 
    case 11: // 埼玉県 
    case 12: // 千葉県 
    case 13: // 東京都 
    case 14: // 神奈川県 
    case 15: // 新潟県 
    case 19: // 山梨県 
    case 20: // 長野県 
    case 16: // 富山県 
    case 17: // 石川県 
    case 18: // 福井県 
    case 23: // 愛知県 
    case 22: // 静岡県 
    case 21: // 岐阜県 
    case 24: // 三重県 
    case 27: // 大阪府 
    case 26: // 京都府 
    case 28: // 兵庫県 
    case 25: // 滋賀県 
    case 29: // 奈良県 
    case 30: // 和歌山県 
    case 31: // 鳥取県 
    case 32: // 島根県 
    case 33: // 岡山県 
    case 34: // 広島県 
    case 35: // 山口県 
    case 36: // 徳島県 
    case 37: // 香川県 
    case 38: // 愛媛県 
    case 39: // 高知県 
    case 40: // 福岡県 
    case 41: // 佐賀県 
    case 42: // 長崎県 
    case 43: // 熊本県 
    case 44: // 大分県 
    case 45: // 宮崎県 
    case 46: // 鹿児島県
     if ($CartProductsTotalPrice <= 4319) {$hoge = 864;
      break; } 
      default: // 沖縄県
       if ($CartProductsTotalPrice <= 5399) {
        $hoge = 1080; break; } } $this->tpl_total_inctax[$this->cartKey] = $CartProductsTotalPrice;



■SC_CartSession.php

/*function calculate($productTypeId, &$objCustomer, $use_point = 0,
 $deliv_pref = "", $charge = 0, $discount = 0, $deliv_id = 0) 
 {*/ function calculate($productTypeId, &$objCustomer, $use_point = 0,
  $deliv_pref = "", $charge = 0, $discount = 0, $a) {
   $objDb = new SC_Helper_DB_Ex(); 
   $total_point = $this->getAllProductsPoint($productTypeId); 
   $results['tax'] = $this->getAllProductsTax($productTypeId); 
   $results['subtotal'] = $this->getAllProductsTotal($productTypeId); 
   $results['deliv_fee'] = 0; } 
   
   var_dump($hoge);
    // 商品ごとの送料を加算
     if (OPTION_PRODUCT_DELIV_FEE == 1) {
      $cartItems = $this->getCartList($productTypeId);
       foreach ($cartItems as $item) { 
       $results['deliv_fee'] += $item['productsClass']['deliv_fee'] * $item['quantity'];
        }
        } 
        
    // 配送業者の送料を加算
     /*if (OPTION_DELIV_FEE == 1
      && !SC_Utils_Ex::isBlank($deliv_pref)
      && !SC_Utils_Ex::isBlank($deliv_id)) { $results['deliv_fee'] += $objDb->sfGetDelivFee($deliv_pref, 
      $deliv_id); }*/
yuh
投稿日時: 2016/4/7 17:59
対応状況: −−−
登録日: 2013/1/9
居住地: 大阪
投稿: 1819
Re: 商品合計金額別、地域別で送料を変更したいのですが
SC_Helper_Delivery_Exに

    public static function getDelivFee($pref_id, $deliv_id = 0,$total = 0)
    {
        $objQuery =& SC_Query_Ex::getSingletonInstance();
        if (!is_array($pref_id)) {
            $pref_id = array($pref_id);
        }
        $sql = <<< __EOS__
            SELECT T1.fee AS fee
            FROM dtb_delivfee T1
                JOIN dtb_deliv T2
                    ON T1.deliv_id = T2.deliv_id
            WHERE T1.pref = ?
                AND T1.deliv_id = ?
                AND T2.del_flg = 0
__EOS__;
        $result = 0;
        
//------------------------------------------------------------------------
        foreach ($pref_id as $pref) {
            if(in_array($pref,array(1,47)) AND $total >= 5400 ){
                $flag = false;
            }elseif(!in_array($pref,array(1,47)) AND $total >= 4320 ){
                $flag = false;
            }else{
                $flag = true;
            }
            
            if($flag === true){
                $result += $objQuery->getOne($sql, array($pref, $deliv_id));
            }
        }
//------------------------------------------------------------------------
        return $result;
    }


を追加


SC_CartSessionのcalculate


        // 配送業者の送料を加算
        if (OPTION_DELIV_FEE == 1
            && !SC_Utils_Ex::isBlank($deliv_pref)
            && !SC_Utils_Ex::isBlank($deliv_id)) {
            $results['deliv_fee'] += SC_Helper_Delivery_Ex::getDelivFee($deliv_pref, $deliv_id);
        }





        // 配送業者の送料を加算
        if (OPTION_DELIV_FEE == 1
            && !SC_Utils_Ex::isBlank($deliv_pref)
            && !SC_Utils_Ex::isBlank($deliv_id)) {
            //getDelivFeeに$results['subtotal']を渡す
            $results['deliv_fee'] += SC_Helper_Delivery_Ex::getDelivFee($deliv_pref, $deliv_id,$results['subtotal']);
        }



でできると思います。
paperyu
投稿日時: 2016/4/8 9:32
対応状況: −−−
半人前
登録日: 2016/4/6
居住地:
投稿: 21
Re: 商品合計金額別、地域別で送料を変更したいのですが
yuh様

お世話になります。
お教えいただきありがとうございます。

今、コードを入れ直してみたのですが、送料が反映されないようです。
SC_Helper_Delivery_Ex.phpにお教えいただいたコードを入れたところ、
追加した最初の行
public static function getDelivFee($pref_id, $deliv_id = 0,$total = 0)
で[シンタックスエラー]が発生したと表示されました。
これが何か影響があるのでしょうか?

重ね重ねで本当に申し訳ありません。
どうかお教えいただけますと助かります。

◆SC_Helper_Delivery_Ex.php

<?php 
/*
 * This file is part of EC-CUBE
 *
 * Copyright(c) 2000-2014 LOCKON CO.,LTD. All Rights Reserved.
 *
 * http://www.lockon.co.jp/
 *
 * This program is free software; you can redistribute it and/or
 * modify it under the terms of the GNU General Public License
 * as published by the Free Software Foundation; either version 2
 * of the License, or (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
 */

 require_once CLASS_REALDIR . 'helper/SC_Helper_Delivery.php';

 /**
 * 配送方法を管理するヘルパークラス(拡張).
 *
 * LC_Helper_Delivery をカスタマイズする場合はこのクラスを編集する.
 *
 * @package Helper
 * @author pineray
 * @version $Id:$
 */ class SC_Helper_Delivery_Ex extends SC_Helper_Delivery
 {
 //put your code here
 }


 public static function getDelivFee($pref_id, $deliv_id = 0,$total = 0)
 {
 $objQuery =& SC_Query_Ex::getSingletonInstance();
 if (!is_array($pref_id))
 { $pref_id = array($pref_id);
 }
 $sql = <<< __EOS__
 SELECT T1.fee AS fee FROM dtb_delivfee T1
 JOIN dtb_deliv T2
 ON T1.deliv_id = T2.deliv_id
 WHERE T1.pref = ?
 AND T1.deliv_id = ?
 AND T2.del_flg = 0
 __EOS__;
 $result = 0;
 //------------------------------------------------------------------------
 foreach ($pref_id as $pref) {
 if(in_array($pref,array(1,47)) AND $total >= 5400 ){
 $flag = false;
 }elseif(!in_array($pref,array(1,47)) AND $total >= 4320 ){
 $flag = false;
 }else{
 $flag = true; }
 if($flag === true){
 $result += $objQuery->getOne($sql, array($pref, $deliv_id));
 }
 }
 //------------------------------------------------------------------------
 return $result;
 }
yuh
投稿日時: 2016/4/8 14:10
対応状況: −−−
登録日: 2013/1/9
居住地: 大阪
投稿: 1819
Re: 商品合計金額別、地域別で送料を変更したいのですが
class SC_Helper_Delivery_Ex extends SC_Helper_Delivery
{
//put your code here

ここに追加ですね。

}
paperyu
投稿日時: 2016/4/8 14:58
対応状況: −−−
半人前
登録日: 2016/4/6
居住地:
投稿: 21
Re: 商品合計金額別、地域別で送料を変更したいのですが
yuh様

重ねてご連絡いただきありがとうございます。
コードをお教えいただいた場所に入れましたところ、エラーが消えました。
ですが、送料自体が反映されずゼロ円のまま表示されてしまいます。

他配信設定やシステム設定がおかしいのでしょうか?
度々の質問で大変恐縮でございますが、何卒よろしくお願い申し上げます。
paperyu
投稿日時: 2016/4/28 11:40
対応状況: −−−
半人前
登録日: 2016/4/6
居住地:
投稿: 21
Re: 商品合計金額別、地域別で送料を変更したいのですが
yuh様

お世話になりました!
無事設定が反映され、地域別・商品合計金額別に送料を設定することが出来ました。
何度も何度も素人の私に真摯にお付き合いいただきありがとうございました。
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ


 



ログイン


EC-CUBE公式 Amazon Payプラグイン

統計情報

総メンバー数は88,854名です
総投稿数は109,989件です

投稿数ランキング

1
seasoft
7367
2
468
3217
3
AMUAMU
2712
4
nanasess
2313
5
umebius
2085
6
yuh
1819
7
h_tanaka
1646
8
red
1570
9
mcontact
1291
10
tsuji
958
11
fukap
907
12
shutta
835
13
tao_s
799
14 ramrun 789
15 karin 689
16 sumida 641
17
homan
633
18 DELIGHT 572
19
patapata
502
20
flealog
485


ネットショップの壺

EC-CUBEインテグレートパートナー

Copyright© EC-CUBE CO.,LTD. All Rights Reserved.