मेरे स्टोर में कुछ कूपन कोड हैं, और मैं यह ट्रैक करने में सक्षम होना चाहता हूं कि उपयोगकर्ता ने किस कोड का उपयोग किया हो। इसके विपरीत, यह देखने का एक तरीका है कि किसी विशेष कोड का कितनी बार उपयोग किया गया था?
मेरे स्टोर में कुछ कूपन कोड हैं, और मैं यह ट्रैक करने में सक्षम होना चाहता हूं कि उपयोगकर्ता ने किस कोड का उपयोग किया हो। इसके विपरीत, यह देखने का एक तरीका है कि किसी विशेष कोड का कितनी बार उपयोग किया गया था?
जवाबों:
कौन से ग्राहक किस कूपन का उपयोग करते हैं:
मैं आमतौर पर कच्चे 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;
इसे संभालने का ओआरएम-केंद्रित तरीका भी काफी सरल है:
$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'));
ध्यान दें कि यह खाता आदेश स्थिति या चालान भुगतान में नहीं लेता है।
Reports > Sales > Coupons
आपके व्यवस्थापक क्षेत्र में आपको यह देखने को मिलेगा कि किसी विशेष छूट कोड का कितनी बार उपयोग किया गया था, प्रत्येक के लिए दी गई बिक्री की मात्रा और कुल छूट की राशि भी। आप इसे दिन, महीने, वर्ष आदि के हिसाब से फ़िल्टर कर सकते हैं।You can also filter by order status and for a certain date period.
डिफ़ॉल्ट रिपोर्ट रिपोर्ट -> बिक्री -> कूपन में उपलब्ध है।
और स्क्रिप्ट के साथ आप बहुत आसानी से इस्तेमाल किए जाने वाले कूपेन काउंट और ग्राहक विवरण पा सकते हैं:
$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
एक विशिष्ट ग्राहक को ऑब्जेक्ट से कैसे जोड़ा जाता है? लगता है जैसे आप कुछ याद कर रहे हैं।
हमारे पास हमारे ग्राहक से एक समान अनुरोध था, वे जानना चाहते थे कि किसी विशेष आदेश पर यदि कूपन का उपयोग किया जाता है
अभी के लिए मैं इसे 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;
कुछ पंक्तियाँ संभवतया nulls से भरी हो सकती हैं, यह अधिक संभावना वाले अतिथि ग्राहक हैं और कुछ के पास कूपन जानकारी में नल होंगे, ये ऐसे आदेश होंगे जहाँ कूपन का उपयोग नहीं किया गया था
एक खुला स्रोत कूपन मॉड्यूल है जिसका मैंने उपयोग किया है (Magento 1 - EE) https://github.com/pavelnovitsky/CouponUsage
यह एक नया व्यवस्थापक ग्रिड बनाता है:
Admin > Promotions > Coupon Usage
जो कूपन को आदेशों से जोड़ता है। मैं पुष्टि कर सकता हूं कि यह अच्छी तरह से काम करता है, भले ही यह अब कुछ साल पुराना है।
एक Magento CE-1.8.1.0 दुकान में मुझे applied_rule_ids
तालिका में डेटाबेस फ़ील्ड मिला sales_flat_order
। ऐसा लगता है कि यह Shopping Cart Price Rules
पृष्ठ से आईडी से मेल खाता है ।
यदि आपने कूपन कोड बनाए हैं तो उपयोगी हो सकते हैं:
`SELECT COUNT (*) FROM_IN_SET ('1', apply_rule_ids) से विक्रय_फ्लैट_ऑर्डर से
FIND_IN_SET()
इसके बजाय बेहतर उपयोग=
मेरे पास एक कूपन कोड है जिसका उपयोग प्रति ग्राहक 1 का उपयोग करता है, और मैं इसे अपने ग्राहक खाते पर उपयोग करने में सक्षम नहीं हूं। इसलिए मैं sales_flat_order
तालिका पर सवाल करता हूं क्योंकि अन्य उत्तर यह देखने का सुझाव देते हैं कि मैंने इस कोड का कितनी बार उपयोग किया है, और उस तालिका में मेरा कोई आदेश नहीं था जो दिखाता है कि मैंने प्रश्न में कूपन कोड का उपयोग किया था। मुझे कोड के माध्यम से खुदाई करना था और इसमें पाया गया Mage_SalesRule_Model_Validator::_canProcessRule()
कि वास्तव में तालिकाओं की जांच करता है salesrule_coupon_usage
और salesrule_customer
।।
select * from production.mage_salesrule_customer
where customer_id = 58394
उपरोक्त क्वेरी ने दिखाया कि मैंने एक बार कूपन का उपयोग किया था। मुझे नहीं पता कि यह क्यों दिखाता है कि मैंने एक बार इसका इस्तेमाल किया था, और आदेश तालिका (अभी तक) में मेरे उपयोग का कोई रिकॉर्ड क्यों नहीं है, लेकिन मुझे आशा है कि यह किसी और की मदद करता है जो इसे पता लगाने के लिए संघर्ष कर रहा था।
Magento 2 के लिए, ग्राहक ईमेल, कूपन कोड, छूट राशि, भव्य कुल और वेतन वृद्धि आईडी प्राप्त करने के लिए कृपया इस sql को चलाएं
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`