Construire un outil d'importation CSV de produit dans OpenCart Partie 2

Dans notre dernier tutoriel, nous avons expliqué comment implémenter un outil d'importation, dans lequel nous avons créé un bouton d'importation et son modèle frontal. Nous verrons aujourd'hui comment importer directement dans notre système OpenCart les données en vrac de nos ordinateurs. 

Considérons d'abord la hiérarchie. Dans le didacticiel précédent, nous avons implémenté l'outil d'exportation, qui permet à l'utilisateur de télécharger des feuilles CSV et de les remplacer au besoin. Après cela, nous avons implémenté l'outil d'importation, qui permet à l'utilisateur de télécharger / importer ce fichier / ces données édités. Auparavant, nous avions implémenté la mise en page. Dans cet article, nous allons implémenter la fonctionnalité.

1. Fichier du contrôleur

Dans notre dernier tutoriel, nous avons créé un contrôleur qui nous pousse à la mise en page du formulaire de téléchargement. Dans le fichier de vue de la mise en page, nous avons eu une entrée de téléchargement dans laquelle l'utilisateur peut télécharger un fichier CSV, comme indiqué ci-dessous:

  1. Aller vers admin / controller / catalog / product.php.
  2. Trouvez le importCSV () Fonction que nous avons créée dans le précédent tutoriel.
  3. Endroit if (($ this-> request-> server ['REQUEST_METHOD'] == 'POST'))) après cela, pour s'assurer que la partie de code ne sera exécutée que si le formulaire ci-dessus est soumis.
  4. Dans le bloc de code ci-dessus, nous ajouterons le code expliqué étape par étape ci-dessous..

1.1 Obtenir le fichier

Le code suivant ouvre le fichier CSV soumis et le traite en lecture seule..

1.2 Parcourir chaque enregistrement

Nous devons maintenant passer au travers de chaque ligne du fichier CSV et enregistrer dans notre base de données. À cet égard, nous allons parcourir les enregistrements et les sauvegarder en conséquence..

model_catalog_product-> importCsvData ($ data); // analyse les données à modéliser else // en cas d'erreur, mettez le code de débogage ici?>

1.3 Réacheminement

Une fois l'importation terminée, l'utilisateur doit être redirigé. Le code suivant redirige l'utilisateur vers le formulaire et envoie un message de réussite..

session-> data ['success'] = 'CSV importé avec succès!'; // message de réussite $ this-> redirection ($ this-> url-> link ('catalogue / produit', 'token ='. $ this-> session-> data ['token']. $ url, 'SSL' )); // redirigé vers la page du produit?> 

Jusqu'à présent, nous avons créé une fonction qui télécharge uniquement le fichier CSV, lit ses données ligne par ligne et les analyse dans le modèle. Maintenant, nous devons créer un modèle tel que défini dans le code du contrôleur, qui est responsable de la sauvegarde des données analysées dans la base de données..

2. Fichier de modèle

  1. Aller vers admin / model / catalogue / product.php.
  2. Créez une fonction publique nommée ici importCsvData ($ data).
  3. Dans la fonction de modèle, nous allons ajouter ce code, qui contient des requêtes pour enregistrer les données.
db-> requête ("UPDATE" ".DB_PREFIX." produit 'SET. $ modèle. "", quantité = ". (int) $ quantité."' WHERE. $ product_id. "" "); // mise à jour du produit quantité et son modèle if ($ name) $ query = $ this-> db-> query ("UPDATE '" .DB_PREFIX. "product_description" SET. $ this-> db-> escape ($ name). "" WHERE . $ product_id. "" "); // met à jour le nom du produit?>

Conclusion

Le tutoriel d'aujourd'hui vise donc à fournir une solution complète pour le système d'exportation / importation. Nous fournissons une telle solution, dans laquelle les utilisateurs peuvent éditer / mettre à jour leurs données. Cette solution est très facile à utiliser et à mettre en œuvre. J'attends vos commentaires avec impatience. N'hésitez pas à laisser un commentaire ou une requête ci-dessous. Je vous remercie!