Come esportare e importare gli ordini e i prodotti di WooCommerce senza plugin

Come esportare e importare gli ordini e i prodotti di WooCommerce senza plugin

La guida ideale per chi vuole esportare e importare gli ordini e i prodotti di WooCommerce da uno store a un altro in modo semplice e pulito.

Pubblicato il Scritto da Matteo Feduzi Sito Web, WordPress 13 commenti

Stavo lavorando al sito di un cliente quando mi trovo nella situazione di esportare e importare gli ordini e i prodotti di WooCommerce da un vecchio store a un nuovo store.

Semplice, no? Basta che scarico uno dei tanti plugin e il gioco è fatto.

E invece no, perché nella maggior parte dei casi sono dei plugin orrendi, a pagamento o che generano più casino che altro.

Dunque in questa guida ti mostro come esportare e importare gli ordini e i prodotti di WooCommerce da uno store a un altro senza alcuna fatica direttamente utilizzando il database e dunque senza scaricare alcun plugin, ma specialmente effettuando un procedimento il più pulito possibile.

Sei pronto? Si parte, eureka! 😉

Come esportare gli ordini WooCommerce del vecchio store

Per prima cosa andiamo nel database del vecchio store.

Se hai vari database e non conosci quale database stai utilizzando vai sul sito in questione all’interno della bacheca WordPress, poi seleziona “Strumenti” > “Salute del sito (Site Health)”, clicca “informazioni” e qui apri il pannello “Database”. Alla voce “Nome del database” troverai il nome del database utilizzato dal sito.

Ora torna nel gestionale che utilizzi per gestire i database (molto probabilmente phpMyAdmin).

Puoi raggiungere phpMyAdmin o il programma analogo che utilizza il tuo hosting direttamente entrando sul pannello di controllo grafico (solitamente cPanel o Plesk) e selezionando sotto la categoria “DATABASE” l’apposita voce.

Ora sei correttamente su phpMyAdmin, seleziona il database del vecchio store che abbiamo trovato prima e seleziona la voce SQL. Ti dovresti trovare davanti alla schermata seguente.

Inserisci la seguente query e clicca sul bottone “Esegui” in basso a destra.

SELECT * FROM wp_posts WHERE post_type="shop_order"

Assicurati di cambiare il prefisso “wp” di “wp_posts” con il tuo prefisso. Puoi capire quale sia il prefisso delle tue tabelle guardando il prefisso della maggior parte delle altre tue tabelle, direttamente su WordPress sotto il “Nome del database”, dal file wp-config.php e altro ancora.

Assicurati in tutti i casi che il nome della tabella del vecchio sito sia diversa da quella del nuovo sito nel caso in cui esista già. Se così non fosse cambia il nome della tabella nel vecchio sito.

Così facendo riporterai tutti gli ordini. Esportali selezionando la voce “Esporta” sotto “Operazioni sui risultati della query”.

Assicurati di cliccare la voce corretta. Se clicchi qualsiasi altro “esporta” esporterai tutto ciò che è contenuto all’interno della tabella “wp_posts”.

Poi seleziona “Personalizzato”, imposta la compressione nel formato gzip, scorri fino alla fine della pagina e fai clic su esporta come nell’immagine che segue.

Ora abbiamo il file che contiene tutti gli ordini, ma dobbiamo esportare anche i metadati dei vari ordini. Per farlo eseguiamo la seguente query ed esportiamo come per il metodo precedente:

SELECT * FROM wp_postmeta WHERE post_id in(SELECT ID FROM wp_posts WHERE post_type="shop_order")

Come sempre ricordati di cambiare il prefisso delle tabelle. Potresti anche avere solamente “wp” come prefisso, ma molti hosting per rafforzare la sicurezza aggiungono qualcos’altro come “wpo7”. Considera che non ripeterò questa cosa nei passaggi successivi, ma dovrai sempre farlo.

Ottimo, ora abbiamo due file. Il file SQL degli ordini e dei metadati degli ordini. Ci mancano solamente altri due file e poi possiamo importare il tutto sul nuovo store.

Eseguiamo dunque la seguente query ed esportiamo i risultati come per le altre due esportazioni:

SELECT * FROM wp_woocommerce_order_items

E infine eseguiamo questa ed esportiamo sempre come per i punti precedenti:

SELECT * FROM wp_woocommerce_order_itemmeta

Ottimo, that’s it! Adesso non ci resta altro che passare all’importazione.

Come importare gli ordini WooCommerce nel nuovo store

Se lo store è completamente nuovo e non hai ancora apportato nessuna aggiunta come transazioni, nuove pagine o articoli e altro, è molto semplice importare tutto. Non dovrai far altro che andare su phpMyAdmin > database del nuovo store > importa.

Qui scegli ed esegui uno ad uno i 4 file di esportazione in tuo possesso.

Se esistono già queste 4 tabelle rimuovile prima dell’importazione.

Ottimo, anche qui il gioco è fatto!

Ma cosa succede nel caso tu stia facendo l’importazione su uno store già live o che ha già varie modifiche? In questo caso dovrai unire le tabelle importare con le tabelle già esistenti. Per farlo importa le 4 tabelle e poi per ognuna vai sulla tabella in questione > Operazioni e nel box alla voce “Copia la tabella in (database.tabella)” indica la tabella in cui vuoi portare i dati e indica che vuoi portare “Solo i dati”.

Ottimo, hai appena completato l’importazione.

Come esportare i prodotti WooCommerce del vecchio store

Abbiamo appena finito di importare gli ordini, ma cosa ne è dei prodotti? Vediamo subito come recuperarli. Per prima cosa eseguiamo questa query:

SELECT * FROM wp_posts WHERE post_type="product"

Le query che escono fuori dovrebbe corrispondere al numero dei prodotti che hai sul vecchio store, esporta il risultato con il classico metodo.

Come per gli ordini ora però abbiamo bisogna di esportare anche i metadati dei prodotti:

SELECT * FROM wp_postmeta WHERE post_id in(SELECT ID FROM wp_posts WHERE post_type="product")

Ottimo, ora esporta anche le seguenti tabella: wp_wc_order_product_lookup, wp_wc_product_meta_lookup e wp_woocommerce_downloadable_product_permissions.

Questo serve a riprendere le transazioni avvenute con i relativi prodotti, i loro meta dati e i permessi di download.

Ora dovresti possedere 5 file di esportazione e siamo pronti per importarli sul nuovo store.

Come importare i prodotti WooCommerce nel nuovo store

Per le ultime tre tabelle che abbiamo esportato l’importazione è molto più semplice. Basta andare nel pannello “importa” e importare uno a uno il file di esportazione.

Per le prime due tabelle invece bisognerà seguire il procedimento di unificazione della tabella già esistente con quella da importare.

Fatto. Semplice, vero?

Conclusioni

Questa guida per esportare e importare gli ordini e i prodotti di WooCommerce è nata dal momento in cui, cercando in rete, non sono riuscito a trovare delle informazioni precise che portassero al risultato mostrato.

In tutti i casi ogni articolo consigliava un plugin, ma testandoli mi rendevo conto di quanto andassero a riempire il database duplicando a volte alcune informazioni.

È così che ho deciso di creare una guida il più pulita possibile che mostra come esportare e importare solo i dati essenziali.

Se hai trovato utile questa guida condividila con chi come te potrebbe trovarla utile e non dimenticare di lasciare un commento semplicemente anche solo per fare un saluto 😉

13Commenti
Lascia un commento
  1. Matteo Campanini

    Ciao Matteo, ho trovato molto utile la tua guida. Ho solo un paio di problemi:
    non trovo nel DB da esportare le tabelle wp_wc_order_product_lookup e wp_wc_product_meta_lookup. Probabile la versione di WooCommerce fosse troppo vecchia e registrasse quei dati diversamente.
    L’altro scoglio da superare è l’unione finale della tabella esistente sul nuovo con quella esportata dal vecchio..

    1. Matteo Campanini

      Ho superato il probelma dell’unione tabelle esportando i dati di una ed importandoli nell’altra (mi stavo davvero perdendo in un bicchier d’acqua).
      Come fare invece per recuperare le immagini…e “legarle” ai prodotti ora importati?

    2. matteofeduzi

      Ciao Matteo, grazie per lo spunto, appena possibile amplierò la guida e mostrerò come fare! 🙂

  2. Roberto

    Ciao e complimenti per la guida molto chiara e utile. Una domanda: come faccio a importare anche le categorie o i tag? Ho seguito la tua procedura e riesco a esportare e importare tutti i prodotti e gli ordini, ma le categorie e i tag no.
    Grazie mille per l’aiuto!

    1. matteofeduzi

      Ciao Roberto, grazie per lo spunto, vediamo di aggiornare l’articolo questo fine settimana! 😉

  3. Alex

    Ciao Matteo grazie per la guida.

    Non mi è chiaro il passaggio in cui bisogna selezionare o deselezionare alcune righe di un database.

    Io dovrei importare solo la lista degli ordini WooCommerce dal sito Live al sito in Staging (che poi una volta completato diventerà il sito Live)
    Il sito Live ha una struttura completamente diversa rispetto al sito in Staging quindi non posso eliminare o mergiare nulla (post, articoli, prodotti, etc) ma devo solo portare gli ordini effettuati da un posto all’altro.

    Se la domanda è troppo complicata oppure ha bisogno di una spiegazione più approfondita è possibile organizzarci per una consulenza?

    Grazie

    1. matteofeduzi

      Ciao Alex, scusa il ritardo nella risposta ma ero fuori. Sei riuscito a risolvere? 😉

    2. Alessandro

      Ciao Matteo no, ti ho ho inviato una email

    3. matteofeduzi

      Ciao Alessandro, bene! 😉

  4. marco

    Ciao, ho provato a seguire il tuo schema, ma quando ho lanciato il sito l’ho trovato down. Probabilmente non ho eseguito alcuni passaggi che a me sembravano chiari.

    1. matteofeduzi

      Ciao Marco, scusa il ritardo nella risposta. Sei riuscito a risolvere?

  5. Martin

    Semplice e descritta bene. Grande!

    1. Matteo Feduzi

      Grazie mille Martin!

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *