Dodaj skrypt do konwersji danych z pliku CSV na format XML dla produktów Candellux

This commit is contained in:
2025-03-31 20:20:40 +02:00
parent a0c0edfccb
commit 2668e4a025
2 changed files with 3628 additions and 0 deletions

65
interblue.pl/candelux.php Normal file
View File

@@ -0,0 +1,65 @@
<?php
$csvFile = 't_master_collection.csv';
if (!file_exists($csvFile)) {
die("Plik CSV nie istnieje.");
}
$handle = fopen($csvFile, 'r');
$headers = fgetcsv($handle, 0, ';');
$xml = new SimpleXMLElement('<?xml version="1.0" encoding="UTF-8"?><produkty></produkty>');
// Mapa nagłówków technicznych na pełne, polskie opisy do opisu produktu
$mapaOpisow = [
'Material' => 'Materiał wykonania',
'Kolor_pods' => 'Kolor podstawy',
'Klasa_energetyczna' => 'Klasa energetyczna',
'Ilosc_zrodel_swiatla' => 'Ilość źródeł światła',
'Zawiera_zrodlo_swiatla' => 'Czy zawiera źródło światła',
'Trzonek' => 'Rodzaj trzonka',
'Barwa_swiatla' => 'Barwa światła',
'Srednica_prod' => 'Średnica',
'Wysokosc_prod' => 'Wysokość',
'Szerokosc_prod' => 'Szerokość',
'Glebokosc_prod' => 'Głębokość',
'Wymiary <wys/szer/gle>' => 'Wymiary (wys. x szer. x gł.)',
'Waga_netto' => 'Waga netto',
];
while (($data = fgetcsv($handle, 0, ';')) !== false) {
$produkt = $xml->addChild('produkt');
$opis = "";
foreach ($headers as $i => $header) {
$value = isset($data[$i]) ? trim($data[$i]) : '';
$safeHeader = preg_replace('/[^a-zA-Z0-9_]/', '_', $header);
// Dodaj " Candellux" do nazwy handlowej
if ($header === 'Nazwa_handlowa') {
$value .= ' Candellux';
}
// Tworzenie opisu produktu z mapy opisów
if (array_key_exists($header, $mapaOpisow) && $value !== '') {
$opis .= $mapaOpisow[$header] . ': ' . $value . ". ";
}
// Normalny wpis XML
$produkt->addChild($safeHeader, htmlspecialchars($value));
}
// Dodanie wygenerowanego opisu produktu
$produkt->addChild('opis_produktu', htmlspecialchars(trim($opis)));
// Dodanie dodatkowych pól stałych
$produkt->addChild('producent', 'Candellux');
$produkt->addChild('marka', 'Candellux');
$produkt->addChild('kategoria', 'Oświetlenie');
}
fclose($handle);
$xml->asXML('output.xml');
echo "Konwersja zakończona sukcesem. Plik zapisano jako output.xml";
?>

File diff suppressed because it is too large Load Diff