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?
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?
Câu trả lời:
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.
Reports > Sales > Coupons
trong 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.
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;
}
$coupon
có 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ì đó.
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á
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.
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_ids
trong bảng sales_flat_order
. Có vẻ như điều này phù hợp với id từ Shopping Cart Price Rules
trang.
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)
FIND_IN_SET()
thay vì=
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_order
bả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_usage
và salesrule_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.
Đố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`