Saya memiliki beberapa kode kupon di toko saya, dan saya ingin dapat melacak kode apa yang mungkin digunakan pengguna. Sebaliknya, apakah ada cara untuk melihat berapa kali kode tertentu digunakan?
Saya memiliki beberapa kode kupon di toko saya, dan saya ingin dapat melacak kode apa yang mungkin digunakan pengguna. Sebaliknya, apakah ada cara untuk melihat berapa kali kode tertentu digunakan?
Jawaban:
Pelanggan mana yang menggunakan kupon:
Saya biasanya menghindar dari permintaan db mentah, tetapi dalam hal ini saya akan membuat pengecualian:
select customer_email, group_concat(distinct sfo.coupon_code) from sales_flat_order sfo
where coupon_code is not null
group by customer_email;
Anda dapat melakukan hal yang sama dengan ORM Magento - akan merumuskan sebuah Langgan tentang cara melakukan itu dan mengedit sesudahnya dan inilah caranya :
$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'));
Berapa kali kupon digunakan:
Seperti yang sudah ditunjukkan dalam jawaban lain ini ada dalam laporan. Pada tingkat paling dasar, kueri untuk itu adalah:
select coupon_code,count(coupon_code) from sales_flat_order
group by coupon_code;
Cara penanganan ORM-sentris ini juga cukup mudah:
$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'));
Perhatikan bahwa ini tidak memperhitungkan status pesanan akun atau pembayaran yang ditagih.
Reports > Sales > Coupons
di area admin Anda akan membiarkan Anda melihat berapa kali kode diskon tertentu digunakan, jumlah penjualan yang dihasilkan dan jumlah total diskon yang diberikan untuk masing-masing juga. Anda dapat memfilternya berdasarkan hari, bulan, tahun dll.You can also filter by order status and for a certain date period.
Laporan default tersedia di laporan -> penjualan -> kupon.
Dan dengan skrip Anda dapat menemukan penghitungan kupon bekas pakai dan detail pelanggan dengan sangat mudah:
$coupon = Mage::getModel('salesrule/coupon/usage');
$coupon->load('code', 'coupon_id');
if($coupon->getId()) {
$timesUsed = $coupon->getTimesUsed();
$customer = $coupon->getCustomerId();
echo $timesUsed;
echo $customer;
}
$coupon
pelanggan tertentu terikat dengan objek? Sepertinya Anda melewatkan sesuatu.
Saya memiliki permintaan serupa dari klien kami, mereka ingin tahu kupon apa yang digunakan jika ada pada pesanan tertentu
untuk saat ini saya melakukan ini secara manual di db tetapi segera setelah saya membuat ekstensi untuk ini saya akan memperbarui pertanyaan saya, semoga ini akan membantu sementara itu
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;
beberapa baris mungkin penuh dengan nol, ini lebih mungkin pelanggan tamu dan beberapa akan memiliki nol dalam info kupon, ini akan menjadi pesanan di mana kupon tidak digunakan
Ada modul kupon open source yang telah saya gunakan (Magento 1 - EE) https://github.com/pavelnovitsky/CouponUsage
Itu menciptakan kisi admin baru:
Admin > Promotions > Coupon Usage
yang menghubungkan kupon dengan pesanan. Saya dapat mengkonfirmasi bahwa itu bekerja dengan baik, meskipun sekarang sudah berumur beberapa tahun.
Di toko Magento ce-1.8.1.0 saya menemukan bidang database applied_rule_ids
di tabel sales_flat_order
. Sepertinya ini cocok dengan id dari Shopping Cart Price Rules
halaman.
Dapat berguna jika Anda telah membuat kode kupon:
`SELECT COUNT (*) FROM sales_flat_order tempat FIND_IN_SET ('1', diterapkan_rule_ids)
FIND_IN_SET()
daripada=
Saya memiliki kode kupon yang memiliki nilai Penggunaan Per Pelanggan 1, dan saya tidak dapat menggunakannya di akun pelanggan saya. Jadi saya meminta sales_flat_order
tabel karena jawaban lain menyarankan untuk melihat berapa kali saya menggunakan kode ini, dan tidak ada urutan saya di tabel itu yang menunjukkan saya menggunakan kode kupon yang dimaksud. Saya harus menggali kode dan menemukan di Mage_SalesRule_Model_Validator::_canProcessRule()
dalamnya benar-benar memeriksa tabel salesrule_coupon_usage
dan salesrule_customer
..
select * from production.mage_salesrule_customer
where customer_id = 58394
Kueri di atas ini menunjukkan bahwa saya pernah menggunakan kupon satu kali. Saya tidak tahu mengapa ini menunjukkan saya menggunakannya sekali, dan mengapa tidak ada catatan penggunaan saya di tabel pesanan (belum), tapi saya harap ini membantu orang lain yang sedang berjuang untuk mencari tahu ini.
Untuk magento 2, jalankan sql ini untuk mendapatkan email pelanggan, kode kupon, jumlah diskon, jumlah total dan id kenaikan
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`