バージョン選択

フォーラム

メニュー

オンライン状況

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

サイト内検索

質問 > フロント機能 > 送料の計算

フロント機能

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
seasoft
投稿日時: 2008/12/30 2:25
対応状況: −−−
登録日: 2008/6/4
居住地:
投稿: 7367
Re: 送料の計算
私の書いた「ちょっとした改良」は、EC-CUBE 側の対応が必要な箇所です。拡張モジュールではなく、拡張クラスで対応させる方向ですね。都道府県×重量→送料のマスタは、管理機能なんか用意せず、テーブル直という、安易な考えです。(極端な話し、テーブルも用意せず、ソース埋め込みだって…というような軽いノリです。)

送料計算のリファクタリングは簡単に出来たので、問題は商品側ですね。こっちは、面倒そうですね。

無改造で実現出来そうなのは、「備考欄(SHOP専用)」に特定書式で入力する方法とかかなぁ。バリデーションが困難なのは痛いが… いや、商品管理をリファクタリングすれば出来ないことも無いけど…

aeon_jp さんは、
・商品重量
・都道府県
・総重量×都道府県→送料
以外で、要求はないのかな?

いや、要求されても、盛り込むめるとは限りませんよ。
基本、個人的に興味の湧かないコーディングは無償でしない人間なんで


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

mojaxp
投稿日時: 2008/12/30 2:54
対応状況: −−−
常連
登録日: 2007/11/28
居住地: 岩手県盛岡市
投稿: 57
Re: 送料の計算
>個人的に興味の湧かないコーディングは無償でしない人間なんで

Ver.2用にテストってる版は無償公開しないよ。
金額は決めてはいないものの、DL販売していこうかと思ってる。商品管理側にも手を入れる必要があるので、サポートも多少なりとも伴うというのがそう考えた理由…。
モジュール・プラグイン版はまだしばらく先になる。
配送料計算モジュールと合わせて、Ver.2実装カレンダーが出るずいぶん前に作ったカレンダーモジュールも最初どうしようか迷ったんだが、Ver.2版の使いずらさに急遽Ver.1→Ver.2対応中。これが終わったらもろとも(^^)


----------------
********************************
[EC-CUBE] 2.3.3 テスト中
[PHP] PHP 5.2.6
[db] PostgreSQL 8.4.1
[db] MySQL 5.0.58
[Server] httpd 2.2.8
********************************

seasoft
投稿日時: 2008/12/30 3:29
対応状況: −−−
登録日: 2008/6/4
居住地:
投稿: 7367
Re: 送料の計算
本家株式会社ロックオンさんも有償部分は苦しんでいるようですので、困難はあると思いますが、サードパーティーからのビジネスが確立できると良いですね。

# そんなときには、GPL 面倒そうだ… それに、EC-CUBE 自体が GPL を侵害している箇所がある予感がしている今日この頃…


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

aeon_jp
投稿日時: 2008/12/30 9:10
対応状況: −−−
新米
登録日: 2008/11/29
居住地:
投稿: 7
Re: 送料の計算
seasoft さん

はじめまして、aeon_jpです。

ご指摘のお通り、私は商品重量、都道府県別にて計算が行いたいです。
基本的に1つの発送方法(ゆうパック重量)にて対応し
別の発送(メール便、エクスパック)などはイレギュラーとし
後ほど訂正メールにて対応しようかと検討しています。
※その方がソース修正が楽だから

今の構想は、商品マスタに重量項目を追加し、清算時に
合計を求め、送料テーブルへ発送都道府県、重量にて検索を行い
送料を決定しようかと思っています。

seasoft
投稿日時: 2008/12/30 10:24
対応状況: −−−
登録日: 2008/6/4
居住地:
投稿: 7367
Re: 送料の計算
ひとつ疑問です。

購入商品の合計重量が1トンになった場合、どう処理しますか?

送料が自動算出できなかった場合の処理というのが、EC-CUBE には実装されていない予感…

追記
解決案。「30kgを超える場合も、購入者には30kgの送料を負担してもらい、実際にそれ以上に掛かる分の送料は、店舗が負担する」というような、運用カバー。


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

gens
投稿日時: 2008/12/30 11:38
対応状況: −−−
常連
登録日: 2007/1/1
居住地:
投稿: 32
Re: 送料の計算
すみません、素人なのですが、
カテゴリー別に配送業者を選択でませんか?
そんな機能があれば、いいなあって思っています。
http://www.ec-cube.net/integrate/partner/yui.php
こちらのサービスも少し気になっています。
seasoft
投稿日時: 2008/12/30 11:58
対応状況: −−−
登録日: 2008/6/4
居住地:
投稿: 7367
Re: 送料の計算
> カテゴリー別に配送業者を選択でませんか?

ひとつ疑問です。

一度に、複数のカテゴリーに対して注文があった場合、
どのような処理にするのですか?


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

ramrun
投稿日時: 2008/12/30 13:43
対応状況: −−−
仙人
登録日: 2006/11/3
居住地:
投稿: 789
Re: 送料の計算
私はdtb_products_classにdeliv_weightを持たせて、清算時に重量の合計と、dtb_delivfeeにサイズ別のフィールドを追加して送料の金額を計算するようにしました。
自分のだからすべて決め打ちで、DBもphpmyadminから直接いじってます。

$totalDelivFee = 0;
do {
    switch ($sumWeight) {
        case ($sumWeight <= 2):
            $delivSize = 'size_60';
            $sumWeight -= 2;
            break;
        case ($sumWeight <= 5):
            $delivSize = 'size_80';
            $sumWeight -= 5;
            break;
        case ($sumWeight <= 10):
            $delivSize = 'size_100';
            $sumWeight -= 10;
            break;
        case ($sumWeight <= 15):
            $delivSize = 'size_120';
            $sumWeight -= 15;
            break;
        case ($sumWeight <= 20):
            $delivSize = 'size_140';
            $sumWeight -= 20;
            break;
        default:
            $delivSize = 'size_170';
            $sumWeight -= 30;
    }
    $arrRet= $objQuery->select($delivSize, 'dtb_delivfee', $where, array($deliv_id, $pref));
    $totalDelivFee += $arrRet[0][$delivSize];
} while ($sumWeight > 0);


カスタマイズ... というかオーダーメイドになりそうなので、自分でプログラムをいじれる人は自分でやるべきでしょうね(汗)。
seasoft
投稿日時: 2008/12/30 14:45
対応状況: −−−
登録日: 2008/6/4
居住地:
投稿: 7367
Re: 送料の計算
> 私はdtb_products_classにdeliv_weightを持たせて、清算時に重量の合計と、dtb_delivfeeにサイズ別のフィールドを追加して送料の金額を計算するようにしました。

私も同案ですね。試験実装の段階では、dtb_delivfee に手を加えるのは面倒なので、PHPソース上に金額変換を持たせてしまいましたが。


とりあえず、EC-CUBE 本体をリファクタリングし、拡張クラスでカスタマイズ可能なようにしてみました。
http://svn.ec-cube.net/open_trac/changeset/17739

カスタマイズ例は下記のとおりです。
class SC_Helper_DB_Ex extends SC_Helper_DB {
    
    function sfTotalConfirm($arrData, &$objPage, &$objCartSess, $arrInfo, $objCustomer = "") {
        
        $arrData['crg_pt'] = 0; // 送料点数合計
        foreach ($objCartSess->getCartList() as $arrCart) {
            
            // 送料点数取得
            $objQuery = new SC_Query();
            $col = "crg_pt";
            $table = "dtb_products_class";
            $where = "product_id = ? AND classcategory_id1 = ? AND classcategory_id2 = ?";
            list($product_id, $classcategory_id1, $classcategory_id2) = $arrCart['id'];
            if ($classcategory_id1 == "") $classcategory_id1 = '0';
            if ($classcategory_id2 == "") $classcategory_id2 = '0';
            $crg_pt = $objQuery->get($table, $col, $where, array($product_id, $classcategory_id1, $classcategory_id2));
            
            $arrData['crg_pt'] += $crg_pt * $arrCart['quantity'];
        }
        
        return SC_Helper_DB::sfTotalConfirm($arrData, $objPage, $objCartSess, $arrInfo, $objCustomer);
    }
    
    function sfGetDelivFee($arrData) {
        switch ($arrData['deliv_pref']) {
            case 13: // 東京都
                if ($arrData['crg_pt'] <= 100) return 500;
                if ($arrData['crg_pt'] <= 200) return 600;
                return 700;
            case 1:  // 北海道
            case 47: // 沖縄県
                if ($arrData['crg_pt'] <= 100) return 1000;
                if ($arrData['crg_pt'] <= 200) return 1200;
                return 1400;
            default: // 他
                if ($arrData['crg_pt'] <= 100) return 700;
                if ($arrData['crg_pt'] <= 200) return 800;
                return 900;
        }
    }
}

※ 商品規格テーブル(dtb_products_class)に送料点数(crg_pt)列を追加しておく前提です。


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

mojaxp
投稿日時: 2009/1/4 3:20
対応状況: −−−
常連
登録日: 2007/11/28
居住地: 岩手県盛岡市
投稿: 57
Re: 送料の計算
商品やカテゴリーに配送業者を指定…というのも、そういう商品を取り扱っていたり、配送業者別にやカテゴリー分類をせざるえない商品だったりすれば、必ずしもあり得ないケースではないと思う。

ま、こんなケースはできれば避けたいとは思うが、10種類の商品を1カ所または複数箇所を宛先に発注があったとして、10種類の商品に10業者が関連付けられていたのなら、送料も10種類あって(できれば配送業者別にソート)、加算しさえすればいいだけのこと。

こんな場合はどうするの・・・なんて、そうしたいと考えている店舗主が対処を考えればいいことと思う。


----------------
********************************
[EC-CUBE] 2.3.3 テスト中
[PHP] PHP 5.2.6
[db] PostgreSQL 8.4.1
[db] MySQL 5.0.58
[Server] httpd 2.2.8
********************************

« 1 (2) 3 »
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ


 



ログイン


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

統計情報

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

投稿数ランキング

1
seasoft
7367
2
468
3217
3
AMUAMU
2712
4
nanasess
2313
5
umebius
2085
6
yuh
1819
7
h_tanaka
1638
8
red
1570
9
mcontact
1285
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.