どのユーザーがどのクーポンコードを使用したかを知るにはどうすればよいですか?


9

自分のストアにいくつかのクーポンコードがあります。ユーザーが利用したコードを追跡したいのですが。逆に、特定のコードが使用された回数を確認する方法はありますか?


1
これを解決するために私ができることはありますか?以下の解決策のいずれかが役に立ったかどうかをお知らせください。
philwinkle 2013年

回答:


9

どの顧客がどのクーポンを使用したか:

私は通常、生のdbクエリを避けますが、この場合は例外にします。

select customer_email, group_concat(distinct sfo.coupon_code) from sales_flat_order sfo
where coupon_code is not null
group by customer_email;

Magento ORMでも同じことができます-これを行う方法をまとめ、後で編集し ます方法は次のとおりです。

$coll = Mage::getModel('sales/order')->getCollection()
    ->getSelect()->reset(Zend_Db_Select::COLUMNS)
    ->columns(array('customer_email',new Zend_Db_Expr('group_concat(distinct coupon_code)')))
    ->where(new Zend_Db_Expr('coupon_code is not null'))
    ->group(array('customer_email'));

クーポンが使用された回数:

すでに別の回答で指摘されているように、これはレポートにあります。最も基本的なレベルでは、そのためのクエリは次のようになります。

select coupon_code,count(coupon_code) from sales_flat_order
group by coupon_code;

これを処理するORM中心の方法も、かなり単純です。

$coll = Mage::getModel('sales/order')->getCollection()
    ->getSelect()->reset(Zend_Db_Select::COLUMNS)
    ->columns(array('coupon_code',new Zend_Db_Expr('count(coupon_code)')))
    ->group(array('coupon_code'));

これは、注文状況や請求済みの支払いを考慮しないことに注意してください。


このコードを追加して作業を行う場所magento 1.9の「どの顧客がどのクーポンを使用したか」
Jai

これは、Magentoストアのコンテキスト内でPHPスクリプトから実行する方法です。
philwinkle 2016年

権利と私はファイルの場所を尋ねています。私が説明したことを投稿してください。
Jai

それはクーポンではないですか?それはただのプロモーションですか?問題は特にコードに関するものだったので、それは一種の明白なことだと思います。
philwinkle 2017

6

Reports > Sales > Coupons管理領域で、特定の割引コードが使用された回数、生成された売上額、およびそれぞれに与えられた合計割引額を確認できます。あなたはそれを日、月、年などでフィルタリングすることができます。You can also filter by order status and for a certain date period.


ブレア、ありがとう!どのユーザーが特定のコードを使用したかを確認する方法があるかどうか知っていますか?
クリスティーナルール

1
Magentoのデフォルトの機能には、これを行うものは何もありません。(各注文を個別に見る以外)。しかし、情報は管理領域のどのページにでも簡単に取り込むことができます。結局のところ、データはデータベーステーブルに格納されます。したがって、たとえば、[レポート]> [顧客]> [注文合計別顧客]があるとします。「クーポン」などと呼ばれる列を作成し、使用箇所にコードを挿入するだけです。
MagentoMac 2013年

意志以下、このモジュールのようなものも、あなたが販売する「クーポンコード」を追加することができます>注文ページ、amasty.com/better-order-management.html私はあなたが探している正確に何だと思いますか?
MagentoMac 2013年

2

デフォルトのレポートは、レポート->販売->クーポンで利用できます。

スクリプトを使用すると、使用済みのクーパン数と顧客の詳細を非常に簡単に見つけることができます。

$coupon = Mage::getModel('salesrule/coupon/usage');
$coupon->load('code', 'coupon_id');
if($coupon->getId()) {
    $timesUsed = $coupon->getTimesUsed();
    $customer = $coupon->getCustomerId();
    echo $timesUsed;
    echo $customer;
}

このコードを配置する場所はどこですか?
Jai

コードで$couponは、特定の顧客をオブジェクトにどのように関連付けますか?何かが足りないようです。
Nick Rolando

1

私のクライアントから同様のリクエストがあり、特定の注文で使用されているクーポンがあるかどうかを知りたいと思っていました。

今のところ、これを手動でdbで実行していますが、これの拡張機能を作成したらすぐに質問を更新します。

   SELECT sfo.customer_id AS customer, ce.email, GROUP_CONCAT(cev.value SEPARATOR ' ') as name,
sfo.entity_id, sfo.increment_id,scu.times_used,sc.coupon_id,sc.rule_id,sc.code FROM sales_flat_order sfo 
LEFT JOIN salesrule_coupon_usage scu ON sfo.customer_id = scu.customer_id LEFT JOIN salesrule_coupon sc 
ON sc.coupon_id = scu.coupon_id LEFT JOIN customer_entity ce ON ce.entity_id = sfo.customer_id 
LEFT JOIN customer_entity_varchar cev ON cev.entity_id = sfo.customer_id WHERE (cev.attribute_id IN (5,7) 
OR cev.attribute_id IS NULL) GROUP BY sfo.increment_id ORDER BY sfo.increment_id;

一部の行はnullでいっぱいである可能性があり、これはゲスト顧客である可能性が高く、一部はクーポン情報にnullがあり、これらはクーポンが使用されなかった注文になります


コードを配置する場所はどこですか?
Jai

0

私が使用したオープンソースのクーポンモジュールがあります(Magento 1-EE) https://github.com/pavelnovitsky/CouponUsage

新しい管理グリッドを作成します。

Admin > Promotions > Coupon Usage   

クーポンを注文にリンクします。まだ数年経っていますが、ちゃんと動いていることが確認できました。


0

Magento ce-1.8.1.0ショップapplied_rule_idsで、テーブルにデータベースフィールドを見つけましたsales_flat_order。これはShopping Cart Price RulesページのIDと一致するようです。

クーポンコードを生成した場合に便利です。

`SELECT COUNT(*)FROM sales_flat_order where FIND_IN_SET( '1'、applied_rule_ids)


1
いくつかのルールが関係している可能性があるため、カンマ区切りです。FIND_IN_SET()代わりに使用する方が良い=
ファビアンシュメングラー2016

0

Uses Per Customerの値が1のクーポンコードがありますが、それを顧客アカウントで使用できません。そのsales_flat_orderため、他の回答がこのコードを使用した回数を確認するために他の回答が示唆しているように、テーブルにクエリを実行しました。問題のクーポンコードを使用したことを示す私のテーブルの順序はありませんでした。私はコードを掘り下げる必要があり、その中Mage_SalesRule_Model_Validator::_canProcessRule()で実際にテーブルsalesrule_coupon_usageをチェックし、そしてsalesrule_customer..

select * from production.mage_salesrule_customer
where customer_id = 58394  

上記のクエリは、クーポンを1回使用したことを示しています。なぜそれを1回使用したのか、なぜ注文の記録がまだ(まだ)ないのかはわかりませんが、これが問題を解くのに苦労していた他の人に役立つことを願っています。


0

magento 2の場合、このSQLを実行して、顧客の電子メール、クーポンコード、割引額、総計、および増分IDを取得してください

select a.customer_email, a.coupon_code, b.increment_id, a.discount_amount, 
a.grand_total from `sales_order` as a, `sales_order_grid` as b where 
coupon_code is not null AND a.`entity_id` = b.`entity_id`
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.