Jak dowiedzieć się, jakiego użytkownika użył kod kuponu?

9

Mam kilka kodów kuponów w moim sklepie i chciałbym móc śledzić, jakiego kodu mógł użyć użytkownik. Odwrotnie, czy istnieje sposób, aby sprawdzić, ile razy dany kod został użyty?

Reguła Christina
źródło
1
Czy jest coś, co mogę zrobić, aby pomóc Ci to zamknąć? Daj mi znać, jeśli którekolwiek z poniższych rozwiązań pomogło.
philwinkle

Odpowiedzi:

9

Którzy klienci wykorzystali, które kupony:

Zwykle unikam surowych zapytań db, ale w tym przypadku zrobię wyjątek:

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

Możesz zrobić to samo z Magento ORM - sformułuje opis, jak to zrobić, a następnie edytuje, a oto jak :

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

Ile razy wykorzystano kupon:

Jak już wskazano w innej odpowiedzi, jest to w raporcie. Na najbardziej podstawowym poziomie zapytanie to:

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

Sposób radzenia sobie z tym w ORM jest również dość prosty:

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

Pamiętaj, że nie uwzględnia to statusu zamówienia ani płatności zafakturowanej.

philwinkle
źródło
Gdzie dodać ten kod, aby działał „Którzy klienci korzystali z których kuponów” w magento 1.9
Jai
Jest to kwestia uruchamiania ze skryptu PHP w kontekście sklepu Magento.
philwinkle
i pytam o lokalizację pliku. Możesz opublikować swoje wyjaśnienia.
Jai
Czy to nie kupon? To tylko promocja? Myślę, że jest to dość oczywiste, biorąc pod uwagę, że pytanie dotyczyło konkretnie kodów.
philwinkle
6

Reports > Sales > Couponsw obszarze administracyjnym zobaczysz, ile razy użyty został określony kod rabatowy, ilość wygenerowanej sprzedaży oraz kwota całkowitego rabatu udzielona dla każdego z nich. Możesz go filtrować według dnia, miesiąca, roku itp.You can also filter by order status and for a certain date period.

MagentoMac
źródło
Dzięki Blair! Czy wiesz, czy istnieje sposób, aby sprawdzić, który z moich użytkowników użył określonego kodu?
Christina Reguła
1
Nie ma nic w domyślnej funkcjonalności Magento, aby to zrobić. (Inne niż indywidualne spojrzenie na każde zamówienie). Ale informacje można łatwo wyciągnąć do dowolnej strony w obszarze administracyjnym, którą chcesz. W końcu dane są przechowywane w tabeli bazy danych. Na przykład masz Raporty> Klienci> Klienci według sum zamówień, byłoby to dobre miejsce, aby to przyciągnąć. Wystarczy utworzyć kolumnę o nazwie „kupon” lub podobną i wstawić kod tam, gdzie jest używany.
MagentoMac
Coś takiego jak ten moduł poniżej pozwoli ci również dodać „kod kuponu” do strony Sprzedaż> Zamówienia, amasty.com/better-order-management.html, która moim zdaniem jest dokładnie tym, czego szukasz?
MagentoMac
2

Domyślny raport jest dostępny w raporcie -> sprzedaż -> kupony.

Za pomocą skryptu można bardzo łatwo znaleźć liczbę używanych coupan i dane klienta:

$coupon = Mage::getModel('salesrule/coupon/usage');
$coupon->load('code', 'coupon_id');
if($coupon->getId()) {
    $timesUsed = $coupon->getTimesUsed();
    $customer = $coupon->getCustomerId();
    echo $timesUsed;
    echo $customer;
}
Kajal S.
źródło
W której lokalizacji umieścić ten kod?
Jai
W jaki sposób twój $couponklient ma przypisany do obiektu określony klient? Wygląda na to, że czegoś brakuje.
Nick Rolando
1

Miałem podobną prośbę od naszego klienta. Chcieli wiedzieć, który kupon został wykorzystany, jeśli w ogóle na konkretne zamówienie

na razie robię to ręcznie w db, ale jak tylko skończę dla tego rozszerzenie, zaktualizuję moje pytanie, mam nadzieję, że to pomoże w międzyczasie

   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;

niektóre wiersze mogą być pełne wartości zerowych, co jest bardziej prawdopodobne dla klientów, a niektóre będą zawierać wartości zerowe w informacjach o kuponie, będą to zamówienia, w których kupony nie zostały wykorzystane

tomhre
źródło
W której lokalizacji umieścić kod?
Jai
0

Jest moduł kuponu open source, którego użyłem (Magento 1 - EE) https://github.com/pavelnovitsky/CouponUsage

Tworzy nową siatkę administracyjną:

Admin > Promotions > Coupon Usage   

który łączy kupony z zamówieniami. Mogę potwierdzić, że działa dobrze, mimo że ma już kilka lat.

Silas Palmer
źródło
0

W sklepie Magento ce-1.8.1.0 znalazłem pole bazy danych applied_rule_idsw tabeli sales_flat_order. Wygląda na to, że pasuje do identyfikatora ze Shopping Cart Price Rulesstrony.

Może być przydatny, jeśli wygenerowałeś kody kuponów:

`SELECT COUNT (*) FROM sales_flat_order gdzie FIND_IN_SET ('1', Appl_rule_ids)

PiTheNumber
źródło
1
jest oddzielony przecinkami, ponieważ może to dotyczyć kilku reguł. Więc lepiej użyj FIND_IN_SET()zamiast=
Fabian Schmengler
0

Mam kod kuponu, który ma wartość Wykorzystanie na klienta 1, i nie mogę go użyć na moim koncie klienta. Pytam więc sales_flat_ordertabelę, ponieważ inne odpowiedzi sugerują, jak razy użyłem tego kodu, a moja tabela nie zawierała mojej kolejności pokazującej, że użyłem danego kodu kuponu. Musiałem przekopać się przez kod i znalazłem w Mage_SalesRule_Model_Validator::_canProcessRule()nim faktycznie sprawdza tabele salesrule_coupon_usagei salesrule_customer...

select * from production.mage_salesrule_customer
where customer_id = 58394  

Powyższe zapytanie wykazało, że użyłem kuponu jeden raz. Nie wiem, dlaczego to pokazuje, że użyłem go raz i dlaczego (jeszcze) nie ma zapisów o moim użyciu, ale mam nadzieję, że to pomoże komuś, kto miał problem z tym.

Nick Rolando
źródło
0

W przypadku Magento 2 uruchom ten kod SQL, aby uzyskać adres e-mail klienta, kod kuponu, kwotę rabatu, sumę całkowitą i identyfikator wzrostu

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`
Rav
źródło