バージョン選択

フォーラム

メニュー

オンライン状況

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

サイト内検索

質問 > フロント機能 > 商品の購入回数の取得について

フロント機能

新規スレッドを追加する

スレッド表示 | 古いものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
468
投稿日時: 2019/4/11 10:20
対応状況: −−−
登録日: 2008/10/26
居住地:
投稿: 3217
Re: 商品の購入回数の取得について
もし、私がカスタマイズする(本体カスタマイズ前提)のであれば、
/src/Eccube/Repository/OrderDetailRepository.phpにCustomerとProductを渡して、購入回数を返してもらうメソッドを追加すると思います。

OrderRepository.phpのfunction getCustomerCount()の記述が参考になるのではないかと思います。
getCustomerCountの中では、joinが行われていないので他のメソッドのjoinの記述を参考にすればよいかと思います。


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

wa.shi
投稿日時: 2019/4/10 19:31
対応状況: −−−
常連
登録日: 2018/2/20
居住地:
投稿: 45
Re: 商品の購入回数の取得について
>>468様

早急なるご回答ありがとうございます。

実は用途と致しまして、
初回限定価格の商品を設けまして
購入回数を見て、
カートから削除するかどうかという
機能実装を試みております。

テーブルとしましては
dtb_productに
kaisu_limitという新項目を追加して
商品ごとの購入制限数の枠を設けております。
(ブランクの場合は無制限)

CartService.phpにて
function setProductLimit内に当該処理を追記予定でございます。

現在、下記が追記予定内容になります。
if文内の「実際の商品購入回数」の出し方に行き詰まっております。
ちなみに'cart.over.kaisu_limit'のエラーメッセージにつきましては
設定済みです。

引用:


$Product = $ProductClass->getProduct();

// 同一顧客購入回数制限(設定されていなければ0)
$kaisuLimit = $Product->getKaisuLimit();

if ($this->app->isGranted('ROLE_USER')) {
$Customer = $this->app->user();
if($kaisuLimit != "" && $kaisuLimit <= 実際の商品購入回数){
$limit = $kaisuLimit;
$this->addError('cart.over.kaisu_limit', $productName);
$this->removeProduct($ProductClass->getId());
return $limit;
}
}


やはりQueryBuilderを使用することになるのですね・・・。
私自身も今後調べますが、
まだ理解できておらず、
アドバイスや糸口をご教示頂けましたら、
非常に幸いでございます。

468
投稿日時: 2019/4/10 18:52
対応状況: −−−
登録日: 2008/10/26
居住地:
投稿: 3217
Re: 商品の購入回数の取得について
目的のデータを整理して取り出すには、やはりQueryBuilderを使う事になるのではないかと思います。

最終的にどのような形態のデータを表示したいのかの要件によって、
記述の仕方が変わってくると思います。

例えば、会員詳細ページで商品毎の個数を表示したいのであれば、
顧客で絞り込んで、商品毎に件数を集計すれば良いと思いますし、
商品詳細ページで顧客毎の個数を表示したいのであれば、
商品で絞り込んで、顧客毎に件数を集計すれば良いと思います。


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

wa.shi
投稿日時: 2019/4/10 18:28
対応状況: 開発中
常連
登録日: 2018/2/20
居住地:
投稿: 45
商品の購入回数の取得について
毎々お世話になっております。

主題の件につきまして、

受注IDと会員IDを元に
商品の購入回数(個数は含めません)を取得したく思っております。

Query Builderというものを
用いてデータを抽出するのが良いのか
はたまた別の方法があるのか苦戦しております。

Query Builderに関しまして、
先程情報を入手したばかりで
いろいろな文献を読んでいるのですが、
複数の条件でできるのか理解しておらずで・・・。

かなり初歩的な質問となり
大変申し訳ございませんが、よろしくお願い致します。


EC-CUBE:3.0.17
DB:MySQL 5.6.15
PHP:5.6.35


以上、よろしくお願い致します。
« 1 (2)
スレッド表示 | 古いものから 前のトピック | 次のトピック | トップ


 



ログイン


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

統計情報

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

投稿数ランキング

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.