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.
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:
admin / controller / catalogus / product.php
.importCSV ()
Functie, die we in de vorige zelfstudie hebben gemaakt.if (($ this-> request-> server ['REQUEST_METHOD'] == 'POST'))
om ervoor te zorgen dat het codegedeelte alleen wordt uitgevoerd als het bovenstaande formulier wordt ingediend.De volgende code opent het ingezonden CSV-bestand en behandelt het als alleen-lezen.
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?>
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.
admin / model / catalogus / product.php
.importCsvData ($ data)
.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?>
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!