バージョン選択

フォーラム

メニュー

オンライン状況

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

サイト内検索

 > プラグイン > 同じ商品をカートに入れた時、まとめずに分けて扱いたい

プラグイン

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
hitomi2
投稿日時: 2017/1/30 11:31
対応状況: −−−
半人前
登録日: 2016/11/30
居住地:
投稿: 21
同じ商品をカートに入れた時、まとめずに分けて扱いたい
3.0.13です。

お世話になっております。


同じ商品を2個以上カートに入れると、それ以降は「数量:2〜」として扱われると思います。これを別商品のように区別して扱うにはどのような方法があるでしょうか。

商品ID以外に、カート内カート以降で個別に識別するプロパティは無いでしょうか。
Twigに渡される配列か変数か何かで識別できたら助かるのですが。

意図としましては、商品詳細ページにカスタム注文内容をテキスト入力させるフォームをプラグインで実現しようとしています。複数商品を一度にカートに投入した場合は全部同じ情報を付与していいのですが、1個ずつ違う注文内容を付与してカートに入れたときに、まとまってしまうところをどう処理するか悩んでいます。
初心者のため、まだフォームを設置できたばかりで、単品でもその入力内容をcart以降に渡す事さえできていないのですが・・・。


何かヒント、スマートな方法がありましたらご教授よろしくお願いいたします。
468
投稿日時: 2017/1/30 17:55
対応状況: −−−
登録日: 2008/10/26
居住地:
投稿: 3217
Re: 同じ商品をカートに入れた時、まとめずに分けて扱いたい
/src/Eccube/Service/CartService.php内で色々とカートに関する処理が記述されていますので、
このソースを色々と書き換えていけば、カートに格納される単位を変更するのは実現できそうな気はしますが、
かなり大変なカスタマイズになりそうです。
(送料計算や在庫計算などもチェックしないといけないと思いますし、受注明細データへの影響もあるかと思います)

注文内容をカートに投入するよりも注文画面のお問い合わせ欄(dtb_order.message)に何か入力させるようにしたほうが良いのではないかと思います。
(少し工夫しないと購入者に使いづらいUIになってしまうかもしれませんが・・・)


----------------
株式会社シロハチ
■ECCUBE2系、3系構築カスタマイズご相談ください。
EC-CUBE3マニュアル
blog

hitomi2
投稿日時: 2017/2/1 0:12
対応状況: −−−
半人前
登録日: 2016/11/30
居住地:
投稿: 21
Re: 同じ商品をカートに入れた時、まとめずに分けて扱いたい
シロハチ様

度々アドバイス頂きましてありがとうございます。
/src/Eccube/Service/CartService.php見てみました。

現Verでは複数配送先の機能があるので、もしかして最初から分割して取り出せる仕様かも!と期待しましたが、おっしゃるように私にはまだ難しいようでした。おっしゃるように、dtb_order.messageを利用したいと思います。


ただ、どうしても最初のほうに出してほしいと言われているので、
せめてカート画面でカートに出ている商品に対して
その商品数分のフォームを出して、それから受け取った内容をdtb_order.messageにくっつけて送るようにしたいと思います。


それで、今カート内にある商品情報の取得したいのですが、

$Cart = $app['eccube.service.cart']->getCart();
$CartItems = $Cart->getCartItems();

まではわかったものの、その先の記述で躓いてしまいました。
$CartItems[int]['quantity']でその単品の個数など取得できましたが、
$CartItems[int]['Product']を入れてもnullですし、商品名や商品ID等を取得できません。

基本から理解が足りないみたいです。
すみませんが、カート内の商品のProductの情報を得る方法ご教授頂けないでしょうか。

よろしくお願い致します。
hitomi2
投稿日時: 2017/2/1 0:35
対応状況: −−−
半人前
登録日: 2016/11/30
居住地:
投稿: 21
Re: 同じ商品をカートに入れた時、まとめずに分けて扱いたい
シロハチ様

vaer_dumpした情報をよく確認したら、これで取得することができました。

$app = $this->app;
$Cart = $app['eccube.service.cart']->getCart();
$CartItems = $Cart->getCartItems();

foreach( $CartItems as $item){

echo $item['quantity']; //数量
echo $item['object']['Product']['id']; //ID
echo $item['object']['Product']['name']; //商品名

}

ありがとうございました。
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ


 



ログイン


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

統計情報

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

投稿数ランキング

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