78 lines
2.3 KiB
PHP
78 lines
2.3 KiB
PHP
<?php
|
||
// Konfiguracja bazy
|
||
$host = "localhost";
|
||
$db = "interblue_sklep";
|
||
$user = "interblue_sklep";
|
||
$pass = "2212+#++@pSVSb4";
|
||
$prefix = "ps_"; // zmień jeśli masz inny prefix
|
||
|
||
// Katalog docelowy
|
||
$exportDir = __DIR__ . "/export_images";
|
||
if (!is_dir($exportDir)) {
|
||
mkdir($exportDir, 0777, true);
|
||
}
|
||
|
||
// Tryb testowy – podaj EAN jednego produktu, np. "5901234567890"
|
||
// Jeśli pusty, poleci dla wszystkich produktów
|
||
$testEan = "";
|
||
|
||
// Połączenie z DB
|
||
$pdo = new PDO("mysql:host=$host;dbname=$db;charset=utf8", $user, $pass);
|
||
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
|
||
|
||
// Pobierz produkty
|
||
if ($testEan !== "") {
|
||
$sql = "SELECT p.id_product, p.ean13
|
||
FROM {$prefix}product p
|
||
WHERE p.ean13 = :ean";
|
||
$stmt = $pdo->prepare($sql);
|
||
$stmt->execute(['ean' => $testEan]);
|
||
$products = $stmt->fetchAll(PDO::FETCH_ASSOC);
|
||
echo "Tryb testowy – eksportuję tylko produkt o EAN: {$testEan}\n<br>";
|
||
} else {
|
||
$sql = "SELECT p.id_product, p.ean13
|
||
FROM {$prefix}product p
|
||
WHERE p.ean13 IS NOT NULL AND p.ean13 <> ''";
|
||
$products = $pdo->query($sql)->fetchAll(PDO::FETCH_ASSOC);
|
||
echo "Eksportuję wszystkie produkty\n<br>";
|
||
}
|
||
|
||
foreach ($products as $prod) {
|
||
$ean = $prod['ean13'];
|
||
$id_product = (int)$prod['id_product'];
|
||
|
||
// Pobierz zdjęcia produktu
|
||
$sqlImg = "SELECT id_image
|
||
FROM {$prefix}image
|
||
WHERE id_product = :id_product
|
||
ORDER BY position ASC";
|
||
$stmt = $pdo->prepare($sqlImg);
|
||
$stmt->execute(['id_product' => $id_product]);
|
||
$images = $stmt->fetchAll(PDO::FETCH_ASSOC);
|
||
|
||
if (!$images) {
|
||
echo "Brak zdjęć dla EAN: {$ean}\n<br>";
|
||
continue;
|
||
}
|
||
|
||
$i = 1;
|
||
foreach ($images as $img) {
|
||
$id_image = (int)$img['id_image'];
|
||
|
||
// Ścieżka do pliku (PrestaShop – struktura katalogów np. 123 -> /1/2/3/123.jpg)
|
||
$path = implode('/', str_split((string)$id_image)) . "/" . $id_image . ".jpg";
|
||
$src = __DIR__ . "/img/p/" . $path;
|
||
|
||
if (file_exists($src)) {
|
||
$dest = $exportDir . "/" . $ean . "_" . $i . ".jpg";
|
||
copy($src, $dest);
|
||
echo "Zapisano: $dest\n<br>";
|
||
} else {
|
||
echo "Brak pliku: $src\n<br>";
|
||
}
|
||
$i++;
|
||
}
|
||
}
|
||
|
||
echo "✅ Eksport zakończony.\n<br>";
|
||
?>
|