ฉันมีรหัสคูปองสองสามตัวในร้านค้าของฉันและฉันต้องการติดตามรหัสที่ผู้ใช้อาจใช้ ในทางกลับกันมีวิธีดูจำนวนครั้งที่ใช้รหัสเฉพาะหรือไม่
ฉันมีรหัสคูปองสองสามตัวในร้านค้าของฉันและฉันต้องการติดตามรหัสที่ผู้ใช้อาจใช้ ในทางกลับกันมีวิธีดูจำนวนครั้งที่ใช้รหัสเฉพาะหรือไม่
คำตอบ:
ลูกค้าคนไหนที่ใช้คูปอง:
ฉันมักจะอายจากแบบสอบถาม 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;วิธีการจัดการ ORM เป็นศูนย์กลางนี้ก็ตรงไปตรงมาค่อนข้าง:
$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;บางบรรทัดอาจเต็มไปด้วยค่า Null ซึ่งเป็นลูกค้าที่มีแนวโน้มมากขึ้นและบางรายอาจมีข้อมูลเป็นโมฆะในคูปองซึ่งจะเป็นคำสั่งซื้อที่ไม่ได้ใช้คูปอง
มีโมดูลคูปองโอเพ่นซอร์สที่ฉันใช้ (Magento 1 - EE) https://github.com/pavelnovitsky/CouponUsage
มันสร้างกริดผู้ดูแลระบบใหม่:
Admin > Promotions > Coupon Usage   ซึ่งเชื่อมโยงคูปองกับคำสั่งซื้อ ฉันสามารถยืนยันได้ว่ามันใช้งานได้ดีแม้ว่าตอนนี้จะมีอายุไม่กี่ปีก็ตาม
ในวีโอไอพี CE-1.8.1.0 ร้านผมพบข้อมูลฐานข้อมูลในตารางapplied_rule_ids sales_flat_orderดูเหมือนว่าตรงกับรหัสจากShopping Cart Price Rulesหน้า
อาจมีประโยชน์หากคุณสร้างรหัสคูปอง:
`เลือก COUNT (*) จาก sales_flat_order โดยที่ FIND_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`