php magento automation auto-generate coupon

php - Creando un solo cupón de Magento al azar



automation auto-generate (1)

Estoy teniendo algunos problemas. Lo que quiero hacer es generar automáticamente un único código de cupón aleatorio en Magento cada vez que alguien se suscriba a nuestro boletín informativo. El cupón cuesta 10 dólares y tendrá una exp. fecha de dos semanas después de la suscripción.

Por lo tanto, estoy tratando de escribir un guión simple que se dispare cuando se envíe el formulario "suscribirse a nuestro boletín" que hablará con Magento, pedirle a Magento un código de cupón individual, establecer algunas reglas básicas de precios (10 dólares de cualquier cosa) , un uso por cliente, un uso por cupón, caduca dos semanas después de la generación) y luego devuelve un código de cupón aleatorio (por ejemplo: WELCOME5798) que puede almacenarse en una variable que se aprobará junto con el primer nombre + apellido y e -mail a MailChimp a través de la API de MailChimp. Tengo todo esto resuelto EXCEPTO por cómo hacer que Mage genere dicho código a través de un script PHP y luego devolver dicho código (es decir, tengo mi formulario y sé cómo pasar los valores a MailChimp).

Soy nuevo en Magento, así que estoy teniendo un momento difícil. He visto el código en Mage / SalesRule / Model / Coupon y he visto algunos ejemplos de personas que resuelven preguntas algo similares, como aquí: Magento : crea códigos de cupón únicos a través del código y envíalos por correo al cliente

Pero realmente no sé por dónde empezar a hacer esto para mis propios fines. Podría usar algo de ayuda / ajuste directo. :( Gracias amigos.


Entonces, ¿cuál es tu pregunta? ¿Cómo generar un cupón para sus necesidades? ¿O cómo organizarlo en el módulo?

Puede usar event newsletter_subscriber_save_after para inyectar sus acciones personalizadas en el proceso de suscripción.

Aquí hay un ejemplo de creación de cupones según sus necesidades

<?php /** * Create coupon for fixed price discount * * @param int $customer_id * @param float $discount */ public function createCoupon($customer_id, $discount) { $customer = Mage::getModel(''customer/customer'')->load($customer_id); $customerGroupIds = Mage::getModel(''customer/group'')->getCollection()->getAllIds(); $websitesId = Mage::getModel(''core/website'')->getCollection()->getAllIds(); $customer_name = $customer->getName(); $couponCode = Mage::helper(''core'')->getRandomString(9); $model = Mage::getModel(''salesrule/rule''); $model->setName(''Discount for '' . $customer_name); $model->setDescription(''Discount for '' . $customer_name); $model->setFromDate(date(''Y-m-d'')); $model->setToDate(date(''Y-m-d'', strtotime(''+2 days''))); $model->setCouponType(2); $model->setCouponCode($couponCode); $model->setUsesPerCoupon(1); $model->setUsesPerCustomer(1); $model->setCustomerGroupIds($customerGroupIds); $model->setIsActive(1); $model->setConditionsSerialized(''a:6:{s:4:/"type/";s:32:/"salesrule/rule_condition_combine/";s:9:/"attribute/";N;s:8:/"operator/";N;s:5:/"value/";s:1:/"1/";s:18:/"is_value_processed/";N;s:10:/"aggregator/";s:3:/"all/";}''); $model->setActionsSerialized(''a:6:{s:4:/"type/";s:40:/"salesrule/rule_condition_product_combine/";s:9:/"attribute/";N;s:8:/"operator/";N;s:5:/"value/";s:1:/"1/";s:18:/"is_value_processed/";N;s:10:/"aggregator/";s:3:/"all/";}''); $model->setStopRulesProcessing(0); $model->setIsAdvanced(1); $model->setProductIds(''''); $model->setSortOrder(1); $model->setSimpleAction(''by_fixed''); $model->setDiscountAmount($discount); $model->setDiscountStep(0); $model->setSimpleFreeShipping(0); $model->setTimesUsed(0); $model->setIsRss(0); $model->setWebsiteIds($websitesId); try { $model->save(); } catch (Exception $e) { Mage::log($e->getMessage()); } }