Come faccio a sapere quale utente ha utilizzato quale codice coupon?


9

Ho alcuni codici coupon nel mio negozio e vorrei essere in grado di tracciare il codice che un utente potrebbe aver utilizzato. Inversamente, c'è un modo per vedere quante volte è stato utilizzato un determinato codice?


1
C'è qualcosa che posso fare per aiutarti a chiuderlo? Fammi sapere se una delle seguenti soluzioni ha aiutato.
Filwinkle,

Risposte:


9

Quali clienti hanno utilizzato quali coupon:

Di solito evito le query db non elaborate, ma in questo caso farò un'eccezione:

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

Potresti fare lo stesso con Magento ORM: formulerai un articolo su come farlo e modificarlo in seguito ed ecco come :

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

Quante volte è stato utilizzato un coupon:

Come già sottolineato in un'altra risposta, questo è in un rapporto. Al livello più elementare la query sarebbe:

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

Il modo di gestire questo ORM-centric è anche abbastanza semplice:

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

Si noti che ciò non tiene conto dello stato dell'ordine o del pagamento fatturato.


Dove aggiungere questo codice per far funzionare "Quali clienti hanno utilizzato quali coupon" in magento 1.9
Jai

Questa è una questione di esecuzione da uno script PHP nel contesto del negozio Magento.
Philwinkle,

giusto e chiedo la posizione del file. Puoi pubblicare ciò che hai fatto per spiegarmi.
Jai

Non è quindi un coupon? È solo un promo? Penso che sia abbastanza ovvio dato che la domanda riguardava specificamente i codici.
Filwinkle,

6

Reports > Sales > Couponsnella tua area di amministrazione ti mostrerà quante volte è stato utilizzato un particolare codice di sconto, la quantità di vendite generate per e la quantità di sconto totale dato anche per ciascuno. Puoi filtrarlo per giorno, mese, anno ecc.You can also filter by order status and for a certain date period.


Grazie Blair! Sai se esiste un modo per vedere quale dei miei utenti ha utilizzato un codice specifico?
Christina Rule,

1
Non c'è nulla nella funzionalità predefinita di Magento per farlo. (Oltre a guardare ogni ordine singolarmente). Ma le informazioni potrebbero essere facilmente inserite in qualsiasi pagina nell'area di amministrazione desiderata. I dati sono archiviati in una tabella di database dopo tutto. Quindi, ad esempio, hai Rapporti> Clienti> Clienti per totale ordini, questo potrebbe essere un posto in cui estrarre questo. Basta creare una colonna chiamata "coupon" o simili e inserire il codice dove usato.
MagentoMac,

Qualcosa come questo modulo qui sotto ti permetterà anche di aggiungere "codice coupon" alla pagina Vendite> Ordini, amasty.com/better-order-management.html che penso sia esattamente quello che stai cercando?
MagentoMac,

2

Il rapporto predefinito è disponibile nel rapporto -> vendite -> coupon.

E con lo script puoi trovare facilmente il conteggio dei coupan usati e i dettagli dei clienti:

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

In quale posizione inserire questo codice?
Jai

Nel tuo codice, come $couponha un cliente specifico legato all'oggetto? Sembra che ti manchi qualcosa.
Nick Rolando,

1

Ho avuto una richiesta simile da parte del nostro cliente, volevano sapere quale coupon veniva utilizzato se presente su un determinato ordine

per ora lo sto facendo manualmente in db ma non appena tratterò l'estensione per questo aggiornerò la mia domanda, spero che questo possa aiutare nel frattempo

   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;

alcune righe potrebbero essere piene di null questo è più probabile clienti ospiti e alcuni avranno null nelle informazioni sui coupon, questi saranno ordini in cui i coupon non sono stati utilizzati


In quale posizione inserire il codice?
Jai


0

In un negozio Magento ce-1.8.1.0 ho trovato il campo del database applied_rule_idsnella tabella sales_flat_order. Sembra che questo corrisponda all'ID dalla Shopping Cart Price Rulespagina.

Potrebbe essere utile se hai generato codici coupon:

`SELEZIONA COUNT (*) FROM sales_flat_order dove FIND_IN_SET ('1', application_rule_ids)


1
è separato da virgola perché potrebbero essere coinvolte diverse regole. Quindi meglio usare FIND_IN_SET()invece di=
Fabian Schmengler

0

Ho un codice coupon che ha un valore Usi per cliente pari a 1 e non sono in grado di utilizzarlo sul mio account cliente. Quindi interrogo la sales_flat_ordertabella mentre le altre risposte suggeriscono di vedere quante volte ho usato questo codice e non c'era un mio ordine in quella tabella che mostra che ho usato il codice coupon in questione. Ho dovuto scavare attraverso il codice e ho trovato Mage_SalesRule_Model_Validator::_canProcessRule()che controlla effettivamente le tabelle salesrule_coupon_usagee salesrule_customer...

select * from production.mage_salesrule_customer
where customer_id = 58394  

Questa query sopra mostrava che avevo usato il coupon una volta. Non so perché dimostri di averlo usato una volta e perché non ci sono ancora registrazioni del mio uso nella tabella degli ordini, ma spero che ciò aiuti qualcun altro che sta lottando per capirlo.


0

Per magento 2, eseguire questo sql per ottenere e-mail del cliente, codice coupon, importo dello sconto, totale complessivo e ID incremento

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`
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.