Génération du flux ShoppingFlux avec CRON

Le module ShoppingFlux peux exporter les produits de 2 façons :

  • "à la volée"
  • avec une tâche CRON

Avec une certaine volumétrie de catalogue, à la volée risque de présenter des timeouts. Le mode de fonctionnement en CRON découpe le traitement en petit morceaux afin de présenter un flux volumineux valide.

Cette méthode de génération avec une tâche est donc plus stable pour des flux volumineux.

Les étapes suivantes décrivent comment mettre ce mode de fonctionnement en place.

1 - Mise en place du module CRON

Il est possible de configurer les tâche CRONs directement depuis votre serveur, cependant n'ayant pas toujours l'accès à votre console SSH et afin de permettre une meilleure visibilité des tâches par nos équipes

Si vous avez déjà un module CRON installé et que vous utilisez pour d'autres tâches, merci de passer directement à l'étape 2 : "2 - Ajout de la tâche cron".

Installation du module

Dans le cas contraire, nous recommandons l'utilisation du module gratuit "Crontab for Prestashop" de l'éditeur Samdha. Vous pouvez le télécharger depuis l'url suivante :

http://bit.ly/crontab-for-prestashop

Une fois téléchargé, vous pouvez procéder à l'installation depuis votre BackOffice où via FTP. Si vous n'êtes pas familier avec l'installation des modules, voici les étapes à suivre sur PrestaShop 1.6 :

Sur votre BackOffice, rendez-vous sur "Modules et Services" depuis le menu principal et cliquez sur "Ajouter un nouveau module" (le bouton se trouve en haut à droite de la page) :

Un panel va ensuite s'ouvrir au dessus de la liste des modules. Comme indiqué dans l'image ci-dessous :

(1) Sélectionnez le module téléchargé sur votre ordinateur

(2) Cliquez sur "Charger le module"

Le module peut maintenant être installé, cliquez sur "Installer" :

Configuration et test du module

Une fois le module installé, rendez-vous sur la configuration BackOffice de ce module.

Dans la page qui s'ouvre, sélectionnez la méthode "Fréquentation de la boutique" et activez la "Tâche de test". Cliquez ensuite sur "Enregistrer".

Avez ce mode de fonctionnement, le module va s'exécuter en fonction de la fréquentation (des accès) sur votre boutique.

Maintenant afin de confirmer la bonne mise en place de ce module :

1 - Accédez au front office de votre boutique dans une autre fenêtre de votre navigateur

2 - Rechargez ensuite la page backoffice de configuration du module

3 - Maintenant rendez-vous dans "Tâches" sur le menu affiché dans la page de configuration du module.

Vous devez normalement voir ici une ligne dans le tableau "Tâches crons" avec une date dans "Dernière exécution".

Si la date est vide ou affiche "Jamais", alors le module n'est pas correctement configuré. Il faudra peut être passer sur une méthode que la fréquentation de la boutique.

2 - Ajout de la tâche cron

Préparer l'URL du flux

Cette fois accédez à la configuration BackOffice du module ShoppingFlux, vous aurez une URL de flux affichée :

Elle est de type :

http://url-de-votre-site/modules/shoppingfluxexport/flux.php?token=XYZ

Copiez ce lien dans un bloc note, et remplacer "flux.php" par "cron.php", tel que :

http://url-de-votre-site/modules/shoppingfluxexport/cron.php?token=XYZ

Ajout de l'URL dans le module cron

De retour dans le module CronTab, allez dans "Tâches" et ajouter une tâche, tel que :

URL étant l'url cron.php construite dans l'étape précédente.

La Planification doit être sélectionné à "Autres".

De nouveaux champs apparaissent dans la fenêtre, appliquez la configuration suivante :

"Minutes" doit être sélectionné à 0.

"Heures" doit être sélectionné à 0, 6, 12 et 18.

Laissez les autres valeurs à "Tous".

Enregistrer cette configuration.

3 - Génération de feed.xml

Maintenant que la tâche CRON est en place, un fichier feed.xml sera généré dans le dossier du module ShoppingFlux.

Avec la configuration CRON, la génération du flux sera effectué toutes les 6h à minuit, 6h, 12h et 18h.

L'url de votre flux sera du type : http://url-de-votre-site/modules/shoppingfluxexport/feed.xml

Vérifier que votre flux est correctement généré :

Un premier appel à cron.php est effectué dès que vous ajoutez la nouvelle URL au module Crontab dans l'étape précédente. Suivant votre volumétrie de produit et les performances de votre serveur, la génération du fichier feed.xml peut prendre en moyenne de 5 minutes à plus d'une demi-heure.

La première chose à vérifier est que le module Crontab a bien fait appel à la tâche CRON. Pour ce faire nous vérifions la date d'exécution de cette tâche dans le module :

Dans l'exemple ci-dessus notre flux a été généré car une date est présente dans la colonne "Dernière exécution".

Maintenant, il faut vérifier que le flux est bien généré sans interruption. Pour ce faire, si vous avez accès au module ShoppingFlux par FTP, vérifiez que /modules/shoppingfluxexport/feed.xml existe. Si vous voyez un feed_tmp.xml cela signifie que le flux est en cours de génération, il va falloir patienter.

Si vous n'avez pas accès au module ShoppingFlux par FTP, tentez d'accédez à votre URL feed.xml du type : http://url-de-votre-site/modules/shoppingfluxexport/feed.xml depuis votre navigateur. Si ce dernier vous affiche une erreur 404 (page non trouvée) alors le flux n'est pas encore généré. Patientez 1h et réessayer. Si la page est longue a charger, c'est que votre flux est bien existant, vous pouvez simplement fermer la page sans attendre le résultat.

Vous devez maintenant contacter ShoppingFlux afin de transmettre cette nouvelle URL du flux feed.xml afin que cette dernière soit mise à jour sur votre compte ShoppingFeed.

4 - Cas particuliers

Ces cas particuliers s'applique à la version 4.6 du module ShoppingFlux.

Multiboutique

Si vous avez plusieurs boutiques en place et que votre liste de produit est différent sur chacune de ces boutiques, vous pouvez alors cocher l'option "Add the shop ID to the name of the generated xml file (such as feed_1.xml)" dans la configuration du module ShoppingFlux en BackOffice afin d'obtenir plusieurs flux de type feed.xml.

Il vous faudra ensuite ajouter plusieurs tâches CRON pour chaque boutique, tel que :

http://url-de-votre-site-1.com/modules/shoppingfluxexport/cron.php?token=XYZ

http://url-de-votre-site-2.com/modules/shoppingfluxexport/cron.php?token=ABC

Notez également que le token correspondant à la boutique doit être correctement indiqué.

Vos flux seront maintenant généré. Le nom du fichier xml inclus l'ID de la boutique, tel que feed_1.xml correspondant à la boutique ID #1. Vous devez ensuite communiquer les urls complètes des flux à ShoppingFlux, tel que :

http://url-de-votre-site-1.com/modules/shoppingfluxexport/feed_1.xml

http://url-de-votre-site-2.com/modules/shoppingfluxexport/feed_2.xml

Multilingue

Si plusieurs langues sont actives sur votre boutique, un flux feed.xml peut être généré individuellement pour chaque langue. Pour ce faire vous devrez ajouter le paramètre "&lang=ID" après le token. "ID" étant ici le code ISO de la langue, tel que EN, FR, ES ...

http://url-de-votre-site/modules/shoppingfluxexport/cron.php?token=XYZ&lang=en

Un fichier feed_en.xml sera par exemple généré.

De la même manière que pour le multiboutique, il vous faudra ajouter plusieurs tâches CRON pour chaque langue.

Multiboutique + Multilingue

A partir de la version 4.6 du module ShoppingFlux, multilingue et multi boutiques peuvent également être combinées. Au quel cas vous obtiendrez un flux du type : feed_1_en.xml

Les instructions sont les mêmes que celles données pour le multiboutique et le multilingue. Pour 2 langues et 2 boutiques vous aurez donc 4 tâches cron à ajouter et donc quatre flux générés, avec par exemple :

http://url-de-votre-site-1.com/modules/shoppingfluxexport/cron.php?token=XYZ&lang=en

http://url-de-votre-site-2.com/modules/shoppingfluxexport/cron.php?token=ABC&lang=en

http://url-de-votre-site-1.com/modules/shoppingfluxexport/cron.php?token=XYZ&lang=fr

http://url-de-votre-site-2.com/modules/shoppingfluxexport/cron.php?token=ABC&lang=fr

5 - Notes sur les tâches CRON

Si plusieurs tâches CRONs sont ajoutés, pensez à décaler leurs exécutions dans la configuration de la tâche sur le module Crontab.

Quand la première tâche CRON s'exécute à minuit, la deuxième devrait se lancer par exemple à 1h afin d'éviter une exécution en parallèle et de possible ralentissements de votre serveur.

De même, nous vous conseillons de vous rapprocher de votre hébergeur afin d'identifier les périodes de charges. Il se peut par exemple qu'une sauvegarde de vos fichiers et base de données se déroule durant la nuit, au quel cas vous éviterez l'execution de la tâche au même moment.