バージョン選択

フォーラム

メニュー

オンライン状況

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

サイト内検索

質問 > 管理機能 > 注文内容から商品コードの抽出

管理機能

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
popo
投稿日時: 2013/4/16 2:36
対応状況: −−−
長老
登録日: 2008/10/1
居住地:
投稿: 189
Re: 注文内容から商品コードの抽出
yuh様

お世話になっております。
ご返信ありがとうございます。

以前に教えて頂いた記述内容は、商品コードごとに個数や金額を集計するようになっているのですね。
記述内容を読み解く知識が乏しかったため、1アイテム1商品コードの場合でのみ有効な事だと思っていました。
例えば、商品コード「ab」の商品は1種類のみしか存在せず、同じ商品を5個や10個注文した時のみ有効な記述だと勘違いしておりました。

記述して頂いた内容は、同じ商品コードが複数の商品(価格もバラバラ)に付けられていても、指定した商品コードが注文カートに入っている個数と金額を集計していると理解して良いでしょうか。


あと合計金額から値引きをする場合は、下記のような記述で良いでしょうか。
例えば商品コード「ab」商品を複数種類で複数購入した場合などの値引きです。
150円の菓子パンを4個購入したら100円引きの500円にするといった具合です。

		//商品コード「ab」の商品の個数が4個以上の場合は100円引
		if($tmp_product_code['ab']["quantity"] >= 4){
			$results['payment_total'] -= 100; //合計金額から値引きするようにしてみました。
		}



あと記述するファイルについてですが、yuh様の場合は「SC_CartSession.php」ファイルの中に記述するように指示されていますが、「SC_Helper_DB.php」に記述するのと違いはあるでしょうか?


何度もお手数をおかけして、申し訳ありません。

アドバイスをお願い致します。
yuh
投稿日時: 2013/4/16 11:20
対応状況: −−−
登録日: 2013/1/9
居住地: 大阪
投稿: 1819
Re: 注文内容から商品コードの抽出
カート内のデータをSC_CartSessionで管理しているので、SC_CartSessionで記述すればそのまま値を使いやすいというのと、カート内の集計を行う部分がSC_CartSessionのcalculateなので、そこに書けばすべてカート内の計算を行う場合には楽というだけです。
SC_Helper_DB.phpに書いてもいいんですが、後々カート内の計算部分で値を引き回してまた処理を追加するのは無駄と思うのでSC_CartSessionの方に記述しています。


合計金額から値引きする場合は別途値引き分のデータを持ったうえで後々にデータを引き継がないと、金額の合計が合わなくなってくると思うので、そこらへんも調整する必要があると思います。
popo
投稿日時: 2013/4/17 5:06
対応状況: −−−
長老
登録日: 2008/10/1
居住地:
投稿: 189
Re: 注文内容から商品コードの抽出
yuh様


お礼が遅れてしまい、申し訳ありません。
アドバイスありがとうございます。

私が利用しているのは数年前のVer2.3なので、現行とはSC_CartSessionやSC_Helper_DBの記述内容が異なっているのですが、とりあえずSC_CartSessionに記述した方が良さそうですね。


値引きをする場合についてですが、どの項目から値引きをするかが問題になりそうですね。
値引き分はポイント利用したのと同じ扱いとして、$use_pointに加算した方がまだ問題無さそうでしょうか?

		//商品コード「ab」の商品の個数が4個以上の場合は100円引
		if($tmp_product_code['ab']["quantity"] >= 4){
			$results['use_point'] += 100; //ポイント利用扱いとして値引きするようにしてみました。
		}


ちょっとした事で、様々なところに影響を及ぼしそうなので、どのファイルに記述するのか、どのように記述するのかも気にして行かなければならないようですね。

SC_CartSessionに記述するにしても、記述する箇所(場所)で気をつける事はあるでしょうか?
データが処理(計算)されていく順番もあるので、間違った場所に記述してしまうと、何か問題が起こりそうで不安でもあります。

あと少しアドバイスを頂ければ助かります。

よろしくお願い致します。
yuh
投稿日時: 2013/4/17 12:21
対応状況: −−−
登録日: 2013/1/9
居住地: 大阪
投稿: 1819
Re: 注文内容から商品コードの抽出
ポイント扱いした場合、そのポイントが減るんじゃないでしょうか?
後々ユーザー側からそのポイントを勝手に使われたといわれる可能性があると思うので、別途項目を追加した方がいいと思います。

面白そうなので、その仕様をベースに値引き項目を追加して2.12系でためしに実装してみます。
popo
投稿日時: 2013/4/18 5:01
対応状況: −−−
長老
登録日: 2008/10/1
居住地:
投稿: 189
Re: 注文内容から商品コードの抽出
yuh様

お世話になっております。
ご返信ありがとうございます。

ポイント利用した時と同じように値引きができれば良いと思い、値引き分を「use_point」に加算したら良いのではと思いました。
「use_point」の数値が、会員保有のポイントから差し引かれると言うことですね。
それでは「use_point」に値引き分を勝手に加算してしまうとダメですね(-_-;

送料から値引き分を減額しようと思っても、ある金額以上は送料を無料に設定している場合は、まとめ買いの値引き分を送料から値引きしてしまうと、送料がマイナスになってエラーが発生してしまいそうなので、送料からの値引きも難しいですよね。

注文確認メールには「値引き」の項目があり、ここにはポイント利用した場合のポイント数と同じ数字が入るようになっています。
だから「use_point」に値引き額を加算すれば、注文確認メールの「値引き」の項目にも値引き額が表示されて良いと思ったのですが。。。考えが甘かったです。


新しい値引き項目を追加する場合は、注文確認画面や注文確認メールにまで値引き額を表示させようとしたら、複数のファイルに修正を加える必要がでてきそうですね。
「小計」の項目から値引きしても、合計からの値引きと同様に不具合がありそうでしょうか。

私が思っている以上に複雑なため、私のような単純な考えではダメみたいですね(-_-;
実装のために考えて頂けるとの事で、大変感謝しております。
ただ私の利用しているのはVer2.3のため、Ver2.3でも実装可能であれば良いのですが。。。

yuh様からの実装用のプログラムの完成を待つ事に致します。

お手数をおかけして、申し訳ありません。

よろしくお願い致します。
popo
投稿日時: 2014/5/13 6:38
対応状況: −−−
長老
登録日: 2008/10/1
居住地:
投稿: 189
Re: 注文内容から商品コードの抽出
いつもお世話になっております。

1年程前の記事を掘り起こしてしまい、申し訳ありません。
2.3系から2.13系などへバージョンアップをする予定でしたが、サーバが対応対応していなかったため断念する事になり、yuhさんにご教授して頂いた方法も利用することができなくなってしまいました。
2.3系には「SC_CartSession.php」にはcalculateの箇所が無いため、そのまま記載しても無理でした。

2.3系でも利用するには、どの用に記述をしたら良いでしょうか?
2.3はこちらよりダウンロード可能です
http://svn.ec-cube.net/open_trac/changeset/23413/tags/eccube-2.3.0?old_path=%2F&format=zip

やりたい事を簡潔ではありますが、再度ご説明したいと思います。
例えば、商品コードAAAと言う商品が複数種類あります。あんぱん、メロンパン、クロームパンなど。
商品コードAAAの商品を複数種類でも同一種類でも、合計5個以上カゴに入れたら送料を1000円引きや、10個以上いれたら送料無料などにしたいと思っています。
例えば、あんぱん5個で送料1000引き。あんぱん2個メロンパン2個クリームパン1個で送料1000円引きと言った具合です。

最新バージョンでアップデート出来ない以上、2.3系で何とか上記の機能を追加したいと思っています。

恐らくphpの知識がある方であれば、難しくないと思われるかもしれませんが、ご教授頂ければ幸いです。

よろしくお願い致します。
popo
投稿日時: 2014/5/15 5:40
対応状況: −−−
長老
登録日: 2008/10/1
居住地:
投稿: 189
Re: 注文内容から商品コードの抽出
自己解決しましたので、こちらに記載しておきます。

//カートの中の商品で商品コードが「ab」の商品が含まれていれば送料1000円をプラス
//一緒に商品コード「ab」の商品の個数をカウント
$arrProductsFee = array();
foreach ($objPage->arrProductsClass as $item) {
    switch ($item['product_code']) {
        case 'ab':
            $arrProductsFee[$item['product_code']] = 1000;
$ab_count  += 1;
            break;
    }
}
$arrData['deliv_fee'] += array_sum($arrProductsFee);

//カートに商品コード「ab」の商品が5種類以上入っていれば送料500円を値引き
if($ab_count >= 5 )
{
$arrData['deliv_fee'] -= 500;
}
« 1 (2)
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ


 



ログイン


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

統計情報

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

投稿数ランキング

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