Creazione di uno strumento di importazione CSV prodotto in OpenCart parte 2

Nel nostro ultimo tutorial abbiamo discusso su come implementare uno strumento di importazione, in cui abbiamo creato un pulsante di importazione e il suo modello di front-end. Oggi impareremo come possiamo importare direttamente i dati di massa dai nostri computer al nostro sistema OpenCart. 

Consideriamo prima la gerarchia. Nel tutorial precedente abbiamo implementato lo strumento di esportazione, che consente all'utente di scaricare i fogli CSV e alternare secondo necessità. Successivamente abbiamo implementato lo strumento di importazione, che consente all'utente di caricare / importare quel file / dati modificati. In precedenza abbiamo implementato il layout. In questo articolo, implementeremo la funzionalità.

1. File del controller

Nel nostro ultimo tutorial, abbiamo creato un controller che ci spinge al layout del modulo di caricamento. Nel file di visualizzazione del layout, avevamo un input di caricamento in cui l'utente può caricare un CSV come mostrato di seguito:

  1. Navigare verso admin / regolatore / Catalogo / Product.php.
  2. Trovare la importCSV () Funzione, che abbiamo creato nel tutorial precedente.
  3. Posto if (($ this-> request-> server ['REQUEST_METHOD'] == 'POST')) dopo di esso, per garantire che la parte di codice verrà eseguita solo se viene inviato il modulo sopra.
  4. All'interno del blocco di codice sopra riportato, aggiungeremo il codice spiegato passo dopo passo.

1.1 Ottenere il file

Il codice seguente apre il file CSV presentato e lo gestisce come di sola lettura.

1.2 Attraversare ogni record

Ora dobbiamo passare attraverso ogni riga del CSV e salvare nel nostro db. A questo proposito, analizzeremo i record e li salveremo di conseguenza.

model_catalog_product-> importCsvData ($ data); // analizza i dati sul modello else // in caso di errori, inserisci qui il codice di debug?>

1.3 Reindirizzamento

Al termine dell'importazione, l'utente deve essere reindirizzato, quindi il codice seguente reindirizza l'utente al modulo e fornisce un messaggio di successo.

session-> data ['success'] = 'CSV importato con successo!'; // messaggio di successo $ this-> redirect ($ this-> url-> link ('catalog / product', 'token ='. $ this-> session-> data ['token']. $ url, 'SSL' )); // reindirizzato alla pagina del prodotto?> 

Fino a questo punto, abbiamo creato una funzione che carica solo CSV, legge i dati riga per riga e li analizza nel modello. Ora dobbiamo creare un modello come definito nel codice del controller, che è responsabile del salvataggio dei dati analizzati nel db.

2. File di modello

  1. Navigare verso admin / modello / Catalogo / Product.php.
  2. Crea una funzione pubblica lì nominata importCsvData ($ data).
  3. All'interno della funzione modello, aggiungeremo questo codice, che contiene alcune query per salvare i dati.
db-> query ("UPDATE" ".DB_PREFIX." prodotto 'SET. $ model. "" quantità =' ". (int) $ quantità." 'WHERE. $ product_id. "" "); // aggiornamento prodotto quantità e il suo modello if ($ nome) $ query = $ this-> db-> query ("UPDATE" ".DB_PREFIX." product_description "SET. $ this-> db-> escape ($ name)." "WHERE . $ product_id "". "); // aggiorna il nome del prodotto?>

Conclusione

Quindi, il tutorial di oggi consiste nel fornire una soluzione completa per il sistema di esportazione / importazione. Forniamo una tale soluzione, in cui gli utenti possono modificare / aggiornare i propri dati. Questa soluzione è super facile da usare e implementare. Non vedo l'ora di ricevere il tuo feedback. Sentiti libero di lasciare un commento o una domanda qui sotto. Grazie!