Mağazamda birkaç kupon kodum var ve bir kullanıcının hangi kodu kullanmış olabileceğini izlemek istiyorum. Tersine, belirli bir kodun kaç kez kullanıldığını görmenin bir yolu var mı?
Mağazamda birkaç kupon kodum var ve bir kullanıcının hangi kodu kullanmış olabileceğini izlemek istiyorum. Tersine, belirli bir kodun kaç kez kullanıldığını görmenin bir yolu var mı?
Yanıtlar:
Hangi müşterilerin hangi kuponları kullandığı:
Genellikle ham db sorgularından uzak duruyorum, ancak bu durumda bir istisna yapacağım:
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 ile de aynısını yapabilirsiniz - bunun nasıl yapılacağı ve daha sonra nasıl düzenleneceği hakkında bir yazı oluşturacak ve işte nasıl yapacağınız :
$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'));
Kupon kaç kez kullanıldı:
Zaten başka bir cevapta belirtildiği gibi bu bir raporda. En temel düzeyde bunun sorgusu:
select coupon_code,count(coupon_code) from sales_flat_order
group by coupon_code;
ORM merkezli bununla başa çıkma yöntemi de oldukça basittir:
$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'));
Bunun sipariş durumunu veya faturalı ödemeyi dikkate almadığını unutmayın.
Reports > Sales > Coupons
yönetici bölgenizde belirli bir indirim kodunun kaç kez kullanıldığını, oluşturulan satış miktarını ve her biri için verilen toplam indirim miktarını görmenizi sağlar. Güne, aya, yıla vb. Göre filtreleyebilirsiniz.You can also filter by order status and for a certain date period.
Varsayılan rapor, rapor -> satış -> kuponlarda bulunur.
Komut dosyası ile kullanılmış kupon sayısını ve müşteri ayrıntılarını kolayca bulabilirsiniz:
$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
belirli bir müşteri nesneye nasıl bağlanır? Görünüşe göre bir şey eksik.
Müşterimizden benzer bir talebim vardı, belirli bir siparişte varsa hangi kuponun kullanıldığını bilmek istediler
Şimdilik bunu manuel olarak db'de yapıyorum ama bunun için uzantı oluşturduğumda sorumu güncelleyeceğim, bu arada yardımcı olacağını umuyorum
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;
bazı satırlar null'larla dolu olabilir, bu durum konuk müşterilerin daha olasıdır ve bazılarının kupon bilgisinde null değeri olacaktır, bunlar kuponların kullanılmadığı siparişler olacaktır
Kullandığım açık kaynaklı bir kupon modülü var (Magento 1 - EE) https://github.com/pavelnovitsky/CouponUsage
Yeni bir yönetici ızgarası oluşturur:
Admin > Promotions > Coupon Usage
kuponları siparişlere bağlar. Birkaç yaşında olmasına rağmen iyi çalıştığını doğrulayabilirim.
Magento ce-1.8.1.0 mağazasında veritabanı alanını applied_rule_ids
tabloda buldum sales_flat_order
. Bunun Shopping Cart Price Rules
sayfadaki kimlikle eşleştiği anlaşılıyor .
Kupon kodları oluşturduysanız yararlı olabilir:
`SELECT COUNT (*) sales_flat_order dan FIND_IN_SET ('1', uygulamalı_ kural_kimliği)
FIND_IN_SET()
yerine daha iyi kullanım=
Müşteri Başına Kullanım değeri 1 olan bir kupon kodum var ve bunu müşteri hesabımda kullanamıyorum. Bu yüzden sales_flat_order
diğer cevaplar bu kodu nasıl kullandığımı görmek için önermek gibi tabloyu sorgular ve o tabloda kupon kod kullandığımı gösteren benim sırası yoktu. Ben kod üzerinden kazmak zorunda kaldı ve Mage_SalesRule_Model_Validator::_canProcessRule()
aslında tabloları kontrol eder salesrule_coupon_usage
ve salesrule_customer
..
select * from production.mage_salesrule_customer
where customer_id = 58394
Yukarıdaki bu sorgu kuponu bir kez kullandığımı gösterdi. Neden bir kez kullandığımı ve neden siparişler tablosunda (henüz) kullanımımın bir kaydı olmadığını gösteriyor bilmiyorum, ama umarım bu, bunu anlamaya çalışan başka birine yardımcı olur.
Magento 2 için, müşteri e-postası, kupon kodu, indirim tutarı, genel toplam ve artış kimliği almak için lütfen bu sql'yi çalıştırın
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`