バージョン選択

フォーラム

メニュー

オンライン状況

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

サイト内検索

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

フロント機能

新規スレッドを追加する

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


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

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

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

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

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

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


 



ログイン


ec-cube.co

統計情報

総メンバー数は46,474名です
総投稿数は92,301件です

投稿数ランキング

1
seasoft
7332
2
AMUAMU
2712
3
nanasess
1904
4
468
1791
5
yuh
1594
6
red
1313
7
umebius
1296
8
fukap
907
9
tsuji
840
10
shutta
835
11 ramrun 789
12
tao_s
758
13
h_tanaka
748
14 karin 656
15 sumida 641
16
homan
633
17 DELIGHT 571
18
patapata
502
19
flealog
483
20 tonton 436


ネットショップの壺

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

Copyright© LOCKON CO.,LTD. All Rights Reserved.