ฉันจะทราบได้อย่างไรว่าผู้ใช้รายใดใช้รหัสคูปองแบบใด


9

ฉันมีรหัสคูปองสองสามตัวในร้านค้าของฉันและฉันต้องการติดตามรหัสที่ผู้ใช้อาจใช้ ในทางกลับกันมีวิธีดูจำนวนครั้งที่ใช้รหัสเฉพาะหรือไม่


1
มีอะไรที่ฉันสามารถทำได้เพื่อช่วยคุณปิดเรื่องนี้? แจ้งให้เราทราบหากวิธีการแก้ปัญหาด้านล่างช่วย
philwinkle

คำตอบ:


9

ลูกค้าคนไหนที่ใช้คูปอง:

ฉันมักจะอายจากแบบสอบถาม 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'));

โปรดทราบว่าสิ่งนี้ไม่คำนึงถึงสถานะคำสั่งซื้อของบัญชีหรือการชำระเงินตามใบแจ้งหนี้


ตำแหน่งที่จะเพิ่มรหัสนี้เพื่อให้ทำงาน "ลูกค้าคนไหนที่ใช้คูปอง" ใน magento 1.9
Jai

นี่เป็นเนื้อหาของการเรียกใช้จากสคริปต์ PHP ภายในบริบทของร้านค้า Magento
philwinkle

ถูกและฉันกำลังถามตำแหน่งของไฟล์ คุณสามารถโพสต์สิ่งที่คุณทำเพื่ออธิบายให้ฉัน
ใจ

นั่นไม่ใช่คูปองหรือไม่? มันเป็นเพียงโปรโมชั่น? ฉันคิดว่าเป็นคำถามที่ชัดเจนโดยเฉพาะเกี่ยวกับรหัส
philwinkle

6

Reports > Sales > Couponsในส่วนผู้ดูแลระบบของคุณจะช่วยให้คุณเห็นว่ามีการใช้รหัสส่วนลดจำนวนเท่าไรปริมาณการขายที่สร้างขึ้นและจำนวนส่วนลดรวมที่มอบให้สำหรับแต่ละรายการเช่นกัน คุณสามารถกรองมันตามวันเดือนปี ฯลฯYou can also filter by order status and for a certain date period.


ขอบคุณแบลร์! คุณรู้หรือไม่ว่ามีวิธีดูว่าผู้ใช้คนใดของฉันใช้รหัสเฉพาะ
Christina Rule

1
การทำงานเริ่มต้นของ Magento ไม่มีสิ่งใดในการทำเช่นนี้ (นอกเหนือจากการดูแต่ละคำสั่ง) แต่สามารถดึงข้อมูลได้อย่างง่ายดายซึ่งจะมีหน้าใดบ้างในพื้นที่ผู้ดูแลระบบที่คุณต้องการ ข้อมูลจะถูกเก็บไว้ในตารางฐานข้อมูลหลังจากทั้งหมด ตัวอย่างเช่นคุณมีรายงาน> ลูกค้า> ลูกค้าตามยอดรวมการสั่งซื้อซึ่งอาจเป็นที่ที่จะดึงสิ่งนี้เข้ามา เพียงแค่สร้างคอลัมน์ที่เรียกว่า "คูปอง" หรือสิ่งที่ชอบและใส่รหัสในที่ที่ใช้
MagentoMac

บางอย่างเช่นโมดูลด้านล่างนี้จะช่วยให้คุณเพิ่ม "รหัสคูปอง" ในหน้าการขาย> คำสั่งซื้อ, amasty.com/better-order-management.htmlซึ่งฉันคิดว่าเป็นสิ่งที่คุณกำลังมองหาใช่ไหม
MagentoMac

2

รายงานเริ่มต้นมีอยู่ในรายงาน -> การขาย -> คูปอง

และด้วยสคริปต์คุณสามารถค้นหาจำนวนรัฐประหารที่ใช้แล้วและรายละเอียดลูกค้าได้อย่างง่ายดายมาก:

$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ลูกค้ารายใดผูกติดอยู่กับวัตถุอย่างไร ดูเหมือนว่าคุณขาดอะไรไป
Nick Rolando

1

ฉันมีคำขอที่คล้ายกันจากลูกค้าของเราพวกเขาต้องการทราบว่ามีการใช้คูปองใดหากมีการสั่งซื้อเฉพาะ

สำหรับตอนนี้ฉันกำลังทำสิ่งนี้ด้วยตนเองใน 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 ซึ่งเป็นลูกค้าที่มีแนวโน้มมากขึ้นและบางรายอาจมีข้อมูลเป็นโมฆะในคูปองซึ่งจะเป็นคำสั่งซื้อที่ไม่ได้ใช้คูปอง


รหัสของคุณอยู่ที่ใด
ใจ

0

มีโมดูลคูปองโอเพ่นซอร์สที่ฉันใช้ (Magento 1 - EE) https://github.com/pavelnovitsky/CouponUsage

มันสร้างกริดผู้ดูแลระบบใหม่:

Admin > Promotions > Coupon Usage   

ซึ่งเชื่อมโยงคูปองกับคำสั่งซื้อ ฉันสามารถยืนยันได้ว่ามันใช้งานได้ดีแม้ว่าตอนนี้จะมีอายุไม่กี่ปีก็ตาม


0

ในวีโอไอพี 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)


1
มันคั่นด้วยเครื่องหมายจุลภาคเนื่องจากอาจมีกฎหลายข้อที่เกี่ยวข้อง ใช้ดีกว่าFIND_IN_SET()แทน=
Fabian Schmengler

0

ฉันมีรหัสคูปองที่มีมูลค่าการใช้ต่อลูกค้า 1 และฉันไม่สามารถใช้ในบัญชีลูกค้าของฉันได้ ดังนั้นฉันจึงค้นหาsales_flat_orderตารางตามคำตอบอื่น ๆ ที่แนะนำให้ดูว่าฉันใช้รหัสนี้ไปกี่ครั้งและไม่มีคำสั่งของฉันในตารางนั้นที่แสดงว่าฉันใช้รหัสคูปองที่เป็นปัญหา ฉันต้องขุดรหัสและพบว่าMage_SalesRule_Model_Validator::_canProcessRule()มันตรวจสอบตารางsalesrule_coupon_usageและsalesrule_customer..

select * from production.mage_salesrule_customer
where customer_id = 58394  

ข้อความค้นหาด้านบนนี้แสดงว่าฉันใช้คูปองครั้งเดียวแล้ว ฉันไม่ทราบว่าเพราะเหตุใดจึงแสดงว่าฉันใช้เพียงครั้งเดียวและทำไมไม่มีบันทึกการใช้งานของฉันในตารางคำสั่งซื้อ (ยัง) แต่ฉันหวังว่าสิ่งนี้จะช่วยให้คนอื่นที่พยายามดิ้นรนหาเรื่องนี้


0

สำหรับ 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`
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.