- Learn
- WooCommerce REST API: sincronizzazione con NodeJS e MongoDB
- Importare i prodotti di WooCommerce in MongoDB
Importare i prodotti di WooCommerce in MongoDB
In questo capitolo vedremo come importare i prodotti di WooCommerce in MongoDB. Per capire al meglio le interazioni tra NodeJS e Mongo useremo il driver ufficiale per MongoDB.
Installiamo il driver:
npm install mongodb --save
Quindi creiamo una classe base che gestirà solamente la connessione al database:
'use strict';
class db {
constructor() {
this.client = require('mongodb').MongoClient;
}
connect() {
return this.client.connect('mongodb://utente:[email protected]/db');
}
}
module.exports = db;
Ora definiamo questa classe nella funzione middleware della nostra applicazione:
app.use( (req, res, next ) => {
req.db = new db();
next();
});
Creiamo dalla shell di Mongo la collezione che ospiterà i prodotti di WooCommerce:
db.createCollection('products');
A questo punto creiamo la route che accetterà una richiesta in POST
che effettuerà l’importazione.
La procedura è semplice: reperiamo l’elenco dei prodotti di WooCommerce tramite API ottenendo un array di oggetti JSON. Quindi prima di importare ciascun prodotto verifichiamo che questo non sia già presente usando l’ID del prodotto così come viene restituito da WooCommerce:
importProducts: async (req, res) => {
try {
let data = await req.API.products();
let products = data.products;
req.db.connect().then(client => {
let db = client.db('db');
let prods = db.collection('products');
products.forEach(product => {
let id = product.id;
prods.count({id: id}, (err, num) => {
if(!err) {
if( num === 0 ) {
prods.insert(product);
}
}
});
});
res.redirect('/dashboard/import/?imported=1');
});
} catch(err) {
res.redirect('/dashboard/import');
}
}
Il driver di MongoDB non offre una connessione persistente come nel caso di Mongoose. Dobbiamo creare un’istanza del client, selezionare il database e quindi le collezioni. Da qui possiamo usare i metodi loro associati.
Ora abbiamo salvato i prodotti di WooCommerce nel nostro database. In seguito vedremo come gestirli.
Se vuoi aggiornamenti su WordPress inserisci la tua email nel box qui sotto:
Compilando il presente form acconsento a ricevere le informazioni relative ai servizi di cui alla presente pagina ai sensi dell'informativa sulla privacy.
La tua iscrizione è andata a buon fine. Se vuoi ricevere informazioni personalizzate compila anche i seguenti campi opzionali:
Compilando il presente form acconsento a ricevere le informazioni relative ai servizi di cui alla presente pagina ai sensi dell'informativa sulla privacy.
I Video di HTML.it
Come usare i tag Div con CSS
In questo video vedremo come utilizzare i tag Div per personalizzare alcune zone della propria pagina web grazie all’HTML e […]