Hangi kullanıcının hangi kupon kodunu kullandığını nasıl öğrenebilirim?


9

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ı?


1
Bunu kapatmanıza yardımcı olmak için yapabileceğim bir şey var mı? Aşağıdaki çözümlerden herhangi birinin yardımcı olup olmadığını bize bildirin.
philwinkle

Yanıtlar:


9

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.


Magento 1.9'da "Hangi müşterilerin hangi kuponları kullandığı" çalışmak için bu kodu nereye ekleyebilirim
Jai

Bu, Magento mağazası bağlamında bir PHP betiğinden çalıştırma materyali.
philwinkle

doğru ve ben dosyanın yerini soruyorum. Bana açıklamak için yaptıklarını gönderebilirsin.
Jai

O zaman bu bir kupon değil mi? Sadece bir promosyon mu? Sorunun özellikle kodlarla ilgili olduğu göz önüne alındığında, bu biraz açıktır.
philwinkle

6

Reports > Sales > Couponsyö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.


Teşekkürler Blair! Kullanıcılarımdan hangisinin belirli bir kod kullandığını görmenin bir yolu olup olmadığını biliyor musunuz?
Christina Rule

1
Magento'nun varsayılan işlevselliğinde bunu yapacak hiçbir şey yoktur. (Her siparişe ayrı ayrı bakmak dışında). Ancak, bilgi istediğiniz yönetim alanındaki herhangi bir sayfaya kolayca çekilebilir. Sonuçta veriler bir veritabanı tablosunda saklanır. Örneğin, sipariş toplamlarına göre Raporlar> Müşteriler> Müşterileriniz var, bu bunu içine çekmek için bir yer olabilir. Sadece "kupon" veya benzeri bir sütun oluşturmak ve kullanılan yere kodu eklemek.
MagentoMac

Aşağıdaki bu modül gibi bir şey de Satış> Siparişler sayfasına "kupon kodu" eklemenize izin verecektir, amasty.com/better-order-management.html ki tam olarak aradığınızı düşünüyorum?
MagentoMac

2

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;
}

Bu kodu hangi konuma koyacaksınız?
Jai

Kodunuzda, $couponbelirli bir müşteri nesneye nasıl bağlanır? Görünüşe göre bir şey eksik.
Nick Rolando

1

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


Kodunuzu hangi konuma koyacaksınız?
Jai

0

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.


0

Magento ce-1.8.1.0 mağazasında veritabanı alanını applied_rule_idstabloda buldum sales_flat_order. Bunun Shopping Cart Price Rulessayfadaki 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)


1
virgülle ayrılmıştır çünkü ilgili birkaç kural olabilir. Bunun FIND_IN_SET()yerine daha iyi kullanım=
Fabian Schmengler

0

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_orderdiğ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_usageve 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.


0

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`
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.