Importare prodotti in WooCommerce da un file Excel
Importare prodotti in WooCommerce da un file Excel presente sul server può essere utile per automatizzare l'aggiornamento del catalogo. Questa guida mostra come realizzare una procedura personalizzata utilizzando PHP e la libreria PhpSpreadsheet.
Requisiti
- WordPress con WooCommerce installato
- Accesso al server (FTP o SSH)
- Libreria
PhpSpreadsheetinstallata tramite Composer
Installazione di PhpSpreadsheet
Accedi alla root del tuo progetto WordPress ed esegui il seguente comando:
composer require phpoffice/phpspreadsheet
Struttura del File Excel
Assicurati che il file Excel (es. products.xlsx) contenga almeno queste colonne:
namedescriptionpriceskucategory
4. Codice PHP per l'importazione
Inserisci questo script in un file PHP custom (es. import-prodotti.php) nella root del tuo tema o plugin:
require __DIR__ . '/vendor/autoload.php';
use PhpOffice\PhpSpreadsheet\IOFactory;
function my_wc_import_products( $file_path ) {
$spreadsheet = IOFactory::load( $file_path );
$sheet = $spreadsheet->getActiveSheet();
$rows = $sheet->toArray();
foreach ( array_slice($ rows, 1 ) as $row ) {
[ $name, $description, $price, $sku, $category ] = $row;
$post_id = wp_insert_post([
'post_title' => $name,
'post_content' => $description,
'post_status' => 'publish',
'post_type' => 'product'
]);
if ( !is_wp_error( $post_id ) ) {
update_post_meta( $post_id, '_price', $price );
update_post_meta( $post_id, '_regular_price', $price );
update_post_meta( $post_id, '_sku', $sk u);
wp_set_object_terms( $post_id, $category, 'product_cat' );
}
}
}
// Percorso al file Excel presente sul server
$excel_file = __DIR__ . '/products.xlsx';
// Avvia l'importazione
my_wc_import_products( $excel_file );
Sicurezza
Non eseguire questo script da browser in produzione senza autenticazione. Proteggilo con un controllo di sicurezza o usalo solo in ambienti controllati.
Conclusione
Questa procedura consente di importare velocemente prodotti da un file Excel esistente sul server. Può essere personalizzata per gestire immagini, variabili, stock, e altre informazioni specifiche di WooCommerce.