Dodaj skrypt do konwersji danych z pliku CSV na format XML dla produktów Candellux
This commit is contained in:
65
interblue.pl/candelux.php
Normal file
65
interblue.pl/candelux.php
Normal 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";
|
||||
?>
|
||||
3563
interblue.pl/t_master_collection.csv
Normal file
3563
interblue.pl/t_master_collection.csv
Normal file
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user