バージョン選択

フォーラム

メニュー

オンライン状況

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

サイト内検索

質問 > フロント機能 > 商品合計額に応じて複数の配送設定を使い分けたい

フロント機能

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
brother
投稿日時: 2011/11/19 15:29
対応状況: −−−
半人前
登録日: 2011/8/16
居住地:
投稿: 16
商品合計額に応じて複数の配送設定を使い分けたい
やりたいことは表題のとおりですが実現方法が分からず行き詰ったので質問させていただきます。

【送料の運用ルール】
1:1万円未満は一律500円(deliv_id 1)
  注文の商品代金合計(送料・手数料除く)が1万円未満の場合、
  送料は全国一律500円 お届け時間帯は指定不可

2:1万円以上は送料無料(deliv_id 3)
  注文の商品代金合計(送料・手数料除く)が1万円以上の場合、
  送料は無料 お届け時間帯は指定可能

この運用ルールをEC-CUBE 2.11.1へ適用させるために、上記2つの配送設定を登録しました。

このままだと、カートの清算画面において上記2通りの配送方法が表示されてしまうために不自然なので、商品代金の合計金額に応じて上記いずれかの配送設定しか表示されないようにしたいと考え、過去スレッドを探した結果、下記2つのスレを拝見させていただきました。

配送方法の表示
http://xoops.ec-cube.net/modules/newbb/viewtopic.php?topic_id=9037&forum=10&post_id=43658

配送業者別に、異なる送料無料基準【o円以上送料無料】を設定したい
http://xoops.ec-cube.net/modules/newbb/viewtopic.php?topic_id=8576&forum=10&post_id=41864#forumpost41864

その結果、たぶん SC_Helper_Purchase.phpの600行目あたりにある以下のロジックに手を加えるのではないかと思いましたが、どのようにすればよいのかが分かりませんでした。

/**
* 商品種別ID から配送業者を取得する.
*
* @param integer $product_type_id 商品種別ID
* @return array 配送業者の配列
*/
function getDeliv($product_type_id) {
$objQuery =& SC_Query_Ex::getSingletonInstance();
$objQuery->setOrder('rank DESC');
return $objQuery->select('*', 'dtb_deliv', 'product_type_id = ? AND del_flg = 0',
array($product_type_id));
}

どなたかアドバイスいただけないでしょうか。
宜しくお願いします。

///////////////////////////
EC-CUBE 2.11.1
PHP 5.3
DB PostgreSQL 8.1.23
OS CentOS
WEBサーバ Apache 2.2.3
seasoft
投稿日時: 2011/11/19 15:38
対応状況: −−−
登録日: 2008/6/4
居住地:
投稿: 7367
Re: 商品合計額に応じて複数の配送設定を使い分けたい
別解もありそうですが、brother 様の案も良さそうですね。
注目したメソッド(function)も良いと思います。

具体的に、「何をすべきか」または「何に行き詰まっているか」は見通せていますか?


----------------
Seasoft
こちらでの投稿は、アイディア程度に留めさせていただいております。
個別案件の作業は有償で承っております。お気軽にご相談ください。

brother
投稿日時: 2011/11/19 18:22
対応状況: −−−
半人前
登録日: 2011/8/16
居住地:
投稿: 16
Re: 商品合計額に応じて複数の配送設定を使い分けたい
seasoft様

早々にスレいただきありがとうございます。

>具体的に、「何をすべきか」または「何に行き詰まっているか」は見通せていますか?
php素人ながら以下のように試してみましたがエラー表示のままで解決策が見いだせない状況です。

青字部分を追記しました。

    /**
     * 商品種別ID から配送業者を取得する.
     *
     * @param integer $product_type_id 商品種別ID
     * @return array 配送業者の配列
     */
    function getDeliv($product_type_id) {
        $objQuery =& SC_Query_Ex::getSingletonInstance();
        $objQuery->setOrder('rank DESC');
        return $objQuery->select('*', 'dtb_deliv', 'product_type_id = ? AND del_flg = 0',
                                 array($product_type_id));
        foreach ($deliv_id as $data) {
            // 商品代金1万円未満は deliv_id 1 を表示)
            if (9999 >= $data['subtotal']) {
                    $deliv_id == 1;
            }
            // 商品代金1万円以上は deliv_id 3 を表示)
            else ($data['subtotal'] >= 10000) {
                $deliv_id == 3;
            }
          }
        return $arrdeliv_id;
    }



エラーメッセージは以下のとおりです。

Parse error: syntax error, unexpected '{' in /var/www/ドメイン/data/class/helper/SC_Helper_Purchase.php on line 617

ヒントだけでも授けていただければ幸いです。
seasoft
投稿日時: 2011/11/19 20:04
対応状況: −−−
登録日: 2008/6/4
居住地:
投稿: 7367
Re: 商品合計額に応じて複数の配送設定を使い分けたい
う〜ん、構造的な問題の前に、単純な構文エラーが発生していますね。

エラーメッセージのSC_Helper_Purchase.php の617行目には何が書かれていますか?


----------------
Seasoft
こちらでの投稿は、アイディア程度に留めさせていただいております。
個別案件の作業は有償で承っております。お気軽にご相談ください。

seasoft
投稿日時: 2011/11/19 20:06
対応状況: −−−
登録日: 2008/6/4
居住地:
投稿: 7367
Re: 商品合計額に応じて複数の配送設定を使い分けたい
連投ですが、あと PHP の「変数」と「foreach」の概念は把握した方が良いかも。

それで、青色ソースの1行目が誤りと気付けると思います。


(追記)

あと、return も(汗)


----------------
Seasoft
こちらでの投稿は、アイディア程度に留めさせていただいております。
個別案件の作業は有償で承っております。お気軽にご相談ください。

スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ


 



ログイン


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

統計情報

総メンバー数は88,894名です
総投稿数は110,002件です

投稿数ランキング

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
1295
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.