Doplněk Sady produktů je přímo z dílny Shoptetu a umožňuje e-shopům tvořit — jak napovídá název — sady z jednotlivých produktů, které jsou dostupné k prodeji.
Kromě toho, že si zákazník při objednávce takové sady přidá do košíku všechny položky, můžete u každé sady nastavit cenu, která se nemusí odvíjet od ceny jednotlivých položek. Navíc vám budou sedět sklady, protože se odečítají zásoby samostatných produktů v sadě.
Pro základní návod na tvorbu sad využijte dokumentaci přímo od Shoptetu — provede vás ruční tvorbou sad v administraci. Tento přístup zvolte, pokud je sad k vytvoření zhruba do 30 kusů (nebo kolik vám karpální tunely dovolí). Ruční tvorbu si můžete ulehčit tím, že vytvoříte jednu sadu, tu budete kopírovat tlačítkem Kopírovat a na kopiích měnit jen potřebná data — kódy, položky sady, parametry, ceny a podobně.
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 hodně zdlouhavá, když mají produkty v sadě spoustu 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ý všechny potřebné kombinace spočítá automaticky.
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 automaticky přenáší i na vytvořené sady. Pokud tedy chcete, aby byla sada viditelná a dostupná ke koupi, musí to mít správně nastavené i jednotlivé produkty v ní.
Tvorba první sady
V e-shopu si nejprve vytvořte jednu sadu (postup najdete v návodu 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 doplníte později).
Následně si stáhněte export, ve kterém bude vaše vzorová sada vidět. Export by měl obsahovat všechny sloupce relevantní pro tvorbu importního souboru. Povinné sloupce jsou:
codepairCodenameprice
Další sloupce závisí na vašem e-shopu a na samotném produktu (kategorie, popisy, meta popisy, seotitle, parametry…), ale doporučujeme vyhnout se těmto: atypicalShipping, atypicalBilling, adult.
Pokud byste je ponechali v exportu s hodnotou 0, při importu se automaticky aktivuje příznak pro atypickou dopravu, atypickou platbu nebo označení „pro dospělé". To může způsobit nedostupnost produktu k prodeji a nutnost dodatečných úprav. Když tyto parametry nepotřebujete, nechte je prázdné nebo sloupce z importu úplně odstraňte.
Zároveň nedoporučujeme exportovat sloupce se skladovými zásobami — 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 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
- Pro babičku → kód
- Snacky (2 typy)
- Slaný snack →
SNACK01 - Sladký snack →
SNACK02
- Slaný snack →
- Víno (2 druhy)
- Bílé víno →
BIL100 - Červené víno →
CER200
- Bílé víno →
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 je použít tabulkový editor. V něm si můžete:
- rozepsat kombinace produktů spolu s jejich kódy,
- vytvořit unikátní kódy pro sady, například kombinací textu a kódů produktů,
- použít zkratky pro jednotlivé položky, aby bylo vše přehledné.
Pokud nechcete kombinace vytvářet ručně, využijte náš skript pro Google Sheets, který je vygeneruje za vás.
Skript v Google Sheets
Skript je dostupný pouze pro Google Sheets (ne pro Microsoft Excel).
Nastavení tabulky:
- Vytvořte nový soubor v Google Sheets (nesmí být ve formátu
.xlsxani v jiném než Tabulky Google) - Přejmenujte první list na „Položky sady"
- Vyplňte varianty produktů od 1. řádku — střídejte sloupce: název a kód
Struktura:
| Sloupec | Obsah |
|---|---|
| A | Název varianty produktu 1 |
| B | Kód varianty produktu 1 |
| C | Název varianty produktu 2 |
| D | Kód varianty produktu 2 |
| E | Název varianty produktu 3 |
| F | Kód varianty produktu 3 |
| G | Název varianty produktu 4 |
| H | Kód varianty produktu 4 |
| I | Název varianty produktu 5 |
| J | Kód varianty produktu 5 |
Vyplněná tabulka pak vypadá například takhle:
| A | B | C | D | E | F |
|---|---|---|---|---|---|
| Hrnek pro babičku | 01111 | slaný | SNACK01 | bílé víno | BIL100 |
| Hrnek pro dědečka | 044440 | sladký | SNACK02 | červené víno | CER200 |
| Hrnek pro tatínka | 02222 | ||||
| Hrnek pro maminku | 03300300.0 |
Vložení skriptu:
Přejděte na Rozšíření → Apps Script
Pozor, soubor musí být typu Tabulky Google — u
.xlsxa podobných formátů se nabídka Rozšíření vůbec nezobrazí.

- Vložte JavaScript kód uvedený níže
- Klikněte na Uložit

- Spusťte funkci
generateCombinations()
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ž skript spustíte, zkontrolujte si naposledy, že máte správně vyplněná data v listu „Položky sady" a že na tomto listu opravdu stojíte — skript pracuje na aktivním listu.
Po spuštění skriptu:
- Google vás při prvním spuštění požádá o povolení.
- Může se zobrazit upozornění na neznámou aplikaci — je nutné ho odsouhlasit, aby skript mohl běžet.
- Po doběhnutí se vraťte na list; objeví se okno s oznámením, že se list s kombinacemi úspěšně vytvořil.
Skript vytvoří nový list s názvem „Kombinace DATUM ČAS", kde uvidíte všechny potřebné kombinace sad včetně produktů, ze kterých se skládají.
Vytváření kódů sad
V listu s kombinacemi je vhodné rovnou vytvořit unikátní kódy jednotlivých sad. Použijte funkci CONCATENATE:
=CONCATENATE("SADA";B2;D2)
Vzorec složí kód ve formátu SADA + kód prvního produktu + kód druhého produktu.
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
+,&,/— mohou způsobit chyby při importu do Shoptetu. - Pokud Shoptet některý znak nepřijme, může ho automaticky nahradit jiným, často pomlčkou. To pak dělá problémy při vyhledávání a dalším zpracování dat.
Tvorba importního souboru
Postup:
Zkopírujte strukturu vzorové sady (záhlaví + data řádku)
Vložte unikátní kódy sad do sloupce
codeData z listu „Kombinace" překopírujte do jiného listu — případně je přeorganizujte tak, abyste je mohli natáhnout do listu, ve kterém tvoříte importní soubor (tzn. kód sady do prvního sloupce, k němu doplníte další data)
Zkopírujte data ze vzorové sady a upravte varianty podle potřeby. Tyhle úpravy jsou specifické pro každý e-shop — obvykle jde o rozdílné váhy položek, jiné ceny za sadu, barevnost, SEO údaje a podobně.
Do sloupců
setItem,setItem2atd. vložte kódy produktů ve formátu:01111;1.00(kód produktu; počet kusů) — tenhle zápis znamená, že sada obsahuje 1 ks produktu s kódem
01111.Použijte
VLOOKUPpro automatizaci:=CONCATENATE(VLOOKUP($A19;'List 3'!$A:$K;3;0);";1.00")Co vzorec dělá:
VLOOKUP($A19;'List 3'!$A:$K;3;0)vyhledá kód produktu v listu „List 3" ve třetím sloupci — hledáme tedy první produkt v sadě. „List 3" byl v našem případě list s daty z generátoru kombinací.";1.00"k nalezenému kódu přidá informaci, že jde o 1 ks produktu.- Pro druhý produkt stačí změnit číslo sloupce (např. 3 → 5). Když potřebujete víc kusů, změníte hodnotu
1.00na2.00,3.00atd.
Otestujte import jedné sady před hromadným nahráním všech. Ověřte, že se sada správně zobrazuje v administraci Shoptetu, a teprve pak pokračujte se zbytkem. Pečlivým testováním předejdete opravným importům i zdlouhavé ruční nápravě.
Označování souborů
Doporučené značení:
- Exporty →
EXT_produkty.xlsx - Importy →
IMP_sady.xlsx - Pracovní soubory →
WS_kombinace.xlsx
Ukládejte do oddělených složek: 📁 Exporty, 📁 Importy, 📁 Pracovní soubory
Finální data pro import
Než soubor nahrajete do Shoptetu:
- Zkontrolujte, že obsahuje pouze relevantní data.
- Uložte ho jako samostatný list v novém sešitu.
- Exportujte ho jako soubor
.xlsx.
Pořádek v souborech vám pomůže předejít omylu, kdy do e-shopu nahrajete nesprávná data.
Hromadné nahrávání obrázků
Nejefektivnější způsob:
- Nahrajte obrázky externě (web/server), odkud lze získat přímé odkazy (URL)
- Vytvořte tabulku s URL adresami obrázků
- Použijte
VLOOKUPpro přiřazení k produktům - Obrázky se automaticky přiřadí po importu do Shoptetu
Obrázky by měly být ve správném formátu (JPG, PNG, WEBP) a optimalizované pro web. Pokud používáte externí úložiště, ujistěte se, že mají obrázky veřejně dostupné URL adresy.
Mnoho sad v jedné kategorii
Řešení skrytím do vnořených kategorií:
- Jednu sadu nechte viditelnou v hlavní kategorii
- Ostatní sady přesuňte do vnořené podkategorie
- Používejte hromadný import k úpravě kategorií
Pod hlavní kategorii (například „Dárková balení") si založte skrytou kategorii bez produktů a v ní podkategorii, kam přesunete všechny sady, které nemají zahlcovat hlavní výpis. Ze zbylých kategorií je odeberte.
Nejrychlejší způsob je hromadná úprava importem. Příklad struktury dat:
| code | pairCode | name | defaultCategory | categoryText |
|---|---|---|---|---|
| BRUSLAN | Dárkový balíček pro babičku | Propojení produktů > Dárková balení – produkty > Skrytá kategorie > Varianty | Propojení produktů > Dárková balení – produkty > Skrytá kategorie >> Varianty |
Příklad sloupce categoryText:
Propojení produktů > Dárková balení – produkty > Skrytá kategorie >> Varianty
Dvě šipky (>>) na konci znamenají, že produkt bude pouze v této kategorii a neobjeví se v nadřazených.

Poznámka: Takto skryté produkty půjde dohledat jen přes vyhledávací řádek. Proto je vhodné na ně odkázat z viditelného kmenového produktu — k tomu dobře poslouží náš doplněk Propojení produktů.
Propojení sad přes varianty
Použijte doplněk Propojení produktů k propojení různých variant jedné sady, aby se zákazník mohl snadno přepínat mezi kombinacemi. Sady se propojí tak, že zákazník rovnou vidí další dostupné varianty.
Počet úrovní propojení závisí na počtu parametrů, které zákazník vybírá. Pokud si u sady volí hrneček a k tomu víno, potřebujete dvouúrovňové propojení. Každá sada je přitom obsažená v tolika propojeních, kolik parametrů u ní jde měnit.
Podrobný návod: Propojování produktů na vícero úrovních.
Zákazník tak nemusí složitě hledat jiné varianty sady — má všechny možnosti dostupné přímo na stránce produktu.
Hlídání skladovosti
Dvě možnosti:
- Manuální hlídání — jednodušší na nastavení, ale náročnější na kontrolu: skladovost sledujete ručně a podle potřeby upravujete dostupnost sad.
- Vytvořit skryté produkty — každou položku, kterou neprodáváte samostatně, vytvořte jako produkt, přidejte ji do sady (aby systém hlídal skladovost) a schovejte ji do vnořené kategorie podle postupu výše. Nastavte jí rozumnou cenu pro případ, že by se k ní někdo náhodou proklikal a objednal ji.
Důležité upozornění:
- Všechny položky sady musí mít stejnou dostupnost a viditelnost jako sada samotná.
- U těchto položek nelze nastavit „zakázání objednání" ani produkt Skrýt — jinak by sadu nešlo objednat.
Takhle bude skladovost odpovídat realitě, aniž byste museli všechno sledovat ručně.
Potřebujete pomoct s hromadným nastavením sad nebo chcete konzultaci? Rádi vám pomůžeme — napište nám na shoptet@webotvurci.cz.