Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Sélection des paniers abandonnés pour envoi via tâche cron #17

Closed
septoctobre opened this issue Nov 15, 2016 · 7 comments
Closed

Sélection des paniers abandonnés pour envoi via tâche cron #17

septoctobre opened this issue Nov 15, 2016 · 7 comments

Comments

@septoctobre
Copy link
Contributor

Lors de l'envoi des emails de relance des paniers abandonnés via la tâche cron, tous les paniers sont sélectionnés (y compris ceux n'ayant pas atteint le délai renseigné dans l'admin)

@septoctobre
Copy link
Contributor Author

En chargeant les paniers via l'admin, la requête se forme correctement en utilisant le délai renseigné dans l'admin. Le tri se fait avec quote_table.updated_at < "2016-11-14 08:55:29" (délai renseigné : un jour).

En lançant le traitement via la tâche cron, le tri se fait avec quote_table.updated_at < "2016-11-22 10:00:59".

@septoctobre
Copy link
Contributor Author

septoctobre commented Nov 15, 2016

Cela vient de Notifier.php

A mon avis, c'est if (!$delay) et non pas if (!$nodate).
Je vais tester ça et faire un PR.

septoctobre added a commit to septoctobre/abandonedcarts that referenced this issue Nov 15, 2016
@digitalpianism
Copy link
Owner

@septoctobre pas sur de bien comprendre celui la. $nodate c'est un résidu de l'ancienne version lorsqu'on voulait tester l'envoi à tout le monde peu importe le delai.

Mais il est désormais automatiquement à false dans la déclaration de la fonction.

Du coup cette condition ne doit jamais passer dans le else:

if (!$nodate) {
                    // Get the delay provided and convert it to a proper date
                    $delay = Mage::getStoreConfig('abandonedcartsconfig/options/notify_delay');
                    $delay = date('Y-m-d H:i:s', time() - $delay * 24 * 3600);
                }  else {
                    // We create a date in the future to handle all abandoned carts
                    $delay = date('Y-m-d H:i:s', strtotime("+7 day"));
                }

Normalement il n'y a pas de bugs de ce côté la

@septoctobre
Copy link
Contributor Author

septoctobre commented Nov 15, 2016

@digitalpianism

Si le traitement est déclenché via l'admin, $nodate est bien null.

Mais en cas de traitement via tâche cron, $nodate n'est pas null, c'est un objet de type "cron object manager" (de mémoire, pas sûr pour le type exact).

@digitalpianism
Copy link
Owner

@septoctobre j'étais pas du tout au courant de ce fonctionnement de Magento. J'ai fais un fix qui est plus clair. Même si $nodate n'est plus utilisé il m'arrive pour certains tests de le réutiliser.

@septoctobre
Copy link
Contributor Author

@digitalpianism Oui j'ai vu passer sur StackExchange Magento, je vais intégrer ça tout de suite !

@digitalpianism
Copy link
Owner

@septoctobre oui du coup j'ai réécri la signature des fonctions. J'aurais préféré un flag dans la config pour désactiver le premier parametre mais pas possible apparamment

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants