어떤 사용자가 어떤 쿠폰 코드를 사용했는지 어떻게 알 수 있습니까?


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;

- 당신은 마 젠토 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

이것은 Magento 저장소의 컨텍스트 내에서 PHP 스크립트에서 실행되는 문제입니다.
philwinkle

오른쪽과 나는 파일의 위치를 ​​묻고있다. 저를 설명하기 위해 무엇을했는지 게시 할 수 있습니다.
Jai

쿠폰이 아닌가? 그냥 프로모션입니까? 질문이 코드에 관한 것이기 때문에 분명히 분명하다고 생각합니다.
philwinkle

6

Reports > Sales > Coupons관리 영역에서 특정 할인 코드가 몇 번이나 사용되었는지, 생성 된 판매량 및 각각에 대해 제공된 총 할인액을 확인할 수 있습니다. 일, 월, 년 등으로 필터링 할 수 있습니다.You can also filter by order status and for a certain date period.


블레어 감사합니다! 내 사용자 중 어느 사용자가 특정 코드를 사용했는지 확인할 수있는 방법이 있는지 알고 있습니까?
Christina Rule

1
Magento의 기본 기능에는이를 수행 할 수있는 것이 없습니다. (각 주문을 개별적으로 보는 것 이외). 그러나 원하는 관리 영역의 어느 페이지로든 정보를 쉽게 가져올 수 있습니다. 데이터는 결국 데이터베이스 테이블에 저장됩니다. 예를 들어 주문 총계를 기준으로하는 보고서> 고객> 고객이 있으면이를 가져올 수 있습니다. "coupon"등의 열을 만들고 사용 된 곳에 코드를 삽입하십시오.
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;
}

이 코드를 넣을 위치는?
Jai

코드에서 $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;

일부 행은 널로 가득 찼을 수 있습니다. 이는 게스트 고객 일 가능성이 높으며 일부는 쿠폰 정보에 널을 포함합니다. 쿠폰이 사용되지 않은 주문입니다.


코드를 넣을 위치는?
Jai

0

내가 사용한 오픈 소스 쿠폰 모듈이 있습니다 (Magento 1-EE) https://github.com/pavelnovitsky/CouponUsage

새로운 관리 그리드를 만듭니다.

Admin > Promotions > Coupon Usage   

쿠폰을 주문에 연결합니다. 몇 년이 지난 지금도 잘 작동하는지 확인할 수 있습니다.


0

Magento ce-1.8.1.0 상점에서 나는 applied_rule_ids테이블에서 데이터베이스 필드 를 발견했다 sales_flat_order. 이것이 Shopping Cart Price Rules페이지 의 ID와 일치하는 것 같습니다 .

쿠폰 코드를 생성 한 경우 유용 할 수 있습니다.

`IND_IN_SET ( '1', apply_rule_ids)에서 sales_flat_order에서 SELECT COUNT (*)


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의 경우 고객 이메일, 쿠폰 코드, 할인 금액, 총계 및 증분 ID를 얻으려면이 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.