Mass Stock Update vous permet de mettre à jour massivement les stocks dans Magento en temps record grâce à des fichiers CSV ou XML disponibles sur votre serveur, sur un serveur distant via FTP ou via HTTP ou encore via un webservice.
Comment utiliser Mass Stock Update
Configurer Mass Stock Update de manière générale
General Settings
Pour pouvoir utiliser Mass Stock Update, vous devez dans un premier temps aller dans :
StoresSettingsConfigurationWyomindMass Stock Update
Enable log
Le fichier est Wyomind_MassStockUpdate.log.
Stores Configuration Advanced Developer Logs settings
Mise à jour M2E Pro
Si désactivé, le module informera uniquement M2E Pro qu'il y a une mise à jour si le prix ou la quantité change.
Number of rows in the mapping preview
Cron job reporting
Mass Stock Update inclut un outil de reporting des tâches cron qui vous permettra d’être averti chaque fois qu’un profil aura été exécuté et le cas échéant si une erreur s’est produite.
- Enable cron job reporting
Vous permet de définir si vous souhaitez activer la fonction de reporting ou non. - Sender Email
Entrez l'email de l'expéditeur. - Sender Name
Définissez le nom de l'expéditeur. - Send the reports to
Précisez la/les adresses email sur lesquelles sont envoyés les rapports.
Pour indiquer plusieurs adresses emails, utilisez la virgule comme séparateur. - Report title
Définissez un titre pour le rapport.
Cron interval
Par défaut, les tâches cron peuvent être planifiées toutes les 30 minutes.
Si vous avez besoin d'une heure plus précise, vous pouvez changer cet interval dans le champ Cron interval.
Créer un profil de mise à jour dans Mass Stock Update
Pour pouvoir mettre à jour les stocks dans Magento 2, vous pouvez éditer un profil ou en créer un nouveau en cliquant sur Create a new profile depuis :
SystemData TransferMass Stock Update
Black Box
La black-box est un outil qui vous aidera à configurer votre mapping facilement. Elle est composée de 3 options.
Input Data
Library
Output Data
Settings
Dans cette section, vous pouvez définir la source des données.
Profile settings
Définissez les paramètres pour votre profil.
- Enabled
Vous pouvez activer/désactiver le profil.
Notez que le profil est désactivé par défaut s'il a été dupliqué. - Profile Name
Nom que vous souhaitez donner au profil. Seuls les caractères alphanumérique, les tirets et les underscores sont acceptés. - SQL mode
Lorsque le mode SQL est activé, les données ne sont pas mises à jour. Exécuter le profil produira un fichier SQL. Ce fichier pourrait être exécuté directement depuis votre base de données.
Si vous activez le mode SQL, vous devrez remplir les champs suivants : - SQL file name
Nom du fichier SQL à générer.
XML_sample.sql - SQL file path
Il s'agit du chemin où le fichier SQL sera généré (par rapport au répertoire source de Magento).
var/sample
- Filter lines
Laissez vide pour prévisualiser les lignes.
Entrez les numéros de lignes que vous souhaitez importer, en veillant à séparer chaque ligne ou gamme avec une virgule :
2,4,6,8,10
signifie que les lignes 2,4,6,8,10 seront importées
Utilisez un tiret (-) pour définir une gamme :
8-10
signifie que les lignes 8,9,10 seront importées
Utilisez un plus (+) pour importer toutes les lignes depuis un numéro de ligne :
4+
signifie que toutes les lignes depuis la ligne 4 seront importées
Notez que vous pouvez combiner toutes ces options. Par exemple, pour importer les lignes 2,6,7,8,9,10,15,16,17,...:2,6-10,15+
File Location
Cette partie vous permet de définir où les données sources sont stockées et quel est le chemin du fichier. Notez que vous ne pourrez pas sauvegarder le chemin du fichier source si celui-ci n'est pas valide.
Vous avez plusieurs options :
- Magento File System
Le fichier est stocké à la racine de l’instance Magento ou dans un sous/répertoire de l’instance Magento.
Chemin du fichier par rapport au répertoire source Magento.
Par exemple :
/directory1/directory2/file.csv - FTP server
Le fichier est stocké sur un serveur distant accessible via FTP ou SFTP.
Chemin du fichier par rapport au dossier racine de l'utilisateur FTP.
Vous pouvez également utiliser FTPS (SSL over FTP) pour télécharger le fichier d'import. - URL
Fichier disponible via une URL utilisant HTTP ou HTTPS.Le chemin du fichier est l'URL du fichier .
Par exemple :
http://www.website.com/Inventory/AvailableInventory
Si vous utilisez une authentification HTTP, vous devez ajouter les identifiants avant l'URL comme ci-dessous :
http://login:[email protected]/Inventory/AvailableInventory
Pour ajouter un port spécifique, utilisez le format suivant :http://login:[email protected]:port/Inventory/AvailableInventory - Webservice
Le fichier est disponible sur un serveur distant accessible via un webservice
L'extension utilise la librairie PHP CURL pour ce connecter au webservice.
Le chemin du fichier est l'URL du web service.
Vous pouvez fournir au webservice un login/password et des paramètres formattés comme des paramètres d'URL comme suit:
parameter1=value1¶meter2=value2¶meter3=value3 - Dropbox
Vous pouvez générer vos accès depuis votre compte Dropbox: https://www.dropbox.com/developers/apps
Le chemin du fichier est l'URL du service dropbox.
File Type
Vous permet de définir le type de fichier utilisé pour la mise à jour : XML, JSON ou CSV.
- File type
Vous avez le choix entre des fichiers CSV, XML, et JSON.
Pour les fichiers CSV, définissez :
- Column separator
Définissez le séparateur de colonnes. - Text delimiter
Sélectionnez le délimiteur de texte. - The first line is a header
Spécifiez lorsque la première ligne est une entête (pour les fichiers CSV seulement). - Magento export file
Les fichiers d'export par défaut de Magento sont composés de lignes vides avec des valeurs des lignes principales. En activant cette option, les valeurs seront alors fusionnées dans les lignes principales.
Pour les fichiers JSON et XML, définissez :
- Path to products
Définissez le chemin qui cible les produits. Le chemin est sensible à la casse.
Définissez le chemin vers les produits pour vos fichiers XML ou JSON. - Data structure
Vous avez deux options : la Détection automatique ou la Structure prédéfinie.
La détection automatique convient aux fichiers simples composés d'un seul niveau de nœuds.
Si vous avez sélectionné Predefined structure, vous avez la possibilité de définir votre propre structure de fichier pour les fichiers XML et JSON.
Post Process Action
- Action
Ne rien faire
Supprimer le fichier d'import
Déplacer le fichier d'import - Move to folder
Définissez le chemin du fichier où vous souhaitez déplacer le fichier d'import, par rapport au répertoire racine Magento.
Notez que l'option ci-dessus est disponible seulement pour les fichiers de mise à jour stockés localement dans votre système de fichier Magento et depuis un serveur FTP.
- Run indexers
Vous pouvez choisir d'exécuter les index après l'import.
Vous avez la possibilité d'exécuter seulement les index nécessaires ou de sélectionner les index à mettre à jour.
catalog_url
catalog_product_priceSi le profil prend trop de temps à charger, vous pouvez désactiver les index.
Advanced Settings
Stock Settings
Dans Stock Settings, définissez :
- Automatic stock status update
Vous pouvez choisir de mettre à jour automatiquement le status de stock (in stock / out of stock). - Use relative quantity update
La quantité sera ajoutée/soustraite de la quantité actuelle.
Mapping & Rules
Dans cette partie, vous pouvez mapper chaque colonne du fichier avec un des attributs de stock.
Column Mapping
- Target Attribute
Sélectionnez l'attribut cible depuis ceux disponibles dans votre système.
Vous pouvez trouver tous les attributs regroupés par type dans notre documentation.
La première ligne est là où vous définissez l'identifiant de vos produits). L'identifiant doit être unique.
SKU - Data source
Dans les données sources, vous pouvez définir l'attribut source qui correspond à l'attribut cible de votre fichier.
id - Default value
Parfois, plusieurs colonnes peuvent être manquantes. Par exemple, lors de la mise à jour des stocks, le fichier ne comprend pas toujours tous les attributs de stock (backorders, minimum quantity in the cart...). Dans ce cas, vous pouvez choisir des valeurs personnalisées depuis la colonne Data source et appliquer une valeur par défaut.
yes
APERÇU RAPIDE DE L'INTERFACE
- Ajoutez autant de colonnes que vous le souhaitez en cliquant sur +. Souvent, le fichier de mise à jour peut contenir plus de colonnes que nécessaire; sachez que vous n'êtes pas obligés de les ajouter et de les mapper.
- SUPPRIMEZ une ligne facilement.
- Changez l'ordre de chaque ligne en utilisant le drag and drop.
- Désactivez une ligne en conservant sa configuration en cliquant sur le symbole liEN.
- Ajoutez votree propre script </>. Ces scripts peuvent être visible dans la blackbox. Notez que lorsqu'un script est ajouté, le symbole </> est souligné.
- Appliquez la couleur de votre choix pour chaque ligne.
- Appliquez le titre de votre choix pour chaque ligne.
- Prévisualisez votre fichier en cliquant sur INPut Data.
- Trouvez tous les attributs regroupés par type dans la Library.
- Vérifiez les données telles qu'elles seront mises à jour en cliquant sur Output Data.
Scheduled tasks
Vous pouvez planifier l'exécution d'un profil tous les jours, avec un interval par défaut de 30 minutes entre chaque execution.
Vous avez la possibilité de changer l'interval des tâches cron depuis l'onglet General Settings.
Action History
Dans l'onglet Action History, vous pouvez trouver un historique des générations et configurations précédentes.
Vous trouverez :
- ID
C'est l'identifiant de la ligne de l'historique. - Version ID
C'est l'identifiant de la version de configuration du profil. - Origin
C'est l'origine de l'action : Backend / Cron / CLI / API - Username
Il s'agit du nom de l'utilisateur à l'origine de l'action. - Action
Les actions disponibles sont: create (créer) / generate (générer) / update (mettre à jour) / delete (supprimer) - Details
Si vous cliquez sur More details, vous pouvez voir le détail de la mise à jour du profil depuis une grille.
Si vous cliquez sur une ligne de cette grille, vous pouvez alors voir les différences des champs mis à jour : en rouge sont affichées les données supprimées, en vert celles ajoutées. - Date
Il s'agit de la date de la modification.
Exécuter un profil Mass Stock Update
Depuis la grille des profils
Pour exécuter le profil depuis la grille, il vous suffit de cliquer sur RUN PROFILE dans le dropdown associé au profil. Une barre de progression affichera la progression de la tache.
Depuis la page du profil
Ouvrez le profil et cliquez sur le bouton RUN PROFILE NOW. Lorsque la mise à jour est terminée, un message s’affiche détaillant combien de produits ont été mis à jour et combien de produits ont été ignorés.
Via les taches cron
Lorsque vous avez configuré la tache cron d’un profil, celui sera exécuté automatiquement au jour et à l’heure sélectionnée.
Pour que les taches cron de Mass Stock Update fonctionnent, la tache cron Magento doit être configurée correctement.
Pour plus d’information sur les taches cron Magento, référez vous au guide officiel Magento:
http://devdocs.magento.com/guides/v2.0/config-guide/cli/config-cli-subcommands-cron.html
Vous recevrez une notification par mail lorsque la tâche cron est exécutée si vous avez configuré l’option dans:
Stores configurationMass Stock Update
Pour configurer le reporting, veuillez vous référer à la section:
Email reporting
En ligne de commande
Mass Stock Update inclut des lignes de commande accessible depuis n’importe quel terminal shell.
Pour exécuter le profil :
bin/magento wyomind:massstockupdate:run [-p|--profile_ids[="..."]]
Par exemple, pour le profil 2, exécutez :
bin/magento wyomind:massstockupdate:run -p 2
Pour exécuter les requêtes SQL qui sont générées lorsque le profil est paramétré pour utiliser le mode SQL :
bin/magento wyomind:massstockupdate:sql [-p|--profile_ids[="..."]]
Par exemple, pour le profil 4, exécutez :
bin/magento wyomind:massstockupdate:sql --profile_ids=4
Utiliser l'option SQL
Mettre à jour des stocks massivement peut garder votre serveur occupé un certain temps, surtout lorsque la mise à jour concerne de nombreux produits.
Mass Stock Update découpe donc le processus en 2 étapes distinctes:
- L’analyse du fichier source, la collecte des données et la construction du fichier SQL de mise à jour des stocks
- L’exécution du fichier SQL de mise à jour des stocks qui peut être exécuté de manière asynchrone.
Générer le fichier SQL
Si vous souhaitez générer un fichier SQL de mise à jour sans l'exécuter, vous devez activer l’option dans le profil:
SQL file name
Par défaut : MassStockUpdate.sql
SQL file path
Le dossier est relatif au dossier racine de l’instance Magento et ne peut pas être situé au dessus du dossier racine ou hors de l’instance Magento.
Par défaut : var/tmp/
Le fichier de mise à jour portera le nom du profil.
xml_sample.sql
Lancez l’exécution du profil en cliquant sur RUN PROFILE NOW
Exécuter le fichier SQL
Un fois le fichier généré dans le répertoire de travail (voir la section Settings ), il vous suffit de mettre à jour la base donnée avec ce fichier via les lignes de commande.
mysql -h host -p DbPassword -u DbLogin DatabaseName < path/to/mysql/file.sql
Utilisation avancée
Avec Mass Stock Update, plusieurs événements sont récupérés :
- massupdateimport_start
Récupéré lorsque le processus de mise à jour commence. - massupdateimport_success
Récupéré lorsque le profil est exécuté et que les données sont mises à jour avec succès. - massupdateimport_failure
Récupéré lorsque le profil n'est pas exécuté et que les données ne sont pas mises à jour.
Ces événements peuvent être utilisés dans vos observers.
L'argument passé est une instance de Wyomind/MassStockUpdate/Model/Profile.
Ci-dessous, vous trouverez des exemples d'utilisations dans un observer :
- Depuis etc/events.xml :
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../lib/internal/Magento/Framework/Event/etc/events.xsd"> <!-- Standard checkout --> <event name="massupdateimport_success"> <observer name="editor_module_massupdateimport_success" instance="Editor\Module\Observer\LassUpdateImportSuccess" /> </event> </config>
- Depuis app/code/Editor/Module/Observer/MassUpdateImportSuccess.php :
<?php namespace Editor\Module\Observer; class LassUpdateImportSuccess implements \Magento\Framework\Event\ObserverInterface { public function execute(\Magento\Framework\Event\Observer $observer){ $profile= $observer->getEvent()->getProfile(); // TODO: Implement your own logic. } }
Spécifications des attributs
Mass Stock Update vous permet de mettre à jour tous vos attributs de stock ainsi que les attributs Advanced Inventory ou Advanced MSI.
Attributs de stock
Vous pouvez mettre à jour tous les attributs de stocks que vous pouvez retrouver dans la page produit depuis la section Advanced Inventory dans :
CatalogInventoryProducts
Manage Stock
Use Config Manage Stock
Stock Status Changed Automatically
Changez automatiquement le statut de stock selon la quantité.
yes
Qty
Min Qty
Use Config Min Qty
Min Sale Qty
Use Config Min Sale Qty
Max Sale Qty
Use Config Max Sale Qty
Is Qty Decimal
Is Divided into Multiple Boxes for Shipping
Backorders
Use Config Backorders
Notify Stock Qty
Use Config Notify Stock Qty
Enable Qty Increments
Use Config Enable Qty Increments
Qty Increments
Use Config Qty Increments
Is In Stock
Multi-stock enabled
Activez la gestion de stocks avec Advanced Inventory.
enabled
Attributs Advanced Inventory
Tous les attributs relatifs à la gestion des stocks dans Advanced Inventory sont disponibles dans cette section.
L'ensemble des ces attributs doivent être mis à jour par des valeurs booléennes ou numériques.
Qty
Manage stock
Backorders allowed
Use config settings for backorders
Attributs MSI
Mass Stock Update vous permet de mettre à jour tous les attributs liés au module MSI de Magento.
Tous ces attributs doivent être mis à jour avec des valeurs numériques ou booléennes et mappés comme ci-dessous.
Quantity
Notify Qty
Use default for notify Qty
Stock Status
Attributs Advanced MSI
Mass Stock Update vous permet aussi de mettre à jour les attributs inclus avec l'extension Advanced MSI que vous pouvez retrouver dans la grille des stocks depuis :
CatalogStocks
Backorders
Backorders date
Backordered qty
API PHP pour Mass Stock Update
Mass Stock Update vous permet de personnaliser et de gérer les données finales en utilisant des scripts PHP selon différentes manières.
Règles de codage avec l'API
Pour chaque ligne dans l'onglet Mapping & Rules de votre profil, vous pouvez ajouter votre propre script basé sur une syntaxe PHP.
Pour ajouter votre propre script, cliquez sur </> au bout de la ligne que vous souhaitez éditer. Vous pouvez alors mettre à jour la valeur de chaque colonne.
Notez que le bouton </> peut être caché par la blackbox.
Balises d'ouverture et de fermeture
<?php
/* Your custom script */
return $self;
Récupérer une valeur
return
N'importe quelle valeur que vous souhaitez récupérer dans votre profil doit être utilisée avec l'instruction return.
Objet $this
$this->skip() ou return false (boolean false)
Pour ignorer la ligne en cours (toutes les colonnes de la ligne).
$this->skipRow() ou $this->skip() ou return false;
Pour ignorer la cellule en cours ainsi que les cellules suivantes.
$this->skipCell() ou return true;
Pour ignorer la cellule en cours.
Variable $cell
Vous pouvez appeler n'importe quelle colonne du fichier source en utilisant $cell. Il s'agit d'un tableau qui indexe chaque colonne numériquement (1,2,3,...) et avec une clé correspondant au nom de l'entête de la colonne ("name","description","price"...).
$cell["nom de la colonne"] ou $cell[INDEX]
Par exemple :
return $cell["description"]. " ".$cell["name"]
Variable $self
$self
Pour récupérer la valeur de la colonne actuelle et ainsi gérer les données :
<?php return $self;
Par exemple :
<?php return strtolower($self);
Exemples d'utilisation
Ci-dessous vous trouverez quelques exemples d'utilisation avec l'API PHP.
Changez le séparateur
Transformez un nombre à virgule et changer le séparateur par un point.
Par exemple :
<?php return ucwords(strtolower($self)); ?>
Changez un texte en minuscule ou majuscules
Changez un texte en minuscules et ajoutez une majuscule à la première lettre de chaque mot.
Par exemple :
<?php return array_pop(explode(",",$self)); ?>
Récupérez des images
Récupérez seulement une image à partir d'une liste.
Par exemple :
<?php return array_pop(explode(",",$self)); ?>
Regroupez plusieurs colonnes
Rassemblez plusieurs colonnes pour créer une description.
Par exemple :
<?php return $self." ".$cell["product_name"].", starting at $".$cell["price"]; ?>
Définissez la visibilité d'un produit
Définissez la visibilité d'un produit selon la colonne type.
Par exemple :
<?php
switch($self){
case "parent":
return "Catalog, Search";
break;
default:
return "Not visible individually";
}
?>
Mappez des valeurs à d'autres
Mappez des valeurs avec d'autres valeurs.
Par exemple :
<?php
if($self=="something"){
return "something else";
}
else if($self=="foo"){
return "bar";
}
else{
return "default value";
}
?>