バージョン選択

フォーラム

メニュー

オンライン状況

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

サイト内検索

 > フロント機能 > 商品サイズ毎の送料計算

フロント機能

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
mojaxp
投稿日時: 2007/11/28 21:25
対応状況: −−−
常連
登録日: 2007/11/28
居住地: 岩手県盛岡市
投稿: 57
商品サイズ毎の送料計算
EC-CUBEを使ってのオンラインショップサイトを構築していて、すごく気になったのが、商品の送料計算でした。

単一サイズ(箱や重量など)の商品を扱うのであれば、現行のままでも十分なのかもしれませんが、まちまちの箱サイズだったり、一定重量で送料を計算させたりするような商品を扱っていたりすると、EC-CUBEでの構築は諦めざるえないのか・・・と、考えていました。

しかし、非常にもったいない。
ということで、zen-cartやoscommerceを参考に、まちまちの商品サイズでも送料を計算できるよう改造しました。

参考にしたのは、Zen-Cart の includes/classes/_yamato.php

_yamato.php では各判定内容をテーブルでモジュール内に持っていますが、EC-CUBE でZen-Cart方式を採用するには大改造しなくちゃいけなかったため、配送業者に対する各判定テーブルと、それの判断材料である商品側の情報(重量や箱サイズ)をDBに追加&新規で登録。
confirm.php での最終計算の際、slib.php の sfTotalConfirm で、それら判定DBを参照して、出荷都道府県(店舗所在地)→配送先都道府県で且つ、商品サイズまたは重量で参照した送料に、箱サイズ判定の場合はそのまま個数を掛ける方式で送料を計算できるようにしました。

まだ、管理画面を作っていないので、配送業者の各判定テーブルと送料テーブルは phpMyAdmin での更新しかできませんが、管理画面ができ次第、自ブログサイトででも公開したいと思います。

そういえば、confirm.php で sfTotalConfirm を呼び出しているところの引数の数と受ける側(sfTotalConfirm)の引数の数が異なりますが、これ($objCampaignSess)削っても良かったのかどうか・・・
Oba
投稿日時: 2007/11/29 4:43
対応状況: −−−
一人前
登録日: 2007/8/31
居住地: 静岡
投稿: 111
Re: 商品サイズ毎の送料計算
mojaxpさん、はじめまして

私も個数や重さで送料が変化するシステムがあればな〜と思っていました。

ですが、私はやっと「独習PHP」や「PostgreSQL 徹底入門」などの本を読み始めた状態なのでスキルが無く、どうしたら良いのか、しょうがないと諦めてました。

出来る方がこうして公表して貰えると、本当にありがたい気持ちです。

ぜひとも、完成しましたら、教えてください。
よろしくお願いします。
mojaxp
投稿日時: 2007/11/29 11:15
対応状況: −−−
常連
登録日: 2007/11/28
居住地: 岩手県盛岡市
投稿: 57
Re: 商品サイズ毎の送料計算
Oba さん、はじめまして

この個数(重さ)や箱サイズで送料が変化する方法、Zen-Cart や oScommerce では当たり前(箱サイズに関しては少々弄る必要がある)に実装しているので、何故 EC-CUBE に無いのだろう? との思いから、弄くってみた次第です。

管理画面について、実は私、Smarty 絡みは初心者なので、四苦八苦しています(汗
端的に phpMyAdmin から編集できることだし、管理画面無しでもいいかぁ〜・・・みたいな気分ですが・・・

ちなみに、雰囲気は下記サイトで見ることができます。
http://www.miraiarcs.com/eshop/

今現在は、箱サイズ型商品のサイトと重量判定型商品のサイト用に再調整しているところです。
Oba
投稿日時: 2007/11/29 14:09
対応状況: −−−
一人前
登録日: 2007/8/31
居住地: 静岡
投稿: 111
Re: 商品サイズ毎の送料計算
>mojaxpさん

貴殿サイトで試してみました。

引用:
ちなみに、雰囲気は下記サイトで見ることができます。
http://www.miraiarcs.com/eshop/


スゴイです。感動しました。

私はMySQLでの構築はバグが多いとの意見が、こちらのフォーラムで多かったので、PostgreSQLで構築したんですが、
応用は出来ますよね?

Smarty…がんばってください。
それが得意(専門)のこちらの開発の方が、
何か言って貰えれば、もっと、簡単に出来そうですが

mojaxp
投稿日時: 2007/11/29 17:48
対応状況: −−−
常連
登録日: 2007/11/28
居住地: 岩手県盛岡市
投稿: 57
Re: 商品サイズ毎の送料計算
>私はMySQLでの構築はバグが多いとの意見が、こちらのフォーラムで多かったので、PostgreSQLで構築したんですが、
応用は出来ますよね?

問題ないでしょう。

ただ、他方結構弄らないといけないので、安易にバージョンアップできなくなるって欠点が・・・(汗


詳しくは後で(^_^;)ですが・・・

dtb_product に項目を5つ追加
dtb_deliv に登録される配送業者IDで、
dtb_xdelivsize
dtb_xdelivrank
dtb_xdelivpref
dtb_xdelivfee
という送料判定絡みのDBを4つ追加、関連のSQLを修正。
これに絡んで、フロント側処理とテンプレート、管理側商品登録絡みの処理とテンプレート、conf.php、slib.php他各修正。

ちなみに、配送業者を1社しか使わない場合はDBの追加は不要かもです。代わりに conf.php に配列でデータを定義してやって、各処理を修正すればイケると思います。こっちのほうがラクかも(^_^)vです。

自分的には、数社配送業者を使う場合は…ってんで、DBにしちゃったんですが、DBにすると管理画面が必要になるのをすっかり忘れてました(汗
mojaxp
投稿日時: 2007/11/29 18:43
対応状況: −−−
常連
登録日: 2007/11/28
居住地: 岩手県盛岡市
投稿: 57
Re: 商品サイズ毎の送料計算
関係無い話ですが…
Obaさん、「ネットショップオーナー2」同じくです。

ショップサイトは現在ネットショップオーナー2で運営してますが、EC-CUBE (多分世の中に発表されて間もなくから追っかけはじめたように記憶しています)は、送料の計算結果が意図した金額にならないことで、仕方なく(笑)ネットショップオーナー2を使うことにした…てな感じです。
ショップは全国送料一律とかできるような内容ではないし、取り扱う商品の箱サイズがマチマチなので、どうしてもサイズ毎の送料計算が必要だったこともあって、そういう設定ができるソフトを利用するのが手っ取り早かったためです。

ちなみにZen-Cart、osCommerceは単位送料の判定は箱サイズではなく重量です。箱サイズにするには改良が必要です。
Oba
投稿日時: 2007/11/30 17:35
対応状況: −−−
一人前
登録日: 2007/8/31
居住地: 静岡
投稿: 111
Re: 商品サイズ毎の送料計算
>mojaxpさん

私も、ECサイト構築に色々と使ってみました。
osCommerceやZEN-CARTも使ってみました。
ZEN-CARTは、高機能で豊富なモジュールと、良さそうですが、
送料関係で意図したモノにならなくて、一度運営しましたが止めました。
あと、デザイン変更中にエラーなど出たりして、結構、気難しい感じでした。

それから、ネットショップオーナー2を購入し、いざ作り始めたら、送料がサイズごとにならず、個数が増えると倍々になっていくシステムで、これでは現在の運送形態ではまったく使いものにならないソフトという感想でしたが、仕方なく送料固定で使ってました。(バージョン3でも対応しないそうです。カスタマーに問い合わせしました。)

悪い事ばかり並べ立てましたが、それぞれ良し悪しが有ると思います。
運営してらっしゃる方々がいらしているので、そういう方たちにはマッチしているんだと思います。

EC-CUBEは少々バグは有りますが使いやすいです。

2.0正式版が待ち遠しいです。

mojaxp
投稿日時: 2007/12/1 1:51
対応状況: −−−
常連
登録日: 2007/11/28
居住地: 岩手県盛岡市
投稿: 57
Re: 商品サイズ毎の送料計算
少々クセのある管理画面ですが、作りました(汗

1.3.4-comu から 1.4.5 に載せかえてテストした後に公開したいと思います。

ところで、
箱単位で送料を計算するロジックと重量単位で送料を計算するロジックを混在させると、カート内の商品をどっちか単位にソートしなおしてから合計計算に入らないとおかしなことになりそうな気がしたので、例えば conf.php に DELIVERY_STYLE みたいなフラグを作り、0だったら箱単位、1だったら重量単位みたいな箱単位ベースと重量単位ベースの2種類に分けようかとか思ってるんですが、どうでしょう?

一応ロジック的には、箱の3辺合計が0だったら重量判定ってな感じにはなってるんですが・・・
商品登録時、箱単位ベースのときは3辺の長さの入力チェックを、重量単位ベースのときは重量の入力チェックをってやれば、必須入力項目を少なくできるかなぁ〜とか思うんですね。

この辺り、どうしようか迷っているので、ご意見、お聞きしたいです。公開はその後ということで。


☆PS☆
クセのある管理画面(delivery_input.phpとdelivery_input.tpl)は、本開発スタッフの方にもう少し体裁の良いスタイルに作り替えて貰えればいいなぁ(笑
Oba
投稿日時: 2007/12/1 3:11
対応状況: −−−
一人前
登録日: 2007/8/31
居住地: 静岡
投稿: 111
Re: 商品サイズ毎の送料計算
mojaxp さん、ご苦労様です。

稚拙な意見ですので、聞き流す程度で… お願いします。

例えば、
箱単位では、
商品ごとに、「商品Aは60サイズ」、「商品Bは80サイズ」というような設定で、

重量単位では、
60サイズ、80サイズ、100サイズ…と決めておいて、
「商品Aは1個当たり20/100」、「商品Bは1個当たり50/100」という設定になるということでしょうか?

管理画面では、


こんな感じでしょうか…(取り急ぎ)

そうなるとすれば、最高です。
mojaxpさんの製作意図と違っていたら、すいません。
mojaxp
投稿日時: 2007/12/1 3:32
対応状況: −−−
常連
登録日: 2007/11/28
居住地: 岩手県盛岡市
投稿: 57
Re: 商品サイズ毎の送料計算
<Oba さん

そんな感じですが、箱サイズは今のところ、
Length、Width,Height(長さ、奥行き、高さ)が入力可能。重さはグラムで入力して、計算ではキログラムに直して扱ってます。

さて、
もしかしたら混在(荷姿)商品を扱おうとしてらっしゃるのか・・・
といった場合、カート内を箱なのか重さなのかでソートしてやらないとっていう話が必ず出ます。
というのも、買う側の勝手なので仕方ないのですが、重量単位の商品を数個、箱単位の商品を1個、重量単位の商品を数個・・・というように、判定基準がマチマチになるような状況で購入手続きをされたらという条件には(作った処理は)対応していません。

重量判定は、
先に総重量を求め、重量最大サイズ(conf.php で指定)未満なのか超えるのかを判定し、超える場合は2コ口だったり、3コ口だったりになるよう調整しています。
ここに次の商品分を加算できないかと調整中です<これさえ無ければ出来てますが(苦笑

箱の場合は3辺の合計から追っての送料テーブル参照です。
(1) 2 3 »
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ


 



ログイン


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

統計情報

総メンバー数は145,029名です
総投稿数は113,505件です

投稿数ランキング

1
seasoft
7369
2
468
3217
3
AMUAMU
2712
4
nanasess
2340
5
h_tanaka
2139
6
umebius
2085
7
yuh
1905
8
mcontact
1820
9
red
1585
10
tsuji
958
11
fukap
907
12
shutta
835
13
tao_s
805
14 ramrun 789
15 karin 689
16 sumida 641
17
homan
633
18
balisys
603
19 DELIGHT 572
20
patapata
502


ネットショップの壺

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

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