Wie finde ich heraus, welcher Benutzer welchen Gutscheincode verwendet hat?

9

Ich habe ein paar Gutscheincodes in meinem Geschäft und möchte nachverfolgen können, welchen Code ein Benutzer möglicherweise verwendet hat. Gibt es umgekehrt eine Möglichkeit zu sehen, wie oft ein bestimmter Code verwendet wurde?

Christina Regel
quelle
1
Kann ich irgendetwas tun, um Ihnen dabei zu helfen? Lassen Sie mich wissen, ob eine der folgenden Lösungen geholfen hat.
Philwinkle

Antworten:

9

Welche Kunden haben welche Gutscheine verwendet:

Normalerweise scheue ich rohe Datenbankabfragen, aber in diesem Fall mache ich eine Ausnahme:

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

Sie können dasselbe mit dem Magento ORM tun - formulieren Sie eine Beschreibung, wie das geht, und bearbeiten Sie sie anschließend. Hier erfahren Sie, wie :

$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'));

Wie oft wurde ein Gutschein verwendet:

Wie bereits in einer anderen Antwort erwähnt, ist dies in einem Bericht. Auf der einfachsten Ebene wäre die Abfrage dafür:

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

Die ORM-zentrierte Vorgehensweise ist ebenfalls recht einfach:

$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'));

Beachten Sie, dass dies den Bestellstatus oder die in Rechnung gestellte Zahlung nicht berücksichtigt.

philwinkle
quelle
Wo kann man diesen Code hinzufügen, damit die Arbeit "Welche Kunden haben welche Gutscheine verwendet?" In Magento 1.9
Jai
Dies ist eine Sache der Ausführung von einem PHP-Skript im Kontext des Magento-Stores.
Philwinkle
Richtig und ich frage nach dem Speicherort der Datei. Sie können posten, was Sie getan haben, um mich zu erklären.
Jai
Ist das dann nicht ein Gutschein? Es ist nur eine Promo? Ich denke, das ist offensichtlich, da es sich bei der Frage speziell um Codes handelt.
Philwinkle
6

Reports > Sales > CouponsIn Ihrem Administrationsbereich können Sie sehen, wie oft ein bestimmter Rabattcode verwendet wurde, wie viel Umsatz generiert wurde und wie viel Gesamtrabatt für jeden einzelnen angegeben wurde. Sie können es nach Tag, Monat, Jahr usw. filtern.You can also filter by order status and for a certain date period.

MagentoMac
quelle
Danke Blair! Wissen Sie, ob es eine Möglichkeit gibt, festzustellen, welcher meiner Benutzer einen bestimmten Code verwendet hat?
Christina Rule
1
In der Standardfunktionalität von Magento gibt es nichts, was dies tun könnte. (Abgesehen davon, dass jede Bestellung einzeln betrachtet wird). Die Informationen können jedoch problemlos auf die gewünschte Seite im Administrationsbereich abgerufen werden. Die Daten werden schließlich in einer Datenbanktabelle gespeichert. Wenn Sie beispielsweise Berichte> Kunden> Kunden nach Auftragssummen haben, ist dies ein Ort, an dem Sie dies abrufen können. Erstellen Sie einfach eine Spalte mit dem Namen "Gutschein" oder ähnliches und fügen Sie den Code dort ein, wo er verwendet wird.
MagentoMac
Mit diesem Modul können Sie der Seite "Sales> Orders" ( amasty.com/better-order-management.html) einen "Gutscheincode" hinzufügen, der meiner Meinung nach genau das ist, wonach Sie suchen.
MagentoMac
2

Der Standardbericht ist unter Bericht -> Verkäufe -> Gutscheine verfügbar.

Und mit dem Skript können Sie die Anzahl der gebrauchten Coupans und Kundendaten sehr einfach finden:

$coupon = Mage::getModel('salesrule/coupon/usage');
$coupon->load('code', 'coupon_id');
if($coupon->getId()) {
    $timesUsed = $coupon->getTimesUsed();
    $customer = $coupon->getCustomerId();
    echo $timesUsed;
    echo $customer;
}
Kajal S.
quelle
An welcher Stelle soll dieser Code abgelegt werden?
Jai
Wie ist in Ihrem Code $couponein bestimmter Kunde an das Objekt gebunden? Scheint, als ob dir etwas fehlt.
Nick Rolando
1

Ich hatte eine ähnliche Anfrage von einem unserer Kunden, sie wollten wissen, welcher Gutschein für eine bestimmte Bestellung verwendet wurde

im Moment mache ich das manuell in db, aber sobald ich die Erweiterung dafür erfunden habe, werde ich meine Frage aktualisieren, hoffe, dass dies in der Zwischenzeit helfen wird

   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;

Einige Zeilen sind möglicherweise voller Nullen. Dies ist wahrscheinlicher für Gastkunden, und einige enthalten Nullen in den Gutscheininformationen. Dies sind Bestellungen, bei denen keine Gutscheine verwendet wurden

Tomhre
quelle
An welchem ​​Ort soll Ihr Code abgelegt werden?
Jai
0

Es gibt ein Open-Source-Gutscheinmodul, das ich verwendet habe (Magento 1 - EE) https://github.com/pavelnovitsky/CouponUsage

Es wird ein neues Admin-Raster erstellt:

Admin > Promotions > Coupon Usage   

Hier werden Gutscheine mit Bestellungen verknüpft. Ich kann bestätigen, dass es gut funktioniert, obwohl es jetzt ein paar Jahre alt ist.

Silas Palmer
quelle
0

In einem Magento ce-1.8.1.0-Shop habe ich das Datenbankfeld applied_rule_idsin der Tabelle gefunden sales_flat_order. Sieht so aus, als würde dies mit der ID auf der Shopping Cart Price RulesSeite übereinstimmen .

Könnte nützlich sein, wenn Sie Gutscheincodes generiert haben:

`SELECT COUNT (*) FROM sales_flat_order wobei FIND_IN_SET ('1', apply_rule_ids)

PiTheNumber
quelle
1
Es wird durch Kommas getrennt, da möglicherweise mehrere Regeln vorhanden sind. Also besser nutzen FIND_IN_SET()statt=
Fabian Schmengler
0

Ich habe einen Gutscheincode mit dem Wert "Verwendet pro Kunde" von 1 und kann ihn nicht für mein Kundenkonto verwenden. Daher frage ich die sales_flat_orderTabelle ab, da die anderen Antworten darauf hinweisen, wie oft ich diesen Code verwendet habe, und es gab keine Reihenfolge in dieser Tabelle, aus der hervorgeht, dass ich den betreffenden Gutscheincode verwendet habe. Ich musste den Code durchforsten und fand Mage_SalesRule_Model_Validator::_canProcessRule()darin tatsächlich die Tabellen salesrule_coupon_usageund salesrule_customer..

select * from production.mage_salesrule_customer
where customer_id = 58394  

Diese Abfrage oben zeigte, dass ich den Gutschein einmal verwendet hatte. Ich weiß nicht, warum es zeigt, dass ich es einmal benutzt habe und warum es (noch) keine Aufzeichnungen über meine Verwendung in der Auftragstabelle gibt, aber ich hoffe, dies hilft jemand anderem, der Schwierigkeiten hatte, dies herauszufinden.

Nick Rolando
quelle
0

Führen Sie für Magento 2 diese SQL aus, um Kunden-E-Mail, Gutscheincode, Rabattbetrag, Gesamtsumme und Inkrement-ID zu erhalten

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`
Rav
quelle