/*
 * ------------------------------------------------------------
 * IMPORTANT: The contents of this file are auto-generated.
 *
 * This file may be updated by the Shopify admin theme editor
 * or related systems. Please exercise caution as any changes
 * made to this file may be overwritten.
 * ------------------------------------------------------------
 */
{
  "sections": {
    "main": {
      "type": "main-product",
      "blocks": {
        "vendor": {
          "type": "text",
          "settings": {
            "text": "<strong>{{ product.vendor }}</strong>",
            "text_style": "uppercase"
          }
        },
        "title": {
          "type": "title",
          "settings": {}
        },
        "custom_liquid_8BzDqH": {
          "type": "custom_liquid",
          "name": "Reseller, Netto & Standardpreis (benutzerdef. Liquid)",
          "settings": {
            "custom_liquid": "{%- comment -%}Mehrsprachige Labels{%- endcomment -%}\n{%- assign discounted_price_label = 'products.product.discounted_price' | t -%}\n{%- assign net_price_label = 'products.product.net_price' | t -%}\n{%- assign tax_included_label = 'products.product.tax_included' | t -%}\n\n{% if customer and customer.tags contains 'Reseller' %}\n  \n  {%- comment -%}Prüfe, zu welcher Reseller-Kollektion das Produkt gehört{%- endcomment -%}\n  {%- assign reseller_discount = 0 -%}\n  {%- assign is_reseller_product = false -%}\n  \n  {% for collection in product.collections %}\n    {% if collection.title == 'Reseller1' %}\n      {%- comment -%}Reseller1 Kollektion - 20% Rabatt{%- endcomment -%}\n      {%- assign reseller_discount = 0.20 -%}\n      {%- assign is_reseller_product = true -%}\n      {% break %}\n    {% elsif collection.title == 'Reseller2' %}\n      {%- comment -%}Reseller2 Kollektion - 15% Rabatt{%- endcomment -%}\n      {%- assign reseller_discount = 0.15 -%}\n      {%- assign is_reseller_product = true -%}\n      {% break %}\n    {% endif %}\n  {% endfor %}\n  \n  {% if is_reseller_product %}\n    <style>\n      /* Verstecke Standard-Preis nur für Reseller-Produkte */\n      .price__container,\n      .product__info-container .price:not(#reseller-price-gross),\n      .price--large:not(#reseller-price-gross),\n      [id*=\"price-template\"]:not(.reseller-pricing) {\n        display: none !important;\n      }\n    </style>\n\n    {%- comment -%}Länderspezifische MwSt.-Sätze{%- endcomment -%}\n    {% assign selected_country = localization.country.iso_code %}\n\n    {% if selected_country == 'DE' %}\n      {% assign tax_rate = 1.19 %}\n    {% elsif selected_country == 'AT' %}\n      {% assign tax_rate = 1.20 %}\n    {% elsif selected_country == 'FR' %}\n      {% assign tax_rate = 1.20 %}\n    {% elsif selected_country == 'BE' %}\n      {% assign tax_rate = 1.21 %}\n    {% elsif selected_country == 'NL' %}\n      {% assign tax_rate = 1.21 %}\n    {% elsif selected_country == 'SE' %}\n      {% assign tax_rate = 1.25 %}\n    {% elsif selected_country == 'DK' %}\n      {% assign tax_rate = 1.25 %}\n    {% elsif selected_country == 'PT' %}\n      {% assign tax_rate = 1.23 %}\n    {% elsif selected_country == 'LU' %}\n      {% assign tax_rate = 1.17 %}\n    {% elsif selected_country == 'MC' %}\n      {% assign tax_rate = 1.20 %}\n    {% elsif selected_country == 'ES' %}\n      {% assign tax_rate = 1.21 %}\n    {% elsif selected_country == 'FI' %}\n      {% assign tax_rate = 1.24 %}\n    {% elsif selected_country == 'IE' %}\n      {% assign tax_rate = 1.23 %}\n    {% elsif selected_country == 'IT' %}\n      {% assign tax_rate = 1.22 %}\n    {% elsif selected_country == 'LT' %}\n      {% assign tax_rate = 1.21 %}\n    {% elsif selected_country == 'EE' %}\n      {% assign tax_rate = 1.22 %}\n    {% elsif selected_country == 'HR' %}\n      {% assign tax_rate = 1.25 %}\n    {% elsif selected_country == 'LV' %}\n      {% assign tax_rate = 1.21 %}\n    {% elsif selected_country == 'SK' %}\n      {% assign tax_rate = 1.20 %}\n    {% elsif selected_country == 'SI' %}\n      {% assign tax_rate = 1.22 %}\n    {% else %}\n      {% assign tax_rate = 1.20 %}\n    {% endif %}\n    \n    {%- comment -%}Berechnung: Erst Rabatt abziehen, dann MwSt. berechnen{%- endcomment -%}\n    {%- assign current_variant = product.selected_or_first_available_variant -%}\n    {%- assign discount_multiplier = 1 | minus: reseller_discount -%}\n    {%- assign reseller_price_gross = current_variant.price | times: discount_multiplier -%}\n    {%- assign reseller_price_net = reseller_price_gross | divided_by: tax_rate -%}\n    \n    <div class=\"reseller-pricing\">\n      <span class=\"reseller-label\">{{ discounted_price_label }}</span>\n      <span class=\"price\" id=\"reseller-price-gross\" data-reseller-discount=\"{{ reseller_discount }}\">{{ reseller_price_gross | money }}</span>\n      <span class=\"original-price\"><s>{{ current_variant.price | money }}</s></span>\n      <br>\n      <span id=\"reseller-net-price\" style=\"color: red; font-size: 0.9em;\" data-tax-rate=\"{{ tax_rate }}\" data-currency=\"{{ cart.currency.symbol }}\" data-net-label=\"{{ net_price_label }}\">\n        {{ cart.currency.symbol }}{{ reseller_price_net | money_without_currency }} ({{ net_price_label }})\n      </span>\n    </div>\n    \n    <script>\n    (function() {\n      const netPriceElement = document.getElementById('reseller-net-price');\n      const grossPriceElement = document.getElementById('reseller-price-gross');\n      const taxRate = parseFloat(netPriceElement.dataset.taxRate);\n      const resellerDiscount = parseFloat(grossPriceElement.dataset.resellerDiscount);\n      const currencySymbol = netPriceElement.dataset.currency;\n      const netPriceLabel = netPriceElement.dataset.netLabel;\n      const productVariants = {{ product.variants | json }};\n      \n      function formatMoney(cents) {\n        const amount = cents / 100;\n        const formattedAmount = new Intl.NumberFormat('{{ localization.language.iso_code }}', {\n          minimumFractionDigits: 2,\n          maximumFractionDigits: 2\n        }).format(amount);\n        return currencySymbol + formattedAmount;\n      }\n      \n      function updatePrices(variantId) {\n        const variant = productVariants.find(v => v.id == variantId);\n        if (variant && variant.price) {\n          const resellerPriceGross = variant.price * (1 - resellerDiscount);\n          const resellerPriceNet = resellerPriceGross / taxRate;\n          \n          grossPriceElement.textContent = formatMoney(resellerPriceGross);\n          netPriceElement.innerHTML = formatMoney(resellerPriceNet) + ' (' + netPriceLabel + ')';\n          \n          const originalPriceElement = document.querySelector('.original-price s');\n          if (originalPriceElement) {\n            originalPriceElement.textContent = formatMoney(variant.price);\n          }\n        }\n      }\n      \n      const urlParams = new URLSearchParams(window.location.search);\n      const variantParam = urlParams.get('variant');\n      if (variantParam) {\n        updatePrices(variantParam);\n      }\n      \n      let lastUrl = location.href;\n      new MutationObserver(() => {\n        const url = location.href;\n        if (url !== lastUrl) {\n          lastUrl = url;\n          const newParams = new URLSearchParams(window.location.search);\n          const newVariant = newParams.get('variant');\n          if (newVariant) {\n            updatePrices(newVariant);\n          }\n        }\n      }).observe(document, {subtree: true, childList: true});\n      \n      const productForm = document.querySelector('form[action*=\"/cart/add\"]');\n      if (productForm) {\n        const variantInput = productForm.querySelector('input[name=\"id\"], select[name=\"id\"]');\n        if (variantInput) {\n          variantInput.addEventListener('change', function() {\n            updatePrices(this.value);\n          });\n        }\n        \n        const variantRadios = productForm.querySelectorAll('input[name=\"id\"][type=\"radio\"]');\n        variantRadios.forEach(radio => {\n          radio.addEventListener('change', function() {\n            updatePrices(this.value);\n          });\n        });\n      }\n      \n      const variantSelects = document.querySelector('variant-selects');\n      if (variantSelects) {\n        const observer = new MutationObserver(function(mutations) {\n          const currentVariantId = variantSelects.querySelector('input[name=\"id\"]')?.value;\n          if (currentVariantId) {\n            updatePrices(currentVariantId);\n          }\n        });\n        observer.observe(variantSelects, { attributes: true, childList: true, subtree: true });\n      }\n    })();\n    </script>\n  {% else %}\n    {%- comment -%}Reseller, aber Produkt NICHT in Reseller-Kollektion - zeige normalen Preis{%- endcomment -%}\n    {%- assign current_variant = product.selected_or_first_available_variant -%}\n    \n    <div class=\"standard-pricing\" id=\"standard-price-display\">\n      <span class=\"price price--large\" id=\"standard-price\">{{ current_variant.price | money }}</span>\n      {% if current_variant.compare_at_price > current_variant.price %}\n        <span class=\"price-item price-item--regular\"><s>{{ current_variant.compare_at_price | money }}</s></span>\n      {% endif %}\n      <br>\n      <small style=\"font-size: 0.85em; color: #6b7280;\">{{ tax_included_label }}</small>\n    </div>\n    \n    <script>\n    (function() {\n      const standardPriceElement = document.getElementById('standard-price');\n      const productVariants = {{ product.variants | json }};\n      const currencySymbol = '{{ cart.currency.symbol }}';\n      \n      function formatMoney(cents) {\n        const amount = cents / 100;\n        const formattedAmount = new Intl.NumberFormat('{{ localization.language.iso_code }}', {\n          minimumFractionDigits: 2,\n          maximumFractionDigits: 2\n        }).format(amount);\n        return currencySymbol + formattedAmount;\n      }\n      \n      function updateStandardPrice(variantId) {\n        const variant = productVariants.find(v => v.id == variantId);\n        if (variant && variant.price) {\n          standardPriceElement.textContent = formatMoney(variant.price);\n        }\n      }\n      \n      const urlParams = new URLSearchParams(window.location.search);\n      const variantParam = urlParams.get('variant');\n      if (variantParam) {\n        updateStandardPrice(variantParam);\n      }\n      \n      let lastUrl = location.href;\n      new MutationObserver(() => {\n        const url = location.href;\n        if (url !== lastUrl) {\n          lastUrl = url;\n          const newParams = new URLSearchParams(window.location.search);\n          const newVariant = newParams.get('variant');\n          if (newVariant) {\n            updateStandardPrice(newVariant);\n          }\n        }\n      }).observe(document, {subtree: true, childList: true});\n      \n      const productForm = document.querySelector('form[action*=\"/cart/add\"]');\n      if (productForm) {\n        const variantInput = productForm.querySelector('input[name=\"id\"], select[name=\"id\"]');\n        if (variantInput) {\n          variantInput.addEventListener('change', function() {\n            updateStandardPrice(this.value);\n          });\n        }\n        \n        const variantRadios = productForm.querySelectorAll('input[name=\"id\"][type=\"radio\"]');\n        variantRadios.forEach(radio => {\n          radio.addEventListener('change', function() {\n            updateStandardPrice(this.value);\n          });\n        });\n      }\n      \n      const variantSelects = document.querySelector('variant-selects');\n      if (variantSelects) {\n        const observer = new MutationObserver(function(mutations) {\n          const currentVariantId = variantSelects.querySelector('input[name=\"id\"]')?.value;\n          if (currentVariantId) {\n            updateStandardPrice(currentVariantId);\n          }\n        });\n        observer.observe(variantSelects, { attributes: true, childList: true, subtree: true });\n      }\n    })();\n    </script>\n  {% endif %}\n  \n{% else %}\n  {%- comment -%}Normaler Preis für Nicht-Reseller (Endkunden){%- endcomment -%}\n  {%- assign current_variant = product.selected_or_first_available_variant -%}\n  \n  <div class=\"standard-pricing\" id=\"standard-price-display\">\n    <span class=\"price price--large\" id=\"standard-price\">{{ current_variant.price | money }}</span>\n    {% if current_variant.compare_at_price > current_variant.price %}\n      <span class=\"price-item price-item--regular\"><s>{{ current_variant.compare_at_price | money }}</s></span>\n    {% endif %}\n    <br>\n    <small style=\"font-size: 0.85em; color: #6b7280;\">{{ tax_included_label }}</small>\n  </div>\n  \n  <script>\n  (function() {\n    const standardPriceElement = document.getElementById('standard-price');\n    const productVariants = {{ product.variants | json }};\n    const currencySymbol = '{{ cart.currency.symbol }}';\n    \n    function formatMoney(cents) {\n      const amount = cents / 100;\n      const formattedAmount = new Intl.NumberFormat('{{ localization.language.iso_code }}', {\n        minimumFractionDigits: 2,\n        maximumFractionDigits: 2\n      }).format(amount);\n      return currencySymbol + formattedAmount;\n    }\n    \n    function updateStandardPrice(variantId) {\n      const variant = productVariants.find(v => v.id == variantId);\n      if (variant && variant.price) {\n        standardPriceElement.textContent = formatMoney(variant.price);\n      }\n    }\n    \n    const urlParams = new URLSearchParams(window.location.search);\n    const variantParam = urlParams.get('variant');\n    if (variantParam) {\n      updateStandardPrice(variantParam);\n    }\n    \n    let lastUrl = location.href;\n    new MutationObserver(() => {\n      const url = location.href;\n      if (url !== lastUrl) {\n        lastUrl = url;\n        const newParams = new URLSearchParams(window.location.search);\n        const newVariant = newParams.get('variant');\n        if (newVariant) {\n          updateStandardPrice(newVariant);\n        }\n      }\n    }).observe(document, {subtree: true, childList: true});\n    \n    const productForm = document.querySelector('form[action*=\"/cart/add\"]');\n    if (productForm) {\n      const variantInput = productForm.querySelector('input[name=\"id\"], select[name=\"id\"]');\n      if (variantInput) {\n        variantInput.addEventListener('change', function() {\n          updateStandardPrice(this.value);\n        });\n      }\n      \n      const variantRadios = productForm.querySelectorAll('input[name=\"id\"][type=\"radio\"]');\n      variantRadios.forEach(radio => {\n        radio.addEventListener('change', function() {\n          updateStandardPrice(this.value);\n        });\n      });\n    }\n    \n    const variantSelects = document.querySelector('variant-selects');\n    if (variantSelects) {\n      const observer = new MutationObserver(function(mutations) {\n        const currentVariantId = variantSelects.querySelector('input[name=\"id\"]')?.value;\n        if (currentVariantId) {\n          updateStandardPrice(currentVariantId);\n        }\n      });\n      observer.observe(variantSelects, { attributes: true, childList: true, subtree: true });\n    }\n  })();\n  </script>\n{% endif %}"
          }
        },
        "price": {
          "type": "price",
          "disabled": true,
          "settings": {}
        },
        "sku_3KtxUP": {
          "type": "sku",
          "settings": {
            "text_style": "body"
          }
        },
        "inventory_NHFC7A": {
          "type": "inventory",
          "settings": {
            "text_style": "body",
            "inventory_threshold": 0,
            "show_inventory_quantity": false
          }
        },
        "variant_picker": {
          "type": "variant_picker",
          "settings": {
            "picker_type": "button",
            "swatch_shape": "square"
          }
        },
        "quantity_selector": {
          "type": "quantity_selector",
          "settings": {}
        },
        "custom_liquid_b84rBa": {
          "type": "custom_liquid",
          "name": "Mengenrabatt (benutzerdef. Liquid)",
          "settings": {
            "custom_liquid": "{% comment %}\n  Mengenrabatt-Hinweis basierend auf VE-Tag\n  Wird nur für Nicht-Reseller-Kunden angezeigt\n{% endcomment %}\n\n{% if customer.tags contains 'Reseller' %}\n  {% comment %} Nichts anzeigen für Reseller {% endcomment %}\n{% else %}\n  {% for tag in product.tags %}\n    {% if tag contains 'VE' %}\n      {% assign ve_number = tag | remove: 'VE' | times: 1 %}\n      {% assign savings = product.price | times: 0.05 | times: ve_number %}\n      {% assign text_buy = 'products.product.quantity_discount.buy' | t %}\n      {% assign text_save = 'products.product.quantity_discount.save' | t %}\n      <div class=\"quantity-discount-message\" style=\"margin-top: 10px; padding: 10px; background-color: #f0f8ff; border-left: 3px solid #4CAF50;\">\n        <p style=\"margin: 0; font-weight: 500;\">\n          {{ text_buy }} {{ ve_number }} {{ text_save }} {{ savings | money_without_currency }} €\n        </p>\n      </div>\n      {% break %}\n    {% endif %}\n  {% endfor %}\n{% endif %}"
          }
        },
        "es_back_in_stock_product_restore_email_RF8xcL": {
          "type": "shopify://apps/sw-back-in-stock/blocks/product-restore-email/b190bced-3b7b-47da-a05f-6ea4821c3a77",
          "settings": {}
        },
        "buy_buttons": {
          "type": "buy_buttons",
          "settings": {
            "show_dynamic_checkout": false,
            "show_gift_card_recipient": true
          }
        },
        "swishlist_simple_wishlist_wishlist_product_button_nHwX8d": {
          "type": "shopify://apps/swishlist-simple-wishlist/blocks/wishlist_product_button/bfcb80f2-f00d-42ae-909a-9f00c726327b",
          "settings": {
            "custom_liquid": ""
          }
        },
        "description": {
          "type": "description",
          "settings": {}
        },
        "share": {
          "type": "share",
          "settings": {
            "share_label": "Partager"
          }
        },
        "text_UY8fRF": {
          "type": "text",
          "settings": {
            "text": "<em>Vous pouvez facilement peindre vous-même cette céramique brute (faïence) chez vous. Veuillez utiliser uniquement </em><a href=\"/pages/emaux\" title=\"Emaux\"><em>des peintures et des émaux</em></a><em> adaptés à la peinture sur biscuits de faïence. Veuillez noter que cette céramique brute doit être cuite dans un four spécial avant utilisation. Si vous ne disposez pas de  propre four, vous pouvez utiliser notre </em><a href=\"/products/service-de-cuisson\" title=\"Service de cuisson\"><em>service de cuisson</em></a><em>. Vous trouverez </em><a href=\"/pages/emaux\" title=\"Emaux\"><em>ici</em></a><em> des informations sur les différences entre les différentes </em><a href=\"/pages/emaux\" title=\"Emaux\"><em>peintures et émaux</em></a><em> adaptés aux produits alimentaires afin de peindre la céramique. Nous avons expliqué en détail comment fonctionne la peinture sur céramique dans ce </em><a href=\"/pages/peinture-sur-ceramique-pour-debutants\" title=\"Peinture sur céramique pour débutants\"><em>guide étape par étape</em></a><em>. Vous trouverez de nombreuses idées pour peindre vous-même la céramique dans les descriptions et les avis des différents produits de faïence, qui contiennent souvent des photos pour vous inspirer.</em>",
            "text_style": "body"
          }
        },
        "rating_aCUCbP": {
          "type": "rating",
          "settings": {}
        },
        "complementary_hh4zkU": {
          "type": "complementary",
          "settings": {
            "block_heading": "S’associe bien avec",
            "make_collapsible_row": true,
            "icon": "price_tag",
            "product_list_limit": 10,
            "products_per_page": 3,
            "pagination_style": "counter",
            "image_ratio": "square",
            "enable_quick_add": false
          }
        }
      },
      "block_order": [
        "vendor",
        "title",
        "custom_liquid_8BzDqH",
        "price",
        "sku_3KtxUP",
        "inventory_NHFC7A",
        "variant_picker",
        "quantity_selector",
        "custom_liquid_b84rBa",
        "es_back_in_stock_product_restore_email_RF8xcL",
        "buy_buttons",
        "swishlist_simple_wishlist_wishlist_product_button_nHwX8d",
        "description",
        "share",
        "text_UY8fRF",
        "rating_aCUCbP",
        "complementary_hh4zkU"
      ],
      "settings": {
        "enable_sticky_info": true,
        "color_scheme": "scheme-1",
        "media_size": "small",
        "constrain_to_viewport": true,
        "media_fit": "contain",
        "gallery_layout": "thumbnail_slider",
        "mobile_thumbnails": "hide",
        "media_position": "left",
        "image_zoom": "hover",
        "hide_variants": false,
        "enable_video_looping": false,
        "padding_top": 12,
        "padding_bottom": 0
      }
    },
    "17446629028c154a2c": {
      "type": "apps",
      "settings": {
        "include_margins": true
      }
    },
    "related-products": {
      "type": "related-products",
      "settings": {
        "heading": "Vous pouvez aussi aimer",
        "heading_size": "h2",
        "products_to_show": 4,
        "columns_desktop": 4,
        "columns_mobile": "2",
        "color_scheme": "scheme-1",
        "image_ratio": "adapt",
        "image_shape": "default",
        "show_secondary_image": false,
        "show_vendor": false,
        "show_rating": false,
        "padding_top": 36,
        "padding_bottom": 68
      }
    },
    "17447283967be0a644": {
      "type": "apps",
      "blocks": {
        "doran_product_reviews_home_showcase_widget_HVabwB": {
          "type": "shopify://apps/doran-product-reviews/blocks/home-showcase-widget/ca90c3ee-bc39-4c25-90cd-fdf0519c6d11",
          "disabled": true,
          "settings": {
            "topPadding": 36,
            "bottomPadding": 36,
            "is_use_shopify_font": false,
            "shopify_font": "sans_serif_n4"
          }
        },
        "doran_product_reviews_question_widget_JcYCGy": {
          "type": "shopify://apps/doran-product-reviews/blocks/question-widget/ca90c3ee-bc39-4c25-90cd-fdf0519c6d11",
          "settings": {
            "topPadding": 36,
            "bottomPadding": 36,
            "is_use_shopify_font": false,
            "shopify_font": "sans_serif_n4"
          }
        },
        "doran_product_reviews_product_widget_Ww7qeM": {
          "type": "shopify://apps/doran-product-reviews/blocks/product-widget/ca90c3ee-bc39-4c25-90cd-fdf0519c6d11",
          "settings": {
            "topPadding": 36,
            "bottomPadding": 36,
            "is_hide_if_no_reviews": false,
            "is_use_shopify_font": false,
            "shopify_font": "sans_serif_n4"
          }
        }
      },
      "block_order": [
        "doran_product_reviews_home_showcase_widget_HVabwB",
        "doran_product_reviews_question_widget_JcYCGy",
        "doran_product_reviews_product_widget_Ww7qeM"
      ],
      "settings": {
        "include_margins": true
      }
    }
  },
  "order": [
    "main",
    "17446629028c154a2c",
    "related-products",
    "17447283967be0a644"
  ]
}
