diff --git a/analysis.js b/analysis.js
index a304f20..9255095 100644
--- a/analysis.js
+++ b/analysis.js
@@ -2,9 +2,7 @@ const fs = require("fs");
const fsAsync = require("fs").promises;
const zlib = require("zlib");
const stores = require("./stores");
-const { FILE } = require("dns");
const { promisify } = require("util");
-const { dateToUint16 } = require("./site/js/misc");
const STORE_KEYS = Object.keys(stores);
exports.STORE_KEYS = STORE_KEYS;
@@ -149,7 +147,7 @@ function sortItems(items) {
});
}
-// Keep this in sync with utils.js:decompress
+// Keep this in sync with items.js:decompress
function compress(items) {
const compressed = {
stores: STORE_KEYS,
@@ -170,6 +168,7 @@ function compress(items) {
data.push(STORE_KEYS.indexOf(item.store));
data.push(item.id);
data.push(item.name);
+ data.push(item.category ?? "A0");
data.push(item.priceHistory.length);
for (price of item.priceHistory) {
data.push(uniqueDates[price.date.replaceAll("-", "")]);
@@ -179,7 +178,7 @@ function compress(items) {
data.push(item.quantity);
data.push(item.isWeighted ? 1 : 0);
data.push(item.bio ? 1 : 0);
- data.push(item.url?.replace(stores[item.store].urlBase, ""));
+ data.push(item.url?.replace(stores[item.store].urlBase, "") ?? "");
}
return compressed;
}
@@ -210,10 +209,11 @@ exports.replay = function (rawDataDir) {
const canonicalFiles = {};
for (const store of STORE_KEYS) {
+ stores[store].generateCategoryMapping();
storeFiles[store] = getFilteredFilesFor(store);
canonicalFiles[store] = storeFiles[store].map((file) => {
console.log(`Creating canonical items for ${file}`);
- return getCanonicalFor(store, readJSON(file), file.match(/\d{4}-\d{2}-\d{2}/)[0]);
+ getCanonicalFor(store, readJSON(file), file.match(/\d{4}-\d{2}-\d{2}/)[0]);
});
canonicalFiles[store].reverse();
}
@@ -248,6 +248,8 @@ exports.updateData = async function (dataDir, done) {
console.log("Fetching data for date: " + today);
const storeFetchPromises = [];
for (const store of STORE_KEYS) {
+ await stores[store].initializeCategoryMapping();
+
storeFetchPromises.push(
new Promise(async (resolve) => {
const start = performance.now();
@@ -261,7 +263,18 @@ exports.updateData = async function (dataDir, done) {
writeJSON(rawDataFile, storeItems, FILE_COMPRESSOR);
}
const storeItemsCanonical = getCanonicalFor(store, storeItems, today);
- console.log(`Fetched ${store.toUpperCase()} data, took ${(performance.now() - start) / 1000} seconds`);
+ let numUncategorized = 0;
+ for (let i = 0; i < storeItemsCanonical.length; i++) {
+ const rawItem = storeItems[i];
+ const item = storeItemsCanonical[i];
+ item.category = stores[store].mapCategory(rawItem);
+ if (item.category == null) numUncategorized++;
+ }
+ console.log(
+ `Fetched ${store.toUpperCase()} data, took ${(performance.now() - start) / 1000} seconds, ${numUncategorized}/${
+ storeItemsCanonical.length
+ } items without category.`
+ );
resolve(storeItemsCanonical);
} catch (e) {
console.error(`Error while fetching data from ${store}, continuing after ${(performance.now() - start) / 1000} seconds...`, e);
diff --git a/server.js b/server.js
index cf09f8e..85d77f2 100644
--- a/server.js
+++ b/server.js
@@ -14,6 +14,7 @@ function copyItemsToSite(dataDir) {
const storeItems = items.filter((item) => item.store === store);
analysis.writeJSON(`site/output/data/latest-canonical.${store}.compressed.json`, storeItems, false, 0, true);
}
+ console.log("Copied latest items to site.");
}
function scheduleFunction(hour, minute, second, func) {
diff --git a/site/cart.js b/site/cart.js
index 62d6585..32e20ed 100644
--- a/site/cart.js
+++ b/site/cart.js
@@ -207,5 +207,6 @@ function loadCart() {
cartList.model = cartFilter.model = cart;
productsList.model = productsFilter.model = models.items;
if (c || d) itemsChart.render();
+ cartFilter.filter();
document.querySelector('[x-id="loader"]').classList.add("hidden");
})();
diff --git a/site/model/categories.js b/site/model/categories.js
index b665582..d3a3fe2 100644
--- a/site/model/categories.js
+++ b/site/model/categories.js
@@ -149,6 +149,8 @@ exports.categories = [
},
];
+exports.categories.forEach((category, index) => (category.index = index));
+
exports.toCategoryCode = (i, j) => {
return (
(i < 10 ? "" + i : String.fromCharCode("A".charCodeAt(0) + (i - 10))) + (j < 10 ? "" + j : String.fromCharCode("A".charCodeAt(0) + (j - 10)))
@@ -156,7 +158,7 @@ exports.toCategoryCode = (i, j) => {
};
exports.fromCategoryCode = (code) => {
- if (code.length != 2) return [exports.categories.length - 1, 0];
+ if (!code || code.length != 2) return [exports.categories.length - 1, 0];
const codeI = code.charCodeAt(0);
const codeJ = code.charCodeAt(1);
return [
diff --git a/site/model/items.js b/site/model/items.js
index 08d67ce..16e50dc 100644
--- a/site/model/items.js
+++ b/site/model/items.js
@@ -175,6 +175,7 @@ class Items extends Model {
const store = storeLookup[data[i++]];
const id = data[i++];
const name = data[i++];
+ const category = data[i++];
const numPrices = data[i++];
const prices = new Array(numPrices);
for (let j = 0; j < numPrices; j++) {
@@ -195,6 +196,7 @@ class Items extends Model {
store,
id,
name,
+ category,
price: prices[0].price,
priceHistory: prices,
isWeighted,
diff --git a/site/views/custom-checkbox.js b/site/views/custom-checkbox.js
index 3896294..5ca5531 100644
--- a/site/views/custom-checkbox.js
+++ b/site/views/custom-checkbox.js
@@ -13,12 +13,19 @@ class CustomCheckbox extends View {
- ${this.hasAttribute("abbr") ? `${label}` : label}
+ ${
+ this.hasAttribute("abbr")
+ ? `${label}`
+ : `${label}`
+ }
`;
this.classList.add("customcheckbox");
this._checkbox = View.elements(this).checkbox;
- this.setupEventHandlers();
+ this._checkbox.addEventListener("change", (event) => {
+ event.stopPropagation();
+ this.fireChangeEvent();
+ });
}
get checkbox() {
@@ -32,5 +39,9 @@ class CustomCheckbox extends View {
set checked(value) {
this._checkbox.checked = value;
}
+
+ set label(value) {
+ this.elements.label.innerText = value;
+ }
}
customElements.define("custom-checkbox", CustomCheckbox);
diff --git a/site/views/items-filter.js b/site/views/items-filter.js
index d6ab5dd..ee45ff0 100644
--- a/site/views/items-filter.js
+++ b/site/views/items-filter.js
@@ -1,5 +1,6 @@
const { today, parseNumber, dom, getBooleanAttribute, queryItems, queryItemsAlasql, log, deltaTime } = require("../js/misc");
const { stores, STORE_KEYS, BUDGET_BRANDS } = require("../model/stores");
+const { fromCategoryCode, categories } = require("../model/categories");
const { settings } = require("../model");
const { View } = require("./view");
@@ -69,6 +70,19 @@ class ItemsFilter extends View {
+
+
+ ${categories
+ .map(
+ (category, index) => /*html*/ `
+ `
+ )
+ .join("")}
+
`;
this.classList.add("items-filter");
@@ -102,7 +116,7 @@ class ItemsFilter extends View {
})
);
- elements.allStores.addEventListener("change", handleChangeAll);
+ elements.allStores.addEventListener("x-change", handleChangeAll);
elements.priceChangesToday.addEventListener("change", () => {
if (elements.priceChangesToday.checked) elements.priceDirection.classList.remove("hidden");
@@ -218,11 +232,42 @@ class ItemsFilter extends View {
}
}
- if (this.model.lastQuery && this.model.lastQuery != query && !this._noChartClear) {
+ let queryChanged = this.model.lastQuery && this.model.lastQuery != query;
+ if (queryChanged && !this._noChartClear) {
filteredItems.forEach((item) => (item.chart = false));
}
this.model.lastQuery = query;
+ if (this.model.numItemsBeforeCategories != filteredItems.length) queryChanged = true;
+ this.model.numItemsBeforeCategories = filteredItems.length; // This is not entirely correct, but I'm too lazy...
+ const filteredCategories = {};
+ filteredItems.forEach((item) => {
+ const category = categories[fromCategoryCode(item.category)[0]];
+ filteredCategories[category.index] = filteredCategories[category.index] ? filteredCategories[category.index] + 1 : 1;
+ });
+ for (const category of categories) {
+ const checkbox = elements["category-" + category.index];
+ if (filteredCategories[category.index] > 0) {
+ if (queryChanged) checkbox.checked = true;
+ checkbox.label = `${category.name} (${filteredCategories[category.index]})`;
+ checkbox.classList.remove("hidden");
+ } else {
+ if (queryChanged) checkbox.checked = false;
+ checkbox.classList.add("hidden");
+ }
+ }
+
+ if (Object.keys(filteredCategories).length == 0) {
+ elements.categories.classList.add("hidden");
+ } else {
+ elements.categories.classList.remove("hidden");
+ }
+
+ filteredItems = filteredItems.filter((item) => {
+ const category = categories[fromCategoryCode(item.category)[0]];
+ return elements["category-" + category.index].checked;
+ });
+
log(`ItemsFilter - Filtering ${this.model.items.length} took ${deltaTime(start).toFixed(4)} secs, ${filteredItems.length} results.`);
this.model.removeListener(this._listener);
diff --git a/stores/billa.js b/stores/billa.js
index e146fab..2ac44b6 100644
--- a/stores/billa.js
+++ b/stores/billa.js
@@ -23,27 +23,11 @@ exports.getCanonical = function (item, today) {
if (grammage) [quantity, unit] = grammage.trim().split(" ").splice(0, 2);
}
- let billaCategory = null;
- for (const groupId of item.data.articleGroupIds) {
- if (billaCategory == null) {
- billaCategory = groupId;
- continue;
- }
-
- if (groupId.charCodeAt(3) < billaCategory.charCodeAt(3)) {
- billaCategory = groupId;
- }
- }
- let categoryCode = billaCategory.replace("B2-", "").substring(0, 2);
- let [ci, cj] = fromCategoryCode(categoryCode);
- categoryCode = toCategoryCode(ci - 1, cj - 1);
-
return utils.convertUnit(
{
id: item.data.articleId,
name: item.data.name,
description: item.data.description ?? "",
- categoryCode,
price: item.data.price.final,
priceHistory: [{ date: today, price: item.data.price.final }],
isWeighted: item.data.isWeightArticle,
@@ -90,4 +74,27 @@ exports.fetchData = async function () {
return items;
};
+exports.initializeCategoryMapping = async () => {
+ // FIXME check if categories have changed.
+ console.log("No mapping for Billa");
+};
+
+exports.mapCategory = (rawItem) => {
+ let billaCategory = null;
+ for (const groupId of rawItem.data.articleGroupIds) {
+ if (billaCategory == null) {
+ billaCategory = groupId;
+ continue;
+ }
+
+ if (groupId.charCodeAt(3) < billaCategory.charCodeAt(3)) {
+ billaCategory = groupId;
+ }
+ }
+ let categoryCode = billaCategory.replace("B2-", "").substring(0, 2);
+ let [ci, cj] = fromCategoryCode(categoryCode);
+ categoryCode = toCategoryCode(ci - 1, cj - 1);
+ return categoryCode;
+};
+
exports.urlBase = "https://shop.billa.at";
diff --git a/stores/dm-de.js b/stores/dm-de.js
index 19be722..fbae4a6 100644
--- a/stores/dm-de.js
+++ b/stores/dm-de.js
@@ -93,4 +93,8 @@ exports.fetchData = async function () {
return dmItems;
};
+exports.initializeCategoryMapping = async () => {};
+
+exports.mapCategory = (rawItem) => {};
+
exports.urlBase = "https://www.dm.de/product-p";
diff --git a/stores/dm.js b/stores/dm.js
index a4d12e9..ec6b567 100644
--- a/stores/dm.js
+++ b/stores/dm.js
@@ -91,4 +91,8 @@ exports.fetchData = async function () {
return dmItems;
};
+exports.initializeCategoryMapping = async () => {};
+
+exports.mapCategory = (rawItem) => {};
+
exports.urlBase = "https://www.dm.at/product-p";
diff --git a/stores/hofer.js b/stores/hofer.js
index 0ef6213..5520b4e 100644
--- a/stores/hofer.js
+++ b/stores/hofer.js
@@ -1,3 +1,5 @@
+const fs = require("fs");
+const path = require("path");
const axios = require("axios");
const utils = require("./utils");
@@ -35,31 +37,21 @@ exports.getCanonical = function (item, today) {
);
};
+const HOFER_BASE_URL = `https://shopservice.roksh.at`;
+const CATEGORIES = HOFER_BASE_URL + `/category/GetFullCategoryList/`;
+const CONFIG = { headers: { authorization: null } };
+const TOKEN_DATA = {
+ OwnWebshopProviderCode: "",
+ SetUserSelectedShopsOnFirstSiteLoad: true,
+ RedirectToDashboardNeeded: false,
+ ShopsSelectedForRoot: "hofer",
+ BrandProviderSelectedForRoot: null,
+ UserSelectedShops: [],
+};
+const ITEMS = HOFER_BASE_URL + `/productlist/CategoryProductList`;
+
exports.fetchData = async function () {
- const HOFER_BASE_URL = `https://shopservice.roksh.at`;
- const CATEGORIES = HOFER_BASE_URL + `/category/GetFullCategoryList/`;
- const CONFIG = { headers: { authorization: null } };
- const ITEMS = HOFER_BASE_URL + `/productlist/CategoryProductList`;
-
- // fetch access token
- const token_data = {
- OwnWebshopProviderCode: "",
- SetUserSelectedShopsOnFirstSiteLoad: true,
- RedirectToDashboardNeeded: false,
- ShopsSelectedForRoot: "hofer",
- BrandProviderSelectedForRoot: null,
- UserSelectedShops: [],
- };
- const token = (
- await axios.post("https://shopservice.roksh.at/session/configure", token_data, {
- headers: { Accept: "application/json", "Content-Type": "application/json" },
- })
- ).headers["jwt-auth"];
- CONFIG.headers.authorization = "Bearer " + token;
-
- // concat all subcategories (categories.[i].ChildList)
- const categories = (await axios.post(CATEGORIES, {}, CONFIG)).data;
- const subCategories = categories.reduce((acc, category) => acc.concat(category.ChildList), []);
+ const { subCategories } = await exports.getCategories();
let hoferItems = [];
for (let subCategory of subCategories) {
@@ -78,4 +70,73 @@ exports.fetchData = async function () {
return hoferItems;
};
+exports.getCategories = async () => {
+ const token = (
+ await axios.post("https://shopservice.roksh.at/session/configure", TOKEN_DATA, {
+ headers: { Accept: "application/json", "Content-Type": "application/json" },
+ })
+ ).headers["jwt-auth"];
+ CONFIG.headers.authorization = "Bearer " + token;
+
+ // concat all subcategories (categories.[i].ChildList)
+ const categories = (await axios.post(CATEGORIES, {}, CONFIG)).data;
+ const subCategories = categories.reduce((acc, category) => acc.concat(category.ChildList), []);
+ return { categories, subCategories };
+};
+
exports.urlBase = "https://www.roksh.at/hofer/produkte/";
+
+exports.initializeCategoryMapping = async () => {};
+
+exports.mapCategory = (rawItem) => {};
+
+exports.generateCategoryMapping = async (rawItems) => {
+ const { categories } = await exports.getCategories();
+ const lookup = {};
+ const processCategory = (category) => {
+ lookup[category.ProgID] = {
+ category: category.ProgID,
+ url: category.Url,
+ code: "",
+ numItems: 0,
+ };
+
+ for (const child of category.ChildList) {
+ processCategory(child);
+ }
+ };
+ for (const category of categories) {
+ processCategory(category);
+ }
+
+ let total = 0;
+ for (const item of rawItems) {
+ if (!lookup[item.CategorySEOName]) {
+ console.log(`Couldn't find category '${item.CategorySEOName}' for Hofer product ${item.ProductName}`);
+ total++;
+ lookup[item.CategorySEOName] = {
+ category: item.CategorySEOName,
+ url: "",
+ code: "",
+ numItems: 1,
+ };
+ } else {
+ const category = lookup[item.CategorySEOName];
+ category.item = item;
+ category.numItems++;
+ }
+ }
+ const output = Object.keys(lookup).map((key) => lookup[key]);
+ const oldCategories = path.join(__dirname, "hofer-categories.json");
+ fs.writeFileSync(path.join(__dirname, "hofer-categories.json"), JSON.stringify(output, null, 2));
+};
+
+// Generate JSON for category mapping in stores/hofer-categories.json
+if (require.main === module) {
+ (async () => {
+ const { readJSON } = require("../analysis");
+ // const rawItems = await this.fetchData();
+ const rawItems = readJSON("data/hofer-2023-06-20.json.br");
+ await exports.generateCategoryMapping(rawItems);
+ })();
+}
diff --git a/stores/lidl.js b/stores/lidl.js
index 70e1876..46bebf1 100644
--- a/stores/lidl.js
+++ b/stores/lidl.js
@@ -57,4 +57,8 @@ exports.fetchData = async function () {
return (await axios.get(LIDL_SEARCH)).data.filter((item) => !!item.price.price);
};
+exports.initializeCategoryMapping = async () => {};
+
+exports.mapCategory = (rawItem) => {};
+
exports.urlBase = "https://www.lidl.at";
diff --git a/stores/mpreis.js b/stores/mpreis.js
index 56dafa9..23bddb8 100644
--- a/stores/mpreis.js
+++ b/stores/mpreis.js
@@ -58,4 +58,8 @@ exports.fetchData = async function () {
return mpreisItems;
};
+exports.initializeCategoryMapping = async () => {};
+
+exports.mapCategory = (rawItem) => {};
+
exports.urlBase = "https://www.mpreis.at/shop/p/";
diff --git a/stores/penny.js b/stores/penny.js
index 9af921f..c170e43 100644
--- a/stores/penny.js
+++ b/stores/penny.js
@@ -47,4 +47,8 @@ exports.fetchData = async function () {
return result;
};
+exports.initializeCategoryMapping = async () => {};
+
+exports.mapCategory = (rawItem) => {};
+
exports.urlBase = "https://www.penny.at/produkte/";
diff --git a/stores/rewe-de.js b/stores/rewe-de.js
index 8acccc2..d8e5992 100644
--- a/stores/rewe-de.js
+++ b/stores/rewe-de.js
@@ -111,4 +111,8 @@ exports.fetchData = async function () {
}
};
+exports.initializeCategoryMapping = async () => {};
+
+exports.mapCategory = (rawItem) => {};
+
exports.urlBase = "";
diff --git a/stores/spar-categories.json b/stores/spar-categories.json
new file mode 100644
index 0000000..81ca0c5
--- /dev/null
+++ b/stores/spar-categories.json
@@ -0,0 +1,3002 @@
+[
+ {
+ "id": "F16",
+ "description": "Regionalität",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F16",
+ "code": null
+ },
+ {
+ "id": "F16-1",
+ "description": "Kühlregal",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F16-1",
+ "code": null
+ },
+ {
+ "id": "F16-1-1",
+ "description": "Milchprodukte",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F16-1-1",
+ "code": null
+ },
+ {
+ "id": "F16-2",
+ "description": "Vorratsschrank",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F16-2",
+ "code": null
+ },
+ {
+ "id": "F16-2-1",
+ "description": "Grundnahrungsmittel",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F16-2-1",
+ "code": null
+ },
+ {
+ "id": "F16-3",
+ "description": "Getränke",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F16-3",
+ "code": null
+ },
+ {
+ "id": "F16-4",
+ "description": "alkoholische Getränke",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F16-4",
+ "code": null
+ },
+ {
+ "id": "F16-4-1",
+ "description": "Bier",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F16-4-1",
+ "code": null
+ },
+ {
+ "id": "F16-4-2",
+ "description": "Wein",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F16-4-2",
+ "code": null
+ },
+ {
+ "id": "F16-4-3",
+ "description": "Spirituosen",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F16-4-3",
+ "code": null
+ },
+ {
+ "id": "F16-5",
+ "description": "Fisch",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F16-5",
+ "code": null
+ },
+ {
+ "id": "F17",
+ "description": "vegan & vegetarisch",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F17",
+ "code": null
+ },
+ {
+ "id": "F17-1",
+ "description": "Veggie Produkte gekühlt",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F17-1",
+ "code": null
+ },
+ {
+ "id": "F17-1-1",
+ "description": "Pflanzlich & laktosefrei",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F17-1-1",
+ "code": null
+ },
+ {
+ "id": "F17-1-2",
+ "description": "Veggie Gerichte",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F17-1-2",
+ "code": null
+ },
+ {
+ "id": "F17-1-3",
+ "description": "Veggie Laibchen & Bratlinge",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F17-1-3",
+ "code": null
+ },
+ {
+ "id": "F17-1-4",
+ "description": "Veggie Aufstriche & Käseersatz",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F17-1-4",
+ "code": null
+ },
+ {
+ "id": "F17-1-5",
+ "description": "Fleischalternativen & Wurstersatz",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F17-1-5",
+ "code": null
+ },
+ {
+ "id": "F17-1-6",
+ "description": "Tofu",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F17-1-6",
+ "code": null
+ },
+ {
+ "id": "F17-1-7",
+ "description": "Sojaprodukte",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F17-1-7",
+ "code": null
+ },
+ {
+ "id": "F17-2",
+ "description": "Veggie Produkte ungekühlt",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F17-2",
+ "code": null
+ },
+ {
+ "id": "F17-2-1",
+ "description": "Reformprodukte",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F17-2-1",
+ "code": null
+ },
+ {
+ "id": "F17-2-2",
+ "description": "Nahrungsergänzung",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F17-2-2",
+ "code": null
+ },
+ {
+ "id": "F17-2-3",
+ "description": "Sojadrinks, Getreidedrinks & Desserts",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F17-2-3",
+ "code": null
+ },
+ {
+ "id": "F17-2-4",
+ "description": "Tofu & Soja",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F17-2-4",
+ "code": null
+ },
+ {
+ "id": "F1",
+ "description": "Obst & Gemüse",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F1",
+ "code": null
+ },
+ {
+ "id": "F1-1",
+ "description": "Frischgemüse",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F1-1",
+ "code": "01"
+ },
+ {
+ "id": "F1-1-1",
+ "description": "Salat",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F1-1-1",
+ "code": null
+ },
+ {
+ "id": "F1-1-2",
+ "description": "Tomaten & Gurken",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F1-1-2",
+ "code": null
+ },
+ {
+ "id": "F1-1-3",
+ "description": "Paprika & Pfefferoni",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F1-1-3",
+ "code": null
+ },
+ {
+ "id": "F1-1-4",
+ "description": "Wurzelgemüse",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F1-1-4",
+ "code": null
+ },
+ {
+ "id": "F1-1-5",
+ "description": "Kräuter",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F1-1-5",
+ "code": null
+ },
+ {
+ "id": "F1-1-6",
+ "description": "Kartoffeln, Zwiebeln & Co.",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F1-1-6",
+ "code": null
+ },
+ {
+ "id": "F1-1-7",
+ "description": "Zucchini, Melanzani & Co.",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F1-1-7",
+ "code": null
+ },
+ {
+ "id": "F1-1-8",
+ "description": "Broccoli & Kohl",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F1-1-8",
+ "code": null
+ },
+ {
+ "id": "F1-1-9",
+ "description": "Hülsenfrüchte",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F1-1-9",
+ "code": null
+ },
+ {
+ "id": "F1-1-10",
+ "description": "Pilze",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F1-1-10",
+ "code": null
+ },
+ {
+ "id": "F1-1-11",
+ "description": "Spargel",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F1-1-11",
+ "code": null
+ },
+ {
+ "id": "F1-2",
+ "description": "Frischobst",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F1-2",
+ "code": "00"
+ },
+ {
+ "id": "F1-2-1",
+ "description": "Äpfel",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F1-2-1",
+ "code": null
+ },
+ {
+ "id": "F1-2-2",
+ "description": "Birnen",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F1-2-2",
+ "code": null
+ },
+ {
+ "id": "F1-2-3",
+ "description": "Steinobst",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F1-2-3",
+ "code": null
+ },
+ {
+ "id": "F1-2-4",
+ "description": "Beeren",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F1-2-4",
+ "code": null
+ },
+ {
+ "id": "F1-2-5",
+ "description": "Trauben",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F1-2-5",
+ "code": null
+ },
+ {
+ "id": "F1-2-6",
+ "description": "Bananen",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F1-2-6",
+ "code": null
+ },
+ {
+ "id": "F1-2-7",
+ "description": "Zitrusfrüchte",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F1-2-7",
+ "code": null
+ },
+ {
+ "id": "F1-2-8",
+ "description": "Melonen",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F1-2-8",
+ "code": null
+ },
+ {
+ "id": "F1-2-9",
+ "description": "Exotische Früchte",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F1-2-9",
+ "code": null
+ },
+ {
+ "id": "F1-3",
+ "description": "Obst-, Gemüse- & Salat-Zubereitungen",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F1-3",
+ "code": "01"
+ },
+ {
+ "id": "F1-3-1",
+ "description": "Gemüse- & Salat-Zubereitungen",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F1-3-1",
+ "code": null
+ },
+ {
+ "id": "F1-4",
+ "description": "Saisonartikel",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F1-4",
+ "code": "01"
+ },
+ {
+ "id": "F1-5",
+ "description": "Obst- & Gemüsekisten",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F1-5",
+ "code": "00"
+ },
+ {
+ "id": "F2",
+ "description": "Kühlregal",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F2",
+ "code": null
+ },
+ {
+ "id": "F2-1",
+ "description": "Molkerei & Eier",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F2-1",
+ "code": "34"
+ },
+ {
+ "id": "F2-1-1",
+ "description": "Milch",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F2-1-1",
+ "code": "34"
+ },
+ {
+ "id": "F2-1-2",
+ "description": "Milchgetränk",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F2-1-2",
+ "code": "34"
+ },
+ {
+ "id": "F2-1-3",
+ "description": "Eiskaffee",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F2-1-3",
+ "code": "20"
+ },
+ {
+ "id": "F2-1-4",
+ "description": "Produkte auf Pflanzenbasis",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F2-1-4",
+ "code": "5D"
+ },
+ {
+ "id": "F2-1-5",
+ "description": "Rahm, Schlagobers & Topfen",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F2-1-5",
+ "code": "34"
+ },
+ {
+ "id": "F2-1-7",
+ "description": "Butter, Margarine & Fette",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F2-1-7",
+ "code": "34"
+ },
+ {
+ "id": "F2-1-8",
+ "description": "Eier",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F2-1-8",
+ "code": "31"
+ },
+ {
+ "id": "F2-2",
+ "description": "Joghurt & Desserts",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F2-2",
+ "code": "34"
+ },
+ {
+ "id": "F2-2-1",
+ "description": "Desserts",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F2-2-1",
+ "code": null
+ },
+ {
+ "id": "F2-2-2",
+ "description": "Pudding",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F2-2-2",
+ "code": null
+ },
+ {
+ "id": "F2-2-3",
+ "description": "Fruchtjoghurt",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F2-2-3",
+ "code": null
+ },
+ {
+ "id": "F2-2-4",
+ "description": "Naturjoghurt",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F2-2-4",
+ "code": null
+ },
+ {
+ "id": "F2-2-5",
+ "description": "Milchsnack",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F2-2-5",
+ "code": null
+ },
+ {
+ "id": "F2-3",
+ "description": "Käse",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F2-3",
+ "code": "33"
+ },
+ {
+ "id": "F2-3-1",
+ "description": "Hartkäse",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F2-3-1",
+ "code": null
+ },
+ {
+ "id": "F2-3-2",
+ "description": "Schnittkäse",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F2-3-2",
+ "code": null
+ },
+ {
+ "id": "F2-3-3",
+ "description": "Weichkäse",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F2-3-3",
+ "code": null
+ },
+ {
+ "id": "F2-3-4",
+ "description": "Frischkäse",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F2-3-4",
+ "code": null
+ },
+ {
+ "id": "F2-3-5",
+ "description": "Schmelzkäse",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F2-3-5",
+ "code": null
+ },
+ {
+ "id": "F2-3-6",
+ "description": "Sauermilchkäse",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F2-3-6",
+ "code": null
+ },
+ {
+ "id": "F2-3-7",
+ "description": "Käse in Scheiben",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F2-3-7",
+ "code": null
+ },
+ {
+ "id": "F2-3-8",
+ "description": "Käse gerieben",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F2-3-8",
+ "code": null
+ },
+ {
+ "id": "F2-3-9",
+ "description": "Käse für die warme Küche",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F2-3-9",
+ "code": null
+ },
+ {
+ "id": "F2-4",
+ "description": "Aufstriche & Salate",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F2-4",
+ "code": "33"
+ },
+ {
+ "id": "F2-4-1",
+ "description": "Aufstriche",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F2-4-1",
+ "code": null
+ },
+ {
+ "id": "F2-4-2",
+ "description": "Gabelbissen",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F2-4-2",
+ "code": null
+ },
+ {
+ "id": "F2-4-3",
+ "description": "Feinkostsalate",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F2-4-3",
+ "code": null
+ },
+ {
+ "id": "F2-5",
+ "description": "Fertiggerichte, Snacks & Teige",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F2-5",
+ "code": "30"
+ },
+ {
+ "id": "F2-5-1",
+ "description": "Sandwiches & Snacks",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F2-5-1",
+ "code": null
+ },
+ {
+ "id": "F2-5-2",
+ "description": "Baguette & Pizzen",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F2-5-2",
+ "code": null
+ },
+ {
+ "id": "F2-5-3",
+ "description": "Hausmannskost",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F2-5-3",
+ "code": null
+ },
+ {
+ "id": "F2-5-4",
+ "description": "Internationale Küche",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F2-5-4",
+ "code": null
+ },
+ {
+ "id": "F2-5-5",
+ "description": "Fertigsuppen & Co",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F2-5-5",
+ "code": null
+ },
+ {
+ "id": "F2-5-6",
+ "description": "Fertignudeln & Teigwaren",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F2-5-6",
+ "code": null
+ },
+ {
+ "id": "F2-5-7",
+ "description": "Süßspeisen",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F2-5-7",
+ "code": null
+ },
+ {
+ "id": "F2-5-8",
+ "description": "Teige",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F2-5-8",
+ "code": null
+ },
+ {
+ "id": "F2-6",
+ "description": "Vegetarisch, Tofu, Soja & Co",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F2-6",
+ "code": "3B"
+ },
+ {
+ "id": "F2-6-1",
+ "description": "Produkte auf Pflanzenbasis & Laktosefrei",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F2-6-1",
+ "code": null
+ },
+ {
+ "id": "F2-6-2",
+ "description": "Vegetarische Mahlzeiten",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F2-6-2",
+ "code": null
+ },
+ {
+ "id": "F2-6-3",
+ "description": "Vegetarische Aufstriche & Dip Saucen",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F2-6-3",
+ "code": null
+ },
+ {
+ "id": "F2-6-4",
+ "description": "Vegetarische Laibchen & Bratlinge",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F2-6-4",
+ "code": null
+ },
+ {
+ "id": "F2-6-5",
+ "description": "Vegetarische Fleisch- & Wurstwaren",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F2-6-5",
+ "code": null
+ },
+ {
+ "id": "F2-6-6",
+ "description": "Tofu",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F2-6-6",
+ "code": null
+ },
+ {
+ "id": "F2-6-7",
+ "description": "Vegetarischer Aufschnitt",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F2-6-7",
+ "code": null
+ },
+ {
+ "id": "F2-6-8",
+ "description": "Alternativen auf Soja Basis",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F2-6-8",
+ "code": null
+ },
+ {
+ "id": "F3",
+ "description": "Wurst, Fleisch & Fisch",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F3",
+ "code": null
+ },
+ {
+ "id": "F3-1",
+ "description": "Wurst & Selchwaren",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F3-1",
+ "code": "37"
+ },
+ {
+ "id": "F3-1-1",
+ "description": "Salami",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F3-1-1",
+ "code": null
+ },
+ {
+ "id": "F3-1-2",
+ "description": "Dauerwurst",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F3-1-2",
+ "code": null
+ },
+ {
+ "id": "F3-1-3",
+ "description": "Rohwurst",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F3-1-3",
+ "code": null
+ },
+ {
+ "id": "F3-1-4",
+ "description": "Spezialitäten",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F3-1-4",
+ "code": null
+ },
+ {
+ "id": "F3-1-5",
+ "description": "Streichwurst & Pasteten",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F3-1-5",
+ "code": null
+ },
+ {
+ "id": "F3-1-6",
+ "description": "Würstel",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F3-1-6",
+ "code": null
+ },
+ {
+ "id": "F3-1-7",
+ "description": "Schinken & Prosciutto",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F3-1-7",
+ "code": null
+ },
+ {
+ "id": "F3-1-8",
+ "description": "Speck",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F3-1-8",
+ "code": null
+ },
+ {
+ "id": "F3-1-9",
+ "description": "Aufschnitt & Stangenwurst",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F3-1-9",
+ "code": null
+ },
+ {
+ "id": "F3-1-10",
+ "description": "Leberkäse",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F3-1-10",
+ "code": null
+ },
+ {
+ "id": "F3-1-11",
+ "description": "Sülzen",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F3-1-11",
+ "code": null
+ },
+ {
+ "id": "F3-1-12",
+ "description": "Selchwaren",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F3-1-12",
+ "code": null
+ },
+ {
+ "id": "F3-1-13",
+ "description": "Schmalz, Grammeln & Co",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F3-1-13",
+ "code": null
+ },
+ {
+ "id": "F3-2",
+ "description": "Frischfleisch & -Geflügel",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F3-2",
+ "code": "32"
+ },
+ {
+ "id": "F3-2-1",
+ "description": "Schwein",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F3-2-1",
+ "code": null
+ },
+ {
+ "id": "F3-2-2",
+ "description": "Rind",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F3-2-2",
+ "code": null
+ },
+ {
+ "id": "F3-2-3",
+ "description": "Kalb",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F3-2-3",
+ "code": null
+ },
+ {
+ "id": "F3-2-5",
+ "description": "Sonstige Fleischprodukte",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F3-2-5",
+ "code": null
+ },
+ {
+ "id": "F3-2-6",
+ "description": "Huhn",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F3-2-6",
+ "code": null
+ },
+ {
+ "id": "F3-2-7",
+ "description": "Pute",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F3-2-7",
+ "code": null
+ },
+ {
+ "id": "F3-2-8",
+ "description": "Sonstiges Geflügel",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F3-2-8",
+ "code": null
+ },
+ {
+ "id": "F3-3",
+ "description": "Fisch",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F3-3",
+ "code": "39"
+ },
+ {
+ "id": "F3-3-1",
+ "description": "Fischfeinkost, Marinaden & Kaviar",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F3-3-1",
+ "code": null
+ },
+ {
+ "id": "F3-3-2",
+ "description": "Räucherlachs",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F3-3-2",
+ "code": null
+ },
+ {
+ "id": "F3-3-3",
+ "description": "Räucherforelle",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F3-3-3",
+ "code": null
+ },
+ {
+ "id": "F3-3-4",
+ "description": "Sonstige Fische geräuchert",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F3-3-4",
+ "code": null
+ },
+ {
+ "id": "F3-3-5",
+ "description": "Meeresfische & -früchte",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F3-3-5",
+ "code": null
+ },
+ {
+ "id": "F3-3-6",
+ "description": "Sushi",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F3-3-6",
+ "code": null
+ },
+ {
+ "id": "F3-3-7",
+ "description": "Frischfisch",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F3-3-7",
+ "code": null
+ },
+ {
+ "id": "F4",
+ "description": "Vorratsschrank",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F4",
+ "code": null
+ },
+ {
+ "id": "F4-1",
+ "description": "Feinkost & Konserven",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F4-1",
+ "code": "57"
+ },
+ {
+ "id": "F4-1-1",
+ "description": "Gemüse & Sauergemüse",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F4-1-1",
+ "code": null
+ },
+ {
+ "id": "F4-1-2",
+ "description": "Obst",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F4-1-2",
+ "code": null
+ },
+ {
+ "id": "F4-1-3",
+ "description": "Fisch",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F4-1-3",
+ "code": null
+ },
+ {
+ "id": "F4-1-4",
+ "description": "Pikante Aufstriche & Pasteten",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F4-1-4",
+ "code": null
+ },
+ {
+ "id": "F4-1-5",
+ "description": "Fertiggerichte",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F4-1-5",
+ "code": null
+ },
+ {
+ "id": "F4-1-6",
+ "description": "Suppen",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F4-1-6",
+ "code": null
+ },
+ {
+ "id": "F4-2",
+ "description": "Frühstück",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F4-2",
+ "code": "56"
+ },
+ {
+ "id": "F4-2-1",
+ "description": "Konfitüre",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F4-2-1",
+ "code": "56"
+ },
+ {
+ "id": "F4-2-2",
+ "description": "Honig",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F4-2-2",
+ "code": "56"
+ },
+ {
+ "id": "F4-2-3",
+ "description": "Nuss- & Schokoaufstriche",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F4-2-3",
+ "code": "56"
+ },
+ {
+ "id": "F4-2-4",
+ "description": "Cerealien & Müsli",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F4-2-4",
+ "code": "5A"
+ },
+ {
+ "id": "F4-3",
+ "description": "Grundnahrungsmittel",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F4-3",
+ "code": "5F"
+ },
+ {
+ "id": "F4-3-1",
+ "description": "Gewürze",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F4-3-1",
+ "code": "55"
+ },
+ {
+ "id": "F4-3-2",
+ "description": "Saucen & Würze",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F4-3-2",
+ "code": "5C"
+ },
+ {
+ "id": "F4-3-3",
+ "description": "Saucen Süß",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F4-3-3",
+ "code": "5C"
+ },
+ {
+ "id": "F4-3-4",
+ "description": "Senf & Kren",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F4-3-4",
+ "code": "5C"
+ },
+ {
+ "id": "F4-3-5",
+ "description": "Ketchup & Mayonnaise",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F4-3-5",
+ "code": "5C"
+ },
+ {
+ "id": "F4-3-6",
+ "description": "Essig",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F4-3-6",
+ "code": "53"
+ },
+ {
+ "id": "F4-3-7",
+ "description": "Öl",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F4-3-7",
+ "code": "53"
+ },
+ {
+ "id": "F4-3-8",
+ "description": "Dressing & Croutons",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F4-3-8",
+ "code": "5C"
+ },
+ {
+ "id": "F4-3-9",
+ "description": "Zucker",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F4-3-9",
+ "code": "5E"
+ },
+ {
+ "id": "F4-3-10",
+ "description": "Salz",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F4-3-10",
+ "code": "55"
+ },
+ {
+ "id": "F4-4",
+ "description": "Beilagen & Basisprodukte",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F4-4",
+ "code": "5B"
+ },
+ {
+ "id": "F4-4-1",
+ "description": "Teigwaren",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F4-4-1",
+ "code": "5B"
+ },
+ {
+ "id": "F4-4-2",
+ "description": "Reis",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F4-4-2",
+ "code": "5B"
+ },
+ {
+ "id": "F4-4-3",
+ "description": "Kartoffelprodukte",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F4-4-3",
+ "code": "5F"
+ },
+ {
+ "id": "F4-4-4",
+ "description": "Samen & Hülsenfrüchte",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F4-4-4",
+ "code": "57"
+ },
+ {
+ "id": "F4-4-5",
+ "description": "Fix- & Basisprodukte",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F4-4-5",
+ "code": "5F"
+ },
+ {
+ "id": "F4-4-7",
+ "description": "Saucen & Würze",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F4-4-7",
+ "code": "5C"
+ },
+ {
+ "id": "F4-4-8",
+ "description": "Einkochen",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F4-4-8",
+ "code": "52"
+ },
+ {
+ "id": "F4-4-10",
+ "description": "Desserts",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F4-4-10",
+ "code": "58"
+ },
+ {
+ "id": "F4-4-6",
+ "description": "Suppen & Bouillons",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F4-4-6",
+ "code": "54"
+ },
+ {
+ "id": "F4-5",
+ "description": "Getreideprodukte & Backen",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F4-5",
+ "code": null
+ },
+ {
+ "id": "F4-5-1",
+ "description": "Mehl",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F4-5-1",
+ "code": "59"
+ },
+ {
+ "id": "F4-5-2",
+ "description": "Grieß & Co",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F4-5-2",
+ "code": "59"
+ },
+ {
+ "id": "F4-5-3",
+ "description": "Getreideprodukte",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F4-5-3",
+ "code": "59"
+ },
+ {
+ "id": "F4-5-4",
+ "description": "Backmischungen",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F4-5-4",
+ "code": "52"
+ },
+ {
+ "id": "F4-5-5",
+ "description": "Backzutaten & Hilfsmittel",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F4-5-5",
+ "code": "52"
+ },
+ {
+ "id": "F4-5-6",
+ "description": "Verfeinerungen",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F4-5-6",
+ "code": "52"
+ },
+ {
+ "id": "F4-6",
+ "description": "Trockenfrüchte, Nüsse & Kerne",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F4-6",
+ "code": "03"
+ },
+ {
+ "id": "F4-6-1",
+ "description": "Trockenfrüchte",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F4-6-1",
+ "code": null
+ },
+ {
+ "id": "F4-6-2",
+ "description": "Nüsse & Kerne",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F4-6-2",
+ "code": null
+ },
+ {
+ "id": "F4-7",
+ "description": "Reform & Nahrungsergänzung",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F4-7",
+ "code": "5D"
+ },
+ {
+ "id": "F4-7-1",
+ "description": "Reformprodukte",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F4-7-1",
+ "code": null
+ },
+ {
+ "id": "F4-7-2",
+ "description": "Nahrungsergänzung",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F4-7-2",
+ "code": null
+ },
+ {
+ "id": "F4-7-3",
+ "description": "Soja-, Getreidedrinks & Desserts",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F4-7-3",
+ "code": null
+ },
+ {
+ "id": "F4-7-4",
+ "description": "Tofu & Soja ungekühlt",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F4-7-4",
+ "code": null
+ },
+ {
+ "id": "F4-8",
+ "description": "Asien & Mexiko",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F4-8",
+ "code": "50"
+ },
+ {
+ "id": "F5",
+ "description": "Süßwaren & Knabbereien",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F5",
+ "code": null
+ },
+ {
+ "id": "F5-1",
+ "description": "Süßwaren",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F5-1",
+ "code": "64"
+ },
+ {
+ "id": "F5-1-1",
+ "description": "Kekse & Biskotten",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F5-1-1",
+ "code": null
+ },
+ {
+ "id": "F5-1-2",
+ "description": "Waffeln & Schnitten",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F5-1-2",
+ "code": null
+ },
+ {
+ "id": "F5-1-3",
+ "description": "Kaugummi",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F5-1-3",
+ "code": null
+ },
+ {
+ "id": "F5-1-4",
+ "description": "Pralinen & Dragees",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F5-1-4",
+ "code": null
+ },
+ {
+ "id": "F5-1-5",
+ "description": "Schokolade",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F5-1-5",
+ "code": null
+ },
+ {
+ "id": "F5-1-6",
+ "description": "Riegel",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F5-1-6",
+ "code": null
+ },
+ {
+ "id": "F5-1-7",
+ "description": "Bonbons & Pastillen",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F5-1-7",
+ "code": null
+ },
+ {
+ "id": "F5-1-8",
+ "description": "Fruchtgummi",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F5-1-8",
+ "code": null
+ },
+ {
+ "id": "F5-1-9",
+ "description": "Schoko- & Schaumzuckerware",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F5-1-9",
+ "code": null
+ },
+ {
+ "id": "F5-1-10",
+ "description": "Lebkuchen",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F5-1-10",
+ "code": null
+ },
+ {
+ "id": "F5-1-11",
+ "description": "Saisonartikel",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F5-1-11",
+ "code": null
+ },
+ {
+ "id": "F5-1-12",
+ "description": "Sonstige Süßwaren",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F5-1-12",
+ "code": null
+ },
+ {
+ "id": "F5-2",
+ "description": "Knabbergebäck",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F5-2",
+ "code": "63"
+ },
+ {
+ "id": "F5-2-1",
+ "description": "Chips & Snips",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F5-2-1",
+ "code": null
+ },
+ {
+ "id": "F5-2-2",
+ "description": "Nachos & Dips",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F5-2-2",
+ "code": null
+ },
+ {
+ "id": "F5-2-3",
+ "description": "Nüsse & Kerne",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F5-2-3",
+ "code": null
+ },
+ {
+ "id": "F5-2-4",
+ "description": "Laugengebäck & Salzgebäck",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F5-2-4",
+ "code": null
+ },
+ {
+ "id": "F5-2-5",
+ "description": "Popcorn",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F5-2-5",
+ "code": null
+ },
+ {
+ "id": "F5-2-6",
+ "description": "Reiswaffeln & mehr",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F5-2-6",
+ "code": null
+ },
+ {
+ "id": "F6",
+ "description": "Brot & Gebäck",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F6",
+ "code": null
+ },
+ {
+ "id": "F6-1",
+ "description": "Aufbackware Brot & Gebäck",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F6-1",
+ "code": "10"
+ },
+ {
+ "id": "F6-2",
+ "description": "Brot",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F6-2",
+ "code": "11"
+ },
+ {
+ "id": "F6-2-1",
+ "description": "Schwarzbrot",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F6-2-1",
+ "code": null
+ },
+ {
+ "id": "F6-2-2",
+ "description": "Spezialbrot",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F6-2-2",
+ "code": null
+ },
+ {
+ "id": "F6-2-3",
+ "description": "Vollkornbrot",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F6-2-3",
+ "code": null
+ },
+ {
+ "id": "F6-2-4",
+ "description": "Weiß- & Halbweißbrot",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F6-2-4",
+ "code": null
+ },
+ {
+ "id": "F6-2-5",
+ "description": "Toast",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F6-2-5",
+ "code": null
+ },
+ {
+ "id": "F6-2-6",
+ "description": "Baguette & Ciabatta",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F6-2-6",
+ "code": null
+ },
+ {
+ "id": "F6-2-7",
+ "description": "Sonstiges Brot",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F6-2-7",
+ "code": null
+ },
+ {
+ "id": "F6-3",
+ "description": "Gebäck",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F6-3",
+ "code": "11"
+ },
+ {
+ "id": "F6-3-1",
+ "description": "Semmel",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F6-3-1",
+ "code": null
+ },
+ {
+ "id": "F6-3-2",
+ "description": "Salzstangerl",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F6-3-2",
+ "code": null
+ },
+ {
+ "id": "F6-3-3",
+ "description": "Korn- & Vollkorngebäck",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F6-3-3",
+ "code": null
+ },
+ {
+ "id": "F6-3-4",
+ "description": "Laugengebäck",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F6-3-4",
+ "code": null
+ },
+ {
+ "id": "F6-3-5",
+ "description": "Sonstiges Kleingebäck",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F6-3-5",
+ "code": null
+ },
+ {
+ "id": "F6-4",
+ "description": "Feinbackwaren",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F6-4",
+ "code": "12"
+ },
+ {
+ "id": "F6-4-1",
+ "description": "Croissant & Plundergebäck",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F6-4-1",
+ "code": null
+ },
+ {
+ "id": "F6-4-2",
+ "description": "Strudel & Hefeteiggebäck",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F6-4-2",
+ "code": null
+ },
+ {
+ "id": "F6-4-3",
+ "description": "Zöpfe",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F6-4-3",
+ "code": null
+ },
+ {
+ "id": "F6-4-4",
+ "description": "Kuchen & Torten",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F6-4-4",
+ "code": null
+ },
+ {
+ "id": "F6-4-5",
+ "description": "Rouladen",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F6-4-5",
+ "code": null
+ },
+ {
+ "id": "F6-4-6",
+ "description": "Schnitten",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F6-4-6",
+ "code": null
+ },
+ {
+ "id": "F6-4-7",
+ "description": "Kekse",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F6-4-7",
+ "code": null
+ },
+ {
+ "id": "F6-4-9",
+ "description": "Sonstige Konditoreiwaren",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F6-4-9",
+ "code": null
+ },
+ {
+ "id": "F6-4-11",
+ "description": "Saisonware",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F6-4-11",
+ "code": null
+ },
+ {
+ "id": "F6-5",
+ "description": "Knäckebrot & Zwieback",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F6-5",
+ "code": "12"
+ },
+ {
+ "id": "F6-5-1",
+ "description": "Knäckebrot, Grissini & Co",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F6-5-1",
+ "code": null
+ },
+ {
+ "id": "F6-5-2",
+ "description": "Zwieback",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F6-5-2",
+ "code": null
+ },
+ {
+ "id": "F6-6",
+ "description": "Brösel & Semmelwürfel",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F6-6",
+ "code": "14"
+ },
+ {
+ "id": "F7",
+ "description": "Getränke",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F7",
+ "code": null
+ },
+ {
+ "id": "F7-1",
+ "description": "Softdrinks & Säfte",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F7-1",
+ "code": "20"
+ },
+ {
+ "id": "F7-1-1",
+ "description": "Fruchtsäfte & Nektare",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F7-1-1",
+ "code": null
+ },
+ {
+ "id": "F7-1-2",
+ "description": "Fruchtsäfte gespritzt",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F7-1-2",
+ "code": null
+ },
+ {
+ "id": "F7-1-3",
+ "description": "Cola & Limonaden",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F7-1-3",
+ "code": null
+ },
+ {
+ "id": "F7-1-4",
+ "description": "Tonic & Bitter Getränke",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F7-1-4",
+ "code": null
+ },
+ {
+ "id": "F7-1-5",
+ "description": "Eistee & Getränke auf Teebasis",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F7-1-5",
+ "code": null
+ },
+ {
+ "id": "F7-1-6",
+ "description": "Sirupe",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F7-1-6",
+ "code": null
+ },
+ {
+ "id": "F7-1-7",
+ "description": "Smoothies & gekühlte Säfte",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F7-1-7",
+ "code": null
+ },
+ {
+ "id": "F7-1-8",
+ "description": "Sport- & isotonische Getränke",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F7-1-8",
+ "code": null
+ },
+ {
+ "id": "F7-1-9",
+ "description": "Energy Drinks",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F7-1-9",
+ "code": null
+ },
+ {
+ "id": "F7-2",
+ "description": "Mineral- & Tafelwasser",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F7-2",
+ "code": "26"
+ },
+ {
+ "id": "F7-2-1",
+ "description": "Mineralwasser",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F7-2-1",
+ "code": null
+ },
+ {
+ "id": "F7-2-3",
+ "description": "Fruchtiges Mineralwasser",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F7-2-3",
+ "code": null
+ },
+ {
+ "id": "F7-3",
+ "description": "Kaffee",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F7-3",
+ "code": "22"
+ },
+ {
+ "id": "F7-3-2",
+ "description": "Ganze Bohnen",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F7-3-2",
+ "code": null
+ },
+ {
+ "id": "F7-3-3",
+ "description": "Gemahlen",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F7-3-3",
+ "code": null
+ },
+ {
+ "id": "F7-3-4",
+ "description": "Kapseln & Pads",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F7-3-4",
+ "code": null
+ },
+ {
+ "id": "F7-3-5",
+ "description": "löslich",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F7-3-5",
+ "code": null
+ },
+ {
+ "id": "F7-4",
+ "description": "Tee",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F7-4",
+ "code": "22"
+ },
+ {
+ "id": "F7-4-1",
+ "description": "Früchtetee",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F7-4-1",
+ "code": null
+ },
+ {
+ "id": "F7-4-2",
+ "description": "Kräutertee",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F7-4-2",
+ "code": null
+ },
+ {
+ "id": "F7-4-3",
+ "description": "Grüner & Weißer Tee",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F7-4-3",
+ "code": null
+ },
+ {
+ "id": "F7-4-4",
+ "description": "Schwarzer Tee",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F7-4-4",
+ "code": null
+ },
+ {
+ "id": "F7-5",
+ "description": "Kakao",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F7-5",
+ "code": "22"
+ },
+ {
+ "id": "F7-6",
+ "description": "Bier",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F7-6",
+ "code": "21"
+ },
+ {
+ "id": "F7-6-1",
+ "description": "Lager/Märzen",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F7-6-1",
+ "code": null
+ },
+ {
+ "id": "F7-6-2",
+ "description": "Schankbier",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F7-6-2",
+ "code": null
+ },
+ {
+ "id": "F7-6-3",
+ "description": "Obersorten",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F7-6-3",
+ "code": null
+ },
+ {
+ "id": "F7-6-4",
+ "description": "Pils",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F7-6-4",
+ "code": null
+ },
+ {
+ "id": "F7-6-5",
+ "description": "Bockbier",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F7-6-5",
+ "code": null
+ },
+ {
+ "id": "F7-6-6",
+ "description": "Unfiltriert/Zwickl Bier",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F7-6-6",
+ "code": null
+ },
+ {
+ "id": "F7-6-7",
+ "description": "Dunkles Bier",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F7-6-7",
+ "code": null
+ },
+ {
+ "id": "F7-6-8",
+ "description": "Spezialbier",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F7-6-8",
+ "code": null
+ },
+ {
+ "id": "F7-6-9",
+ "description": "Weizenbier",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F7-6-9",
+ "code": null
+ },
+ {
+ "id": "F7-6-10",
+ "description": "Sonstige Biere",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F7-6-10",
+ "code": null
+ },
+ {
+ "id": "F7-6-11",
+ "description": "Alkoholreduziertes Bier",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F7-6-11",
+ "code": null
+ },
+ {
+ "id": "F7-6-12",
+ "description": "Alkoholfreies Bier",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F7-6-12",
+ "code": null
+ },
+ {
+ "id": "F7-6-13",
+ "description": "Radler",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F7-6-13",
+ "code": null
+ },
+ {
+ "id": "F7-6-14",
+ "description": "Craft Beer",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F7-6-14",
+ "code": null
+ },
+ {
+ "id": "F7-7",
+ "description": "Wein & Schaumwein",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F7-7",
+ "code": null
+ },
+ {
+ "id": "F7-7-1",
+ "description": "Rotwein",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F7-7-1",
+ "code": "25"
+ },
+ {
+ "id": "F7-7-2",
+ "description": "Weißwein",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F7-7-2",
+ "code": "25"
+ },
+ {
+ "id": "F7-7-3",
+ "description": "Rosewein",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F7-7-3",
+ "code": "25"
+ },
+ {
+ "id": "F7-7-4",
+ "description": "Dessertwein, Sherry & Port",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F7-7-4",
+ "code": "25"
+ },
+ {
+ "id": "F7-7-5",
+ "description": "Sekt & Champagner",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F7-7-5",
+ "code": "23"
+ },
+ {
+ "id": "F7-7-6",
+ "description": "Frizzante & Prosecco",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F7-7-6",
+ "code": "23"
+ },
+ {
+ "id": "F7-7-7",
+ "description": "Cider & Fruchtschaumwein",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F7-7-7",
+ "code": "25"
+ },
+ {
+ "id": "F7-7-8",
+ "description": "Weinhaltige Getränke",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F7-7-8",
+ "code": "25"
+ },
+ {
+ "id": "F7-7-9",
+ "description": "Alkoholfreier Wein & Schaumwein",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F7-7-9",
+ "code": "25"
+ },
+ {
+ "id": "F7-8",
+ "description": "Spirituosen",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F7-8",
+ "code": "24"
+ },
+ {
+ "id": "F7-8-1",
+ "description": "Whisky/Whiskey",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F7-8-1",
+ "code": null
+ },
+ {
+ "id": "F7-8-2",
+ "description": "Weinbrand",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F7-8-2",
+ "code": null
+ },
+ {
+ "id": "F7-8-3",
+ "description": "Vodka",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F7-8-3",
+ "code": null
+ },
+ {
+ "id": "F7-8-4",
+ "description": "Rum",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F7-8-4",
+ "code": null
+ },
+ {
+ "id": "F7-8-5",
+ "description": "Edelbrände",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F7-8-5",
+ "code": null
+ },
+ {
+ "id": "F7-8-6",
+ "description": "Tequila & Gin",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F7-8-6",
+ "code": null
+ },
+ {
+ "id": "F7-8-7",
+ "description": "Liköre",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F7-8-7",
+ "code": null
+ },
+ {
+ "id": "F7-8-8",
+ "description": "Wermut",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F7-8-8",
+ "code": null
+ },
+ {
+ "id": "F7-8-9",
+ "description": "Bittergetränke",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F7-8-9",
+ "code": null
+ },
+ {
+ "id": "F7-8-10",
+ "description": "Premixes",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F7-8-10",
+ "code": null
+ },
+ {
+ "id": "F7-8-11",
+ "description": "Heißgetränke",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F7-8-11",
+ "code": null
+ },
+ {
+ "id": "F8",
+ "description": "Tiefkühlung",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F8",
+ "code": null
+ },
+ {
+ "id": "F8-1",
+ "description": "Fleisch, Fisch & Meeresfrüchte",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F8-1",
+ "code": "42"
+ },
+ {
+ "id": "F8-1-1",
+ "description": "Schwein",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F8-1-1",
+ "code": "42"
+ },
+ {
+ "id": "F8-1-2",
+ "description": "Rind & Wild",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F8-1-2",
+ "code": "42"
+ },
+ {
+ "id": "F8-1-3",
+ "description": "Gans & Ente",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F8-1-3",
+ "code": "42"
+ },
+ {
+ "id": "F8-1-4",
+ "description": "Huhn & Pute",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F8-1-4",
+ "code": "42"
+ },
+ {
+ "id": "F8-1-5",
+ "description": "Fisch",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F8-1-5",
+ "code": "43"
+ },
+ {
+ "id": "F8-1-6",
+ "description": "Meeresfrüchte",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F8-1-6",
+ "code": "43"
+ },
+ {
+ "id": "F8-2",
+ "description": "Gemüse, Obst & Kartoffelprodukte",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F8-2",
+ "code": "41"
+ },
+ {
+ "id": "F8-2-1",
+ "description": "Gemüse",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F8-2-1",
+ "code": "44"
+ },
+ {
+ "id": "F8-2-2",
+ "description": "Kräuter & Pilze",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F8-2-2",
+ "code": "44"
+ },
+ {
+ "id": "F8-2-3",
+ "description": "Obst",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F8-2-3",
+ "code": "47"
+ },
+ {
+ "id": "F8-2-4",
+ "description": "Pommes Frites",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F8-2-4",
+ "code": "45"
+ },
+ {
+ "id": "F8-2-5",
+ "description": "Kroketten & Co",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F8-2-5",
+ "code": "45"
+ },
+ {
+ "id": "F8-3",
+ "description": "Fertiggerichte & Teige",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F8-3",
+ "code": "42"
+ },
+ {
+ "id": "F8-3-1",
+ "description": "Fisch",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F8-3-1",
+ "code": null
+ },
+ {
+ "id": "F8-3-2",
+ "description": "Gemüse",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F8-3-2",
+ "code": null
+ },
+ {
+ "id": "F8-3-3",
+ "description": "Traditionelle Gerichte",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F8-3-3",
+ "code": null
+ },
+ {
+ "id": "F8-3-4",
+ "description": "Internationale Gerichte",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F8-3-4",
+ "code": null
+ },
+ {
+ "id": "F8-3-5",
+ "description": "Knödel",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F8-3-5",
+ "code": null
+ },
+ {
+ "id": "F8-3-8",
+ "description": "Tiefkühlteige",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F8-3-8",
+ "code": null
+ },
+ {
+ "id": "F8-4",
+ "description": "Pizza, Baguette & Gebäck",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F8-4",
+ "code": null
+ },
+ {
+ "id": "F8-4-1",
+ "description": "Baguette",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F8-4-1",
+ "code": "46"
+ },
+ {
+ "id": "F8-4-2",
+ "description": "Pizzasnacks",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F8-4-2",
+ "code": "46"
+ },
+ {
+ "id": "F8-4-3",
+ "description": "American Style Pizza",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F8-4-3",
+ "code": "46"
+ },
+ {
+ "id": "F8-4-4",
+ "description": "Italian Style Pizza",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F8-4-4",
+ "code": "46"
+ },
+ {
+ "id": "F8-4-5",
+ "description": "Tiefkühl Gebäck",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F8-4-5",
+ "code": "46"
+ },
+ {
+ "id": "F8-5",
+ "description": "Mehlspeisen & Eis",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F8-5",
+ "code": "42"
+ },
+ {
+ "id": "F8-5-1",
+ "description": "Süße Knödel",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F8-5-1",
+ "code": "47"
+ },
+ {
+ "id": "F8-5-2",
+ "description": "Strudel",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F8-5-2",
+ "code": "47"
+ },
+ {
+ "id": "F8-5-3",
+ "description": "Nudeln",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F8-5-3",
+ "code": "47"
+ },
+ {
+ "id": "F8-5-5",
+ "description": "Sonstige klassische Mehlspeisen",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F8-5-5",
+ "code": "47"
+ },
+ {
+ "id": "F8-5-6",
+ "description": "Torten, Kuchen & Desserts",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F8-5-6",
+ "code": "47"
+ },
+ {
+ "id": "F8-5-7",
+ "description": "Eisbecher",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F8-5-7",
+ "code": "40"
+ },
+ {
+ "id": "F8-5-8",
+ "description": "Eis am Stiel & Stanitzel",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F8-5-8",
+ "code": "40"
+ },
+ {
+ "id": "F8-5-10",
+ "description": "Eis",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F8-5-10",
+ "code": "40"
+ },
+ {
+ "id": "F9",
+ "description": "Baby",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F9",
+ "code": null
+ },
+ {
+ "id": "F9-1",
+ "description": "Babynahrung & Getränke",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F9-1",
+ "code": "51"
+ },
+ {
+ "id": "F9-1-1",
+ "description": "Milchfertignahrung",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F9-1-1",
+ "code": "51"
+ },
+ {
+ "id": "F9-1-2",
+ "description": "Breie",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F9-1-2",
+ "code": "51"
+ },
+ {
+ "id": "F9-1-3",
+ "description": "Menüs",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F9-1-3",
+ "code": "51"
+ },
+ {
+ "id": "F9-1-4",
+ "description": "Gemüse & Gemüsemischungen",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F9-1-4",
+ "code": "51"
+ },
+ {
+ "id": "F9-1-5",
+ "description": "Früchte, Mischungen & Desserts",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F9-1-5",
+ "code": "51"
+ },
+ {
+ "id": "F9-1-6",
+ "description": "Snacks",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F9-1-6",
+ "code": "51"
+ },
+ {
+ "id": "F9-1-7",
+ "description": "Getränke",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F9-1-7",
+ "code": "51"
+ },
+ {
+ "id": "F9-2",
+ "description": "Flaschen & Sauger",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F9-2",
+ "code": "70"
+ },
+ {
+ "id": "F9-2-2",
+ "description": "Sauger",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F9-2-2",
+ "code": "70"
+ },
+ {
+ "id": "F9-3",
+ "description": "Pflege & Windeln",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F9-3",
+ "code": "60"
+ },
+ {
+ "id": "F9-3-1",
+ "description": "Windeln",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F9-3-1",
+ "code": null
+ },
+ {
+ "id": "F9-3-2",
+ "description": "Babytücher",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F9-3-2",
+ "code": null
+ },
+ {
+ "id": "F9-3-3",
+ "description": "Lotionen, Creme, Öl & Puder",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F9-3-3",
+ "code": null
+ },
+ {
+ "id": "F9-3-4",
+ "description": "Bad & Reinigung",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F9-3-4",
+ "code": null
+ },
+ {
+ "id": "F9-3-7",
+ "description": "Essen & Trinken",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F9-3-7",
+ "code": null
+ },
+ {
+ "id": "F9-3-8",
+ "description": "Pflege & Sicherheit",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F9-3-8",
+ "code": null
+ },
+ {
+ "id": "F10",
+ "description": "Tiere",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F10",
+ "code": null
+ },
+ {
+ "id": "F10-1",
+ "description": "Tiernahrung",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F10-1",
+ "code": "92"
+ },
+ {
+ "id": "F10-1-1",
+ "description": "Hund",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F10-1-1",
+ "code": "90"
+ },
+ {
+ "id": "F10-1-2",
+ "description": "Katze",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F10-1-2",
+ "code": "91"
+ },
+ {
+ "id": "F10-1-3",
+ "description": "Nager",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F10-1-3",
+ "code": "92"
+ },
+ {
+ "id": "F10-1-4",
+ "description": "Vögel",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F10-1-4",
+ "code": "93"
+ },
+ {
+ "id": "F10-1-5",
+ "description": "Fisch",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F10-1-5",
+ "code": null
+ },
+ {
+ "id": "F10-2",
+ "description": "Tierzubehör",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F10-2",
+ "code": null
+ },
+ {
+ "id": "F10-2-1",
+ "description": "Hund",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F10-2-1",
+ "code": "90"
+ },
+ {
+ "id": "F10-2-2",
+ "description": "Katze",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F10-2-2",
+ "code": "91"
+ },
+ {
+ "id": "F10-3",
+ "description": "Heu, Streu & Co.",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F10-3",
+ "code": null
+ },
+ {
+ "id": "F10-3-1",
+ "description": "Heimtier Heu",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F10-3-1",
+ "code": "92"
+ },
+ {
+ "id": "F10-3-2",
+ "description": "Heimtier Streu",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F10-3-2",
+ "code": "91"
+ },
+ {
+ "id": "F10-3-3",
+ "description": "Heimtier Sand",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F10-3-3",
+ "code": "91"
+ },
+ {
+ "id": "F10-3-4",
+ "description": "Heimtier sonstige Verbrauchsstoffe",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F10-3-4",
+ "code": "90"
+ },
+ {
+ "id": "F11",
+ "description": "Beauty",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F11",
+ "code": null
+ },
+ {
+ "id": "F11-1",
+ "description": "Kosmetik & Düfte",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F11-1",
+ "code": null
+ },
+ {
+ "id": "F11-1-1",
+ "description": "Nagellackentferner & -härter",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F11-1-1",
+ "code": "75"
+ },
+ {
+ "id": "F11-1-2",
+ "description": "Düfte",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F11-1-2",
+ "code": "72"
+ },
+ {
+ "id": "F11-2",
+ "description": "Haare",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F11-2",
+ "code": "73"
+ },
+ {
+ "id": "F11-2-1",
+ "description": "Shampoo",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F11-2-1",
+ "code": null
+ },
+ {
+ "id": "F11-2-2",
+ "description": "Conditioner",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F11-2-2",
+ "code": null
+ },
+ {
+ "id": "F11-2-3",
+ "description": "Haarstyling",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F11-2-3",
+ "code": null
+ },
+ {
+ "id": "F11-2-4",
+ "description": "Colorationen",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F11-2-4",
+ "code": null
+ },
+ {
+ "id": "F11-2-5",
+ "description": "Stylinggeräte",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F11-2-5",
+ "code": null
+ },
+ {
+ "id": "F11-3",
+ "description": "Mund & Zahn",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F11-3",
+ "code": "76"
+ },
+ {
+ "id": "F11-3-1",
+ "description": "Zahncreme",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F11-3-1",
+ "code": null
+ },
+ {
+ "id": "F11-3-2",
+ "description": "Handzahnbürsten",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F11-3-2",
+ "code": null
+ },
+ {
+ "id": "F11-3-3",
+ "description": "Elektrische Zahnpflege",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F11-3-3",
+ "code": null
+ },
+ {
+ "id": "F11-3-4",
+ "description": "Zahnersatzpflege",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F11-3-4",
+ "code": null
+ },
+ {
+ "id": "F11-3-5",
+ "description": "Mundwasser & Spülung",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F11-3-5",
+ "code": null
+ },
+ {
+ "id": "F11-3-6",
+ "description": "Zusatzpflege",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F11-3-6",
+ "code": null
+ },
+ {
+ "id": "F11-4",
+ "description": "Körper & Gesicht",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F11-4",
+ "code": null
+ },
+ {
+ "id": "F11-4-1",
+ "description": "Baden & Duschen",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F11-4-1",
+ "code": "78"
+ },
+ {
+ "id": "F11-4-2",
+ "description": "Seifen",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F11-4-2",
+ "code": "78"
+ },
+ {
+ "id": "F11-4-3",
+ "description": "Händedesinfektion",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F11-4-3",
+ "code": "74"
+ },
+ {
+ "id": "F11-4-4",
+ "description": "Deodorants",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F11-4-4",
+ "code": "72"
+ },
+ {
+ "id": "F11-4-5",
+ "description": "Hautpflege",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F11-4-5",
+ "code": "75"
+ },
+ {
+ "id": "F11-4-6",
+ "description": "Fußpflege & Zubehör",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F11-4-6",
+ "code": "7B"
+ },
+ {
+ "id": "F11-4-7",
+ "description": "Rasur & Haarentfernung",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F11-4-7",
+ "code": "77"
+ },
+ {
+ "id": "F11-4-8",
+ "description": "Sonnen- & Insektenschutz",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F11-4-8",
+ "code": "79"
+ },
+ {
+ "id": "F11-5",
+ "description": "Gesundheit",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F11-5",
+ "code": "8F"
+ },
+ {
+ "id": "F11-5-1",
+ "description": "Desinfektionsmittel & Gesichtsmasken",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F11-5-1",
+ "code": "74"
+ },
+ {
+ "id": "F11-5-2",
+ "description": "Kondome & Gleitmittel",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F11-5-2",
+ "code": "7A"
+ },
+ {
+ "id": "F11-5-3",
+ "description": "Wundversorgung",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F11-5-3",
+ "code": "74"
+ },
+ {
+ "id": "F11-5-4",
+ "description": "Massage- & Einreibemittel",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F11-5-4",
+ "code": "75"
+ },
+ {
+ "id": "F11-5-5",
+ "description": "Kontaktlinsenzubehör",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F11-5-5",
+ "code": null
+ },
+ {
+ "id": "F11-5-6",
+ "description": "Sonstige Gesundheitsprodukte",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F11-5-6",
+ "code": null
+ },
+ {
+ "id": "F11-6",
+ "description": "Reisegrößen",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F11-6",
+ "code": null
+ },
+ {
+ "id": "F12",
+ "description": "Haushalt",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F12",
+ "code": null
+ },
+ {
+ "id": "F12-1",
+ "description": "Haushaltspapier & Hygiene",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F12-1",
+ "code": null
+ },
+ {
+ "id": "F12-1-1",
+ "description": "Taschentücher",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F12-1-1",
+ "code": "89"
+ },
+ {
+ "id": "F12-1-3",
+ "description": "Watte",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F12-1-3",
+ "code": "75"
+ },
+ {
+ "id": "F12-1-4",
+ "description": "Damenhygiene",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F12-1-4",
+ "code": "71"
+ },
+ {
+ "id": "F12-1-5",
+ "description": "Küchenrollen",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F12-1-5",
+ "code": "84"
+ },
+ {
+ "id": "F12-1-6",
+ "description": "Toilettenpapier",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F12-1-6",
+ "code": "84"
+ },
+ {
+ "id": "F12-1-7",
+ "description": "Inkontinenz",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F12-1-7",
+ "code": "71"
+ },
+ {
+ "id": "F12-2",
+ "description": "Putzen & Reinigen",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F12-2",
+ "code": null
+ },
+ {
+ "id": "F12-2-1",
+ "description": "Geschirrreiniger",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F12-2-1",
+ "code": "88"
+ },
+ {
+ "id": "F12-2-2",
+ "description": "Allzweckreiniger",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F12-2-2",
+ "code": "88"
+ },
+ {
+ "id": "F12-2-3",
+ "description": "WC Reiniger",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F12-2-3",
+ "code": "88"
+ },
+ {
+ "id": "F12-2-4",
+ "description": "Bodenpflege",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F12-2-4",
+ "code": "88"
+ },
+ {
+ "id": "F12-2-5",
+ "description": "Glasreiniger",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F12-2-5",
+ "code": "88"
+ },
+ {
+ "id": "F12-2-6",
+ "description": "Küchenreiniger",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F12-2-6",
+ "code": "88"
+ },
+ {
+ "id": "F12-2-7",
+ "description": "Metallpflege & Entkalker",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F12-2-7",
+ "code": "88"
+ },
+ {
+ "id": "F12-2-8",
+ "description": "Badreiniger",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F12-2-8",
+ "code": "88"
+ },
+ {
+ "id": "F12-2-9",
+ "description": "Hygienereiniger & Desinfektion",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F12-2-9",
+ "code": "88"
+ },
+ {
+ "id": "F12-2-10",
+ "description": "Abflussreiniger",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F12-2-10",
+ "code": "88"
+ },
+ {
+ "id": "F12-2-11",
+ "description": "Möbelpflege",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F12-2-11",
+ "code": "88"
+ },
+ {
+ "id": "F12-2-12",
+ "description": "Schuhpflege",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F12-2-12",
+ "code": "8B"
+ },
+ {
+ "id": "F12-2-13",
+ "description": "Putzutensilien",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F12-2-13",
+ "code": "88"
+ },
+ {
+ "id": "F12-2-14",
+ "description": "Lufterfrischer",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F12-2-14",
+ "code": "87"
+ },
+ {
+ "id": "F12-3",
+ "description": "Elektrische Putzgeräte",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F12-3",
+ "code": null
+ },
+ {
+ "id": "F12-3-1",
+ "description": "Staubsauger & Reinigungsgeräte",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F12-3-1",
+ "code": "88"
+ },
+ {
+ "id": "F12-3-2",
+ "description": "Staubbeutel & Zubehör",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F12-3-2",
+ "code": "86"
+ },
+ {
+ "id": "F12-4",
+ "description": "Waschen, Trocknen & Bügeln",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F12-4",
+ "code": "8A"
+ },
+ {
+ "id": "F12-4-1",
+ "description": "Waschmittel",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F12-4-1",
+ "code": null
+ },
+ {
+ "id": "F12-4-2",
+ "description": "Weichspüler",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F12-4-2",
+ "code": null
+ },
+ {
+ "id": "F12-4-3",
+ "description": "Fleckenentferner & Textilfarben",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F12-4-3",
+ "code": null
+ },
+ {
+ "id": "F12-4-4",
+ "description": "Wäschestärke, -desinfektion & Imprägnieren",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F12-4-4",
+ "code": null
+ },
+ {
+ "id": "F12-4-5",
+ "description": "Wasserenthärter",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F12-4-5",
+ "code": null
+ },
+ {
+ "id": "F12-4-6",
+ "description": "Textilerfrischer",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F12-4-6",
+ "code": null
+ },
+ {
+ "id": "F12-4-7",
+ "description": "Waschzubehör",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F12-4-7",
+ "code": null
+ },
+ {
+ "id": "F12-4-8",
+ "description": "Bügeln",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F12-4-8",
+ "code": null
+ },
+ {
+ "id": "F12-5",
+ "description": "Haushaltszubehör",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F12-5",
+ "code": null
+ },
+ {
+ "id": "F12-5-1",
+ "description": "Kleiderbügel & Türhaken",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F12-5-1",
+ "code": null
+ },
+ {
+ "id": "F12-5-2",
+ "description": "Putzutensilien",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F12-5-2",
+ "code": "88"
+ },
+ {
+ "id": "F12-5-3",
+ "description": "Aufbewahrung & Abfalleimer",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F12-5-3",
+ "code": "8C"
+ },
+ {
+ "id": "F12-5-4",
+ "description": "Akkus, Batterien & Ladegeräte",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F12-5-4",
+ "code": "85"
+ },
+ {
+ "id": "F12-5-5",
+ "description": "Beleuchtung & Taschenlampen",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F12-5-5",
+ "code": "85"
+ },
+ {
+ "id": "F12-5-6",
+ "description": "Technik & Elektronik",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F12-5-6",
+ "code": null
+ },
+ {
+ "id": "F12-5-7",
+ "description": "Nähen & Kurzware",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F12-5-7",
+ "code": null
+ },
+ {
+ "id": "F12-5-8",
+ "description": "Grillen & Zubehör",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F12-5-8",
+ "code": null
+ },
+ {
+ "id": "F12-5-9",
+ "description": "Pflanzenpflege & Insektenschutz",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F12-5-9",
+ "code": "8D"
+ },
+ {
+ "id": "F12-5-10",
+ "description": "Kerzen, Raumdüfte & Anzündhilfe",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F12-5-10",
+ "code": "87"
+ },
+ {
+ "id": "F12-5-11",
+ "description": "Papier, Schule & Büro",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F12-5-11",
+ "code": "80"
+ },
+ {
+ "id": "F12-5-12",
+ "description": "Party- & Festtagsartikel",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F12-5-12",
+ "code": "83"
+ },
+ {
+ "id": "F12-5-13",
+ "description": "Autopflege",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F12-5-13",
+ "code": null
+ },
+ {
+ "id": "F12-6",
+ "description": "Spielware",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F12-6",
+ "code": "8E"
+ },
+ {
+ "id": "F12-7",
+ "description": "Regenschirme",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F12-7",
+ "code": null
+ },
+ {
+ "id": "F13",
+ "description": "Küche & Tisch",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F13",
+ "code": null
+ },
+ {
+ "id": "F13-1",
+ "description": "Kochgeschirr",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F13-1",
+ "code": "83"
+ },
+ {
+ "id": "F13-1-1",
+ "description": "Töpfe & Deckel",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F13-1-1",
+ "code": "83"
+ },
+ {
+ "id": "F13-1-2",
+ "description": "Pfannen & Deckel",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F13-1-2",
+ "code": "83"
+ },
+ {
+ "id": "F13-1-3",
+ "description": "Sets & Garnituren",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F13-1-3",
+ "code": "83"
+ },
+ {
+ "id": "F13-1-4",
+ "description": "Fondue-Sets, Plattengrill, Raclette & Co",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F13-1-4",
+ "code": "83"
+ },
+ {
+ "id": "F13-1-5",
+ "description": "Bräter & Auflaufformen",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F13-1-5",
+ "code": "83"
+ },
+ {
+ "id": "F13-2",
+ "description": "Gedeckter Tisch",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F13-2",
+ "code": "83"
+ },
+ {
+ "id": "F13-2-1",
+ "description": "Essbesteck",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F13-2-1",
+ "code": "83"
+ },
+ {
+ "id": "F13-2-2",
+ "description": "Gläser & Glaswaren",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F13-2-2",
+ "code": "83"
+ },
+ {
+ "id": "F13-2-3",
+ "description": "Porzellan",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F13-2-3",
+ "code": "83"
+ },
+ {
+ "id": "F13-2-4",
+ "description": "Servietten",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F13-2-4",
+ "code": "89"
+ },
+ {
+ "id": "F13-2-5",
+ "description": "Tischdecken & Läufer",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F13-2-5",
+ "code": "83"
+ },
+ {
+ "id": "F13-3",
+ "description": "Backen",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F13-3",
+ "code": "83"
+ },
+ {
+ "id": "F13-3-1",
+ "description": "Backblech & Formen",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F13-3-1",
+ "code": "83"
+ },
+ {
+ "id": "F13-3-2",
+ "description": "Backzubehör",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F13-3-2",
+ "code": "83"
+ },
+ {
+ "id": "F13-4",
+ "description": "Küchenhelfer",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F13-4",
+ "code": "83"
+ },
+ {
+ "id": "F13-4-1",
+ "description": "Rühren",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F13-4-1",
+ "code": "83"
+ },
+ {
+ "id": "F13-4-3",
+ "description": "Küchenwaagen",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F13-4-3",
+ "code": "83"
+ },
+ {
+ "id": "F13-4-4",
+ "description": "Messbecher",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F13-4-4",
+ "code": "83"
+ },
+ {
+ "id": "F13-4-5",
+ "description": "Schälen & Zerteilen",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F13-4-5",
+ "code": "83"
+ },
+ {
+ "id": "F13-4-6",
+ "description": "Siebe & Trichter",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F13-4-6",
+ "code": "83"
+ },
+ {
+ "id": "F13-4-7",
+ "description": "Weinzubehör",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F13-4-7",
+ "code": "83"
+ },
+ {
+ "id": "F13-4-8",
+ "description": "Reiben",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F13-4-8",
+ "code": "83"
+ },
+ {
+ "id": "F13-4-9",
+ "description": "Bratenwender & Schaumlöffel",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F13-4-9",
+ "code": "83"
+ },
+ {
+ "id": "F13-4-10",
+ "description": "Suppenkelle & Löffel",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F13-4-10",
+ "code": "83"
+ },
+ {
+ "id": "F13-4-11",
+ "description": "Sonstige Küchenhelfer",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F13-4-11",
+ "code": "83"
+ },
+ {
+ "id": "F13-4-12",
+ "description": "Schneidebretter, Untersetzer & Tablett",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F13-4-12",
+ "code": "83"
+ },
+ {
+ "id": "F13-4-13",
+ "description": "Messer",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F13-4-13",
+ "code": "83"
+ },
+ {
+ "id": "F13-4-14",
+ "description": "Salz- & Pfeffermühlen",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F13-4-14",
+ "code": "83"
+ },
+ {
+ "id": "F13-4-15",
+ "description": "Kunststoffgeschirr",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F13-4-15",
+ "code": "83"
+ },
+ {
+ "id": "F13-4-16",
+ "description": "Einkochen",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F13-4-16",
+ "code": "83"
+ },
+ {
+ "id": "F13-5",
+ "description": "Folien, Säcke & Filter",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F13-5",
+ "code": "86"
+ },
+ {
+ "id": "F13-6",
+ "description": "Aufbewahrung",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F13-6",
+ "code": "8C"
+ },
+ {
+ "id": "F13-7",
+ "description": "Sodaprodukte & Sahneaufbereitung",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F13-7",
+ "code": "83"
+ },
+ {
+ "id": "F13-7-1",
+ "description": "Sodamaker & Sodaprodukte",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F13-7-1",
+ "code": "83"
+ },
+ {
+ "id": "F13-7-2",
+ "description": "Sahneaufbereitung",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F13-7-2",
+ "code": "83"
+ },
+ {
+ "id": "F13-8",
+ "description": "Küchenwäsche",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F13-8",
+ "code": "83"
+ },
+ {
+ "id": "F13-9",
+ "description": "Trink- & Isolierflaschen",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F13-9",
+ "code": "83"
+ },
+ {
+ "id": "F13-10",
+ "description": "Wasseraufbereitung",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F13-10",
+ "code": "83"
+ },
+ {
+ "id": "F13-11",
+ "description": "Einweggeschirr & Strohhalme",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F13-11",
+ "code": "83"
+ },
+ {
+ "id": "F13-12",
+ "description": "Party- & Festtagsartikel",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F13-12",
+ "code": "83"
+ },
+ {
+ "id": "F13-13",
+ "description": "Elektrische Küchengeräte",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F13-13",
+ "code": "83"
+ },
+ {
+ "id": "F13-13-1",
+ "description": "Kaffeemaschinen",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F13-13-1",
+ "code": "83"
+ },
+ {
+ "id": "F13-13-2",
+ "description": "Fondue-Sets, Plattengrill, Raclette & Co",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F13-13-2",
+ "code": "83"
+ },
+ {
+ "id": "F13-13-3",
+ "description": "Mikrowelle & Kleinküchen",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F13-13-3",
+ "code": "83"
+ },
+ {
+ "id": "F13-13-4",
+ "description": "Mixer & Küchenmaschinen",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F13-13-4",
+ "code": "83"
+ },
+ {
+ "id": "F13-13-6",
+ "description": "Wasserkocher",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F13-13-6",
+ "code": "83"
+ },
+ {
+ "id": "F13-13-8",
+ "description": "Entsafter & Zitruspressen",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F13-13-8",
+ "code": "83"
+ },
+ {
+ "id": "F13-13-9",
+ "description": "Elektrische Schneidegeräte",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F13-13-9",
+ "code": "83"
+ },
+ {
+ "id": "F13-13-10",
+ "description": "Toaster",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F13-13-10",
+ "code": "83"
+ },
+ {
+ "id": "F14",
+ "description": "Geschenkideen",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F14",
+ "code": null
+ },
+ {
+ "id": "F15",
+ "description": "Partyservice",
+ "url": "https://www.interspar.at/shop/lebensmittel/c/F15",
+ "code": null
+ }
+]
diff --git a/stores/spar-si.js b/stores/spar-si.js
index 7246203..e01a82e 100644
--- a/stores/spar-si.js
+++ b/stores/spar-si.js
@@ -83,4 +83,8 @@ exports.fetchData = async function () {
return rawItems?.hits || rawItems;
};
+exports.initializeCategoryMapping = async () => {};
+
+exports.mapCategory = (rawItem) => {};
+
exports.urlBase = "https://www.spar.si/online";
diff --git a/stores/spar.js b/stores/spar.js
index ceb93e3..2e257fc 100644
--- a/stores/spar.js
+++ b/stores/spar.js
@@ -1,6 +1,9 @@
const axios = require("axios");
+const fs = require("fs");
+const path = require("path");
const utils = require("./utils");
-const { UNKNOWN_CATEGORY } = require("../site/model/categories");
+const HTMLParser = require("node-html-parser");
+const { readJSON } = require("../analysis");
const HITS = Math.floor(30000 + Math.random() * 2000);
const units = {
@@ -9,23 +12,6 @@ const units = {
"100g": { unit: "g", factor: 100 },
};
-function getCategory(item) {
- if (!item.masterValues["category-path"]) return null;
- const regex = /F(\d+)-(\d+)/g;
- const categoryPath = item.masterValues["category-path"]
- .filter((p) => {
- const match = regex.exec(p);
- if (match == null) return false;
- if (Number.parseInt(match[1]) > 13) return false;
- return true;
- })
- .map((p) => p[0]);
- if (categoryPath.length == 0) return null;
- const sparCategory = categoryPath[0];
- // console.log(sparCategory);
- return UNKNOWN_CATEGORY;
-}
-
exports.getCanonical = function (item, today) {
let price, unit, quantity;
if (item.masterValues["quantity-selector"]) {
@@ -69,14 +55,11 @@ exports.getCanonical = function (item, today) {
quantity = fallback.quantity;
}
- const category = getCategory(item);
-
return utils.convertUnit(
{
id: item.masterValues["product-number"],
name: item.masterValues.title + " " + (item.masterValues["short-description"] ?? item.masterValues.name),
description: item.masterValues["marketing-text"] ?? "",
- category,
price,
priceHistory: [{ date: today, price }],
unit,
@@ -96,1224 +79,67 @@ exports.fetchData = async function () {
return rawItems?.hits || rawItems;
};
+exports.initializeCategoryMapping = async () => {
+ const result = (await axios.get("https://www.interspar.at/shop/lebensmittel/")).data;
+ const root = HTMLParser.parse(result);
+ let categories = Array.from(root.querySelectorAll(`.flyout-categories__link`))
+ .filter((el) => !(el.innerText.toLowerCase().includes("übersicht") || el.innerText.toLowerCase().includes("zurück")))
+ .map((el) => {
+ const paths = el.attributes.href.split("/");
+ const id = paths[paths.length - 2];
+ return {
+ id,
+ description: el.innerText.trim(),
+ url: `https://www.interspar.at/shop/lebensmittel/c/${id}`,
+ code: null,
+ };
+ });
+ utils.mergeAndSaveCategories("spar", categories);
+ exports.categoryLookup = {};
+ for (const category of categories) {
+ exports.categoryLookup[category.id] = category;
+ }
+};
+
+exports.mapCategory = (rawItem) => {
+ if (!rawItem.masterValues["category-path"]) return null;
+
+ const categoryLookup = exports.categoryLookup;
+ if (!categoryLookup) throw Error("Category mapping for spar not initialized.");
+ const regex = /F(\d+)-(\d+)/g;
+ const categoryPaths = rawItem.masterValues["category-path"]
+ .filter((p) => {
+ const match = regex.exec(p);
+ if (match == null) return false;
+ if (Number.parseInt(match[1]) > 13) return false;
+ return true;
+ })
+ .map((p) => p[0]);
+ if (categoryPaths.length == 0) return null;
+ categoryPaths.sort((a, b) => b.length - a.length);
+ let categoryCode = null;
+ for (const path of categoryPaths) {
+ if (categoryLookup[path]) {
+ categoryCode = categoryLookup[path];
+ break;
+ }
+ }
+ const longestPath = categoryPaths[0].split("-");
+ for (let i = longestPath.length; i > 0; i--) {
+ const path = longestPath.slice(0, i).join("-");
+ if (categoryLookup[path] && categoryLookup[path].code) {
+ categoryCode = categoryLookup[path];
+ break;
+ }
+ }
+
+ return categoryCode.code;
+};
+
exports.urlBase = "https://www.interspar.at/shop/lebensmittel";
-// Generated in Chrome dev tools at https://www.interspar.at/shop/lebensmittel/ via:
-//
-// Array.from(document.querySelectorAll(`.flyout-categories__link`)).filter(el => !(el.innerText.toLowerCase().includes("übersicht") || el.innerText.toLowerCase().includes("zurück"))).map(el => {
-// const paths = el.href.split("/");
-// return { category: paths[paths.length - 2], name: el.innerText.trim(), code: "" };
-// })
-//
-const categoryMapping = [
- {
- category: "F1-1",
- name: "Frischgemüse",
- code: "01",
- },
- {
- category: "F1-2",
- name: "Frischobst",
- code: "00",
- },
- {
- category: "F1-3",
- name: "Obst-, Gemüse- & Salat-Zubereitungen",
- code: "01",
- },
- {
- category: "F1-4",
- name: "Saisonartikel",
- code: "01",
- },
- {
- category: "F1-5",
- name: "Obst- & Gemüsekisten",
- code: "00",
- },
- {
- category: "F2",
- name: "KÜHLREGAL",
- code: "",
- },
- {
- category: "F2-1",
- name: "Molkerei & Eier",
- code: "",
- },
- {
- category: "F2-1-1",
- name: "Milch",
- code: "34",
- },
- {
- category: "F2-1-2",
- name: "Milchgetränk",
- code: "34",
- },
- {
- category: "F2-1-3",
- name: "Eiskaffee",
- code: "20",
- },
- {
- category: "F2-1-4",
- name: "Produkte auf Pflanzenbasis",
- code: "5D",
- },
- {
- category: "F2-1-5",
- name: "Rahm, Schlagobers & Topfen",
- code: "34",
- },
- {
- category: "F2-1-7",
- name: "Butter, Margarine & Fette",
- code: "34",
- },
- {
- category: "F2-1-8",
- name: "Eier",
- code: "31",
- },
- {
- category: "F2-2",
- name: "Joghurt & Desserts",
- code: "34",
- },
- {
- category: "F2-3",
- name: "Käse",
- code: "33",
- },
- {
- category: "F2-4",
- name: "Aufstriche & Salate",
- code: "33",
- },
- {
- category: "F2-5",
- name: "Fertiggerichte, Snacks & Teige",
- code: "30",
- },
- {
- category: "F2-6",
- name: "Vegetarisch, Tofu, Soja & Co",
- code: "3B",
- },
- {
- category: "F3-1",
- name: "Wurst & Selchwaren",
- code: "37",
- },
- {
- category: "F3-2",
- name: "Frischfleisch & -Geflügel",
- code: "32",
- },
- {
- category: "F3-3",
- name: "Fisch",
- code: "39",
- },
- {
- category: "F4-1",
- name: "Feinkost & Konserven",
- code: "57",
- },
- {
- category: "F4-2-1",
- name: "Konfitüre",
- code: "56",
- },
- {
- category: "F4-2-2",
- name: "Honig",
- code: "56",
- },
- {
- category: "F4-2-3",
- name: "Nuss- & Schokoaufstriche",
- code: "56",
- },
- {
- category: "F4-2-4",
- name: "Cerealien & Müsli",
- code: "5A",
- },
- {
- category: "F4-3-1",
- name: "Gewürze",
- code: "55",
- },
- {
- category: "F4-3-2",
- name: "Saucen & Würze",
- code: "5C",
- },
- {
- category: "F4-3-3",
- name: "Saucen Süß",
- code: "5C",
- },
- {
- category: "F4-3-4",
- name: "Senf & Kren",
- code: "5C",
- },
- {
- category: "F4-3-5",
- name: "Ketchup & Mayonnaise",
- code: "5C",
- },
- {
- category: "F4-3-6",
- name: "Essig",
- code: "53",
- },
- {
- category: "F4-3-7",
- name: "Öl",
- code: "53",
- },
- {
- category: "F4-3-8",
- name: "Dressing & Croutons",
- code: "5C",
- },
- {
- category: "F4-3-9",
- name: "Zucker",
- code: "5E",
- },
- {
- category: "F4-3-10",
- name: "Salz",
- code: "",
- },
- {
- category: "F4-4-1",
- name: "Teigwaren",
- code: "5B",
- },
- {
- category: "F4-4-2",
- name: "Reis",
- code: "5B",
- },
- {
- category: "F4-4-3",
- name: "Kartoffelprodukte",
- code: "5F",
- },
- {
- category: "F4-4-4",
- name: "Samen & Hülsenfrüchte",
- code: "57",
- },
- {
- category: "F4-4-5",
- name: "Fix- & Basisprodukte",
- code: "5F",
- },
- {
- category: "F4-4-7",
- name: "Saucen & Würze",
- code: "5C",
- },
- {
- category: "F4-4-8",
- name: "Einkochen",
- code: "52",
- },
- {
- category: "F4-4-10",
- name: "Desserts",
- code: "58",
- },
- {
- category: "F4-4-6",
- name: "Suppen & Bouillons",
- code: "54",
- },
- {
- category: "F4-5-1",
- name: "Mehl",
- code: "59",
- },
- {
- category: "F4-5-2",
- name: "Grieß & Co",
- code: "59",
- },
- {
- category: "F4-5-3",
- name: "Getreideprodukte",
- code: "59",
- },
- {
- category: "F4-5-4",
- name: "Backmischungen",
- code: "52",
- },
- {
- category: "F4-5-5",
- name: "Backzutaten & Hilfsmittel",
- code: "52",
- },
- {
- category: "F4-5-6",
- name: "Verfeinerungen",
- code: "52",
- },
- {
- category: "F4-6",
- name: "Trockenfrüchte, Nüsse & Kerne",
- code: "03",
- },
- {
- category: "F4-7",
- name: "Reform & Nahrungsergänzung",
- code: "5D",
- },
- {
- category: "F4-8",
- name: "Asien & Mexiko",
- code: "50",
- },
- {
- category: "F5-1",
- name: "Süßwaren",
- code: "64",
- },
- {
- category: "F5-2",
- name: "Knabbergebäck",
- code: "63",
- },
- {
- category: "F6-1",
- name: "Aufbackware Brot & Gebäck",
- code: "10",
- },
- {
- category: "F6-2",
- name: "Brot",
- code: "11",
- },
- {
- category: "F6-3",
- name: "Gebäck",
- code: "11",
- },
- {
- category: "F6-4",
- name: "Feinbackwaren",
- code: "12",
- },
- {
- category: "F6-5",
- name: "Knäckebrot & Zwieback",
- code: "12",
- },
- {
- category: "F6-6",
- name: "Brösel & Semmelwürfel",
- code: "14",
- },
- {
- category: "F7-1",
- name: "Softdrinks & Säfte",
- code: "20",
- },
- {
- category: "F7-2",
- name: "Mineral- & Tafelwasser",
- code: "26",
- },
- {
- category: "F7-3",
- name: "Kaffee",
- code: "22",
- },
- {
- category: "F7-4",
- name: "Tee",
- code: "22",
- },
- {
- category: "F7-5",
- name: "Kakao",
- code: "22",
- },
- {
- category: "F7-6",
- name: "Bier",
- code: "21",
- },
- {
- category: "F7-7-1",
- name: "Rotwein",
- code: "25",
- },
- {
- category: "F7-7-2",
- name: "Weißwein",
- code: "25",
- },
- {
- category: "F7-7-3",
- name: "Rosewein",
- code: "25",
- },
- {
- category: "F7-7-4",
- name: "Dessertwein, Sherry & Port",
- code: "25",
- },
- {
- category: "F7-7-5",
- name: "Sekt & Champagner",
- code: "23",
- },
- {
- category: "F7-7-6",
- name: "Frizzante & Prosecco",
- code: "23",
- },
- {
- category: "F7-7-7",
- name: "Cider & Fruchtschaumwein",
- code: "25",
- },
- {
- category: "F7-7-8",
- name: "Weinhaltige Getränke",
- code: "25",
- },
- {
- category: "F7-7-9",
- name: "Alkoholfreier Wein & Schaumwein",
- code: "25",
- },
- {
- category: "F7-8",
- name: "Spirituosen",
- code: "24",
- },
- {
- category: "F8-1-1",
- name: "Schwein",
- code: "42",
- },
- {
- category: "F8-1-2",
- name: "Rind & Wild",
- code: "42",
- },
- {
- category: "F8-1-3",
- name: "Gans & Ente",
- code: "42",
- },
- {
- category: "F8-1-4",
- name: "Huhn & Pute",
- code: "42",
- },
- {
- category: "F8-1-5",
- name: "Fisch",
- code: "43",
- },
- {
- category: "F8-1-6",
- name: "Meeresfrüchte",
- code: "43",
- },
- {
- category: "F8-2-1",
- name: "Gemüse",
- code: "44",
- },
- {
- category: "F8-2-2",
- name: "Kräuter & Pilze",
- code: "44",
- },
- {
- category: "F8-2-3",
- name: "Obst",
- code: "47",
- },
- {
- category: "F8-2-4",
- name: "Pommes Frites",
- code: "45",
- },
- {
- category: "F8-2-5",
- name: "Kroketten & Co",
- code: "45",
- },
- {
- category: "F8-3",
- name: "Fertiggerichte & Teige",
- code: "42",
- },
- {
- category: "F8-4-1",
- name: "Baguette",
- code: "46",
- },
- {
- category: "F8-4-2",
- name: "Pizzasnacks",
- code: "46",
- },
- {
- category: "F8-4-3",
- name: "American Style Pizza",
- code: "46",
- },
- {
- category: "F8-4-4",
- name: "Italian Style Pizza",
- code: "46",
- },
- {
- category: "F8-4-5",
- name: "Tiefkühl Gebäck",
- code: "46",
- },
- {
- category: "F8-5-1",
- name: "Süße Knödel",
- code: "47",
- },
- {
- category: "F8-5-2",
- name: "Strudel",
- code: "47",
- },
- {
- category: "F8-5-3",
- name: "Nudeln",
- code: "47",
- },
- {
- category: "F8-5-5",
- name: "Sonstige klassische Mehlspeisen",
- code: "47",
- },
- {
- category: "F8-5-6",
- name: "Torten, Kuchen & Desserts",
- code: "47",
- },
- {
- category: "F8-5-7",
- name: "Eisbecher",
- code: "40",
- },
- {
- category: "F8-5-8",
- name: "Eis am Stiel & Stanitzel",
- code: "40",
- },
- {
- category: "F8-5-10",
- name: "Eis",
- code: "40",
- },
- {
- category: "F9-1",
- name: "Babynahrung & Getränke",
- code: "51",
- },
- {
- category: "F9-1-1",
- name: "Milchfertignahrung",
- code: "51",
- },
- {
- category: "F9-1-2",
- name: "Breie",
- code: "51",
- },
- {
- category: "F9-1-3",
- name: "Menüs",
- code: "51",
- },
- {
- category: "F9-1-4",
- name: "Gemüse & Gemüsemischungen",
- code: "51",
- },
- {
- category: "F9-1-5",
- name: "Früchte, Mischungen & Desserts",
- code: "51",
- },
- {
- category: "F9-1-6",
- name: "Snacks",
- code: "51",
- },
- {
- category: "F9-1-7",
- name: "Getränke",
- code: "51",
- },
- {
- category: "F9-2",
- name: "Flaschen & Sauger",
- code: "70",
- },
- {
- category: "F9-2-2",
- name: "Sauger",
- code: "70",
- },
- {
- category: "F9-3",
- name: "Pflege & Windeln",
- code: "60",
- },
- {
- category: "F10-1-1",
- name: "Hund",
- code: "90",
- },
- {
- category: "F10-1-2",
- name: "Katze",
- code: "91",
- },
- {
- category: "F10-1-3",
- name: "Nager",
- code: "92",
- },
- {
- category: "F10-1-4",
- name: "Vögel",
- code: "93",
- },
- {
- category: "F10-2-1",
- name: "Hund",
- code: "90",
- },
- {
- category: "F10-2-2",
- name: "Katze",
- code: "91",
- },
- {
- category: "F10-3-1",
- name: "Heimtier Heu",
- code: "92",
- },
- {
- category: "F10-3-2",
- name: "Heimtier Streu",
- code: "91",
- },
- {
- category: "F10-3-3",
- name: "Heimtier Sand",
- code: "91",
- },
- {
- category: "F10-3-4",
- name: "Heimtier sonstige Verbrauchsstoffe",
- code: "90",
- },
- {
- category: "F11-1-1",
- name: "Nagellackentferner & -härter",
- code: "75",
- },
- {
- category: "F11-1-2",
- name: "Düfte",
- code: "72",
- },
- {
- category: "F11-2",
- name: "Haare",
- code: "73",
- },
- {
- category: "F11-3",
- name: "Mund & Zahn",
- code: "76",
- },
- {
- category: "F11-4-1",
- name: "Baden & Duschen",
- code: "78",
- },
- {
- category: "F11-4-2",
- name: "Seifen",
- code: "78",
- },
- {
- category: "F11-4-3",
- name: "Händedesinfektion",
- code: "74",
- },
- {
- category: "F11-4-4",
- name: "Deodorants",
- code: "72",
- },
- {
- category: "F11-4-5",
- name: "Hautpflege",
- code: "75",
- },
- {
- category: "F11-4-6",
- name: "Fußpflege & Zubehör",
- code: "7B",
- },
- {
- category: "F11-4-7",
- name: "Rasur & Haarentfernung",
- code: "77",
- },
- {
- category: "F11-4-8",
- name: "Sonnen- & Insektenschutz",
- code: "79",
- },
- {
- category: "F11-5-1",
- name: "Desinfektionsmittel & Gesichtsmasken",
- code: "74",
- },
- {
- category: "F11-5-2",
- name: "Kondome & Gleitmittel",
- code: "7A",
- },
- {
- category: "F11-5-3",
- name: "Wundversorgung",
- code: "74",
- },
- {
- category: "F11-5-4",
- name: "Massage- & Einreibemittel",
- code: "75",
- },
- {
- category: "F12-1",
- name: "Haushaltspapier & Hygiene",
- code: "",
- },
- {
- category: "F12-1-1",
- name: "Taschentücher",
- code: "",
- },
- {
- category: "F12-1-3",
- name: "Watte",
- code: "",
- },
- {
- category: "F12-1-4",
- name: "Damenhygiene",
- code: "",
- },
- {
- category: "F12-1-5",
- name: "Küchenrollen",
- code: "",
- },
- {
- category: "F12-1-6",
- name: "Toilettenpapier",
- code: "",
- },
- {
- category: "F12-1-7",
- name: "Inkontinenz",
- code: "",
- },
- {
- category: "F12-2",
- name: "Putzen & Reinigen",
- code: "",
- },
- {
- category: "F12-2-1",
- name: "Geschirrreiniger",
- code: "",
- },
- {
- category: "F12-2-2",
- name: "Allzweckreiniger",
- code: "",
- },
- {
- category: "F12-2-3",
- name: "WC Reiniger",
- code: "",
- },
- {
- category: "F12-2-4",
- name: "Bodenpflege",
- code: "",
- },
- {
- category: "F12-2-5",
- name: "Glasreiniger",
- code: "",
- },
- {
- category: "F12-2-6",
- name: "Küchenreiniger",
- code: "",
- },
- {
- category: "F12-2-7",
- name: "Metallpflege & Entkalker",
- code: "",
- },
- {
- category: "F12-2-8",
- name: "Badreiniger",
- code: "",
- },
- {
- category: "F12-2-9",
- name: "Hygienereiniger & Desinfektion",
- code: "",
- },
- {
- category: "F12-2-10",
- name: "Abflussreiniger",
- code: "",
- },
- {
- category: "F12-2-11",
- name: "Möbelpflege",
- code: "",
- },
- {
- category: "F12-2-12",
- name: "Schuhpflege",
- code: "",
- },
- {
- category: "F12-2-13",
- name: "Putzutensilien",
- code: "",
- },
- {
- category: "F12-2-14",
- name: "Lufterfrischer",
- code: "",
- },
- {
- category: "F12-3",
- name: "Elektrische Putzgeräte",
- code: "",
- },
- {
- category: "F12-3-1",
- name: "Staubsauger & Reinigungsgeräte",
- code: "",
- },
- {
- category: "F12-3-2",
- name: "Staubbeutel & Zubehör",
- code: "",
- },
- {
- category: "F12-4",
- name: "Waschen, Trocknen & Bügeln",
- code: "",
- },
- {
- category: "F12-4-1",
- name: "Waschmittel",
- code: "",
- },
- {
- category: "F12-4-2",
- name: "Weichspüler",
- code: "",
- },
- {
- category: "F12-4-3",
- name: "Fleckenentferner & Textilfarben",
- code: "",
- },
- {
- category: "F12-4-4",
- name: "Wäschestärke, -desinfektion & Imprägnieren",
- code: "",
- },
- {
- category: "F12-4-5",
- name: "Wasserenthärter",
- code: "",
- },
- {
- category: "F12-4-6",
- name: "Textilerfrischer",
- code: "",
- },
- {
- category: "F12-4-7",
- name: "Waschzubehör",
- code: "",
- },
- {
- category: "F12-4-8",
- name: "Bügeln",
- code: "",
- },
- {
- category: "F12-5",
- name: "Haushaltszubehör",
- code: "",
- },
- {
- category: "F12-5-1",
- name: "Kleiderbügel & Türhaken",
- code: "",
- },
- {
- category: "F12-5-2",
- name: "Putzutensilien",
- code: "",
- },
- {
- category: "F12-5-3",
- name: "Aufbewahrung & Abfalleimer",
- code: "",
- },
- {
- category: "F12-5-4",
- name: "Akkus, Batterien & Ladegeräte",
- code: "",
- },
- {
- category: "F12-5-5",
- name: "Beleuchtung & Taschenlampen",
- code: "",
- },
- {
- category: "F12-5-6",
- name: "Technik & Elektronik",
- code: "",
- },
- {
- category: "F12-5-7",
- name: "Nähen & Kurzware",
- code: "",
- },
- {
- category: "F12-5-8",
- name: "Grillen & Zubehör",
- code: "",
- },
- {
- category: "F12-5-9",
- name: "Pflanzenpflege & Insektenschutz",
- code: "",
- },
- {
- category: "F12-5-10",
- name: "Kerzen, Raumdüfte & Anzündhilfe",
- code: "",
- },
- {
- category: "F12-5-11",
- name: "Papier, Schule & Büro",
- code: "",
- },
- {
- category: "F12-5-12",
- name: "Party- & Festtagsartikel",
- code: "",
- },
- {
- category: "F12-5-13",
- name: "Autopflege",
- code: "",
- },
- {
- category: "F12-6",
- name: "Spielware",
- code: "",
- },
- {
- category: "F12-7",
- name: "Regenschirme",
- code: "",
- },
- {
- category: "F13",
- name: "KÜCHE & TISCH",
- code: "",
- },
- {
- category: "F13-1",
- name: "Kochgeschirr",
- code: "",
- },
- {
- category: "F13-1-1",
- name: "Töpfe & Deckel",
- code: "",
- },
- {
- category: "F13-1-2",
- name: "Pfannen & Deckel",
- code: "",
- },
- {
- category: "F13-1-3",
- name: "Sets & Garnituren",
- code: "",
- },
- {
- category: "F13-1-4",
- name: "Fondue-Sets, Plattengrill, Raclette & Co",
- code: "",
- },
- {
- category: "F13-1-5",
- name: "Bräter & Auflaufformen",
- code: "",
- },
- {
- category: "F13-2",
- name: "Gedeckter Tisch",
- code: "",
- },
- {
- category: "F13-2-1",
- name: "Essbesteck",
- code: "",
- },
- {
- category: "F13-2-2",
- name: "Gläser & Glaswaren",
- code: "",
- },
- {
- category: "F13-2-3",
- name: "Porzellan",
- code: "",
- },
- {
- category: "F13-2-4",
- name: "Servietten",
- code: "",
- },
- {
- category: "F13-2-5",
- name: "Tischdecken & Läufer",
- code: "",
- },
- {
- category: "F13-3",
- name: "Backen",
- code: "",
- },
- {
- category: "F13-3-1",
- name: "Backblech & Formen",
- code: "",
- },
- {
- category: "F13-3-2",
- name: "Backzubehör",
- code: "",
- },
- {
- category: "F13-4",
- name: "Küchenhelfer",
- code: "",
- },
- {
- category: "F13-4-1",
- name: "Rühren",
- code: "",
- },
- {
- category: "F13-4-3",
- name: "Küchenwaagen",
- code: "",
- },
- {
- category: "F13-4-4",
- name: "Messbecher",
- code: "",
- },
- {
- category: "F13-4-5",
- name: "Schälen & Zerteilen",
- code: "",
- },
- {
- category: "F13-4-6",
- name: "Siebe & Trichter",
- code: "",
- },
- {
- category: "F13-4-7",
- name: "Weinzubehör",
- code: "",
- },
- {
- category: "F13-4-8",
- name: "Reiben",
- code: "",
- },
- {
- category: "F13-4-9",
- name: "Bratenwender & Schaumlöffel",
- code: "",
- },
- {
- category: "F13-4-10",
- name: "Suppenkelle & Löffel",
- code: "",
- },
- {
- category: "F13-4-11",
- name: "Sonstige Küchenhelfer",
- code: "",
- },
- {
- category: "F13-4-12",
- name: "Schneidebretter, Untersetzer & Tablett",
- code: "",
- },
- {
- category: "F13-4-13",
- name: "Messer",
- code: "",
- },
- {
- category: "F13-4-14",
- name: "Salz- & Pfeffermühlen",
- code: "",
- },
- {
- category: "F13-4-15",
- name: "Kunststoffgeschirr",
- code: "",
- },
- {
- category: "F13-4-16",
- name: "Einkochen",
- code: "",
- },
- {
- category: "F13-5",
- name: "Folien, Säcke & Filter",
- code: "",
- },
- {
- category: "F13-6",
- name: "Aufbewahrung",
- code: "",
- },
- {
- category: "F13-7",
- name: "Sodaprodukte & Sahneaufbereitung",
- code: "",
- },
- {
- category: "F13-7-1",
- name: "Sodamaker & Sodaprodukte",
- code: "",
- },
- {
- category: "F13-7-2",
- name: "Sahneaufbereitung",
- code: "",
- },
- {
- category: "F13-8",
- name: "Küchenwäsche",
- code: "",
- },
- {
- category: "F13-9",
- name: "Trink- & Isolierflaschen",
- code: "",
- },
- {
- category: "F13-10",
- name: "Wasseraufbereitung",
- code: "",
- },
- {
- category: "F13-11",
- name: "Einweggeschirr & Strohhalme",
- code: "",
- },
- {
- category: "F13-12",
- name: "Party- & Festtagsartikel",
- code: "",
- },
- {
- category: "F13-13",
- name: "Elektrische Küchengeräte",
- code: "",
- },
- {
- category: "F13-13-1",
- name: "Kaffeemaschinen",
- code: "",
- },
- {
- category: "F13-13-2",
- name: "Fondue-Sets, Plattengrill, Raclette & Co",
- code: "",
- },
- {
- category: "F13-13-3",
- name: "Mikrowelle & Kleinküchen",
- code: "",
- },
- {
- category: "F13-13-4",
- name: "Mixer & Küchenmaschinen",
- code: "",
- },
- {
- category: "F13-13-6",
- name: "Wasserkocher",
- code: "",
- },
- {
- category: "F13-13-8",
- name: "Entsafter & Zitruspressen",
- code: "",
- },
- {
- category: "F13-13-9",
- name: "Elektrische Schneidegeräte",
- code: "",
- },
- {
- category: "F13-13-10",
- name: "Toaster",
- code: "",
- },
-];
+if (require.main == module) {
+ (async () => {
+ await exports.generateCategoryMapping();
+ })();
+}
diff --git a/stores/unimarkt.js b/stores/unimarkt.js
index f2d3447..df1f08a 100644
--- a/stores/unimarkt.js
+++ b/stores/unimarkt.js
@@ -67,4 +67,8 @@ exports.fetchData = async function () {
return unimarktItems;
};
+exports.initializeCategoryMapping = async () => {};
+
+exports.mapCategory = (rawItem) => {};
+
exports.urlBase = "https://shop.unimarkt.at";
diff --git a/stores/utils.js b/stores/utils.js
index d479fee..ef833cc 100644
--- a/stores/utils.js
+++ b/stores/utils.js
@@ -1,3 +1,6 @@
+const fs = require("fs");
+const path = require("path");
+
// These are a match of the Billa categories, which are organized in a 2-level hierarchy.
// Each category in the top level gets a code from 1-Z, each sub category also gets a code.
// Together the two codes from a unique id for the category, which we store in the item.category
@@ -115,6 +118,37 @@ exports.globalCategories = [
},
];
+exports.mergeAndSaveCategories = (store, categories) => {
+ const mappingFile = path.join(__dirname, `${store}-categories.json`);
+ if (fs.existsSync(mappingFile)) {
+ const oldMapping = JSON.parse(fs.readFileSync(mappingFile));
+ const oldLookup = {};
+ for (const category of oldMapping) {
+ oldLookup[category.id] = category;
+ }
+
+ for (const category of categories) {
+ const oldCategory = oldLookup[category.id];
+ if (oldCategory == null) {
+ console.log(`Found new unmapped category for ${store}: ${category.id} - ${category.description}`);
+ } else {
+ category.code = oldCategory.code;
+ delete oldLookup[category.id];
+ }
+ }
+
+ if (Object.keys(oldLookup).length > 0) {
+ for (const key in oldLookup) {
+ const category = oldLookup[key];
+ console.log(`Found category absent in latest mapping for ${store}: ${category.id} - ${category.description}`);
+ categories.push(category);
+ }
+ }
+ }
+ fs.writeFileSync(mappingFile, JSON.stringify(categories, null, 2));
+ return categories;
+};
+
exports.globalUnits = {
"stk.": { unit: "stk", factor: 1 },
blatt: { unit: "stk", factor: 1 },