WordPress Avancé
À propos de la leçon

Le but est de voir comment mettre à jour les informations de nos produits se trouvant dans notre WooCommerce et les actualiser directement depuis un fichier .csv ou un flux xml.
Que ce soit la gestion du stock, tarif, description du produit, titre et même les images tout cela est synchronisable !

Il est possible de programmer les import et de lancer les requêtes automatiquement à l’heure que l’on souhaite.

De quoi avons nous besoin ?

– Un fichier de mise a jour en .csv ou .xml
– Votre accès admin WordPress/WooCommerce
– Le plugin WP All Import + Add-on WooCommerce
– Un peu de la patience

Synchronisation des stocks du fournisseur sur la boutique woocommerce

Il est nécessaire d’avoir installé et activé les deux extensions WP All Import sur votre installation.

Nous allons synchroniser uniquement l’état des stocks du fournisseur sur notre boutique en ligne. Vous pouvez ensuite adapter le tutoriel à vos besoins pour par exemple importer automatiquement les nouveaux produits avec titre, description, tarif et stock, ou me confier la réalisation de l’opération.

Dans le menu de votre back office WordPress, selectionner All Import et « New Import »

Etape 1

Dans cet exemple , dont le but est d’automatiser la synchronisation des stocks, donc je vais opter pour le choix « Download from URL ».
L’URL est l’adresse du fichier .xml ou csv ( un fichier compressé contenant un fichier csv ou xml au format zip est possible également ) qu’il faut renseigner dans le champs sous le bouton puis cliquer sur « Download ».

En fonction du nombre d’articles à synchroniser le temps de récupération du fichier peut être long.

IL est egalement possible de fournir un fichier en cliquant sur Upload a file , mais il sera impossible d’automatiser le lancement de l’import a heure fixe

Une fois le fichier chargé, je sélectionne « Existing Items » puisque nous allons mettre a jour des Produits existants, puis dans le menu déroulant je sélectionne ce que je souhaite mettre à jour, donc les WooCommerce Products.

Etape 2

Ceci n’est valable qu’avec des fichier XML complexes :

On peut voir et sélectionner les éléments à synchroniser, il faut sélectionner dans le tableau de gauche « article » et je vois à droite le contenu de mon fichier XML, ou l’on voit les codes produits articles et le stock associé. ceci permet de traiter des XML complexes avec plusieurs niveaux

A noter qu’en fonction de votre fournisseur vous n’aurez pas forcément les mêmes appellations.

Il est possible de fitrer le fichier ( je vous conseille de le faire avant) , par exemple ne pas charger ceux qui ont une valeur de stock=0 …

Etape 3

Ici, à l’étape 3, nous allons faire « matcher » les informations de notre fichier fournisseur dans les champs WooCommerce.

Pour se faire c’est très simple, on va s’intéresser qu’à la partie « WooCommerce Add-On », dans « General » nous allons lui dire ou se trouve le SKU (ou UGS, soit le code produit) sur notre fichier XML, il suffit de cliquer (dans cet exemple) sur « NUMBER » et faire glisser dans le champs SKU.

Ensuite, on sélectionne la rubrique « Inventory » puis on fait la même chose pour la quantité, en prenant bien soin de cocher « Manage Stock? » à Oui, puis dans la case « Stock Qty » on fait mapper notre fichier XML dans cette case, comme à l’étape du SKU/UGS.

One ne touche à rien d’autre et on passe à l’étape 4 !

Sur cette étape on sélectionne comment le fichier et WooCommerce vont se synchroniser.

Choisissons « Custom Field » puis nous synchroniseront et trouveront nos produits à actualiser en fonction de leur SKU et la valeur à indiquer et la même qu’à l’étape précédente, il suffit de faire glisser le champ du fichier XML à droite dans le case.

Une autre solution est de selectionner PostID , et de renseigner comment il va trouver le PostId : [wc_get_product_id_by_sku({sku[1]})]

Ici, nous allons mettre à jour les stocks de nos produits, donc je coche « Update existing posts with changed data in your file ».

Ensuite il faut tout désélectionner : et garder uniquement « Custom Field » puis choisir « Update only these custom fields, leave the rest alone ».

On indique alors les seuls champs a changer « _stock » et « _manage_stock ».

On passe alors à l’étape finale et on lance l’importation !

Programmer un import régulier

Il est possible de programmer une tâche CRON pour lancer de manière périodique un import. il faut avoir un fichier accessible via une URL. Pour cela rendez-vous dans All Import > Manage Imports

cron import

C’est donc un Import deja programmé qu’on va pouvoir programmer avec la fonction Cron Schedulling

Vous devrez choisir l’option «Planification manuelle» ici:

Planification manuelle

Chaque importation a deux URL cron – une URL de déclenchement et une URL de traitement.

L’URL de déclenchement ressemblera à ceci:
http://YOUR-WEBSITE.com/wp-load.php?import_key==YOUR_SECRET_KEY[&import_id==YOUR_IMPORT_ID indirect&action=trigger

L’URL de traitement ressemblera à ceci:
http://YOUR-WEBSITE.com/wp-load.php?import_key==YOUR_SECRET_KEY[&import_id==YOUR_IMPORT_ID indirect&action=processing

Vous pouvez trouver votre clé secrète sur l’écran WPAllImport -> Paramètres, et l’ID d’importation sur l’écran Manage All Imports.

Si vous souhaitez exécuter votre importation toutes les 24 heures, vous devez exécuter l’URL de déclenchement toutes les 24 heures. Si vous souhaitez exécuter votre importation une fois par semaine, vous devez exécuter l’URL de déclenchement chaque semaine.

L’URL de traitement doit être exécutée toutes les deux minutes car elle peut ne pas terminer votre importation en une seule exécution. La raison en est que de nombreux hôtes ont des temps d’exécution de script maximum en place, il est donc possible que le script de traitement ne termine qu’un petit pourcentage de votre importation avant son expiration.

Si tel est le cas et que le script de traitement est à nouveau exécuté après deux minutes, il vérifie si votre importation est terminée ou s’il y a encore du travail à faire. S’il y a du travail à faire, il importera les publications aussi longtemps qu’il le pourra, ou deux minutes, selon la durée la plus longue.

Ensuite, lors de la prochaine exécution du script de traitement, il verra s’il reste du travail à faire sur l’importation – et si c’est le cas, il le fera. Sinon, il «déclenchera» l’importation. Et maintenant, le script de traitement n’aura aucun effet, jusqu’à ce que l’importation soit à nouveau déclenchée par la prochaine exécution du script de déclenchement.

En cas de probleme :

Fin de session ( timeout ) … il est recommandé de modifier le php.ini max_execution_time=36000; // autorise 10h de traitement

fermeture de la fenetre d’import : dans ce cas il faut retourner sur Manage Import, depuis la liste des imports , si besoin arreter l’import , puis le relancer ..
Il proposera de continuer la ou il s’est arreté

La documentation en anglais , et quelques liens pour approfondir , ou voir d’un autre oeil :

https://www.wpallimport.com/documentation/getting-started/importing-an-xml-or-csv-file/

Visits: 35