Commerceで歴代購入数/金額を集計する方法

カテゴリ Commerce コアバージョン 8.6.x 関連モジュール Commerce Payment Order
購入件数/購入額/購入時刻を得る
    $ltv_query = \Drupal::database()->select('commerce_payment', 'p')
      ->condition('p.state', 'completed');
    $ltv_query->join('commerce_order', 'o', "o.order_id = p.order_id");
    $ltv_query->condition('o.uid', $this->account->id());
    $order_count_query = clone $ltv_query;
    $order_count_query->condition('p.payment_gateway', 'THIS_GATEWAY', '');
    $last_order_query = clone $order_count_query;
    $last_order_query
      ->fields('p', ['amount__number', 'completed'])
      ->orderBy('p.completed', 'DESC')
      ->range(0, 1);
    $last_order = $last_order_query->execute()->fetchObject();
    $last_order_amount = $last_order->amount__number ?? 0;
    $last_order_at = $last_order->completed ?? REQUEST_TIME;

    $order_count = $order_count_query->countQuery()->execute()->fetchField(); // 購入件数(THIS_GATEWAY以外)
    $ltv = $ltv_query->countQuery()->execute()->fetchField(); // 購入件数
    $last_order_amount = floor($last_order_amount); // 直近の購入額
    $last_order_at = floor((REQUEST_TIME - $last_order_at) / (60*60*24)); // 直近の購入時刻

OTHER FAQ

Drupal開発・運用の疑問/質問の答えはここに

無料ユーザー登録すると質問できます。

カテゴリ Core Ver. 関連モジュール降順で並び替える タイトル
jQuery Revolution 7.50 jQuery Revolutionのリンクがスマホで機能しない
PCRE 7.50 preg_match()がおかしい
言語 6.22 URLエイリアスを使った場合に、翻訳したページで同じURLエイリアスが使えないという不具合
コンテンツの作成 8.4x コンテンツ作成時のフォームレイアウトの変更
ブロック 7.23 伸縮するfieldsetブロックを追加したい
テーマ 7.34 スマホ、PCおよびアプリを同時に運用可能なおすすめのテーマはありますでしょうか?
Apache2.4 7.50 Apache2.4のアクセス制限
CentOS 7.50 消せないファイルを消すには
サイトの環境設定 7.15 トップ(ホーム)ページを変更するには?
コンテンツの管理 8.4x Action カスタムアクションを作成する方法
コンテンツの管理 7.50 Administration menu 標準のユーザー管理ページ
コンテンツの作成 7.34 ajax 標準のajaxフォーム(複数値:値の数=無制限)の制御l方法
コンテンツの作成 8.4x archiver zipファイル圧縮・解凍する方法
コンテンツの作成 7.15 Automatic_Nodetitles Automatic_Entity_Label ノード投稿フォームにタイトル入力フォームを表示しない方法
テーマ 8.3x Block Cache Theme 管理ページから作成したのカスタムブロックを非キャッシュ化する方法
コンテンツの管理 7.38 Block Views node ノードページの編集タブをコンテキストメニューにしたい
Calendar 7.34 Calendar CalendarモジュールとGoogleカレンダーを同期するには
コンテンツの作成 7.34 CCK ノード入力フォームへパラメータを渡す
コンテンツの作成 7.31 CKEditor CKEditorの新規生成ダイアログ内の初期値の変更
コンテンツの作成 7.38 CKEditor CKEditorの「ソース」に入力したタグが消える

ページ