{"title":"Kitchen \u0026 Food","description":"\u003cp\u003e \u003c\/p\u003e\n\u003c!----\u003e","products":[{"product_id":"aschenbecher-rot","title":"Ashtray - red","description":"\u003cp\u003eSize: Ø 10.5 cm \u003cbr\u003e\u003cbr\u003e\u003c\/p\u003e","brand":"Primary Vereinsbedarf","offers":[{"title":"Default Title","offer_id":48472759697749,"sku":"UB112008","price":8.95,"currency_code":"EUR","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0825\/6271\/1893\/files\/UB112008_01_58F80A7B-CBB5-4EBC-945C-532DC4B6B361.png?v=1716403782"},{"product_id":"soulbottles-1-fc-union-berlin","title":"Soulbottles - 1. FC Union Berlin","description":"\u003cp\u003eProduct details\u003c\/p\u003e\n\u003cp\u003e Format: 29 cm high, 8.5 cm in diameter\u003cbr\u003e Weight: 710g\u003cbr\u003e Material: glass, porcelain, stainless steel\u003c\/p\u003e\n\u003cp\u003e We make sustainability simple.\u003c\/p\u003e\n\u003cp\u003e And let’s start with the element we all cannot live without: clean water.\u003cbr\u003e Not everyone can simply turn on the tap for clean water. We want to change that. Together with you. Because many small drops can make a big difference.\u003c\/p\u003e\n\u003cp\u003e With every soulbottle you buy, 2€ goes to WASH projects (water sanitation hygiene) run by Viva con Agua and Welthungerhilfe.\u003cbr\u003e\u003cbr\u003e\u003c\/p\u003e\n\u003cp\u003e Clean water – simply good for everyone!\u003c\/p\u003e\n\u003cp\u003e\u003cbr\u003e 💧\u003c\/p\u003e\n\u003cp\u003e Drinking tap water from the soulbottle is good for you.\u003cbr\u003e Tap water is one of the most controlled foods and is of exceptional quality. And you avoid the plasticizers and other toxins found in plastic bottles.\u003c\/p\u003e\n\u003cp\u003e\u003cbr\u003e 💚\u003c\/p\u003e\n\u003cp\u003e When you drink tap water from the soulbottle, it's good for the world.\u003cbr\u003e You prevent the waste of raw materials such as oil or water, unnecessary transport (and thus a lot of CO2 emissions) and: plastic waste!\u003c\/p\u003e\n\u003cp\u003e ✨\u003c\/p\u003e\n\u003cp\u003e When you drink tap water from the soulbottle, it is good for others.\u003cbr\u003e Together we are committed to drinking water projects and ensuring that more people have access to clean water.\u003c\/p\u003e\n\u003cp\u003e\u003cbr\u003e We make sure our world stays clean.\u003c\/p\u003e\n\u003cp\u003e That's why our soulbottles are fair, climate-neutral, pollutant-free, and plastic-free. In short: really clean bottles.\u003c\/p\u003e\n\u003cp\u003e With a soulbottle, you and everyone you share can prevent a lot of waste. And ensure that our oceans continue to contain more than just plastic.\u003c\/p\u003e","brand":"Soulproducts GmbH","offers":[{"title":"Default Title","offer_id":48473344803157,"sku":"UB112017","price":25.0,"currency_code":"EUR","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0825\/6271\/1893\/files\/UB112017_01_CB18EF41-18D6-4645-928C-FA792E9BB1EE.png?v=1716403797"},{"product_id":"silikon-untersetzer-4er-set-rot","title":"Silicone coasters set of 4 - red","description":"\u003cp\u003e Dimensions: approx. 9.5 cm diameter\u003c\/p\u003e","brand":"Trade Con GmbH","offers":[{"title":"Default Title","offer_id":48473111920981,"sku":"UB112105","price":12.95,"currency_code":"EUR","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0825\/6271\/1893\/files\/UB112105_01_923BA00B-53A1-4458-B4F3-C8C3C081E3CB.png?v=1716403805"},{"product_id":"tasse-1-fc-union-berlin-milchig","title":"Cup 1. FC Union Berlin milky","description":"\u003cp\u003e Capacity: 300 ml\u003c\/p\u003e\n\n\u003cp\u003e Dishwasher safe\u003c\/p\u003e","brand":"Trade Con GmbH","offers":[{"title":"Default Title","offer_id":48472769790293,"sku":"UB112108","price":12.95,"currency_code":"EUR","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0825\/6271\/1893\/files\/UB112108_01_5A239849-803F-4923-AD7D-519AD9C77BBF.png?v=1716403817"},{"product_id":"tasse-logo-rot-2","title":"Mug Logo - red","description":"\u003cp\u003eCapacity: 300ml\u003cbr\u003e\u003cbr\u003e\u003c\/p\u003e","brand":"Trade Con GmbH","offers":[{"title":"Default Title","offer_id":48472862392661,"sku":"UB112201","price":9.95,"currency_code":"EUR","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0825\/6271\/1893\/files\/UB112201_01_648B04A9-2DC6-4B60-B256-AD852C0AB33D.png?v=1716403871"},{"product_id":"tasse-logo-schwarz-2","title":"Mug Logo - black","description":"\u003cp\u003eCapacity: 300ml\u003cbr\u003e\u003c\/p\u003e","brand":"Trade Con GmbH","offers":[{"title":"Default Title","offer_id":48472639865173,"sku":"UB112202","price":9.95,"currency_code":"EUR","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0825\/6271\/1893\/files\/UB112202_01_49BEF4AC-EE2D-4E77-8DF5-0FBBB59133B3.png?v=1716403878"},{"product_id":"tasse-logo-glitzer-rot-weiss","title":"Mug logo glitter - red\/white","description":"\u003cp\u003eCapacity: 0.3l\u003c\/p\u003e","brand":"Trade Con GmbH","offers":[{"title":"Default Title","offer_id":48473228575061,"sku":"UB112207","price":12.95,"currency_code":"EUR","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0825\/6271\/1893\/files\/UB112207_01_A9B1D870-21F1-4A0A-BF8A-12AC17D12F91.png?v=1716403897"},{"product_id":"tasse-panel-gepragt","title":"Cup Panel - embossed","description":"\u003cp\u003eVolume: 300 ml \u003cbr\u003e\u003c\/p\u003e","brand":"Trade Con GmbH","offers":[{"title":"Default Title","offer_id":48472630395221,"sku":"UB112208","price":12.95,"currency_code":"EUR","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0825\/6271\/1893\/files\/UB112208_01_48799E01-25CC-4D7F-9D19-CB8491AA35B8.png?v=1716403902"},{"product_id":"tasse-schwarz-metall-logo","title":"Mug black - metal logo","description":"\u003cp\u003eCapacity: approx. 300ml\u003c\/p\u003e","brand":"Trade Con GmbH","offers":[{"title":"Default Title","offer_id":48473204097365,"sku":"UB112213","price":12.95,"currency_code":"EUR","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0825\/6271\/1893\/files\/UB112213_01_A45836EF-B855-405F-B7C7-F8D4F49496DA.png?v=1716403934"},{"product_id":"tasse-pittiplatsch-weihnachtssingen-2022","title":"Mug - Pittiplatsch - Christmas Singing 2022","description":"\u003cp\u003eColor: white \u003cbr\u003eCapacity: 250 ml\u003c\/p\u003e\n\u003cp\u003e\u003cbr\u003ePlease note: The mug is not dishwasher-safe and should be washed by hand!\u003c\/p\u003e","brand":"rbb media GmbH","offers":[{"title":"Default Title","offer_id":48472206541141,"sku":"UB112224","price":2.0,"currency_code":"EUR","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0825\/6271\/1893\/files\/UB112224_01_15EBD439-F075-44B4-A18E-15A34AA0928C.png?v=1716403968"},{"product_id":"tasse-magic-polaroid","title":"Magic Polaroid Mug","description":"\u003cp\u003e Size: 300ml\u003c\/p\u003e","brand":"Trade Con GmbH","offers":[{"title":"Default Title","offer_id":48473180733781,"sku":"UB112225","price":12.95,"currency_code":"EUR","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0825\/6271\/1893\/files\/UB112225_01_A1B0D178-6450-4F3B-BAB0-A21AD519C59C.png?v=1716403977"},{"product_id":"bierkrug-eisern-union-1","title":"Beer mug Eisern Union","description":"\u003cp\u003e Capacity: 0.5L\u003c\/p\u003e","brand":"Trade Con GmbH","offers":[{"title":"Default Title","offer_id":48472553521493,"sku":"UB112301","price":12.95,"currency_code":"EUR","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0825\/6271\/1893\/files\/UB112301_01_3F2EA5F8-0450-4823-90B5-6C84A0A33A49.png?v=1716403982"},{"product_id":"bierglas-2er-set-eisern-union","title":"Beer glass set of 2 Eisern Union","description":"\u003cp\u003e 0.3L capacity.\u003c\/p\u003e\n\n\u003c!----\u003e","brand":"Trade Con GmbH","offers":[{"title":"Default Title","offer_id":48472987763029,"sku":"UB112302","price":14.95,"currency_code":"EUR","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0825\/6271\/1893\/files\/UB112302_01_782047D5-6074-48A5-B13E-9CFBF11C6EC6.png?v=1716403990"},{"product_id":"schnapsglas-2er-set-eisern-union","title":"Shot glass set of 2 Eisern Union","description":"\u003cp\u003e Capacity: 7 cl\u003c\/p\u003e","brand":"Trade Con GmbH","offers":[{"title":"Default Title","offer_id":48473264914773,"sku":"UB112303","price":12.95,"currency_code":"EUR","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0825\/6271\/1893\/files\/UB112303_01_B4B58AF6-EF32-4D2F-B773-358BC4C3E1AB.png?v=1716404000"},{"product_id":"kristallglas-2er-set-union-berlin","title":"Crystal glass set of 2 Union Berlin","description":"\u003cp\u003e Capacity: approx. 250 ml\u003c\/p\u003e","brand":"Trade Con GmbH","offers":[{"title":"Default Title","offer_id":48472403050837,"sku":"UB112309","price":14.95,"currency_code":"EUR","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0825\/6271\/1893\/files\/UB112309_01_2B7CBF11-7B8B-43B0-A741-BA4102956B37.png?v=1716404045"},{"product_id":"schnapsglas-4er-set-eisern-union","title":"Shot glass set of 4 - Eisern Union","description":"\u003cp\u003e Color: transparent\/milky\u003cbr\u003e\u003c\/p\u003e","brand":"Fresh id Products Berlin GmbH","offers":[{"title":"Default Title","offer_id":48472673943893,"sku":"UB112311","price":8.0,"currency_code":"EUR","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0825\/6271\/1893\/files\/UB112311_01_4E1CFE78-9914-4A42-BA6A-7E7D67440667.png?v=1716404065"},{"product_id":"weinglas-2er-set-1-fc-union-berlin","title":"Wine glass set of 2 1. FC Union Berlin","description":"\u003cp\u003e Capacity: 0.45L\u003c\/p\u003e\n\n\u003c!----\u003e","brand":"Trade Con GmbH","offers":[{"title":"Default Title","offer_id":48472262345045,"sku":"UB112312","price":19.95,"currency_code":"EUR","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0825\/6271\/1893\/files\/UB112312_01_1E03CA4F-2A3E-403D-AFEE-3E51FE82B6A0.png?v=1716404073"},{"product_id":"soulbottles-ritter-keule","title":"Soulbottles - Knight's Club","description":"\u003cp\u003eProduct details\u003c\/p\u003e\n\u003cp\u003e Format: 26 cm high, Ø 7.5 cm\u003cbr\u003e Weight: 520g\u003cbr\u003e Material: 60 - 80% recycled glass, porcelain, stainless steel\u003c\/p\u003e\n\u003cp\u003e\u003cbr\u003e We make sustainability simple.\u003c\/p\u003e\n\u003cp\u003e And let’s start with the element we all cannot live without: clean water.\u003cbr\u003e Not everyone can simply turn on the tap for clean water. We want to change that. Together with you. Because many small drops can make a big difference.\u003c\/p\u003e\n\u003cp\u003e With every soulbottle you buy, 1€ goes to WASH projects (water sanitation hygiene) run by Viva con Agua and Welthungerhilfe.\u003cbr\u003e\u003cbr\u003e\u003c\/p\u003e\n\u003cp\u003e Clean water – simply good for everyone!\u003c\/p\u003e\n\u003cp\u003e\u003cbr\u003e 💧\u003c\/p\u003e\n\u003cp\u003e Drinking tap water from the soulbottle is good for you.\u003cbr\u003e Tap water is one of the most controlled foods and is of exceptional quality. And you avoid the plasticizers and other toxins found in plastic bottles.\u003c\/p\u003e\n\u003cp\u003e\u003cbr\u003e 💚\u003c\/p\u003e\n\u003cp\u003e When you drink tap water from the soulbottle, it's good for the world.\u003cbr\u003e You prevent the waste of raw materials such as oil or water, unnecessary transport (and thus a lot of CO2 emissions) and: plastic waste!\u003c\/p\u003e\n\u003cp\u003e ✨\u003c\/p\u003e\n\u003cp\u003e When you drink tap water from the soulbottle, it is good for others.\u003cbr\u003e Together we are committed to drinking water projects and ensuring that more people have access to clean water.\u003c\/p\u003e\n\u003cp\u003e\u003cbr\u003e\u003c\/p\u003e\n\u003cp\u003e We make sure our world stays clean.\u003c\/p\u003e\n\u003cp\u003e That's why our soulbottles are fair, climate-neutral, pollutant-free, and plastic-free. In short: really clean bottles.\u003c\/p\u003e\n\u003cp\u003e With a soulbottle, you and everyone you share can prevent a lot of waste. And ensure that our oceans continue to contain more than just plastic.\u003c\/p\u003e\n\u003cp\u003e\u003cbr\u003e\u003c\/p\u003e","brand":"Soulproducts GmbH","offers":[{"title":"Default Title","offer_id":48472536777045,"sku":"UB112316","price":20.0,"currency_code":"EUR","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0825\/6271\/1893\/files\/UB112316_01_3D4A14D0-7CEC-41C1-927A-0C33DD17773B.png?v=1716404090"},{"product_id":"holzuntersetzer-4er-set","title":"Wooden coasters set of 4","description":"\u003cp\u003eInner diameter: 9cm\u003c\/p\u003e\n\u003c!----\u003e","brand":"Trade Con GmbH","offers":[{"title":"Default Title","offer_id":48473105039701,"sku":"UB112317","price":11.95,"currency_code":"EUR","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0825\/6271\/1893\/files\/UB112317_01_9007E88B-F067-40FF-8359-FB895CC1BAC3.png?v=1716404099"},{"product_id":"tasse-eisern-union-emaille","title":"Cup Iron Union Enamel","description":"\u003cp\u003eCapacity: approx. 300ml \u003cbr\u003e\u003c\/p\u003e","brand":"Trade Con GmbH","offers":[{"title":"Default Title","offer_id":48473512771925,"sku":"UB112318","price":14.95,"currency_code":"EUR","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0825\/6271\/1893\/files\/UB112318_01_EA993F92-C6CD-4E70-8F1A-93CC77519D32.png?v=1716404107"},{"product_id":"windaschenbecher-eisern-union","title":"Wind ashtray Eisern Union","description":"\u003cp\u003eDimensions: approx. 9.4 x 9.4 x 12.2 cm\u003c\/p\u003e","brand":"Trade Con GmbH","offers":[{"title":"Default Title","offer_id":48473552748885,"sku":"UB112319","price":9.95,"currency_code":"EUR","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0825\/6271\/1893\/files\/UB112319_01_F4E2C6DB-FA70-4720-BF0D-B1DD6790B33B.png?v=1716404114"},{"product_id":"sektglas-2er-set-1-fc-union-berlin","title":"Champagne glass set of 2 1. FC Union Berlin","description":"\u003cp\u003eColor: Transparent\u003c\/p\u003e","brand":"Trade Con GmbH","offers":[{"title":"Default Title","offer_id":48473348899157,"sku":"UB112326","price":8.0,"currency_code":"EUR","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0825\/6271\/1893\/files\/UB112326_01_CBAE0649-EBB2-4B09-A9E9-7D90B20C6D54.png?v=1716404141"},{"product_id":"led-untersetzer-2er-set","title":"LED coasters set of 2","description":"\u003cp\u003e Diameter: approx. 9 cm\u003c\/p\u003e","brand":"Trade Con GmbH","offers":[{"title":"Default Title","offer_id":48472595497301,"sku":"UB112330","price":9.95,"currency_code":"EUR","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0825\/6271\/1893\/files\/UB112330_01_42164F26-44CF-487D-9C82-99BA399C58D5.png?v=1716404154"},{"product_id":"glitzerbecher-baby-ritter-keule","title":"Glitter Cup - Baby Knight Club","description":"\u003cp\u003eColor: transparent\u003cbr\u003e Volume: 220ml\u003cbr\u003e Dimensions: 7.7*5.3*10.8 cm\u003cbr\u003e\u003cbr\u003e\u003c\/p\u003e","brand":"Nordmade GMBH","offers":[{"title":"Default Title","offer_id":48473369706837,"sku":"UB112406","price":9.95,"currency_code":"EUR","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0825\/6271\/1893\/files\/UB112406_OS_00.webp?v=1738933730"},{"product_id":"metalluntersetzer-4er-set","title":"Metal coasters set of 4","description":"\u003cp\u003eDimensions: approx. 8.8 x 8.8 cm\u003c\/p\u003e","brand":"Trade Con GmbH","offers":[{"title":"Default Title","offer_id":48472633246037,"sku":"UB112407","price":11.95,"currency_code":"EUR","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0825\/6271\/1893\/files\/UB112407_OS_00.webp?v=1733928704"},{"product_id":"flaschenoffner-push-rot","title":"Bottle opener push - red","description":"\u003cp\u003e Dimensions: approx. 5 cm x 7.5 cm\u003c\/p\u003e","brand":"Trade Con GmbH","offers":[{"title":"Default Title","offer_id":48472243536213,"sku":"UB162102","price":9.95,"currency_code":"EUR","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0825\/6271\/1893\/files\/UB162102_01_1BCD4373-26DA-43F0-9F29-25AAF2BA74A4.png?v=1716404798"},{"product_id":"kinder-geschirrset-1","title":"Children's tableware set","description":"\u003cp\u003eColor: white \u003cbr\u003eCup volume: 190 ml \u003cbr\u003eBowl volume: 400 ml \u003cbr\u003edishwasher safe, BPA free, melamine free, microwave safe \u003cbr\u003e100% recyclable\u003c\/p\u003e","brand":"Trade Con GmbH","offers":[{"title":"Default Title","offer_id":48472158929237,"sku":"UB162300","price":10.0,"currency_code":"EUR","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0825\/6271\/1893\/files\/UB162300_HMS_00.webp?v=1721812398"},{"product_id":"loffel-eisern-union-rot","title":"Spoon Eisern Union - red","description":"\u003cp\u003e Color: red\u003cbr\u003e Dimensions: 134 mm long\u003c\/p\u003e","brand":"Trade Con GmbH","offers":[{"title":"Default Title","offer_id":48472416518485,"sku":"UB162301","price":2.5,"currency_code":"EUR","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0825\/6271\/1893\/files\/Loeffel.webp?v=1743069475"},{"product_id":"glasstrohhalm-4er-set","title":"Glass straw set of 4","description":"\u003cp\u003eColor: transparent \u003cbr\u003eDimensions: Length: 20cm, 0.7cm Ø \u003cbr\u003eFinish: engraved, including cleaning brush\u003c\/p\u003e","brand":"HALM Straws GmbH","offers":[{"title":"Default Title","offer_id":48473584632149,"sku":"UB162302","price":12.95,"currency_code":"EUR","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0825\/6271\/1893\/files\/UB162302_01_F8ED0985-2E13-4EDA-814E-304F9CE10C79.png?v=1716404818"},{"product_id":"flaschenoffner-push-schwarz","title":"Bottle opener push - black","description":"\u003cp\u003e Dimensions: approx. 5 cm x 7.5 cm\u003c\/p\u003e","brand":"Trade Con GmbH","offers":[{"title":"Default Title","offer_id":48473439207765,"sku":"UB162303","price":5.0,"currency_code":"EUR","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0825\/6271\/1893\/files\/UB162303_01_DCF1FB02-ED6B-4A57-B8E5-51B01287B9F5.png?v=1716404825"},{"product_id":"brotdosen-set","title":"Lunch box set","description":"\u003cp\u003e Color: red\u003cbr\u003e Dimensions: approx. 19 x 13.5 x 7 cm\u003cbr\u003e Material: biocircular plastic\u003cbr\u003e 100% recyclable\u003cbr\u003e Features: dishwasher safe, BPA free, melamine free\u003c\/p\u003e","brand":"Trade Con GmbH","offers":[{"title":"Default Title","offer_id":48472835195221,"sku":"UB162304","price":14.95,"currency_code":"EUR","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0825\/6271\/1893\/files\/UB162304_OS_00.webp?v=1776867698"},{"product_id":"wandflaschenoffner-logo","title":"Wall bottle opener - Logo","description":"\u003cp\u003e Format: approx. 21 x 10.5 x 6 cm (H x W x D)\u003c\/p\u003e","brand":"Trade Con GmbH","offers":[{"title":"Default Title","offer_id":48472171381077,"sku":"UB302305","price":17.95,"currency_code":"EUR","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0825\/6271\/1893\/files\/UB302305_01_10484C8F-12ED-4346-9F5E-2E4635004329.png?v=1716406385"},{"product_id":"keksdose-mit-ausstechform","title":"Cookie jar with cookie cutter","description":"\u003cp\u003eColor: colorful\u003c\/p\u003e","brand":"Trade Con GmbH","offers":[{"title":"Default Title","offer_id":48473087541589,"sku":"UB302310","price":19.95,"currency_code":"EUR","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0825\/6271\/1893\/files\/UB302310_01_8D03D33A-CCDB-49DB-8989-CAD4385DFFA2.png?v=1716406420"},{"product_id":"geburtstagskerzen-vereinslogo-rot","title":"Birthday Candles Club Logo","description":"\u003cp\u003e Set of 10 candles\u003cbr\u003e Dimensions: 0.55 cm\u003cbr\u003e Height: 6 cm\u003c\/p\u003e\n\n\u003cp\u003e The delicious cupcakes are from our partner \u003ca href=\"https:\/\/fanartikel.union-zeughaus.de\/collections\/deine-torte\" target=\"_blank\" rel=\"noopener\"\u003eDeine Torte\u003c\/a\u003e .\u003c\/p\u003e","brand":"Trade Con GmbH","offers":[{"title":"Default Title","offer_id":48472666931541,"sku":"UB302401","price":2.95,"currency_code":"EUR","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0825\/6271\/1893\/files\/UB302401_HMS_30.webp?v=1725523375"},{"product_id":"grillbesteck-3er-set","title":"Grill cutlery set of 3","description":"\u003cp\u003e Length: \u003cspan\u003e\u003cspan class=\"ui-provider a b c d e f g h i j k l m n o p q r s t u v w x y z ab ac ae af ag ah ai aj ak\" dir=\"ltr\"\u003e46cm each\u003c\/span\u003e\u003c\/span\u003e\u003c\/p\u003e\n\n\u003c!----\u003e","brand":"Trade Con GmbH","offers":[{"title":"Default Title","offer_id":48472982683989,"sku":"UB352402","price":24.95,"currency_code":"EUR","in_stock":false}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0825\/6271\/1893\/files\/Image_fill_Grillset_700x700_89d2ebfc-98d8-467e-8bab-c8175169578f.webp?v=1775111937"},{"product_id":"moonshine-waldmeister-zitrone-starter-set","title":"Moonshine \"Woodruff-Lemon\" - Starter Set","description":"\u003cp\u003e Capacity: 700 ml\n\u003cbr\u003e Alcohol content: 20% vol.\n \u003cbr\u003eMinimum age: 18 years\n\u003cbr\u003e Price\/liter: 42.79 €\n\u003cbr\u003e Contents: 1x Mason Jar with Moonshine Woodruff Lemon Liqueur in the Köpenick Edition and a pourer\u003c\/p\u003e\n\n\n\u003cp\u003e Please use alcoholic beverages responsibly!\u003c\/p\u003e","brand":"O’Donnell Moonshine GmbH","offers":[{"title":"Default Title","offer_id":48472814944597,"sku":"UB372305","price":29.95,"currency_code":"EUR","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0825\/6271\/1893\/files\/UB372305_01_5D1B985D-9C21-4372-A8C5-21C75C2F868B.png?v=1716407658"},{"product_id":"becherhalter-logo-rot","title":"Cup holder logo - red","description":"\u003cp\u003eRed color\u003c\/p\u003e","brand":"Kretzschmar Promotion Service e.K.","offers":[{"title":"Default Title","offer_id":48472268931413,"sku":"UB381807","price":9.95,"currency_code":"EUR","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0825\/6271\/1893\/files\/UB381807_01_1FFFCDF6-D9CD-4B98-8EC7-7D5280ED8C3D.png?v=1716407683"},{"product_id":"becherhalter-logo-schwarz","title":"Cup holder logo - black","description":"\u003cp\u003eColor: Black\u003c\/p\u003e","brand":"Kretzschmar Promotion Service e.K.","offers":[{"title":"Default Title","offer_id":48472622399829,"sku":"UB382101","price":9.95,"currency_code":"EUR","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0825\/6271\/1893\/files\/UB382101_01_46DD0609-8891-40B1-B5F6-A6DA93841314.png?v=1716407760"},{"product_id":"fruhstucksbrettchen-2er-set-holz","title":"Breakfast boards set of 2 - wood","description":"\u003cp\u003eFormat: approx. 25 x 15 x 0.9 cm \u003cbr\u003e\u003c\/p\u003e","brand":"Patrick Damas Pascoal","offers":[{"title":"Default Title","offer_id":49799998538069,"sku":"UB112502","price":12.95,"currency_code":"EUR","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0825\/6271\/1893\/files\/UB112502_OS_00.webp?v=1781682706"},{"product_id":"pizzaschneider-unveu-bar","title":"Pizza cutter - UNVEU Bear","description":"\u003cp\u003eColor: black\u003c\/p\u003e\n\u003cp\u003eFormat: 22.3cm x 9.7cm x 2cm \u003c\/p\u003e","brand":"Dennis Hartmann","offers":[{"title":"Default Title","offer_id":49800149401941,"sku":"UB132409","price":14.95,"currency_code":"EUR","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0825\/6271\/1893\/files\/UB132409_OS_00.webp?v=1738327015"},{"product_id":"kuchenset-1-fc-union-berlin","title":"Kitchen set - 1. FC Union Berlin","description":"\u003cp\u003eColor: red\/white\u003c\/p\u003e","brand":"Dennis Hartmann","offers":[{"title":"Default Title","offer_id":49800257077589,"sku":"UB132410","price":19.95,"currency_code":"EUR","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0825\/6271\/1893\/files\/UB132410_OS_00.webp?v=1744629525"},{"product_id":"tasse-osterhase-1","title":"Easter Bunny Mug","description":"\u003cp\u003e Color: white\/blue\u003c\/p\u003e\n\n\u003cp\u003e Volume: 0.3 l\u003c\/p\u003e","brand":"Patrick Damas Pascoal","offers":[{"title":"Default Title","offer_id":49852221325653,"sku":"UB112503","price":12.95,"currency_code":"EUR","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0825\/6271\/1893\/files\/UB112503_OS_00.webp?v=1738577291"},{"product_id":"trinkglas-vereinslogo-2er-set","title":"Drinking glass - club logo set of 2","description":"\u003cp\u003e Dimensions (height, diameter): approx. 13.4 cm x 7.3 cm\u003cbr\u003e Capacity: approx. 500 ml\u003c\/p\u003e","brand":"Gil Miguel","offers":[{"title":"Default Title","offer_id":49852245311829,"sku":"UB112501","price":19.95,"currency_code":"EUR","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0825\/6271\/1893\/files\/UB112501_OS_00.webp?v=1739796346"},{"product_id":"eiswurfelballe-4er-set","title":"Ice cube balls - set of 4","description":"\u003cp\u003e Color: silver\u003c\/p\u003e","brand":"Patrick Damas Pascoal","offers":[{"title":"Default Title","offer_id":49852301541717,"sku":"UB162401","price":12.95,"currency_code":"EUR","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0825\/6271\/1893\/files\/UB162401_OS_00.webp?v=1739433165"},{"product_id":"kinderbesteck-keules-knirpse","title":"Children's cutlery - Keules Knirpse","description":"\u003cp\u003eColor: red\u003c\/p\u003e\n\u003cp\u003eWarning! Not suitable for children under 36 months. \u003c\/p\u003e","brand":"Patrick Damas Pascoal","offers":[{"title":"Default Title","offer_id":49969616191829,"sku":"UB162402","price":9.95,"currency_code":"EUR","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0825\/6271\/1893\/files\/UB162402_OS_00.webp?v=1734523036"},{"product_id":"flaschenoffner-vereinslogo","title":"Bottle opener club logo","description":"\u003cp\u003eColor: red\/yellow\u003cbr\u003eFormat: Height, Width, Depth: 18 x 7 x 0.1 cm \u003cbr\u003e\u003c\/p\u003e","brand":"Holger Quante","offers":[{"title":"Default Title","offer_id":55267462676861,"sku":"UB162501","price":9.95,"currency_code":"EUR","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0825\/6271\/1893\/files\/UB162501_OS_00.webp?v=1740398078"},{"product_id":"schlusselanhanger-flaschenoffner-fischerhut","title":"Keychain bottle opener fisherman's hat","description":"\u003cp\u003e Color: red\/white\u003cbr\u003e Format: 31.5 x 50 mm\u003c\/p\u003e","brand":"Holger Quante","offers":[{"title":"Default Title","offer_id":55267463922045,"sku":"UB142501","price":9.95,"currency_code":"EUR","in_stock":false}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0825\/6271\/1893\/files\/UB142501_OS_00.webp?v=1747735070"},{"product_id":"tasse-regenbogen","title":"Rainbow cup","description":"\u003cp\u003e Color: white\u003cbr\u003e Volume: 0.3l\u003c\/p\u003e","brand":"Trade Con GmbH","offers":[{"title":"Default Title","offer_id":56097721811325,"sku":"UB112509","price":12.95,"currency_code":"EUR","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0825\/6271\/1893\/files\/UB112509_OS_00.webp?v=1750320407"},{"product_id":"tasse-ausweichtrikot-25-26","title":"Third Jersey Mug 25\/26","description":"\u003cp\u003eColor: white\/blue\u003cbr\u003e\u003cscript\u003evar AWIN = AWIN || {};AWIN.Tracking = AWIN.Tracking || {};AWIN.payload = {\"advertiser\":{\"config\":{\"advertiserId\":\"40626\",\"campaignId\":\"10292\",\"pagetype\":\"product\",\"identifier\":\"UB11 - Tassen, Gläser, Keramik\",\"category\":\"Küche \u0026 Lebensmittel\",\"accessConfig\":{\"location\":false,\"referrer\":false,\"sale\":true,\"basket\":true,\"zxParams\":[\"pagetype\",\"products\",\"category\",\"identifier\"]}}},\"plugin\":{\"publisherId\":\"\",\"advertiserId\":41734,\"protocol\":\"https:\/\/\",\"zxParams\":{},\"basket\":[]}};AWIN.pluginName = \"ReachGroup\";\u003c\/script\u003e\u003cscript\u003evar AWIN = AWIN || {};\nAWIN.iScriptCount = 0;\n\nAWIN.Tracking = (function (pluginName, payload) {\n\tvar fetchZxParam = function (name) {\n\t\treturn payload.plugin.zxParams[name] || null;\n\t};\n\tvar scriptAppend = function (sScriptSrc, sScriptContent, onLoadCallback, oScriptTagParams, tcfVendorId) {\n\t\t\/\/ only one of the two can be set\n\t\tif (sScriptSrc \u0026\u0026 sScriptContent) {\n\t\t\treturn false;\n\t\t}\n\n\t\t\/\/ create script node\n\t\tvar scriptNode = document.createElement('script');\n\t\tscriptNode.type = 'text\/javascript';\n\t\tscriptNode.id = '_aw_script_' + AWIN.iScriptCount++;\n\n\t\t\/\/ only add if param was passed\n\t\tif (sScriptSrc) {\n\t\t\tscriptNode.src = sScriptSrc;\n\t\t} else if (sScriptContent) {\n\t\t\tscriptNode.text = sScriptContent;\n\t\t}\n\n\t\t\/\/ set optional parameters\n\t\tif (oScriptTagParams) {\n\t\t\tfor (var name in oScriptTagParams) {\n\t\t\t\tscriptNode[name] = oScriptTagParams[name];\n\t\t\t}\n\t\t}\n\n\t\t\/\/ attach an event handler\n\t\tif (onLoadCallback) {\n\t\t\t\/\/ send Debug EVent when onLoadCallback is not a function. TODO This is temporary change, should be removed after analysis\n\t\t\tif (typeof onLoadCallback !== 'function') {\n\t\t\t\tAWIN.Tracking.sendDebugEvent({\n\t\t\t\t\tseverity: 'warning',\n\t\t\t\t\tsource: { app: 'AMT', category: 'scriptAppend' },\n\t\t\t\t\tbody: {\n\t\t\t\t\t\tmessage: 'onLoadCallback is not a function in mastertag-sb.',\n\t\t\t\t\t\turl: sScriptSrc || 'inline script',\n\t\t\t\t\t\tadvertiserId: AWIN.Tracking.iMerchantId,\n\t\t\t\t\t},\n\t\t\t\t});\n\t\t\t}\n\n\t\t\t\/\/ for IE\n\t\t\tscriptNode.onreadystatechange = function () {\n\t\t\t\tif (scriptNode.readyState == 'complete' || scriptNode.readyState == 'loaded') {\n\t\t\t\t\tonLoadCallback();\n\t\t\t\t}\n\t\t\t};\n\n\t\t\t\/\/ for everything elses\n\t\t\tscriptNode.onload = onLoadCallback;\n\t\t}\n\n\t\t\/\/ append node\n\t\tif (sScriptSrc) {\n\t\t\tAWIN.Tracking.Consent.getGdprAppends(\n\t\t\t\ttcfVendorId,\n\t\t\t\tAWIN.Tracking.getQueryParameterDelimiter(scriptNode.src),\n\t\t\t\tfunction (gdprAppends) {\n\t\t\t\t\tscriptNode.src += gdprAppends;\n\t\t\t\t\tAWIN.Tracking.getScriptAppendNode().appendChild(scriptNode);\n\t\t\t\t}\n\t\t\t);\n\t\t} else {\n\t\t\tAWIN.Tracking.getScriptAppendNode().appendChild(scriptNode);\n\t\t}\n\n\t\treturn scriptNode;\n\t};\n\tvar frameAppend = function (sFrameSrc, tcfVendorId) {\n\t\tif (document.getElementsByTagName('body')[0]) {\n\t\t\tAWIN.Tracking.Consent.getGdprAppends(\n\t\t\t\ttcfVendorId,\n\t\t\t\tAWIN.Tracking.getQueryParameterDelimiter(sFrameSrc),\n\t\t\t\tfunction (gdprAppends) {\n\t\t\t\t\tsFrameSrc += gdprAppends;\n\n\t\t\t\t\tvar iframe = document.createElement('iframe');\n\t\t\t\t\tiframe.setAttribute('aria-hidden', 'true');\n\t\t\t\t\tiframe.src = sFrameSrc;\n\t\t\t\t\tdocument.getElementsByTagName('body')[0].appendChild(iframe);\n\t\t\t\t\t\/\/ AWIN.Tracking.hideElement(iframe); \/\/ not needed, iframe is hidden already\n\t\t\t\t}\n\t\t\t);\n\t\t}\n\t};\n\tvar pixelAppend = function (sImageSrc, tcfVendorId) {\n\t\tif (document.getElementsByTagName('body')[0]) {\n\t\t\tAWIN.Tracking.Consent.getGdprAppends(\n\t\t\t\ttcfVendorId,\n\t\t\t\tAWIN.Tracking.getQueryParameterDelimiter(sImageSrc),\n\t\t\t\tfunction (gdprAppends) {\n\t\t\t\t\tsImageSrc += gdprAppends;\n\n\t\t\t\t\tvar image = document.createElement('img');\n\t\t\t\t\timage.setAttribute('aria-hidden', 'true');\n\t\t\t\t\timage.src = sImageSrc;\n\t\t\t\t\tdocument.getElementsByTagName('body')[0].appendChild(image);\n\t\t\t\t\t\/\/ AWIN.Tracking.hideElement(image); \/\/ not needed, iframe is hidden already\n\t\t\t\t}\n\t\t\t);\n\t\t}\n\t};\n\tvar getQueryParameterDelimiter = function (currentUrl) {\n\t\treturn currentUrl.indexOf('?') === -1 ? '?' : '\u0026';\n\t};\n\tvar buildQueryString = function (params) {\n\t\tvar bits = [];\n\t\tfor (var name in params) {\n\t\t\tif (params.hasOwnProperty(name)) {\n\t\t\t\tbits.push(name + '=' + encodeURIComponent(params[name]));\n\t\t\t}\n\t\t}\n\t\treturn bits.join('\u0026');\n\t};\n\tvar getScriptAppendNode = function () {\n\t\treturn document.body;\n\t};\n\tvar getBasketData = function () {\n\t\treturn payload.plugin.basket || [];\n\t};\n\tvar getAffiliateId = function () {\n\t\treturn payload.plugin.publisherId;\n\t};\n\tvar _getAWCValue = function () {\n\t\treturn payload.plugin.awc;\n\t};\n\n\tvar Consent = {};\n\n\t(function (awinTrackingConsent) {\n\t\t\/\/ if we locate the CMP iframe we will reference it with this\n\t\tvar cmpFrame;\n\n\t\t(function () {\n\t\t\t\/\/ start here at our window\n\t\t\tvar frame = window;\n\n\t\t\t\/\/ map of calls\n\t\t\tvar cmpCallbacks = {};\n\t\t\twhile (frame) {\n\t\t\t\ttry {\n\t\t\t\t\t\/**\n\t\t\t\t\t * throws a reference error if no frames exist\n\t\t\t\t\t *\/\n\t\t\t\t\tif (frame.frames['__tcfapiLocator']) {\n\t\t\t\t\t\tcmpFrame = frame;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t} catch (ignore) {}\n\t\t\t\tif (frame === window.top) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tframe = frame.parent;\n\t\t\t}\n\n\t\t\t\/**\n\t\t\t * Set up a __tcfapi proxy method to do the postMessage and map the callback.\n\t\t\t * From the caller's perspective, this function behaves identically to the\n\t\t\t * CMP API's __tcfapi call\n\t\t\t *\/\n\t\t\twindow.__tcfapi = function (cmd, version, callback, arg) {\n\t\t\t\tif (!cmpFrame) {\n\t\t\t\t\tcallback({ msg: 'CMP not found' }, false);\n\t\t\t\t} else {\n\t\t\t\t\tvar callId = Math.random() + '';\n\t\t\t\t\tvar msg = {\n\t\t\t\t\t\t__tcfapiCall: {\n\t\t\t\t\t\t\tcommand: cmd,\n\t\t\t\t\t\t\tparameter: arg,\n\t\t\t\t\t\t\tversion: version,\n\t\t\t\t\t\t\tcallId: callId,\n\t\t\t\t\t\t},\n\t\t\t\t\t};\n\n\t\t\t\t\t\/**\n\t\t\t\t\t * map the callback for lookup on response\n\t\t\t\t\t *\/\n\t\t\t\t\tcmpCallbacks[callId] = callback;\n\t\t\t\t\tcmpFrame.postMessage(msg, '*');\n\t\t\t\t}\n\t\t\t};\n\n\t\t\tfunction postMessageHandler(event) {\n\t\t\t\t\/**\n\t\t\t\t * when we get the return message, call the mapped callback\n\t\t\t\t *\/\n\t\t\t\tvar json = {};\n\n\t\t\t\ttry {\n\t\t\t\t\t\/**\n\t\t\t\t\t * if this isn't valid JSON then this will throw an error\n\t\t\t\t\t *\/\n\t\t\t\t\tjson = typeof event.data === 'string' ? JSON.parse(event.data) : event.data;\n\t\t\t\t} catch (ignore) {}\n\n\t\t\t\tvar payload = json.__tcfapiReturn;\n\t\t\t\tif (payload) {\n\t\t\t\t\t\/**\n\t\t\t\t\t * messages we care about will have a payload\n\t\t\t\t\t *\/\n\t\t\t\t\tif (typeof cmpCallbacks[payload.callId] === 'function') {\n\t\t\t\t\t\t\/**\n\t\t\t\t\t\t * call the mapped callback and then remove the reference\n\t\t\t\t\t\t *\/\n\n\t\t\t\t\t\tcmpCallbacks[payload.callId](payload.returnValue, payload.success);\n\t\t\t\t\t\tcmpCallbacks[payload.callId] = null;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\twindow.addEventListener('message', postMessageHandler, false);\n\t\t})();\n\n\t\tawinTrackingConsent.isCmpPresentOnPage = function () {\n\t\t\treturn typeof cmpFrame !== 'undefined';\n\t\t};\n\n\t\tawinTrackingConsent.getGdprAppends = function (tcfVendorId, delimiter, callback) {\n\t\t\tif (tcfVendorId) {\n\t\t\t\t\/\/ prepare for no CMP and errors\n\t\t\t\tvar fallbackAppend = delimiter + 'gdpr=${GDPR}\u0026gdpr_consent=${GDPR_CONSENT_' + tcfVendorId + '}';\n\n\t\t\t\t\/\/ cmp found, asking __tcfapi for a consent string for this vendorId\n\t\t\t\tif (AWIN.Tracking.Consent.isCmpPresentOnPage()) {\n\t\t\t\t\ttry {\n\t\t\t\t\t\t__tcfapi(\n\t\t\t\t\t\t\t'getTCData',\n\t\t\t\t\t\t\t2,\n\t\t\t\t\t\t\tfunction (tcData, success) {\n\t\t\t\t\t\t\t\tvar appends = delimiter;\n\t\t\t\t\t\t\t\tif (tcData \u0026\u0026 success) {\n\t\t\t\t\t\t\t\t\tif (typeof tcData.gdprApplies !== 'undefined') {\n\t\t\t\t\t\t\t\t\t\tif (tcData.gdprApplies) {\n\t\t\t\t\t\t\t\t\t\t\tappends += 'gdpr=1';\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\tappends += 'gdpr=0';\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tappends += '\u0026gdpr_consent=' + tcData.tcString;\n\t\t\t\t\t\t\t\t\t\tcallback(appends);\n\t\t\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\/\/ no data, no success or missing tcData.gdprApplies\n\t\t\t\t\t\t\t\tcallback(fallbackAppend);\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t[tcfVendorId]\n\t\t\t\t\t\t);\n\t\t\t\t\t} catch (err) {\n\t\t\t\t\t\tcallback(fallbackAppend);\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\t\/\/ no CMP found\n\t\t\t\t\tcallback(fallbackAppend);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t\/\/ no vendorId provided\n\t\t\t\tcallback('');\n\t\t\t}\n\t\t};\n\t})(Consent);\n\n\tvar publicObject = {\n\t\t\/\/ functions\n\t\tfetchZxParam: fetchZxParam,\n\t\tscriptAppend: scriptAppend,\n\t\tframeAppend: frameAppend,\n\t\tpixelAppend: pixelAppend,\n\t\tgetQueryParameterDelimiter: getQueryParameterDelimiter,\n\t\tbuildQueryString: buildQueryString,\n\t\tgetScriptAppendNode: getScriptAppendNode,\n\t\tgetBasketData: getBasketData,\n\t\tgetAffiliateId: getAffiliateId,\n\t\t_getAWCValue: _getAWCValue,\n\t\tConsent: Consent,\n\n\t\t\/\/ Awin properties\n\t\tSale: payload.plugin.sale,\n\t\tiMerchantId: payload.plugin.advertiserId, \/\/ can be added without configuration\n\t\tsProtocol: payload.plugin.protocol, \/\/ can be added without configuration\n\n\t\t\/\/ new access property\n\t\tcontext: {\n\t\t\tplugin: payload.plugin,\n\t\t\tadvertiser: payload.advertiser,\n\t\t\tlocation: payload.plugin.location,\n\t\t},\n\t};\n\n\tAWIN.sProtocol = payload.plugin.protocol;\n\tpublicObject[pluginName] = payload.advertiser.config;\n\treturn publicObject;\n})(AWIN.pluginName, AWIN.payload);\n\nAWIN.Tracking.ReachGroup = AWIN.Tracking.ReachGroup || {};\nAWIN.Tracking.ReachGroup.url = AWIN.Tracking.ReachGroup.url || AWIN.sProtocol + 'hal9000.redintelligence.net\/retarget';\n\n(function ($r) {\n  if ($r.terminate === true) {\n    return;\n  }\n\n  if ('undefined' === typeof $r.advertiserId || 'undefined' === typeof $r.campaignId) {\n    return;\n  }\n\n  var pagetype = $r.pagetype || AWIN.Tracking.fetchZxParam('pagetype');\n\n  if (AWIN.Tracking.Sale) {\n    pagetype = 'checkout';\n  } else if ('checkout' === pagetype.toLowerCase()) {\n    AWIN.Tracking.Sale = {};\n  }\n\n  $r.combineProducts = function (products) {\n    if (typeof products === 'string') {\n      products = JSON.parse(products);\n    }\n\n    var output = '';\n    var sep = '';\n\n    for (var i = 0; i \u003c products.length; i++) {\n      output += sep + products[i].identifier + '|' + products[i].quantity;\n      sep = ',';\n    }\n\n    return output;\n  };\n\n  $r.fetchBasketData = function () {\n    var products = AWIN.Tracking.getBasketData();\n    for (var i = 0; i \u003c products.length; i++) {\n      products[i].identifier = products[i].id;\n      delete products[i].id;\n    }\n    return products;\n  };\n\n  var url = $r.url + '?a=' + $r.advertiserId + '\u0026version=1';\n\n  switch (pagetype.toLowerCase()) {\n    case 'basket':\n      url += '\u0026' + AWIN.Tracking.buildQueryString({\n        event: 'basket',\n        cat: $r.campaignId,\n        items: $r.combineProducts(AWIN.Tracking.fetchZxParam('products') || $r.fetchBasketData()),\n        segment: $r.category || AWIN.Tracking.fetchZxParam('category') || ''\n      });\n      break;\n    case 'category':\n      url += '\u0026' + AWIN.Tracking.buildQueryString({\n        segment: $r.category || AWIN.Tracking.fetchZxParam('category')\n      });\n      break;\n    case 'checkout':\n      url += '\u0026' + AWIN.Tracking.buildQueryString({\n        event: 'transaction',\n        cat: $r.campaignId,\n        items: $r.combineProducts(AWIN.Tracking.fetchZxParam('products') || $r.fetchBasketData()),\n        segment: $r.category || AWIN.Tracking.fetchZxParam('category') || ''\n      });\n      break;\n    case 'search':\n      url += '\u0026' + AWIN.Tracking.buildQueryString({\n        segment: 'suchergebnisse'\n      });\n      break;\n    case 'product':\n      url += '\u0026' + AWIN.Tracking.buildQueryString({\n        event: 'view',\n        cat: $r.campaignId,\n        segment: $r.category || AWIN.Tracking.fetchZxParam('category'),\n        items: $r.identifier || AWIN.Tracking.fetchZxParam('identifier')\n      });\n      break;\n    case 'registration':\n      return;\n    case 'generic':\n    case 'home':\n      break;\n    default:\n      return;\n  }\n\n  AWIN.Tracking.frameAppend(url);\n})(AWIN.Tracking.ReachGroup);\n\u003c\/script\u003e\u003cscript\u003evar AWIN = AWIN || {};AWIN.Tracking = AWIN.Tracking || {};AWIN.payload = {\"advertiser\":{\"config\":{\"advertiserId\":\"40626\",\"campaignId\":\"10292\",\"pagetype\":\"product\",\"identifier\":\"UB11 - Tassen, Gläser, Keramik\",\"category\":\"Küche \u0026 Lebensmittel\",\"accessConfig\":{\"location\":false,\"referrer\":false,\"sale\":true,\"basket\":true,\"zxParams\":[\"pagetype\",\"products\",\"category\",\"identifier\"]}}},\"plugin\":{\"publisherId\":\"\",\"advertiserId\":41734,\"protocol\":\"https:\/\/\",\"zxParams\":{},\"basket\":[]}};AWIN.pluginName = \"ReachGroup\";\u003c\/script\u003e\u003cscript\u003evar AWIN = AWIN || {};\nAWIN.iScriptCount = 0;\n\nAWIN.Tracking = (function (pluginName, payload) {\n\tvar fetchZxParam = function (name) {\n\t\treturn payload.plugin.zxParams[name] || null;\n\t};\n\tvar scriptAppend = function (sScriptSrc, sScriptContent, onLoadCallback, oScriptTagParams, tcfVendorId) {\n\t\t\/\/ only one of the two can be set\n\t\tif (sScriptSrc \u0026\u0026 sScriptContent) {\n\t\t\treturn false;\n\t\t}\n\n\t\t\/\/ create script node\n\t\tvar scriptNode = document.createElement('script');\n\t\tscriptNode.type = 'text\/javascript';\n\t\tscriptNode.id = '_aw_script_' + AWIN.iScriptCount++;\n\n\t\t\/\/ only add if param was passed\n\t\tif (sScriptSrc) {\n\t\t\tscriptNode.src = sScriptSrc;\n\t\t} else if (sScriptContent) {\n\t\t\tscriptNode.text = sScriptContent;\n\t\t}\n\n\t\t\/\/ set optional parameters\n\t\tif (oScriptTagParams) {\n\t\t\tfor (var name in oScriptTagParams) {\n\t\t\t\tscriptNode[name] = oScriptTagParams[name];\n\t\t\t}\n\t\t}\n\n\t\t\/\/ attach an event handler\n\t\tif (onLoadCallback) {\n\t\t\t\/\/ send Debug EVent when onLoadCallback is not a function. TODO This is temporary change, should be removed after analysis\n\t\t\tif (typeof onLoadCallback !== 'function') {\n\t\t\t\tAWIN.Tracking.sendDebugEvent({\n\t\t\t\t\tseverity: 'warning',\n\t\t\t\t\tsource: { app: 'AMT', category: 'scriptAppend' },\n\t\t\t\t\tbody: {\n\t\t\t\t\t\tmessage: 'onLoadCallback is not a function in mastertag-sb.',\n\t\t\t\t\t\turl: sScriptSrc || 'inline script',\n\t\t\t\t\t\tadvertiserId: AWIN.Tracking.iMerchantId,\n\t\t\t\t\t},\n\t\t\t\t});\n\t\t\t}\n\n\t\t\t\/\/ for IE\n\t\t\tscriptNode.onreadystatechange = function () {\n\t\t\t\tif (scriptNode.readyState == 'complete' || scriptNode.readyState == 'loaded') {\n\t\t\t\t\tonLoadCallback();\n\t\t\t\t}\n\t\t\t};\n\n\t\t\t\/\/ for everything elses\n\t\t\tscriptNode.onload = onLoadCallback;\n\t\t}\n\n\t\t\/\/ append node\n\t\tif (sScriptSrc) {\n\t\t\tAWIN.Tracking.Consent.getGdprAppends(\n\t\t\t\ttcfVendorId,\n\t\t\t\tAWIN.Tracking.getQueryParameterDelimiter(scriptNode.src),\n\t\t\t\tfunction (gdprAppends) {\n\t\t\t\t\tscriptNode.src += gdprAppends;\n\t\t\t\t\tAWIN.Tracking.getScriptAppendNode().appendChild(scriptNode);\n\t\t\t\t}\n\t\t\t);\n\t\t} else {\n\t\t\tAWIN.Tracking.getScriptAppendNode().appendChild(scriptNode);\n\t\t}\n\n\t\treturn scriptNode;\n\t};\n\tvar frameAppend = function (sFrameSrc, tcfVendorId) {\n\t\tif (document.getElementsByTagName('body')[0]) {\n\t\t\tAWIN.Tracking.Consent.getGdprAppends(\n\t\t\t\ttcfVendorId,\n\t\t\t\tAWIN.Tracking.getQueryParameterDelimiter(sFrameSrc),\n\t\t\t\tfunction (gdprAppends) {\n\t\t\t\t\tsFrameSrc += gdprAppends;\n\n\t\t\t\t\tvar iframe = document.createElement('iframe');\n\t\t\t\t\tiframe.setAttribute('aria-hidden', 'true');\n\t\t\t\t\tiframe.src = sFrameSrc;\n\t\t\t\t\tdocument.getElementsByTagName('body')[0].appendChild(iframe);\n\t\t\t\t\t\/\/ AWIN.Tracking.hideElement(iframe); \/\/ not needed, iframe is hidden already\n\t\t\t\t}\n\t\t\t);\n\t\t}\n\t};\n\tvar pixelAppend = function (sImageSrc, tcfVendorId) {\n\t\tif (document.getElementsByTagName('body')[0]) {\n\t\t\tAWIN.Tracking.Consent.getGdprAppends(\n\t\t\t\ttcfVendorId,\n\t\t\t\tAWIN.Tracking.getQueryParameterDelimiter(sImageSrc),\n\t\t\t\tfunction (gdprAppends) {\n\t\t\t\t\tsImageSrc += gdprAppends;\n\n\t\t\t\t\tvar image = document.createElement('img');\n\t\t\t\t\timage.setAttribute('aria-hidden', 'true');\n\t\t\t\t\timage.src = sImageSrc;\n\t\t\t\t\tdocument.getElementsByTagName('body')[0].appendChild(image);\n\t\t\t\t\t\/\/ AWIN.Tracking.hideElement(image); \/\/ not needed, iframe is hidden already\n\t\t\t\t}\n\t\t\t);\n\t\t}\n\t};\n\tvar getQueryParameterDelimiter = function (currentUrl) {\n\t\treturn currentUrl.indexOf('?') === -1 ? '?' : '\u0026';\n\t};\n\tvar buildQueryString = function (params) {\n\t\tvar bits = [];\n\t\tfor (var name in params) {\n\t\t\tif (params.hasOwnProperty(name)) {\n\t\t\t\tbits.push(name + '=' + encodeURIComponent(params[name]));\n\t\t\t}\n\t\t}\n\t\treturn bits.join('\u0026');\n\t};\n\tvar getScriptAppendNode = function () {\n\t\treturn document.body;\n\t};\n\tvar getBasketData = function () {\n\t\treturn payload.plugin.basket || [];\n\t};\n\tvar getAffiliateId = function () {\n\t\treturn payload.plugin.publisherId;\n\t};\n\tvar _getAWCValue = function () {\n\t\treturn payload.plugin.awc;\n\t};\n\n\tvar Consent = {};\n\n\t(function (awinTrackingConsent) {\n\t\t\/\/ if we locate the CMP iframe we will reference it with this\n\t\tvar cmpFrame;\n\n\t\t(function () {\n\t\t\t\/\/ start here at our window\n\t\t\tvar frame = window;\n\n\t\t\t\/\/ map of calls\n\t\t\tvar cmpCallbacks = {};\n\t\t\twhile (frame) {\n\t\t\t\ttry {\n\t\t\t\t\t\/**\n\t\t\t\t\t * throws a reference error if no frames exist\n\t\t\t\t\t *\/\n\t\t\t\t\tif (frame.frames['__tcfapiLocator']) {\n\t\t\t\t\t\tcmpFrame = frame;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t} catch (ignore) {}\n\t\t\t\tif (frame === window.top) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tframe = frame.parent;\n\t\t\t}\n\n\t\t\t\/**\n\t\t\t * Set up a __tcfapi proxy method to do the postMessage and map the callback.\n\t\t\t * From the caller's perspective, this function behaves identically to the\n\t\t\t * CMP API's __tcfapi call\n\t\t\t *\/\n\t\t\twindow.__tcfapi = function (cmd, version, callback, arg) {\n\t\t\t\tif (!cmpFrame) {\n\t\t\t\t\tcallback({ msg: 'CMP not found' }, false);\n\t\t\t\t} else {\n\t\t\t\t\tvar callId = Math.random() + '';\n\t\t\t\t\tvar msg = {\n\t\t\t\t\t\t__tcfapiCall: {\n\t\t\t\t\t\t\tcommand: cmd,\n\t\t\t\t\t\t\tparameter: arg,\n\t\t\t\t\t\t\tversion: version,\n\t\t\t\t\t\t\tcallId: callId,\n\t\t\t\t\t\t},\n\t\t\t\t\t};\n\n\t\t\t\t\t\/**\n\t\t\t\t\t * map the callback for lookup on response\n\t\t\t\t\t *\/\n\t\t\t\t\tcmpCallbacks[callId] = callback;\n\t\t\t\t\tcmpFrame.postMessage(msg, '*');\n\t\t\t\t}\n\t\t\t};\n\n\t\t\tfunction postMessageHandler(event) {\n\t\t\t\t\/**\n\t\t\t\t * when we get the return message, call the mapped callback\n\t\t\t\t *\/\n\t\t\t\tvar json = {};\n\n\t\t\t\ttry {\n\t\t\t\t\t\/**\n\t\t\t\t\t * if this isn't valid JSON then this will throw an error\n\t\t\t\t\t *\/\n\t\t\t\t\tjson = typeof event.data === 'string' ? JSON.parse(event.data) : event.data;\n\t\t\t\t} catch (ignore) {}\n\n\t\t\t\tvar payload = json.__tcfapiReturn;\n\t\t\t\tif (payload) {\n\t\t\t\t\t\/**\n\t\t\t\t\t * messages we care about will have a payload\n\t\t\t\t\t *\/\n\t\t\t\t\tif (typeof cmpCallbacks[payload.callId] === 'function') {\n\t\t\t\t\t\t\/**\n\t\t\t\t\t\t * call the mapped callback and then remove the reference\n\t\t\t\t\t\t *\/\n\n\t\t\t\t\t\tcmpCallbacks[payload.callId](payload.returnValue, payload.success);\n\t\t\t\t\t\tcmpCallbacks[payload.callId] = null;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\twindow.addEventListener('message', postMessageHandler, false);\n\t\t})();\n\n\t\tawinTrackingConsent.isCmpPresentOnPage = function () {\n\t\t\treturn typeof cmpFrame !== 'undefined';\n\t\t};\n\n\t\tawinTrackingConsent.getGdprAppends = function (tcfVendorId, delimiter, callback) {\n\t\t\tif (tcfVendorId) {\n\t\t\t\t\/\/ prepare for no CMP and errors\n\t\t\t\tvar fallbackAppend = delimiter + 'gdpr=${GDPR}\u0026gdpr_consent=${GDPR_CONSENT_' + tcfVendorId + '}';\n\n\t\t\t\t\/\/ cmp found, asking __tcfapi for a consent string for this vendorId\n\t\t\t\tif (AWIN.Tracking.Consent.isCmpPresentOnPage()) {\n\t\t\t\t\ttry {\n\t\t\t\t\t\t__tcfapi(\n\t\t\t\t\t\t\t'getTCData',\n\t\t\t\t\t\t\t2,\n\t\t\t\t\t\t\tfunction (tcData, success) {\n\t\t\t\t\t\t\t\tvar appends = delimiter;\n\t\t\t\t\t\t\t\tif (tcData \u0026\u0026 success) {\n\t\t\t\t\t\t\t\t\tif (typeof tcData.gdprApplies !== 'undefined') {\n\t\t\t\t\t\t\t\t\t\tif (tcData.gdprApplies) {\n\t\t\t\t\t\t\t\t\t\t\tappends += 'gdpr=1';\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\tappends += 'gdpr=0';\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tappends += '\u0026gdpr_consent=' + tcData.tcString;\n\t\t\t\t\t\t\t\t\t\tcallback(appends);\n\t\t\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\/\/ no data, no success or missing tcData.gdprApplies\n\t\t\t\t\t\t\t\tcallback(fallbackAppend);\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t[tcfVendorId]\n\t\t\t\t\t\t);\n\t\t\t\t\t} catch (err) {\n\t\t\t\t\t\tcallback(fallbackAppend);\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\t\/\/ no CMP found\n\t\t\t\t\tcallback(fallbackAppend);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t\/\/ no vendorId provided\n\t\t\t\tcallback('');\n\t\t\t}\n\t\t};\n\t})(Consent);\n\n\tvar publicObject = {\n\t\t\/\/ functions\n\t\tfetchZxParam: fetchZxParam,\n\t\tscriptAppend: scriptAppend,\n\t\tframeAppend: frameAppend,\n\t\tpixelAppend: pixelAppend,\n\t\tgetQueryParameterDelimiter: getQueryParameterDelimiter,\n\t\tbuildQueryString: buildQueryString,\n\t\tgetScriptAppendNode: getScriptAppendNode,\n\t\tgetBasketData: getBasketData,\n\t\tgetAffiliateId: getAffiliateId,\n\t\t_getAWCValue: _getAWCValue,\n\t\tConsent: Consent,\n\n\t\t\/\/ Awin properties\n\t\tSale: payload.plugin.sale,\n\t\tiMerchantId: payload.plugin.advertiserId, \/\/ can be added without configuration\n\t\tsProtocol: payload.plugin.protocol, \/\/ can be added without configuration\n\n\t\t\/\/ new access property\n\t\tcontext: {\n\t\t\tplugin: payload.plugin,\n\t\t\tadvertiser: payload.advertiser,\n\t\t\tlocation: payload.plugin.location,\n\t\t},\n\t};\n\n\tAWIN.sProtocol = payload.plugin.protocol;\n\tpublicObject[pluginName] = payload.advertiser.config;\n\treturn publicObject;\n})(AWIN.pluginName, AWIN.payload);\n\nAWIN.Tracking.ReachGroup = AWIN.Tracking.ReachGroup || {};\nAWIN.Tracking.ReachGroup.url = AWIN.Tracking.ReachGroup.url || AWIN.sProtocol + 'hal9000.redintelligence.net\/retarget';\n\n(function ($r) {\n  if ($r.terminate === true) {\n    return;\n  }\n\n  if ('undefined' === typeof $r.advertiserId || 'undefined' === typeof $r.campaignId) {\n    return;\n  }\n\n  var pagetype = $r.pagetype || AWIN.Tracking.fetchZxParam('pagetype');\n\n  if (AWIN.Tracking.Sale) {\n    pagetype = 'checkout';\n  } else if ('checkout' === pagetype.toLowerCase()) {\n    AWIN.Tracking.Sale = {};\n  }\n\n  $r.combineProducts = function (products) {\n    if (typeof products === 'string') {\n      products = JSON.parse(products);\n    }\n\n    var output = '';\n    var sep = '';\n\n    for (var i = 0; i \u003c products.length; i++) {\n      output += sep + products[i].identifier + '|' + products[i].quantity;\n      sep = ',';\n    }\n\n    return output;\n  };\n\n  $r.fetchBasketData = function () {\n    var products = AWIN.Tracking.getBasketData();\n    for (var i = 0; i \u003c products.length; i++) {\n      products[i].identifier = products[i].id;\n      delete products[i].id;\n    }\n    return products;\n  };\n\n  var url = $r.url + '?a=' + $r.advertiserId + '\u0026version=1';\n\n  switch (pagetype.toLowerCase()) {\n    case 'basket':\n      url += '\u0026' + AWIN.Tracking.buildQueryString({\n        event: 'basket',\n        cat: $r.campaignId,\n        items: $r.combineProducts(AWIN.Tracking.fetchZxParam('products') || $r.fetchBasketData()),\n        segment: $r.category || AWIN.Tracking.fetchZxParam('category') || ''\n      });\n      break;\n    case 'category':\n      url += '\u0026' + AWIN.Tracking.buildQueryString({\n        segment: $r.category || AWIN.Tracking.fetchZxParam('category')\n      });\n      break;\n    case 'checkout':\n      url += '\u0026' + AWIN.Tracking.buildQueryString({\n        event: 'transaction',\n        cat: $r.campaignId,\n        items: $r.combineProducts(AWIN.Tracking.fetchZxParam('products') || $r.fetchBasketData()),\n        segment: $r.category || AWIN.Tracking.fetchZxParam('category') || ''\n      });\n      break;\n    case 'search':\n      url += '\u0026' + AWIN.Tracking.buildQueryString({\n        segment: 'suchergebnisse'\n      });\n      break;\n    case 'product':\n      url += '\u0026' + AWIN.Tracking.buildQueryString({\n        event: 'view',\n        cat: $r.campaignId,\n        segment: $r.category || AWIN.Tracking.fetchZxParam('category'),\n        items: $r.identifier || AWIN.Tracking.fetchZxParam('identifier')\n      });\n      break;\n    case 'registration':\n      return;\n    case 'generic':\n    case 'home':\n      break;\n    default:\n      return;\n  }\n\n  AWIN.Tracking.frameAppend(url);\n})(AWIN.Tracking.ReachGroup);\n\u003c\/script\u003e\u003cspan\u003eVolume: 0.3l\u003c\/span\u003e\u003cbr\u003e\u003c\/p\u003e","brand":"Booh Outfit Merchandise \u0026 Textildruck GmbH","offers":[{"title":"Default Title","offer_id":56391805665661,"sku":"UB112513","price":12.95,"currency_code":"EUR","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0825\/6271\/1893\/files\/image_fill_Tasse25_THIRD_BACK_MU.webp?v=1756197962"},{"product_id":"tasse-logo-grau","title":"Cup Logo","description":"\u003cp\u003eColor: grey\u003cbr\u003eVolume: 0.3 l\u003c\/p\u003e","brand":"Trade Con GmbH","offers":[{"title":"Default Title","offer_id":56498737381757,"sku":"UB112504","price":12.95,"currency_code":"EUR","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0825\/6271\/1893\/files\/250824-Geschirr-9406.jpg?v=1760957494"}],"url":"https:\/\/fanartikel.union-zeughaus.de\/en\/collections\/kuche-lebensmittel.oembed?page=10","provider":"Union Zeughaus","version":"1.0","type":"link"}