| Server IP : 80.211.21.168 / Your IP : 216.73.217.33 Web Server : Apache System : Linux alex-webdesign.it 3.10.0-1160.119.1.el7.tuxcare.els22.x86_64 #1 SMP Mon Aug 18 06:07:12 UTC 2025 x86_64 User : admin_japan ( 10003) PHP Version : 8.2.32 Disable Function : opcache_get_status MySQL : OFF | cURL : ON | WGET : OFF | Perl : OFF | Python : OFF | Sudo : OFF | Pkexec : OFF Directory : /var/www/vhosts/cerchijapan.it/scaricoragazzon.com/ps/ |
Upload File : |
<?php
// Include la libreria PrestaShop Webservice
require_once('./PSWebServiceLibrary.php');
// Definisci le credenziali del WebService
define('PS_SHOP_PATH', 'https://www.scaricoragazzon.com/api');
define('PS_WS_AUTH_KEY', '5MZI9AAXFK81GPQUKWZYDW325Y51T593');
// Inizializza il WebService
$webService = new PrestaShopWebservice(PS_SHOP_PATH, PS_WS_AUTH_KEY, false);
// Apri il file CSV
if (($handle = fopen("ragazzon_finito.csv", "r")) !== false) {
// Leggi il file CSV riga per riga
while (($data = fgetcsv($handle, 1000000, ";")) !== false) {
// Ignora l'intestazione
if ($data[0] != 'ID') {
// Crea un array con i dati del prodotto
$product_data = array(
'id' => $data[0],
'reference' => $data[1],
'name' => $data[2],
'price' => $data[3],
'wholesale_price' => $data[4],
'quantity' => $data[5],
'active' => $data[9],
'features' => $data[10],
'ean13' => $data[11],
'images' => explode(', ', $data[12]),
'category' => $data[13],
'short_description' => $data[14],
'description' => $data[15],
'meta_title' => $data[16],
'meta_description' => $data[17],
'brand' => $data[19],
'delete_existing_images' => $data[20]
);
try {
// Verifica se il prodotto esiste giĆ
$opt = array(
'resource' => 'products',
'filter[id]' => $product_data['id']
);
$xml = $webService->get($opt);
$product = $xml->products->product[0];
} catch (PrestaShopWebserviceException $e) {
// Se il prodotto non esiste, crea un nuovo prodotto
$xml = $webService->get(array('url' => PS_SHOP_PATH.'/api/products?schema=blank'));
$product = $xml->product[0];
}
// Imposta i dati del prodotto
// Imposta i dati del prodotto
$product->reference = $product_data['reference'];
$product->name->language[0][0] = $product_data['name'];
$product->price = $product_data['price'];
$product->wholesale_price = $product_data['wholesale_price'];
$product->quantity = $product_data['quantity'];
$product->active = $product_data['active'];
$product->ean13 = $product_data['ean13'];
// ... altre impostazioni di prodotto ...
// Impostazione delle categorie, descrizioni, meta dati, e brand
$product->id_category_default = $product_data['category']; // Supponendo che category sia un ID di categoria valido
$product->description_short->language[0][0] = $product_data['short_description'];
$product->description->language[0][0] = $product_data['description'];
$product->meta_title->language[0][0] = $product_data['meta_title'];
$product->meta_description->language[0][0] = $product_data['meta_description'];
$product->manufacturer_name = $product_data['brand']; // Supponendo che brand sia un nome di marca valido
// ... altri campi ...
if ($product_data['delete_existing_images'] == 'Si') {
try {
// Ottieni le immagini esistenti del prodotto
$opt = array(
'resource' => 'images',
'filter[id_product]' => $product_data['id'],
);
$xml = $webService->get($opt);
foreach ($xml->images->image as $image) {
// Elimina ogni immagine
$webService->delete(array('resource' => 'images', 'id' => $image->attributes()->id));
}
} catch (PrestaShopWebserviceException $e) {
// Gestisci l'errore
}
}
// Aggiungi nuove immagini al prodotto
foreach ($product_data['images'] as $image_url) {
try {
// Prepara i dati dell'immagine
$image_data = array(
'id_product' => $product_data['id'],
'image' => base64_encode(file_get_contents($image_url)),
);
// Crea una nuova risorsa immagine
$xml = $webService->get(array('url' => PS_SHOP_PATH.'/api/images/products?schema=blank'));
$image = $xml->children()->children();
foreach ($image_data as $key => $value) {
$image->$key = $value;
}
// Salva la nuova immagine
$opt = array('resource' => 'images/products');
$opt['postXml'] = $xml->asXML();
$webService->add($opt);
} catch (PrestaShopWebserviceException $e) {
// Gestisci l'errore
} catch (Exception $e) {
// Gestisci errori generali come problemi di accesso al file
}
}
// Salva il prodotto
$opt = array('resource' => 'products');
$opt['putXml'] = $xml->asXML();
$webService->edit($opt);
}
}
fclose($handle);
}
?>