File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -25,7 +25,7 @@ Método de pago para Redsys para Magento compatible con SHA-256 y parche SUPEE-6
2525* Envió de factura al cliente
2626* Guardar transacciones
2727* Envio de correo a cliente (si esta habilitado esta config.) y admin si ha habido una cancelación / error en la pasarela de pago
28-
28+ * Cancelación de pedidos no pagados, transcurrido un tiempo determinado (indicado en configuración)
2929
3030### Requisitos
3131
@@ -39,14 +39,6 @@ Método de pago para Redsys para Magento compatible con SHA-256 y parche SUPEE-6
3939
4040* [ Documentación] ( https://github.com/DevopensourceTeam/Devopensource_Redsys/wiki/Configuraci%C3%B3n-admin-Magento )
4141
42- ### Histórico de cambios (changelog)
43-
44- * [ Acceder al enlace para ver resumen de cambios] ( https://github.com/DevopensourceTeam/Devopensource_Redsys/wiki/Cambios-y-Mejoras )
45-
46- ### Próximos cambios (Backlog)
47-
48- * [ Acceder al enlace para ver resumen de cambios] ( https://github.com/DevopensourceTeam/Devopensource_Redsys/wiki/Cambios-y-Mejoras )
49-
5042### Soporte técnico
5143
5244* Principal canal para notificar errores o dudas: [ https://github.com/DevopensourceTeam/Devopensource_Redsys/issues ] ( https://github.com/DevopensourceTeam/Devopensource_Redsys/issues )
Original file line number Diff line number Diff line change 1+ <?php
2+
3+ class Devopensource_Redsys_Model_Cron {
4+
5+ public function cancelUnpaidOrders (){
6+
7+ $ enable = Mage::getStoreConfig ('payment/redsys/cancel_unpaid_orders ' , Mage::app ()->getStore ());
8+
9+ if (!$ enable ){
10+ return ;
11+ }
12+
13+ $ orders = Mage::getModel ('sales/order ' )->getCollection ()
14+ ->addFieldToFilter ('status ' , array ('in ' => array ('pending ' )))
15+ ->setOrder ('created_at ' , 'desc ' );
16+
17+ foreach ($ orders as $ _order ){
18+
19+ $ _paymentMethod = $ _order ->getPayment ()->getMethod ();
20+
21+ if ($ _paymentMethod != Devopensource_Redsys_Model_Redsys::CODE ){
22+ continue ;
23+ }
24+
25+ $ _format = 'Y-m-d H:i:s ' ;
26+ $ _dateCreatedAt = date ($ _format , Mage::getModel ('core/date ' )->timestamp ($ _order ->getCreatedAt ()));
27+ $ _dateToday = Mage::getModel ('core/date ' )->date ($ _format );
28+ $ _dateToCancel = date ($ _format , strtotime ( $ _dateCreatedAt . ' + ' .Mage::getStoreConfig ('payment/redsys/cancel_unpaid_orders_min ' , Mage::app ()->getStore ()).' minutes ' ));
29+
30+ if ( $ _dateToday > $ _dateToCancel ){
31+
32+ $ _order ->cancel ()->save ();
33+ }
34+
35+ }
36+ }
37+ }
Original file line number Diff line number Diff line change 33class Devopensource_Redsys_Model_Redsys extends Mage_Payment_Model_Method_Abstract
44{
55
6- protected $ _code = 'redsys ' ;
6+ CONST CODE = 'redsys ' ;
7+ protected $ _code = 'redsys ' ;
78
89 protected $ _isGateway = true ;
910 protected $ _canAuthorize = true ;
Original file line number Diff line number Diff line change 22<config >
33 <modules >
44 <Devopensource_Redsys >
5- <version >0.2.1 </version >
5+ <version >0.2.2 </version >
66 </Devopensource_Redsys >
77 </modules >
88 <global >
7171 </modules >
7272 </translate >
7373 </adminhtml >
74+ <crontab >
75+ <jobs >
76+ <redsys_cancel_unpaid_orders >
77+ <schedule >
78+ <cron_expr >*/5 * * * *</cron_expr >
79+ </schedule >
80+ <run >
81+ <model >redsys/cron::cancelUnpaidOrders</model >
82+ </run >
83+ </redsys_cancel_unpaid_orders >
84+ </jobs >
85+ </crontab >
7486 <default >
7587 <payment >
7688 <redsys >
93105 <recover_cart >1</recover_cart >
94106 <transaction >0</transaction >
95107 <callback >0</callback >
108+ <cancel_unpaid_orders >0</cancel_unpaid_orders >
109+ <cancel_unpaid_orders_min >30</cancel_unpaid_orders_min >
96110 </redsys >
97111 </payment >
98112 </default >
Original file line number Diff line number Diff line change 238238 <validate >required-entry</validate >
239239 <depends ><callback >2</callback ></depends >
240240 </callbackurl >
241+ <cancel_unpaid_orders translate =" label comment" >
242+ <label >Cancel Unpaid Orders</label >
243+ <frontend_type >select</frontend_type >
244+ <source_model >adminhtml/system_config_source_yesno</source_model >
245+ <sort_order >195</sort_order >
246+ <comment ><![CDATA[ Automatically cancel orders paid elapsed time indicated in the field below]]> </comment >
247+ <show_in_default >1</show_in_default >
248+ <show_in_website >1</show_in_website >
249+ <show_in_store >1</show_in_store >
250+ </cancel_unpaid_orders >
251+ <cancel_unpaid_orders_min translate =" label comment" >
252+ <label >Time to Cancel Unpaid Orders</label >
253+ <frontend_type >text</frontend_type >
254+ <sort_order >200</sort_order >
255+ <comment ><![CDATA[ Minutes to cancel order]]> </comment >
256+ <show_in_default >1</show_in_default >
257+ <show_in_website >1</show_in_website >
258+ <show_in_store >1</show_in_store >
259+ <depends ><cancel_unpaid_orders >1</cancel_unpaid_orders ></depends >
260+ </cancel_unpaid_orders_min >
241261 </fields >
242262 </redsys >
243263 </groups >
You can’t perform that action at this time.
0 commit comments