Làm cách nào để biết người dùng đã sử dụng mã phiếu giảm giá nào?


9

Tôi có một vài mã phiếu giảm giá trong cửa hàng của mình và tôi muốn có thể theo dõi mã mà người dùng có thể đã sử dụng. Ngược lại, có cách nào để xem một mã cụ thể đã được sử dụng bao nhiêu lần không?


1
Có điều gì tôi có thể làm để giúp bạn đóng cái này không? Hãy cho tôi biết nếu bất kỳ giải pháp dưới đây đã giúp.
philwinkle

Câu trả lời:


9

Khách hàng nào đã sử dụng phiếu giảm giá nào:

Tôi thường né tránh các truy vấn db thô, nhưng trong trường hợp này tôi sẽ tạo một ngoại lệ:

select customer_email, group_concat(distinct sfo.coupon_code) from sales_flat_order sfo
where coupon_code is not null
group by customer_email;

Bạn có thể làm tương tự với Magento ORM - sẽ hình thành một bài viết về cách thực hiện điều đó và chỉnh sửa sau đó và đây là cách thực hiện :

$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'));

Bao nhiêu lần một phiếu giảm giá đã được sử dụng:

Như đã chỉ ra trong một câu trả lời khác, đây là trong một báo cáo. Ở cấp độ cơ bản nhất, truy vấn đó sẽ là:

select coupon_code,count(coupon_code) from sales_flat_order
group by coupon_code;

Cách xử lý trung tâm ORM này cũng khá đơn giản:

$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'));

Lưu ý rằng điều này không đưa vào trạng thái đơn hàng hoặc thanh toán được lập hóa đơn.


Nơi để thêm mã này để thực hiện công việc "Khách hàng nào đã sử dụng phiếu giảm giá nào" trong magento 1.9
Jai

Đây là một phương tiện chạy từ một tập lệnh PHP trong bối cảnh của cửa hàng Magento.
philwinkle 30/03/2016

đúng và tôi đang hỏi vị trí của tập tin. Bạn có thể đăng những gì bạn đã làm để giải thích cho tôi.
Jai

Có phải đó không phải là một phiếu giảm giá? Nó chỉ là một quảng cáo? Tôi nghĩ rằng đó là loại hiển nhiên cho câu hỏi cụ thể là về mã.
philwinkle

6

Reports > Sales > Couponstrong khu vực quản trị của bạn sẽ cho phép bạn xem số lần sử dụng một mã giảm giá cụ thể, số lượng doanh thu được tạo ra và tổng số chiết khấu được cung cấp cho mỗi lần. Bạn có thể lọc nó xuống theo ngày, tháng, năm, v.v.You can also filter by order status and for a certain date period.


Cảm ơn Blair! Bạn có biết có cách nào để xem một trong những người dùng của tôi đã sử dụng một mã cụ thể không?
Quy tắc Christina

1
Không có gì trong chức năng mặc định của Magento để làm điều này. (Khác với việc xem xét từng đơn hàng riêng lẻ). Nhưng thông tin có thể dễ dàng được kéo vào trang nào trong khu vực quản trị bạn muốn. Dữ liệu được lưu trữ trong một bảng cơ sở dữ liệu sau khi tất cả. Vì vậy, ví dụ: bạn có Báo cáo> Khách hàng> Khách hàng theo tổng số đơn đặt hàng, đây sẽ là nơi có thể để thực hiện việc này. Chỉ cần tạo một cột được gọi là "phiếu giảm giá" hoặc tương tự, và chèn mã vào nơi được sử dụng.
MagentoMac

Một cái gì đó giống như mô-đun này bên dưới cũng sẽ cho phép bạn thêm "mã phiếu giảm giá" vào trang Bán hàng> Đơn hàng, amasty.com/better-order-man Quản lý.html mà tôi nghĩ chính xác là những gì bạn đang tìm kiếm?
MagentoMac

2

Báo cáo mặc định có sẵn trong báo cáo -> bán hàng -> phiếu giảm giá.

Và với tập lệnh, bạn có thể tìm thấy số lượng coupan đã sử dụng và chi tiết khách hàng rất dễ dàng:

$coupon = Mage::getModel('salesrule/coupon/usage');
$coupon->load('code', 'coupon_id');
if($coupon->getId()) {
    $timesUsed = $coupon->getTimesUsed();
    $customer = $coupon->getCustomerId();
    echo $timesUsed;
    echo $customer;
}

Trên vị trí nào để đặt mã này?
Jai

Trong mã của bạn, làm thế nào để $couponcó một khách hàng cụ thể gắn với đối tượng? Có vẻ như bạn đang thiếu một cái gì đó.
Nick Rolando

1

Tôi đã có một yêu cầu tương tự từ khách hàng của chúng tôi, họ muốn biết phiếu giảm giá nào đã được sử dụng nếu có trong một đơn đặt hàng cụ thể

bây giờ tôi đang làm điều này bằng tay trong db nhưng ngay sau khi tôi sẽ tạo phần mở rộng cho điều này, tôi sẽ cập nhật câu hỏi của mình, hy vọng điều này sẽ giúp ích trong khi đó

   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;

một số dòng có thể chứa đầy null, nhiều khả năng là khách hàng của khách và một số dòng sẽ có null trong thông tin về phiếu giảm giá, đây sẽ là những đơn hàng không sử dụng phiếu giảm giá


Trên vị trí để đặt mã của bạn?
Jai

0

Có một mô-đun phiếu giảm giá nguồn mở mà tôi đã sử dụng (Magento 1 - EE) https://github.com/pavelnovitsky/CouponUsage

Nó tạo ra một lưới quản trị mới:

Admin > Promotions > Coupon Usage   

liên kết phiếu giảm giá với đơn đặt hàng. Tôi có thể xác nhận rằng nó hoạt động tốt, mặc dù bây giờ nó đã vài năm tuổi.


0

Trong một cửa hàng Magento ce-1.8.1.0 tôi đã tìm thấy trường cơ sở dữ liệu applied_rule_idstrong bảng sales_flat_order. Có vẻ như điều này phù hợp với id từ Shopping Cart Price Rulestrang.

Có thể hữu ích nếu bạn đã tạo mã phiếu giảm giá:

`CHỌN COUNT (*) TỪ sales_flat_order trong đó FIND_IN_SET ('1', áp dụng_rule_ids)


1
nó được phân tách bằng dấu phẩy vì có thể có một số quy tắc liên quan. Vì vậy, sử dụng tốt hơn FIND_IN_SET()thay vì=
Fabian Schmengler

0

Tôi có mã phiếu giảm giá có giá trị sử dụng trên mỗi khách hàng là 1 và tôi không thể sử dụng nó trên tài khoản khách hàng của mình. Vì vậy, tôi truy vấn sales_flat_orderbảng như các câu trả lời khác gợi ý để xem thời gian tôi đã sử dụng mã này và không có thứ tự nào trong bảng đó cho thấy tôi đã sử dụng mã phiếu giảm giá được đề cập. Tôi đã phải đào qua mã và thấy trong Mage_SalesRule_Model_Validator::_canProcessRule()đó thực sự kiểm tra các bảng salesrule_coupon_usagesalesrule_customer..

select * from production.mage_salesrule_customer
where customer_id = 58394  

Truy vấn này ở trên cho thấy tôi đã sử dụng phiếu giảm giá một lần. Tôi không biết tại sao nó cho thấy tôi đã sử dụng nó một lần và tại sao không có hồ sơ về việc sử dụng của tôi trong bảng đơn đặt hàng (nhưng) tôi hy vọng điều này sẽ giúp người khác đang đấu tranh để tìm ra điều này.


0

Đối với magento 2, vui lòng chạy sql này để nhận email của khách hàng, mã phiếu giảm giá, số tiền chiết khấu, tổng số lớn và id gia tăng

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`
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.