Návod na velmi jednoduchý import z XLS souboru včetně atributů Připravte si, jaké parametry produktu budete importovat a ty vepište do jednotlivých sloupců. Soubor uložíme (v tomto případě jako import.xls) a pomocí FTP klienta (např. Total Commander) nahrajeme na FTP Vašeho eshopu. V zájmu pořádku doporučuji v adresáři FILES vytvořit nový adresář IMPORT. Do tohoto adresáře tedy uložíme Váš soubor IMPORT.XLS Přihlašte se do administrace Vašeho eshopu, poté na záložce ZBOŽÍ vybereme IMPORT DAT (1), a dále vybereme VYTVOŘIT NOVÉ TÉMA (2): Další krok je výběr cesty a souboru s Vámi vytvořeným importem, tedy:
Jak vidíte, tak SQC automaticky rozpoznal pole POPIS a CENA. Můžete použít názvy sloupců v XLS přesně podle SQC, pak tedy budou všechny přiřazeny automaticky. V tomto případě je smažeme a vytvoříme nové. Prvním výběrem definujeme produkt v SCQ, druhým přiřazujeme hodnotu z XLS souboru. V tomto druhém výběru znamená číslo v hranatých závorkách [ ] pořadí sloupce v XLS, přičemž první sloupec = 0, druhý = 1,. TIP: Můžete použít data vícekrát, např. kód z XLS můžeme použít jako kód zboží a kód výrobce a třeba doplňující název v SQC. Tedy začneme s přípravou importu. V našem případě importujeme 17 hodnot (první sloupec = 0 = je pořadí produktu v XLS. Prozatím si však připravíme pouze 16 elementů (vyjma atributů) tlačítkem PŘIDAT ELEMENT :
Připravili jsme tedy všech 16 hodnot a přiřadili je hodnotám Stiskem tlačítka AKTUALIZOVAT se nám načte náhled námi připraveným dat z XLS.
Pomineme-li zatím atributy, je náš import v pořádku, tedy jej uložíme tlačítkem ULOŽIT. Takto se vrátíme na stranu importu, kde máme již připravený název importu (1), který se vytvořil podle názvu souboru a připravený odkaz pro CRON (2). Stiskem IMPORT se dostaneme k potvrzení importu, kde můžete opět vidět náhled produktu. Pokračujeme tlačítkem PROVÉST IMPORT. Po skončení importu jsme zpět na stránce IMPORT DAT. Pokud jsme v nastavení importu zadali vytváření kategorií, tak se nám produkt zařadil do těchto nových kategorií a výrobců. Jak vidíte produkt je hotov TIP: Před finálním importem dat doporučuji vymazat v XLS první řádek, tento nám vytváří stránku kategorie kategorie, stránku výrobce a produkt název 1 název 2.
Pojďme se podívat na možnosti při importu produktu: 1) Sloupec popis malý zde můžeme zadat cestu k obrázkům např. definujícím vlastnosti produktu v buňce je původní text, doplněný o cestu k obrázkům včetně popisky, dobré je odřádkovat (viz buňka) 2) Sloupec popis zde můžeme vytvořit (formou základní html) text, který ve výsledku vypadá takto: Vyráběná ve velikostech: 11 16 Materiály: textil / syntetika 3) Sloupec kategorie do tohoto sloupce zadáte kategorie a podkategorie a pod. kde chcete mít produkt zobrazen 4) středníkem je oddělena podkategorie - tedy produkt bude v kategorii "Dětská obuv" a podkategorii tenisky", na dalším řádku je další kategorie a za středníkem podkategorie (při požadavku zobrazení do více kategorií) 4) Sloupec soubory zde zadáváme cestu k obrázkům (včetně případného podadresáře) další obrázky jsou oddělené čárkou Výsledek pak zde :
V tuto chvíli je třeba doplnit atributy produktu. Vytvořené a uložené nastavení importu s názvem IMPORT nám vytvořilo soubor import.php na FTP serveru v adresáři /etc/xml_import/. Tento soubor potřebujeme editovat, například PSPad editorem. Takto vypadá uložený soubor <?php defined('sqc') or die('no direct access.' /* GENERATED BY SUPER QC 1.3.15; 2012-02-11 17:29:06; 19ac41b8d077e2d2dd7e8e6c1cc33f */ $import_options = array( 'datafile' => 'files/imp/import.xls', 'datatype' => 'xls', 'product_element' => NULL, 'mode' => 0, 'delete_products' => 0, 'create_categories' => 1, 'variant_element' => '', 'category_parent' => '', 'files_target' => '', 'product_unique' => 'sku', 'encoding' => '', 'elements' => array( 'name' => 1, 'nameext' => 2, 'status' => 3, 'position' => 4, 'description_short' => 5, 'description' => 6, 'price' => 7, 'price_old' => 8, 'vat' => 9, 'stock' => 10, 'availability' => 11, 'sku' => 12, 'guarantee' => 13, 'categories' => 14, 'manufacturers' => 15, 'files' => 16, ), /* (DO NOT REMOVE THIS LINE) PUT YOUR CONTENT AND FUNCTIONS BELOW */ Abychom byli schopni importovat atributy ze sloupce atributy musíme je definovat pomocí funkce import_variant ), 'description_short' => 5, 'description' => 6, 'price' => 7, 'price_old' => 8, 'vat' => 9, 'stock' => 10, 'availability' => 11, 'sku' => 12, 'guarantee' => 13, 'categories' => 14, 'manufacturers' => 15, 'files' => 16, 'attributes' => 'function(import_variants)', /* (DO NOT REMOVE THIS LINE) PUT YOUR CONTENT AND FUNCTIONS BELOW */ function import_variants($product, $data, $options){ $variants = array( ; foreach(explode('/', $product[17]) as $variant){ $variants[] = array( 'name' => 'Velikost', 'value' => $variant, 'price' => null return $variants;
Žlutě značená je definice atributu, která definuje danou funkci a ve spodní části je její upřesnění. Nás zajímá (červeně značeno) oddělovač atributů v buňce tedy lomítko (nedoporučuji měnit), pak pořadí sloupce v XLS tedy 17 (viz výše) a pak název atributu v tomto případě Velikost. Zadáme tedy hodnoty do buňky takto: Výsledek vidíme ihned v administraci eshopu, v editaci uloženého schéma import, které jsme si již vytvořili: Název atributu se Vám bude neustále opakovat. Vámi požadovaný název atributu vepište mezi apostrofy místo Velikost. Touto funkcí dosáhneme jednoduchého výběru námi definovaných atributů v XLS se stejnou cenou v tomto případě vhodné např. pro eshop s obuví či oděvy. Dále změňte pořadí sloupce ve Vámi vytvořeném XLS souboru [17].
Pojďme si ukázat ještě dva příklady atributů 1) Definici několika atributů současně ), 'guarantee' => 13, 'categories' => 14, 'manufacturers' => 15, 'files' => 16, 'attributes' => 'function(import_variants)', /* (DO NOT REMOVE THIS LINE) PUT YOUR CONTENT AND FUNCTIONS BELOW */ function import_variants($product, $data, $options){ $variants = array( ; foreach(explode(' ', $product[17]) as $group){ preg_match('/^(.*)\((.*?)\)$/', $group, $matches $name = trim($matches[1] foreach(explode(',', $matches[2]) as $value){ $variants[] = array( 'name' => $name, 'value' => trim($value), 'price' => null return $variants; Opět definujeme sloupec [17] a poté vložíme do buňky data pro vice atributů: Jak vidíte tak zde je název atributu jako první, v kulatých závorkách jsou hodnoty atributu, oddělení pro další atribut je svislé lomítko a poté je další atribut Výsledek je vidět v náhledu importu a v produktu POZNÁMKA: Atributy se seřadí abecedně
2) Definici atributů s jednotlivými cenami ), 'guarantee' => 13, 'categories' => 14, 'manufacturers' => 15, 'files' => 16, 'attributes' => 'function(import_variants)', /* (DO NOT REMOVE THIS LINE) PUT YOUR CONTENT AND FUNCTIONS BELOW */ function import_variants($product, $data, $options){ $variants = array( ; foreach(explode('/', $product[17]) as $group){ preg_match('/^(.*)\((.*?)\)$/', $group, $matches foreach(explode(',', $matches[1]) as $value foreach(explode(',', $matches[2]) as $price){ $variants[] = array( 'name' => 'Velikost', 'value' => $value, 'price' => $price return $variants; Opět definujeme sloupec [17] a poté vložíme do buňky data pro vice atributů: Jak vidíte tak zde není název atributu, ten je zadán v PHP napevno jako Velikost. Buňka obsahuje hodnotu prvního atributu, v kulatých závorkách je cena, lomítkem / je další hodnota atributu, závorce opět cena, atd. Cena může být viz vzor (případně se znaménkem +), tedy se hodnota přičítá k Vámi zadané ceně ve sloupci cena. Zadáte-li v závorce znaménko (mínus) bude se tato hodnota odečítat. Výsledek je vidět v náhledu importu a v produktu