バージョン選択

フォーラム

メニュー

オンライン状況

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

サイト内検索

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

フロント機能

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
468
投稿日時: 2019/4/12 14:32
対応状況: −−−
登録日: 2008/10/26
居住地:
投稿: 3217
Re: 商品の購入回数の取得について
whereにOrderStatusを追加する事で問題を解決できると思います。
OrderRepositry内にin notを使って判定している(管理画面の受注一覧の検索処理)ところがあると思いますので
そちらを参考にすれば良いかと思います。
注文完了までの操作時には、購入処理中のステータスの受注データが追加されていると思います。


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

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

いつも大変お世話になっております。

早速のご回答ありがとうございます!
ご教示頂きました内容を元に
ステータスに関する条件を追記致しましたところ、
非常にうまくいきました。

この度は手厚く
ご面倒頂きまして誠にありがとうございました!


   public function getOrderedCount(\Eccube\Entity\Product $Product, \Eccube\Entity\Customer $Customer)
    {
        // 購入処理中は該当処理を行わない
        $OrderStatuses = $this->getEntityManager()
            ->getRepository('Eccube\Entity\Master\OrderStatus')
            ->findNotContainsBy(array('id' => $this->app['config']['order_processing']));
        
        $qb = $this->createQueryBuilder('od');
        
        $result = $qb
                       ->select('COUNT(od.Product)')
                       ->innerJoin('od.Order', 'o')
                       ->Where('od.Product = :Product')
                       ->andWhere('o.Customer = :Customer')
                       ->andWhere($qb->expr()->in('o.OrderStatus', ':status'))
                        
                       ->setParameter('Product', $Product)
                       ->setParameter('Customer', $Customer)         
                       ->setParameter('status', $OrderStatuses)
            
                       ->getQuery()
                       ->getResult();

        return $result;
    }
}
468
投稿日時: 2019/4/12 17:57
対応状況: −−−
登録日: 2008/10/26
居住地:
投稿: 3217
Re: 商品の購入回数の取得について
うまくいったという事で良かったです。

あとは、以下の'id'=>の記述を変更する事で他のステータスの受注も対象外にできるかと思いますので
必要があれば要件に合わせて変更してください。

->findNotContainsBy(array('id' => $this->app['config']['order_processing']));



->findNotContainsBy(array('id' => array($this->app['config']['order_processing'],
$this->app['config']['order_pending'],
$this->app['config']['order_cancel'],
$this->app['config']['order_back_order'])));


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

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

いつも大変お世話になっております。

週末挟み明けのご返信誠に恐縮です・・・。

確かに他のステータスにも
焦点を合わせるべきですね。

わざわざありがとうございます!
« 1 (2)
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ


 



ログイン


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

統計情報

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

投稿数ランキング

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.