Een product CSV-importtool bouwen in OpenCart deel 2

In onze laatste zelfstudie hebben we besproken hoe we een importtool kunnen implementeren, waarin we een importknop en de bijbehorende front-end template hebben gemaakt. Vandaag leren we hoe we de bulkgegevens van onze computers direct kunnen importeren in ons OpenCart-systeem. 

Laten we eerst de hiërarchie beschouwen. In de vorige zelfstudie hebben we de exporttool geïmplementeerd, waarmee de gebruiker CSV-bladen kan downloaden en naar behoefte kan wisselen. Daarna hebben we de importtool geïmplementeerd, waarmee de gebruiker die bewerkte bestanden / gegevens kan uploaden / importeren. Eerder implementeerden we de lay-out. In dit artikel zullen we de functionaliteit implementeren.

1. Besturingsbestand

In onze laatste zelfstudie hebben we een controller gemaakt die ons naar de lay-out van het uploadformulier duwt. In het weergavebestand van de lay-out hadden we een uploadinvoer waar de gebruiker een CSV kan uploaden zoals hieronder wordt weergegeven:

  1. Navigeren naar admin / controller / catalogus / product.php.
  2. Vind de importCSV () Functie, die we in de vorige zelfstudie hebben gemaakt.
  3. Plaats if (($ this-> request-> server ['REQUEST_METHOD'] == 'POST')) om ervoor te zorgen dat het codegedeelte alleen wordt uitgevoerd als het bovenstaande formulier wordt ingediend.
  4. Binnen het bovenstaande codeblok zullen we de onderstaande code stap voor stap toevoegen.

1.1 Het bestand ophalen

De volgende code opent het ingezonden CSV-bestand en behandelt het als alleen-lezen.

1.2 Doorloop elk record

Nu moeten we elke rij van de CSV doornemen en opslaan in onze database. In dit opzicht zullen we de records doorlopen en ze dienovereenkomstig opslaan.

model_catalog_product-> importCsvData ($ data); // ontleed de gegevens om te modelleren else // in geval van fouten, plaats hier de foutopsporingscode?>

1.3 Doorsturen

Nadat het importeren is voltooid, moet de gebruiker worden omgeleid, zodat de volgende code de gebruiker doorverwijst naar het formulier en een succesbericht geeft.

session-> data ['success'] = 'CSV is succesvol geïmporteerd!'; // succesbericht $ this-> redirect ($ this-> url-> link ('catalog / product', 'token ='. $ this-> session-> data ['token']. $ url, 'SSL' )); // doorverwezen naar de productpagina?> 

Tot nu toe hebben we een functie gemaakt die alleen de CSV uploadt, de gegevens regel voor regel leest en deze naar het model parseert. Nu moeten we een model maken zoals gedefinieerd in de controllercode, die verantwoordelijk is voor het opslaan van de geparseerde gegevens in de db.

2. Modelbestand

  1. Navigeren naar admin / model / catalogus / product.php.
  2. Maak daar een publieke functie mee benoemd importCsvData ($ data).
  3. In de modelfunctie zullen we deze code toevoegen, die enkele queries bevat om de gegevens op te slaan.
db-> query ("UPDATE" ".DB_PREFIX." product 'SET. $ model. "", quantity =' ". (int) $ quantity." 'WHERE. $ product_id. "" "); // product bijwerken hoeveelheid en het model als ($ naam) $ query = $ this-> db-> query ("UPDATE" ".DB_PREFIX." product_description 'SET. $ this-> db-> escape ($ name). "" WHERE . $ product_id "". "); // update de naam van het product?>

Conclusie

De tutorial van vandaag heeft dus alles te maken met het bieden van een complete oplossing voor het export- / importsysteem. We bieden een dergelijke oplossing, waarin gebruikers hun gegevens kunnen bewerken / bijwerken. Deze oplossing is super eenvoudig te gebruiken en ook te implementeren. Ik kijk uit naar uw feedback. Laat hieronder een opmerking of vraag achter. Dank je!