Webotvůrci

Doplněk Sady produktů – hromadná tvorba sad a jejich vizuální propojení

Upraveno: 11. 3. 2025
Jste zde:
Délka čtení: 8 min

Doplněk Sady produktů je přímo z dílny společnosti Shoptet a umožňuje eshopům tvořit, jak napovídá název, sady produktů z jednotlivých produktů, které jsou dostupné k prodeji.

Kromě toho, že při objednávce takové sady si zákazník přidá do košíku všechny položky, vy máte možnost si nastavit u každé sady cenu, která se nemusí odvíjet od ceny jednotlivých položek v sadě. Navíc vám budou sedět sklady, protože položky samostatných produktů se budou odečítat.
Pro základní návod tvorby sad, prosím využijte návod přímo do Shoptetu, který najdete zde. Ten vás provede manuální tvorbou sad v administraci Shoptetu. Tento přístup zvolte, pokud je sad k vytvoření do 30 ks (nebo kolik vám karpální tunely dovolí). Pokud si chcete manuální tvorbu ulehčit, vytvořte si jednu sadu, kterou následně budete kopírovat tlačítkem Kopírovat a na kopiích měňte potřebná data – kódy, položky sady, parametry, ceny atd.

Doplněk má však jedno omezení – neumí pracovat s variantami produktů. To znamená, že pokud například prodáváte oblečení, do jedné sady lze přidat vždy jen jednu konkrétní variantu každého produktu. Ruční tvorba sad tak může být časově náročná, pokud produkty v sadě mají hodně variant.

Abychom vám práci usnadnili, připravili jsme návod na hromadnou tvorbu sad pomocí importů spolu se skriptem pro Google Sheets, který automaticky spočítá všechny potřebné kombinace.

Video

Příprava produktů do sad

Než začnete s tvorbou sad, ujistěte se, že všechny produkty, které do sad zahrnete:

  • Jsou dostupné ve stejném skladu.
  • Mají stejnou viditelnost a dostupnost.

Viditelnost a dostupnost produktů se totiž automaticky přenáší i na vytvořené sady. Pokud tedy chcete, aby sada byla viditelná a dostupná ke koupi, musí mít správně nastavené i jednotlivé produkty.

Tvorba první sady

V e-shopu si nejprve vytvořte jednu sadu (viz Návod k doplňku Sady produktů), která bude sloužit jako šablona pro ostatní. Při tvorbě:

  • Používejte univerzální texty, aby byly použitelné i pro další kombinace.
  • Vyberte obrázky, které lze využít i u ostatních sad (případně je později doplníte).

Následně si stáhněte export, ve kterém bude vaše vzorová sada vidět. Export by měl obsahovat všechny relevantní sloupce pro tvorbu souboru k importu. Povinné sloupce jsou:

  • code
  • pairCode
  • name
  • price

Další sloupce závisí na vašem e-shopu a samotném produktu (může se jedna o kategorie, popisy, meta popisy, seotitle, parametry….), ale doporučujeme vyhnout se těmto:

  • atypicalShipping
  • atypicalBilling
  • adult

Pokud byste tyto sloupce ponechali v exportu s hodnotou 0, při importu se automaticky aktivuje příznak pro atypickou platbu, dopravu nebo označení „pro dospělé“, což může způsobit nedostupnost produktu k prodeji a nutnost dodatečných úprav. Pokud je tyto parametry nepotřebujete, ponechte je prázdné nebo tyto sloupce úplně pro import odstraňte.

Zároveň nedoporučujeme exportovat sloupce pro skladové zásoby, protože skladovost sad se počítá automaticky podle skladových zásob jednotlivých komponent.

Kombinování

Dalším krokem je naplánovat, jaké sady chcete prodávat. Celkový počet sad lze vypočítat jednoduše vynásobením počtu variant jednotlivých produktů.

Příklad – dárkový balíček pro různé členy rodiny

Máme tři kategorie produktů:

  • Hrnky (4 typy)
    • Pro babičku → kód 01111
    • Pro dědečka → kód 044440
    • Pro tatínka → kód 02222
    • Pro maminku → kód 03300300.0
  • Snacky (2 typy)
    • Slaný snack → SNACK01
    • Sladký snack → SNACK02
  • Víno (2 druhy)
    • Bílé víno → BIL100
    • Červené víno → CER200

Počet možných sad se vypočítá jako:
4 hrnky × 2 snacky × 2 vína = 16 různých sad

Jak si kombinace přehledně zapsat

Nejlepší způsob, jak si kombinace připravit, je použít tabulkový editor. V něm si můžete:

  1. Rozepsat kombinace produktů spolu s jejich kódy.
  2. Vytvořit unikátní kódy pro sady, například kombinací textu a kódů produktů.
  3. Použít zkratky pro jednotlivé položky, aby bylo vše přehledné.

Pokud nechcete kombinace vytvářet ručně, můžete využít náš skript pro Google Sheets, který je automaticky vygeneruje za vás.


Jak použít náš skript v Google Sheets

Důležité: Skript je určen pouze pro Google Sheets a není kompatibilní s Microsoft Excel!

Nastavení tabulky

  1. Vytvořte nový soubor v Google Sheets (nesmí být formátu .xlsx ani jiného než Google Sheets).
  2. Přejmenujte první list třeba na „Položky sady“.
  3. Vyplňte varianty produktů od 1. řádku

Tabulka by měla mít tuto strukturu:

SloupecObsah
ANázev varianty produktu 1
BKód varianty produktu 1
CNázev varianty produktu 2
DKód varianty produktu 2
ENázev varianty produktu 3
FKód varianty produktu 3
GNázev varianty produktu 4
HKód varianty produktu 4
INázev varianty produktu 5
JKód varianty produktu 5

Například:

Hrnek pro babičku01111slanýSNACK01bíle vínoBIL100
Hrnekpro dědečka044440sladkýSNACK02červené vínoCER200
Hrnek pro tatínka02222
Hrnek pro maminku03300300.0

Jak vložit skript

  • Zkopírujte kód, který najdete níže.
  • V menu Google Sheets přejděte na„Rozšíření“ → „Apps Script“. Pozor, soubor musí být nutně typ souboru Tabulky Google, nesmí být xlsx apod. Jinak nabídku Rozšíření neuvidíte.
  • Otevře se nová záložka, kam můžete vložit náš skript.

Vložte zkopírovaný kód a klikněte na Uložit.

Kód pro tvorbu kombinací:

function generateCombinations() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getActiveSheet();
  
  var lastRow = sheet.getLastRow();
  var lastColumn = sheet.getLastColumn();
  
  if (lastRow < 1) {
    SpreadsheetApp.getUi().alert("Ve zdrojovém listu nejsou žádná data.");
    return;
  }
  
  var data = sheet.getRange(1, 1, lastRow, lastColumn).getDisplayValues();
  var columns = [];

  for (var col = 0; col < lastColumn; col += 2) {
    var items = [];
    for (var row = 0; row < lastRow; row++) {
      var name = data[row][col] || ""; 
      var code = (col + 1 < lastColumn) ? data[row][col + 1] : "";
      if (name.trim()) {
        items.push([name, code]);
      }
    }
    if (items.length > 0) {
      columns.push(items);
    }
  }
  
  if (columns.length === 0) {
    SpreadsheetApp.getUi().alert("Nebyla nalezena žádná data pro generování kombinací.");
    return;
  }

  var combinations = generateCombinationsRecursive(columns, 0, []);
  
  var now = new Date();
  var timestamp = Utilities.formatDate(now, "Europe/Prague", "dd.MM.yyyy HH:mm");
  var newSheetName = "Kombinace " + timestamp;
  var newSheet = ss.insertSheet(newSheetName);
  
  var headers = [];
  for (var i = 0; i < columns.length; i++) {
    headers.push("POLOŽKA " + (i + 1) + " název varianty");
    headers.push("POLOŽKA " + (i + 1) + " kód produktu ve variantě");
  }
  
  newSheet.getRange(1, 1, 1, headers.length).setValues([headers]);
  
  if (combinations.length > 0) {
    newSheet.getRange(2, 1, combinations.length, headers.length).setNumberFormat("@");
    newSheet.getRange(2, 1, combinations.length, headers.length).setValues(combinations);
  } else {
    SpreadsheetApp.getUi().alert("Nebyly nalezeny žádné kombinace.");
  }
  
  SpreadsheetApp.getUi().alert("Všechny kombinace byly úspěšně vygenerovány do listu: " + newSheetName);
}

function generateCombinationsRecursive(columns, index, currentCombination) {
  if (index === columns.length) {
    return [currentCombination];
  }
  
  var result = [];
  var currentColumn = columns[index];

  for (var i = 0; i < currentColumn.length; i++) {
    var newCombination = currentCombination.concat(currentColumn[i]);
    var deeper = generateCombinationsRecursive(columns, index + 1, newCombination);
    result = result.concat(deeper);
  }
  
  return result;
}

Než spustíte skript, naposledy si zkontrolujte, že máte správně vyplněná data v listu „Položky sady“ a že stojíte na tomto listu – skript pracuje na aktivním listu.

Po spuštění skriptu:

  1. Systém vás při prvním spuštění požádá o povolení.
  2. Může se zobrazit upozornění na neznámou aplikaci – je nutné jej odsouhlasit, aby skript mohl běžet.
  3. Když je provedeno spuštění, přejděte zpět na list a objeví se okno s oznámení o úspěšném vytvoření listu s kombinacemi.
  4. Skript poté vytvoří nový list „Kombinace“, kde uvidíte všechny potřebné kombinace sad včetně produktů, ze kterých se skládají.



V listu „Kombinace“ je vhodné rovnou vytvořit unikátní kódy pro jednotlivé sady. K tomu vám může pomoci funkce CONCATENATE:

Příklad:

Pokud chcete vytvořit kód ve formátu SADA + kód prvního produktu + kód druhého produktu, můžete použít tento vzorec: =CONCATENATE(„SADA„;B2;D2) na listu kombinace mi tvoří kód složený z SADAkódprvníhoproduktukóddruhéhoproduktu.

Na co si dát pozor při tvorbě kódů

  • Nepoužívejte diakritiku – například písmeno Š by se mohlo změnit na S nebo jiný nežádoucí znak.
  • Vyhněte se speciálním znakům jako +, &, /, které by mohly způsobit chyby při importu do Shoptetu.
  • Pokud Shoptet některé znaky nepřijme, může je automaticky nahradit jiným znakem, často pomlčkou – což může způsobit problémy při vyhledávání nebo zpracování dat.

Tvorba importního souboru pro Shoptet

Nyní máme vzorovou sadu a víme, jaké kombinace potřebujeme vytvořit. Dalším krokem je příprava importního souboru pro Shoptet.

1. Kopírování struktury vzorové sady

  1. Z exportu vzorové sady si do nového souboru zkopírujte:
    • Záhlaví s názvy sloupců
    • Řádek s daty vzorové sady
  2. Do sloupce code vložte unikátní kódy pro nově vytvořené sady.
  3. Data z listu „Kombinace“ si překopírujte do jiného listu (Případně si data přeorganizujeme tak, abychom je mohli natáhnout do listu, ve kterém si budeme tvořit importní soubor pro Shoptet. tzn kód sady do prvního sloupce. Můžeme případně doplnit o další data).
  4. Zkopírujte data ze vzorové sady a upravte varianty podle potřeby (tyto úpravy mohou být specifické pro každý e-shop, proto se do detailů nezabýváme – obvykle může jít o rozdílné váhy položek, jiné ceny za sadu, barevnost, SEO údaje atd.).

2. Správné vyplnění sloupců s obsahem sad

Nejdůležitější částí importního souboru jsou sloupce setItem, setItem2, …setItemX, do kterých se zapisují kódy produktů, ze kterých se sada skládá.

Příklad struktury dat:

Ve vzorové sadě můžete vidět data v této podobě:

01111;1.00

To znamená, že sada obsahuje 1 ks produktu s kódem 01111.

Automatizace pomocí funkcí CONCATENATE a VLOOKUP

Abyste nemuseli vyplňovat data ručně, můžete si pomoci kombinací funkcí CONCATENATE a VLOOKUP.

Příklad vzorce pro první produkt v sadě:

=CONCATENATE(VLOOKUP($A19;'List 3'!$A:$K;3;0);";1.00")

👉 Co tento vzorec dělá:

  • VLOOKUP($A19;'List 3'!$A:$K;3;0) vyhledá kód produktu v listu "List 3" ve třetím sloupci (to znamená, že hledáme první produkt v sadě). List 3 byl v mém případě list s daty z generátoru kombinací pro sady.
  • ";1.00" přidá k vyhledanému kódu informaci, že se jedná o 1 ks produktu.
  • Pokud chcete načíst druhý produkt, stačí změnit číslo sloupce (např. 3 → 5). Pokud potřebujete více kusů, upravíte hodnotu 1.00 na 2.00, 3.00 atd.

3. Otestování importu

Tvorbě importního souboru věnujte maximální pozornost. Pokud si nejste jistí, doporučujeme:

  • Nejprve vytvořit a importovat soubor s jednou sadou.
  • Ověřit, že se sada správně zobrazuje v administraci Shoptetu.
  • Pokud je vše v pořádku, pokračovat s importem dalších sad.

Pečlivým testováním předejdete případným chybám, nutnosti importování oprav nebo nutnosti složité ruční opravy.

Označování souborů pro import a export

Aby se předešlo chybám a omylům při práci s daty, doporučujeme jasně označovat soubory a organizovat je do složek.

Doporučené označení souborů:

  • Exportní soubory → začínejte EXT_ (např. EXT_produkty.xlsx)
  • Importní soubory → začínejte IMP_ (např. IMP_sady.xlsx)
  • Pracovní soubory (work sheets) → začínejte WS_ (např. WS_kombinace.xlsx)

📂 Tip: Pokud pracujete s větším množstvím souborů, je dobré je ukládat do oddělených složek podle typu:

  • 📁 Exporty (pro soubory stažené ze Shoptetu)
  • 📁 Importy (pro finální soubory určené k nahrání)
  • 📁 Pracovní soubory (pro pomocné a testovací soubory)

Finální data pro import

Než nahrajete soubor do Shoptetu:

  1. Zkontrolujte, že obsahuje pouze relevantní data.
  2. Uložte jej jako samostatný list v novém sešitu.
  3. Exportujte jej jako .xlsx soubor.

Správná organizace souborů vám pomůže předejít omylům, kdy byste omylem nahráli nesprávná data do e-shopu.

Hromadné nahrávání obrázků k produktům

Pokud potřebujete ke sériím produktů nebo sadám hromadně nahrát obrázky, nejefektivnějším způsobem je uložit obrázky externě a poté je propojit s produkty pomocí URL adres.

Doporučený postup:

  1. Nahrajte obrázky na web nebo server, odkud lze získat přímé odkazy (URL).
  2. Vytvořte tabulku, kde přiřadíte jednotlivým produktům odpovídající URL obrázků.
  3. Použijte funkci VLOOKUP, abyste k produktům přiřadili správné obrázky v importním souboru.
  4. Po nahrání souboru do Shoptetu se obrázky automaticky přiřadí k produktům.

🔹 Tip:

  • Obrázky by měly být ve správném formátu (JPG, PNG, WEBP) a optimalizované pro web.
  • Pokud využíváte externí úložiště, ujistěte se, že obrázky mají veřejně dostupné URL adresy.

Mnoho sad v jedné kategorii – co s tím?

Máte obavy, že se vaše kategorie zaplní velkým množstvím produktů a e-shop bude nepřehledný pro zákazníky? Máme pro vás jednoduché řešení!

Skrytí nadbytečných sad do vnořených kategorií

  1. Vyberte jednu sadu, která zůstane viditelná v hlavní kategorii.
  2. Ostatní sady skryjte do vnořené kategorie:
    • Například pokud máte hlavní kategorii „Dárková balení“, přidejte pod ni dvě podkategorie:
      • Skrytá kategorie – nebude obsahovat žádné produkty.
      • Podkategorie pro všechny sady – přesunete sem všechny sady, které nechcete zobrazovat v hlavní kategorii.
  3. Odstraňte tyto sady z dalších kategorií, kde by mohly zahlcovat přehlednost e-shopu.

📌 Jak provést změny hromadně?
Nejrychlejší způsob je hromadná úprava pomocí importu v Shoptetu. Stačí upravit sloupce v souboru s kategoriemi a určit, které sady se budou zobrazovat jen ve vnořené kategorii.

🔹 Příklad struktury dat v importním souboru:
(sem můžete doplnit příklad, pokud máte konkrétní formát)

codepairCodenamedefaultCategorycategoryText
BRUSLANDárkový balíček pro babičkuPropojení produktů > Dárková balení – produkty > Skrytá kategorie > VariantyPropojení produktů > Dárková balení – produkty > Skrytá kategorie >> Varianty

Důležité je, aby ve sloupci categoryText byly na konci cesty dvě šipky. Pak bude produkt pouze v této kategorii a nebude v jiné nadřazené kategorii.
V administraci to bude vypadat takto:

Pozor, takto skryté produkty bude možné dohledat pouze přes vyhledávací řádek, proto je vhodné, buď na produktu odkázat z kmenového produktu, který je viditelný. K tomu dobře poslouží náš doplněk Propojení produktů.

Jak propojit sady, aby se zákazník dostal na ostatní varianty sady?

Teď přichází na řadu doplněk Propojení produktů, který vám pomůže propojit sady tak, aby zákazník měl pocit, že vybírá z variant jedné sady.

Jak funguje propojení?

  • Sady se propojí tak, aby zákazník viděl další dostupné varianty.
  • Díky propojení si může snadno přepínat mezi různými kombinacemi.

Kolik úrovní propojení potřebuji?

  • Počet úrovní propojení závisí na tom, kolik parametrů zákazník vybírá.
  • Pokud má sada např. výběr hrnečku a výběr vína, je třeba dvouúrovňové propojení.
  • Každá sada bude obsažena v tolika propojeních, kolik parametrů lze měnit.

📌 Podrobný návod k tomuto doplňku naleznete zde:
👉 Propojování produktů na vícero úrovních.

Tímto způsobem zajistíte, že zákazník nemusí složitě hledat jiné varianty sady – všechny možnosti bude mít pohodlně dostupné přímo na stránce produktu.

Chci hlídat skladovost sad i podle položek sady, které neprodávám samostatně

Toto je složitější problém, který vyžaduje kompromisní řešení. Existují dvě hlavní možnosti:

1️⃣ Hlídat dostupnost manuálně

Jednodušší, ale náročnější na kontrolu. Pokud nechcete přidávat jednotlivé položky do katalogu, musíte skladovost sledovat ručně a podle potřeby upravovat dostupnost sad.

2️⃣ Vytvořit produkty pro neprodejné položky

  • Každou položku, kterou neprodáváte samostatně, můžete vytvořit jako samostatný produkt v Shoptetu.
  • Tento produkt přidáte do sady, aby systém správně hlídal skladovost.
  • Jak zajistit, aby se produkt nezobrazoval běžným zákazníkům?
    • Schovejte ho ve vnořené kategorii (viz řešení výše).
    • Nastavte mu rozumnou cenu, pokud by se k němu někdo náhodou proklikal a objednal ho.

📌 Důležité upozornění:

  • Všechny položky sady musí mít stejnou dostupnost a viditelnost jako sada samotná.
  • Nelze u těchto položek nastavit „zakázání objednání“ nebo produkt Skrýt, jinak by nebylo možné sadu objednat.

Tímto způsobem zajistíte, že skladovost bude odpovídat realitě, aniž byste museli sledovat vše manuálně.

Pokud potřebujete pomoci s hromadných nastavením sad nebo potřebujete konzultaci, rádi vám pomůžeme. Napište nám na shoptet@webotvurci.cz !

Pomohl Vám tento článek?
Dislike 0 0 z 0 shledali tento návod přínosný.