¿Cómo puedo saber qué usuario usó qué código de cupón?

9

Tengo algunos códigos de cupón en mi tienda, y me gustaría poder rastrear qué código puede haber utilizado un usuario. Inversamente, ¿hay alguna manera de ver cuántas veces se usó un código en particular?

Christina Rule
fuente
1
¿Hay algo que pueda hacer para ayudarlo a cerrar esto? Avíseme si alguna de las siguientes soluciones ayudó.
philwinkle

Respuestas:

9

Qué clientes usaron qué cupones:

Por lo general, evito las consultas de db sin procesar, pero en este caso haré una excepción:

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

Puede hacer lo mismo con el ORM de Magento: formulará un informe sobre cómo hacerlo y editará después y así es como :

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

Cuántas veces se usó un cupón:

Como ya se señaló en otra respuesta, esto está en un informe. En el nivel más básico, la consulta para eso sería:

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

La forma de manejar esto centrada en ORM también es bastante sencilla:

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

Tenga en cuenta que esto no tiene en cuenta el estado del pedido o el pago facturado.

philwinkle
fuente
Dónde agregar este código para que funcione "Qué clientes usaron qué cupones" en magento 1.9
Jai
Esta es una cuestión de ejecutar desde un script PHP dentro del contexto de la tienda Magento.
philwinkle
derecho y estoy preguntando la ubicación del archivo. Puedes publicar lo que has hecho para explicarme.
Jai
¿No es eso entonces un cupón? ¿Es solo una promoción? Creo que es algo obvio dado que la pregunta era específicamente sobre códigos.
philwinkle
6

Reports > Sales > Couponsen su área de administración le permitirá ver cuántas veces se utilizó un código de descuento en particular, la cantidad de ventas generadas y la cantidad de descuento total otorgado para cada uno también. Puede filtrarlo por día, mes, año, etc.You can also filter by order status and for a certain date period.

MagentoMac
fuente
Gracias blair ¿Sabes si hay una manera de ver cuál de mis usuarios usó un código específico?
Christina Rule
1
No hay nada en la funcionalidad predeterminada de Magento para hacer esto. (Aparte de mirar cada pedido individualmente). Sin embargo, la información se podría extraer fácilmente en cualquier página del área de administración que desee. Los datos se almacenan en una tabla de base de datos después de todo. Entonces, por ejemplo, tiene Informes> Clientes> Clientes por totales de pedido, este podría ser un lugar para extraer esto. Simplemente creando una columna llamada "cupón" o similar, e insertando el código donde se usa.
MagentoMac
Algo similar a este módulo a continuación también le permitirá agregar "código de cupón" a la página Ventas> Pedidos, amasty.com/better-order-management.html , que creo que es exactamente lo que está buscando.
MagentoMac
2

El informe predeterminado está disponible en informe -> ventas -> cupones.

Y con el script puede encontrar el recuento de coupan usado y los detalles del cliente muy fácilmente:

$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
fuente
¿En qué ubicación poner este código?
Jai
En su código, ¿cómo $coupontiene un cliente específico vinculado al objeto? Parece que te estás perdiendo algo.
Nick Rolando
1

Tuve una solicitud similar de un cliente nuestro, querían saber qué cupón se usó, si lo hubo, en un pedido en particular

por ahora lo estoy haciendo manualmente en db pero tan pronto como haga la extensión para esto actualizaré mi pregunta, espero que esto ayude mientras tanto

   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;

algunas líneas pueden estar llenas de nulos, es más probable que sean clientes invitados y algunas tendrán nulos en la información del cupón, estos serán pedidos donde no se usaron cupones

tomhre
fuente
¿En qué ubicación poner su código?
Jai
0

Hay un módulo de cupones de código abierto que he usado (Magento 1 - EE) https://github.com/pavelnovitsky/CouponUsage

Crea una nueva grilla de administración:

Admin > Promotions > Coupon Usage   

que vincula cupones a pedidos. Puedo confirmar que funciona bien, a pesar de que ahora tiene algunos años.

Silas Palmer
fuente
0

En una tienda Magento ce-1.8.1.0 encontré el campo de la base de datos applied_rule_idsen la tabla sales_flat_order. Parece que esto coincide con la identificación de la Shopping Cart Price Rulespágina.

Podría ser útil si ha generado códigos de cupón:

`SELECT COUNT (*) FROM sales_flat_order donde FIND_IN_SET ('1', apply_rule_ids)

PiTheNumber
fuente
1
está separado por comas porque puede haber varias reglas involucradas. Así que mejor uso en FIND_IN_SET()lugar de=
Fabian Schmengler
0

Tengo un código de cupón que tiene un valor de Usos por cliente de 1, y no puedo usarlo en mi cuenta de cliente. Entonces, consulto la sales_flat_ordertabla, ya que las otras respuestas sugieren ver cuántas veces he usado este código, y no había un orden mío en esa tabla que muestre que usé el código de cupón en cuestión. Tuve que profundizar en el código y encontré que en Mage_SalesRule_Model_Validator::_canProcessRule()realidad verifica las tablas salesrule_coupon_usagey salesrule_customer...

select * from production.mage_salesrule_customer
where customer_id = 58394  

Esta consulta anterior mostró que había usado el cupón una vez. No sé por qué muestra que lo usé una vez, y por qué no hay un registro de mi uso en la tabla de pedidos (todavía), pero espero que esto ayude a alguien más que estaba luchando por resolver esto.

Nick Rolando
fuente
0

Para magento 2, ejecute este sql para obtener el correo electrónico del cliente, el código de cupón, el monto del descuento, el total general y el ID de 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`
Rav
fuente