swisspackag.test.mediadivision.ch
Open in
urlscan Pro
81.3.26.184
Public Scan
URL:
https://swisspackag.test.mediadivision.ch/
Submission: On August 04 via automatic, source certstream-suspicious — Scanned from CH
Submission: On August 04 via automatic, source certstream-suspicious — Scanned from CH
Form analysis
53 forms found in the DOM<form class="aa-Form w-full relative flex items-center px-5 py-1.5 pl-0" action="" novalidate="" role="search">
<div class="aa-InputWrapperPrefix absolute"><label class="aa-Label m-0 leading-none" for="autocomplete-0-input" id="autocomplete-0-label"><button class="aa-SubmitButton leading-none" type="submit" title="Submit"><svg class="aa-SubmitIcon"
viewBox="0 0 24 24" width="20" height="20" fill="currentColor">
<path
d="M16.041 15.856c-0.034 0.026-0.067 0.055-0.099 0.087s-0.060 0.064-0.087 0.099c-1.258 1.213-2.969 1.958-4.855 1.958-1.933 0-3.682-0.782-4.95-2.050s-2.050-3.017-2.050-4.95 0.782-3.682 2.050-4.95 3.017-2.050 4.95-2.050 3.682 0.782 4.95 2.050 2.050 3.017 2.050 4.95c0 1.886-0.745 3.597-1.959 4.856zM21.707 20.293l-3.675-3.675c1.231-1.54 1.968-3.493 1.968-5.618 0-2.485-1.008-4.736-2.636-6.364s-3.879-2.636-6.364-2.636-4.736 1.008-6.364 2.636-2.636 3.879-2.636 6.364 1.008 4.736 2.636 6.364 3.879 2.636 6.364 2.636c2.125 0 4.078-0.737 5.618-1.968l3.675 3.675c0.391 0.391 1.024 0.391 1.414 0s0.391-1.024 0-1.414z">
</path>
</svg></button></label>
<div class="aa-LoadingIndicator" hidden=""><svg class="aa-LoadingIcon" viewBox="0 0 100 100" width="20" height="20">
<circle cx="50" cy="50" fill="none" r="35" stroke="currentColor" stroke-dasharray="164.93361431346415 56.97787143782138" stroke-width="6">
<animateTransform attributeName="transform" type="rotate" repeatCount="indefinite" dur="1s" values="0 50 50;90 50 50;180 50 50;360 50 50" keyTimes="0;0.40;0.65;1"></animateTransform>
</circle>
</svg></div>
</div>
<div class="aa-InputWrapper container ml-0 pl-0 mx-auto text-black bg-primary-lighter rounded-l-full"><input
class="aa-Input w-full text-sm leading-normal transition appearance-none text-primary form-input-search rounded-full focus:outline-none focus:border-transparent" aria-autocomplete="both" aria-labelledby="autocomplete-0-label"
id="autocomplete-0-input" autocomplete="off" autocorrect="off" autocapitalize="off" enterkeyhint="search" spellcheck="false" placeholder="Suchen..." maxlength="512" type="search"></div>
<div class="aa-InputWrapperSuffix hidden"><button class="aa-ClearButton" type="reset" title="Clear" hidden=""><svg class="aa-ClearIcon" viewBox="0 0 24 24" width="18" height="18" fill="currentColor">
<path
d="M5.293 6.707l5.293 5.293-5.293 5.293c-0.391 0.391-0.391 1.024 0 1.414s1.024 0.391 1.414 0l5.293-5.293 5.293 5.293c0.391 0.391 1.024 0.391 1.414 0s0.391-1.024 0-1.414l-5.293-5.293 5.293-5.293c0.391-0.391 0.391-1.024 0-1.414s-1.024-0.391-1.414 0l-5.293 5.293-5.293-5.293c-0.391-0.391-1.024-0.391-1.414 0s-0.391 1.024 0 1.414z">
</path>
</svg></button></div>
</form>
POST
<form class="form form-login" method="post" @submit.prevent="submitForm();" id="login-form">
<div class="control">
<input type="hidden" value="" name="g-recaptcha-response">
</div>
<div class="fieldset login">
<div class="field email required">
<label class="label" for="form-login-username" form="login-form">
<span>E-Mailadresse</span>
</label>
<div class="control">
<input name="username" id="form-login-username" x-ref="customer-email" @change="errors = 0" type="email" required="" class="form-input input-text">
</div>
</div>
<div class="field password required">
<label for="form-login-password" class="label" form="login-form">
<span>Passwort</span>
</label>
<div class="control">
<input name="password" id="form-login-password" type="password" class="form-input input-text" required="" x-ref="customer-password" @change="errors = 0">
</div>
</div>
<input name="context" type="hidden" value="checkout">
<div class="actions-toolbar flex justify-between pt-6 pb-2 items-center">
<button type="submit" disabled="disabled" data-recaptcha-btn="" class="inline-flex btn btn-primary disabled:opacity-75"> Anmelden </button>
<a href="https://swisspackag.test.mediadivision.ch/customer/account/forgotpassword/">
Passwort vergessen? </a>
</div>
</div>
</form>
/pack-finder
<form action="/pack-finder">
<input type="hidden" id="karton" name="typ" value="karton">
<div class="flex gap-4 items-center max-sm:flex-col">
<div>
<div class="flex mb-4 items-center bg-primary-lighter rounded-md">
<label class="btn-label text-sm whitespace-nowrap" for="innenlange_mm">L in mm</label>
<input x-model="innenlange_mm" class="form-input" type="number" id="innenlange_mm" name="innenlange_mm" required="">
</div>
<div class="flex mb-4 items-center bg-primary-lighter rounded-md">
<label class="btn-label text-sm whitespace-nowrap" for="innenbreite_mm">B in mm</label>
<input x-model="innenbreite_mm" class="form-input" type="number" id="innenbreite_mm" name="innenbreite_mm" required="">
</div>
<div class="flex items-center bg-primary-lighter rounded-md">
<label class="btn-label text-sm whitespace-nowrap" for="innenhohe_mm">H in mm</label>
<input x-model="innenhohe_mm" class="form-input" type="number" id="innenhohe_mm" name="innenhohe_mm" required="">
</div>
</div>
<div>
<button disabled="" id="button-send" class="rounded-full btn-finder h-14 w-14 text-center flex justify-center items-center" type="submit"> <img width="15"
src="https://swisspackag.test.mediadivision.ch/static/version1722344383/frontend/MediaDivision/swisspack-hyva-theme/de_CH/images/arrow-right.svg"></button>
</div>
</div>
</form>
/pack-finder
<form action="/pack-finder">
<input type="hidden" id="beutel" name="typ" value="beutel">
<div class="flex gap-4 items-center max-sm:flex-col">
<div>
<div class="flex mb-4 items-center bg-primary-lighter rounded-md">
<label class="btn-label text-sm whitespace-nowrap" for="breite_mm">B in mm</label>
<input x-model="breite_mm" class="form-input" type="number" id="breite_mm" name="breite_mm" required="">
</div>
<div class="flex items-center bg-primary-lighter rounded-md">
<label class="btn-label text-sm whitespace-nowrap" for="lange_mm">L in mm</label>
<input x-model="lange_mm" class="form-input" type="number" id="lange_mm" name="lange_mm" required="">
</div>
</div>
<div>
<button disabled="" id="button-send2" class="rounded-full btn-finder h-14 w-14 text-center flex justify-center items-center" type="submit"> <img width="15"
src="https://swisspackag.test.mediadivision.ch/static/version1722344383/frontend/MediaDivision/swisspack-hyva-theme/de_CH/images/arrow-right.svg"></button>
</div>
</div>
</form>
/pack-finder
<form action="/pack-finder">
<input type="hidden" id="palette" name="typ" value="palette">
<div class="flex gap-4 items-center max-sm:flex-col">
<div>
<div class="flex mb-4 items-center bg-primary-lighter rounded-md">
<label class="btn-label text-sm whitespace-nowrap" for="breite_mm">B in mm</label>
<input x-model="breite_mm" class="form-input" type="number" id="breite_mm2" name="breite_mm" required="">
</div>
<div class="flex items-center bg-primary-lighter rounded-md">
<label class="btn-label text-sm whitespace-nowrap" for="lange_mm">L in mm</label>
<input x-model="lange_mm" class="form-input" type="number" id="lange_mm2" name="lange_mm" required="">
</div>
</div>
<div>
<button disabled="" id="button-send3" class="rounded-full btn-finder h-14 w-14 text-center flex justify-center items-center" type="submit"> <img width="15"
src="https://swisspackag.test.mediadivision.ch/static/version1722344383/frontend/MediaDivision/swisspack-hyva-theme/de_CH/images/arrow-right.svg"></button>
</div>
</div>
</form>
/pack-finder
<form action="/pack-finder">
<input type="hidden" id="kantenschutz" name="typ" value="kantenschutz">
<div class="flex gap-4 items-center max-sm:flex-col ">
<div>
<div class="flex items-center bg-primary-lighter rounded-md">
<label class="btn-label text-sm whitespace-nowrap" for="lange_mm">L in mm</label>
<input x-model="lange_mm" class="form-input" type="number" id="lange_mm3" name="lange_mm" required="">
</div>
</div>
<div>
<button disabled="" id="button-send4" class="rounded-full btn-finder h-14 w-14 text-center flex justify-center items-center" type="submit"> <img width="15"
src="https://swisspackag.test.mediadivision.ch/static/version1722344383/frontend/MediaDivision/swisspack-hyva-theme/de_CH/images/arrow-right.svg"></button>
</div>
</div>
</form>
POST https://swisspackag.test.mediadivision.ch/checkout/cart/add/uenc/%25uenc%25/product/4418/
<form method="post" action="https://swisspackag.test.mediadivision.ch/checkout/cart/add/uenc/%25uenc%25/product/4418/"
class="relative item product product-item product_addtocart_form !left-0 card card-interactive flex flex-col w-full h-full glider-slide active left-2 visible" data-gslide="0" style="height: auto; width: 283px;">
<input name="form_key" type="hidden" value="89Mcr1BgikEtQYvn"> <input type="hidden" name="product" value="4418">
<a href="https://swisspackag.test.mediadivision.ch/catalog/product/view/id/4418/s/druckverschlussbeutel-250-x-350-mm-90-m-mit-beschriftungsfeld-lebensmittelecht/" class="product photo product-item-photo block mx-auto mb-3 " tabindex="-1">
<img class="hover:shadow-sm object-contain product-image-photo" x-data="" @update-gallery-4418.window="$root.src = $event.detail" src="https://swisspackag.test.mediadivision.ch/media/catalog/product/cache/6ff2493bc04edee855db9d8f5dd1d705/6/1/610.040_001.jpg" loading="lazy" width="300" height="300" alt="Druckverschlussbeutel 250 x 350 mm, 90 mµ, mit Beschriftungsfeld, lebensmittelecht" title="Druckverschlussbeutel 250 x 350 mm, 90 mµ, mit Beschriftungsfeld, lebensmittelecht">
</a>
<div class="product-info flex-col flex grow ">
<div class=" leading-tight mt-2 mb-1 items-center justify-center text-primary-darker font-semibold text-lg text-left ">
<a class="product-item-link" href="https://swisspackag.test.mediadivision.ch/catalog/product/view/id/4418/s/druckverschlussbeutel-250-x-350-mm-90-m-mit-beschriftungsfeld-lebensmittelecht/" :id="`slide-desc-4418-${$id('slider-id')}`">
Druckverschlussbeutel 250 x 350 mm, 90 mµ, mit Beschriftungsfeld, lebensmittelecht </a>
</div>
<div class="py-0 ">
<script>
'use strict';
function amNotificationProductViewComponent_4418() {
return {
isAvailable: "1",
isAvailableConfigurableSimple: true,
isOutofstockConfigurable: "1",
title: "Verfügbarkeit",
options: {},
productIndex: "4418",
hideAddToCartBtn: "",
notificationLabel: "Benachrichtigen Sie mich, wenn das Produkt wieder auf Lager ist",
productId: "4418",
/**
* Overridden method for Product Alert View Model to output url according to product id in js
*
* @param productIndex
* @param type
* @returns {*}
*/
getSubscriptionUrl(productIndex, type) {
const urlParts = ['xnotif/email/',
type, '/product_id/',
productIndex,
(parseInt(productIndex) !== parseInt(this.productId)) ? '/parent_id/' + this.productId : '', '/uenc/', 'aHR0cHM6Ly9zd2lzc3BhY2thZy50ZXN0Lm1lZGlhZGl2aXNpb24uY2gv'
];
return BASE_URL + urlParts.join('');
},
getSimpleProduct(data, el) {
let children = JSON.parse('[]');
/**
* hide addtocart button if simple for configurable product is out of stock
*/
window.addEventListener('configurable-select-changed', (event) => {
let componentElement = document.querySelector('[x-data="amNotificationProductViewComponent_' + event.detail.productId + '()"]') || document.querySelector('#stock_notification_' + event.detail.productId);
let parentElement = componentElement.closest('.product-info');
this.hideAddToCartBtn = parentElement.querySelector('.btn.btn-primary:not(.subscribe-button)');
});
//for pdp only
window.addEventListener('configurable-selection-changed', (event) => {
const addToCartButton = document.getElementById('product-addtocart-button')?.closest('div');
if (addToCartButton) {
addToCartButton.style.display = this.isAvailableConfigurableSimple ? 'flex' : 'none';
}
});
const swatchesComponent = (document.querySelector('[x-data="initConfigurableSwatchOptions_' + data.productId + '()"]') || document.querySelector('[x-data="initAmastyXnotifCatalogSwatchesMixin_' + data.productId + '()"]') || document
.querySelector('[x-data="initAmastyCustomStockStatusOptions_' + data.productId + '()"]'));
const swatchesCount = swatchesComponent?.querySelector('div')?.children?.length || 0;
for (const [key, value] of Object.entries(children[data.productIndex] || {})) {
const previousIndex = this.productIndex;
this.productIndex = data.productIndex;
if (Object.keys(data.selectedValues).length >= swatchesCount) {
this.isAvailable = Number(value);
this.isAvailableConfigurableSimple = Number(value);
}
if (this.hideAddToCartBtn) {
this.hideAddToCartBtn.style.display = !this.isAvailable ? 'none' : 'flex';
}
// plp duplicating indexes case
if (el && (previousIndex === this.productIndex) && !this.isAvailable) {
el.closest('.product-info').querySelector('.btn.btn-primary:not(.subscribe-button)').style.display = 'none';
}
}
},
getAvailable() {
return this.options = {
additionalClass: this.isAvailable ? 'bg-green-500' : 'bg-red-500',
label: this.isAvailable ? 'Auf Lager' : 'Nicht lieferbar',
categoryNotificationLabel: this.isAvailable ? '' : this.notificationLabel,
};
}
}
}
</script>
<!--
<div x-data="{
...amNotificationProductViewComponent_4418(),
...amXnotifSubscribeComponentList_4418()
}"
x-on:configurable-select-changed.window="getSimpleProduct($event.detail, $el)"
x-show="getAvailable()"
id="stock_notification_4418"
class="text-right relative">
<p class="flex items-center justify-center align-middle available gap-x-2 stock" :title="title">
<span class="w-3 h-3 rounded-full flex-shrink-0" :class="options.additionalClass"></span>
<span x-text="options.label"></span>
</p>
</div> -->
<script>
'use strict';
function amXnotifSubscribeComponentList_4418() {
return {
mutationStockSubscription: `mutation AmxnotifStockSubscribe($input: AmxnotifSubscribeInput) {
AmxnotifStockSubscribe(input: $input) {
response_message
}
}`,
isInStock: '1',
isConfigurable: '',
productIdentifier: '4418',
isValid: true,
buttonDisabled: false,
getMessages(type, message) {
return typeof window.dispatchMessages !== "undefined" && window.dispatchMessages(
[{
type: type,
text: message
}]);
},
fetchSubscribe(productId) {
let variables = {
input: {
product_uid: btoa(productId),
parent_uid: this.isConfigurable ? btoa(this.productIdentifier) : '',
}
};
this.buttonDisabled = true;
fetch(BASE_URL + 'graphql', {
method: 'POST',
headers: {
'Store': 'default',
'Content-Type': 'application/json',
},
body: JSON.stringify({
query: this.mutationStockSubscription,
variables
}),
mode: "cors",
credentials: "include"
}).then((response) => response.json()).then((result) => {
if (result?.data?.AmxnotifStockSubscribe) {
this.getMessages("success", result.data.AmxnotifStockSubscribe.response_message);
} else {
let message = result?.errors ? result.errors[0].message : "Es ist ein Fehler aufgetreten.";
this.getMessages("error", message)
}
if (this.isConfigurable) {
setTimeout(() => {
window.dispatchEvent(new Event('showAmLoader'));
window.location.reload()
}, 2000)
}
}).finally(() => {
this.buttonDisabled = false;
})
}
}
}
</script>
</div>
<script>
function initPriceBox__66af368fe2336() {
return {
updatePrice(priceData) {
const regularPriceLabel = this.$root.querySelector('.normal-price .price-label');
const regularPriceElement = this.$root.querySelector('.normal-price [data-price-type=finalPrice].price-wrapper .price');
const basePriceElement = this.$root.querySelector('.normal-price [data-price-type=basePrice].price-wrapper .price');
if (priceData.finalPrice.amount < priceData.oldPrice.amount) {
regularPriceLabel.classList.add('hidden');
} else {
regularPriceLabel.classList.remove('hidden');
}
regularPriceElement && (regularPriceElement.innerText = hyva.formatPrice(priceData.finalPrice.amount));
basePriceElement && (basePriceElement.innerText = hyva.formatPrice(priceData.basePrice.amount));
}
}
}
</script>
<div class="pt-1 text-gray-900 flex " x-data="initPriceBox__66af368fe2336()" @update-prices-4418.window="updatePrice($event.detail);" x-defer="intersect" x-ignore="">
<div class="price-box price-final_price" data-role="priceBox" data-product-id="4418" data-price-box="product-id-4418">
<a href="https://swisspackag.test.mediadivision.ch/catalog/product/view/id/4418/s/druckverschlussbeutel-250-x-350-mm-90-m-mit-beschriftungsfeld-lebensmittelecht/" class="minimal-price-link font-bold">
<span x-data="" x-id="['4418']" class="price-container price-final_price tax weee" x-defer="intersect" x-ignore="">
<span class="price-label">Ab</span>
<span :id="$id('4418')" data-price-amount="186.7" data-price-type="" class="price-wrapper ">CHF 186.70</span>
</span>
</a>
</div>
</div>
<div class="mt-auto pt-0 flex flex-wrap justify-center items-center">
<button class="absolute right-3 w-auto btn btn-card justify-center text-sm transition
mr-auto" aria-label="In den Warenkorb Druckverschlussbeutel 250 x 350 mm, 90 mµ, mit Beschriftungsfeld, lebensmittelecht">
<img width="30" src="https://swisspackag.test.mediadivision.ch/static/version1722344383/frontend/MediaDivision/swisspack-hyva-theme/de_CH/images/header/warenkorb_light.svg">
<span class="ml-2 inline md:ml-0 md:hidden lg:ml-2 lg:inline">
</span>
</button>
<div class="absolute top-2 -left-10 flex flex-col gap-2 addto-icons">
<button x-data="initWishlist()" @click.prevent="addToWishlist(4418)" aria-label="Zur Merkliste hinzufügen Druckverschlussbeutel 250 x 350 mm, 90 mµ, mit Beschriftungsfeld, lebensmittelecht" type="button"
class="px-4 rounded-r-full h-7 bg-primary-lighter p-0 border-0 inline-flex shrink-0 items-center text-gray-500 hover:text-red-600 ml-2" x-defer="intersect" x-ignore="">
<img width="13" src="https://swisspackag.test.mediadivision.ch/static/version1722344383/frontend/MediaDivision/swisspack-hyva-theme/de_CH/images/header/merkliste.svg">
<span class="text-xs ml-2 max-md:hidden">Merken</span>
</button>
<button x-data="initCompareOnProductList()" @click.prevent="addToCompare(4418)" aria-label="Zur Vergleichsliste hinzufügen Druckverschlussbeutel 250 x 350 mm, 90 mµ, mit Beschriftungsfeld, lebensmittelecht" type="button"
class="px-4 rounded-r-full h-7 bg-primary-lighter p-0 border-0 inline-flex shrink-0 items-center text-gray-500 hover:text-red-600 ml-2" x-defer="intersect" x-ignore="">
<img width="13" src="https://swisspackag.test.mediadivision.ch/static/version1722344383/frontend/MediaDivision/swisspack-hyva-theme/de_CH/images/header/vergleichen.svg">
<span class="text-xs ml-2 max-md:hidden">Vergleichen</span>
</button>
</div>
</div>
</div>
</form>
POST https://swisspackag.test.mediadivision.ch/checkout/cart/add/uenc/%25uenc%25/product/4415/
<form method="post" action="https://swisspackag.test.mediadivision.ch/checkout/cart/add/uenc/%25uenc%25/product/4415/"
class="relative item product product-item product_addtocart_form !left-0 card card-interactive flex flex-col w-full h-full glider-slide left-1 visible" data-gslide="1" style="height: auto; width: 283px;">
<input name="form_key" type="hidden" value="89Mcr1BgikEtQYvn"> <input type="hidden" name="product" value="4415">
<a href="https://swisspackag.test.mediadivision.ch/catalog/product/view/id/4415/s/druckverschlussbeutel-50-x-75-mm-75-m-transparent-und-lebensmittelecht/" class="product photo product-item-photo block mx-auto mb-3 " tabindex="-1">
<img class="hover:shadow-sm object-contain product-image-photo" x-data="" @update-gallery-4415.window="$root.src = $event.detail" src="https://swisspackag.test.mediadivision.ch/media/catalog/product/cache/6ff2493bc04edee855db9d8f5dd1d705/6/0/600.010_001.jpg" loading="lazy" width="300" height="300" alt="Druckverschlussbeutel 50 x 75 mm, 75 mµ, transparent und lebensmittelecht" title="Druckverschlussbeutel 50 x 75 mm, 75 mµ, transparent und lebensmittelecht">
</a>
<div class="product-info flex-col flex grow ">
<div class=" leading-tight mt-2 mb-1 items-center justify-center text-primary-darker font-semibold text-lg text-left ">
<a class="product-item-link" href="https://swisspackag.test.mediadivision.ch/catalog/product/view/id/4415/s/druckverschlussbeutel-50-x-75-mm-75-m-transparent-und-lebensmittelecht/" :id="`slide-desc-4415-${$id('slider-id')}`">
Druckverschlussbeutel 50 x 75 mm, 75 mµ, transparent und lebensmittelecht </a>
</div>
<div class="py-0 ">
<script>
'use strict';
function amNotificationProductViewComponent_4415() {
return {
isAvailable: "1",
isAvailableConfigurableSimple: true,
isOutofstockConfigurable: "1",
title: "Verfügbarkeit",
options: {},
productIndex: "4415",
hideAddToCartBtn: "",
notificationLabel: "Benachrichtigen Sie mich, wenn das Produkt wieder auf Lager ist",
productId: "4415",
/**
* Overridden method for Product Alert View Model to output url according to product id in js
*
* @param productIndex
* @param type
* @returns {*}
*/
getSubscriptionUrl(productIndex, type) {
const urlParts = ['xnotif/email/',
type, '/product_id/',
productIndex,
(parseInt(productIndex) !== parseInt(this.productId)) ? '/parent_id/' + this.productId : '', '/uenc/', 'aHR0cHM6Ly9zd2lzc3BhY2thZy50ZXN0Lm1lZGlhZGl2aXNpb24uY2gv'
];
return BASE_URL + urlParts.join('');
},
getSimpleProduct(data, el) {
let children = JSON.parse('[]');
/**
* hide addtocart button if simple for configurable product is out of stock
*/
window.addEventListener('configurable-select-changed', (event) => {
let componentElement = document.querySelector('[x-data="amNotificationProductViewComponent_' + event.detail.productId + '()"]') || document.querySelector('#stock_notification_' + event.detail.productId);
let parentElement = componentElement.closest('.product-info');
this.hideAddToCartBtn = parentElement.querySelector('.btn.btn-primary:not(.subscribe-button)');
});
//for pdp only
window.addEventListener('configurable-selection-changed', (event) => {
const addToCartButton = document.getElementById('product-addtocart-button')?.closest('div');
if (addToCartButton) {
addToCartButton.style.display = this.isAvailableConfigurableSimple ? 'flex' : 'none';
}
});
const swatchesComponent = (document.querySelector('[x-data="initConfigurableSwatchOptions_' + data.productId + '()"]') || document.querySelector('[x-data="initAmastyXnotifCatalogSwatchesMixin_' + data.productId + '()"]') || document
.querySelector('[x-data="initAmastyCustomStockStatusOptions_' + data.productId + '()"]'));
const swatchesCount = swatchesComponent?.querySelector('div')?.children?.length || 0;
for (const [key, value] of Object.entries(children[data.productIndex] || {})) {
const previousIndex = this.productIndex;
this.productIndex = data.productIndex;
if (Object.keys(data.selectedValues).length >= swatchesCount) {
this.isAvailable = Number(value);
this.isAvailableConfigurableSimple = Number(value);
}
if (this.hideAddToCartBtn) {
this.hideAddToCartBtn.style.display = !this.isAvailable ? 'none' : 'flex';
}
// plp duplicating indexes case
if (el && (previousIndex === this.productIndex) && !this.isAvailable) {
el.closest('.product-info').querySelector('.btn.btn-primary:not(.subscribe-button)').style.display = 'none';
}
}
},
getAvailable() {
return this.options = {
additionalClass: this.isAvailable ? 'bg-green-500' : 'bg-red-500',
label: this.isAvailable ? 'Auf Lager' : 'Nicht lieferbar',
categoryNotificationLabel: this.isAvailable ? '' : this.notificationLabel,
};
}
}
}
</script>
<!--
<div x-data="{
...amNotificationProductViewComponent_4415(),
...amXnotifSubscribeComponentList_4415()
}"
x-on:configurable-select-changed.window="getSimpleProduct($event.detail, $el)"
x-show="getAvailable()"
id="stock_notification_4415"
class="text-right relative">
<p class="flex items-center justify-center align-middle available gap-x-2 stock" :title="title">
<span class="w-3 h-3 rounded-full flex-shrink-0" :class="options.additionalClass"></span>
<span x-text="options.label"></span>
</p>
</div> -->
<script>
'use strict';
function amXnotifSubscribeComponentList_4415() {
return {
mutationStockSubscription: `mutation AmxnotifStockSubscribe($input: AmxnotifSubscribeInput) {
AmxnotifStockSubscribe(input: $input) {
response_message
}
}`,
isInStock: '1',
isConfigurable: '',
productIdentifier: '4415',
isValid: true,
buttonDisabled: false,
getMessages(type, message) {
return typeof window.dispatchMessages !== "undefined" && window.dispatchMessages(
[{
type: type,
text: message
}]);
},
fetchSubscribe(productId) {
let variables = {
input: {
product_uid: btoa(productId),
parent_uid: this.isConfigurable ? btoa(this.productIdentifier) : '',
}
};
this.buttonDisabled = true;
fetch(BASE_URL + 'graphql', {
method: 'POST',
headers: {
'Store': 'default',
'Content-Type': 'application/json',
},
body: JSON.stringify({
query: this.mutationStockSubscription,
variables
}),
mode: "cors",
credentials: "include"
}).then((response) => response.json()).then((result) => {
if (result?.data?.AmxnotifStockSubscribe) {
this.getMessages("success", result.data.AmxnotifStockSubscribe.response_message);
} else {
let message = result?.errors ? result.errors[0].message : "Es ist ein Fehler aufgetreten.";
this.getMessages("error", message)
}
if (this.isConfigurable) {
setTimeout(() => {
window.dispatchEvent(new Event('showAmLoader'));
window.location.reload()
}, 2000)
}
}).finally(() => {
this.buttonDisabled = false;
})
}
}
}
</script>
</div>
<script>
function initPriceBox__66af3690821e6() {
return {
updatePrice(priceData) {
const regularPriceLabel = this.$root.querySelector('.normal-price .price-label');
const regularPriceElement = this.$root.querySelector('.normal-price [data-price-type=finalPrice].price-wrapper .price');
const basePriceElement = this.$root.querySelector('.normal-price [data-price-type=basePrice].price-wrapper .price');
if (priceData.finalPrice.amount < priceData.oldPrice.amount) {
regularPriceLabel.classList.add('hidden');
} else {
regularPriceLabel.classList.remove('hidden');
}
regularPriceElement && (regularPriceElement.innerText = hyva.formatPrice(priceData.finalPrice.amount));
basePriceElement && (basePriceElement.innerText = hyva.formatPrice(priceData.basePrice.amount));
}
}
}
</script>
<div class="pt-1 text-gray-900 flex " x-data="initPriceBox__66af3690821e6()" @update-prices-4415.window="updatePrice($event.detail);" x-defer="intersect" x-ignore="">
<div class="price-box price-final_price" data-role="priceBox" data-product-id="4415" data-price-box="product-id-4415">
<a href="https://swisspackag.test.mediadivision.ch/catalog/product/view/id/4415/s/druckverschlussbeutel-50-x-75-mm-75-m-transparent-und-lebensmittelecht/" class="minimal-price-link font-bold">
<span x-data="" x-id="['4415']" class="price-container price-final_price tax weee" x-defer="intersect" x-ignore="">
<span class="price-label">Ab</span>
<span :id="$id('4415')" data-price-amount="16.3" data-price-type="" class="price-wrapper ">CHF 16.30</span>
</span>
</a>
</div>
<span class="text-gray-400"> /1000 Stk.</span>
</div>
<div class="mt-auto pt-0 flex flex-wrap justify-center items-center">
<button class="absolute right-3 w-auto btn btn-card justify-center text-sm transition
mr-auto" aria-label="In den Warenkorb Druckverschlussbeutel 50 x 75 mm, 75 mµ, transparent und lebensmittelecht">
<img width="30" src="https://swisspackag.test.mediadivision.ch/static/version1722344383/frontend/MediaDivision/swisspack-hyva-theme/de_CH/images/header/warenkorb_light.svg">
<span class="ml-2 inline md:ml-0 md:hidden lg:ml-2 lg:inline">
</span>
</button>
<div class="absolute top-2 -left-10 flex flex-col gap-2 addto-icons">
<button x-data="initWishlist()" @click.prevent="addToWishlist(4415)" aria-label="Zur Merkliste hinzufügen Druckverschlussbeutel 50 x 75 mm, 75 mµ, transparent und lebensmittelecht" type="button"
class="px-4 rounded-r-full h-7 bg-primary-lighter p-0 border-0 inline-flex shrink-0 items-center text-gray-500 hover:text-red-600 ml-2" x-defer="intersect" x-ignore="">
<img width="13" src="https://swisspackag.test.mediadivision.ch/static/version1722344383/frontend/MediaDivision/swisspack-hyva-theme/de_CH/images/header/merkliste.svg">
<span class="text-xs ml-2 max-md:hidden">Merken</span>
</button>
<button x-data="initCompareOnProductList()" @click.prevent="addToCompare(4415)" aria-label="Zur Vergleichsliste hinzufügen Druckverschlussbeutel 50 x 75 mm, 75 mµ, transparent und lebensmittelecht" type="button"
class="px-4 rounded-r-full h-7 bg-primary-lighter p-0 border-0 inline-flex shrink-0 items-center text-gray-500 hover:text-red-600 ml-2" x-defer="intersect" x-ignore="">
<img width="13" src="https://swisspackag.test.mediadivision.ch/static/version1722344383/frontend/MediaDivision/swisspack-hyva-theme/de_CH/images/header/vergleichen.svg">
<span class="text-xs ml-2 max-md:hidden">Vergleichen</span>
</button>
</div>
</div>
</div>
</form>
POST https://swisspackag.test.mediadivision.ch/checkout/cart/add/uenc/%25uenc%25/product/4412/
<form method="post" action="https://swisspackag.test.mediadivision.ch/checkout/cart/add/uenc/%25uenc%25/product/4412/"
class="relative item product product-item product_addtocart_form !left-0 card card-interactive flex flex-col w-full h-full glider-slide center visible" data-gslide="2" style="height: auto; width: 283px;">
<input name="form_key" type="hidden" value="89Mcr1BgikEtQYvn"> <input type="hidden" name="product" value="4412">
<a href="https://swisspackag.test.mediadivision.ch/catalog/product/view/id/4412/s/druckverschlussbeutel-180-x-250-mm-50-m-mit-beschriftungsfeld-lebensmittelecht/" class="product photo product-item-photo block mx-auto mb-3 " tabindex="-1">
<img class="hover:shadow-sm object-contain product-image-photo" x-data="" @update-gallery-4412.window="$root.src = $event.detail" src="https://swisspackag.test.mediadivision.ch/media/catalog/product/cache/6ff2493bc04edee855db9d8f5dd1d705/6/1/610.030_001.jpg" loading="lazy" width="300" height="300" alt="Druckverschlussbeutel 180 x 250 mm, 50 mµ, mit Beschriftungsfeld, lebensmittelecht" title="Druckverschlussbeutel 180 x 250 mm, 50 mµ, mit Beschriftungsfeld, lebensmittelecht">
</a>
<div class="product-info flex-col flex grow ">
<div class=" leading-tight mt-2 mb-1 items-center justify-center text-primary-darker font-semibold text-lg text-left ">
<a class="product-item-link" href="https://swisspackag.test.mediadivision.ch/catalog/product/view/id/4412/s/druckverschlussbeutel-180-x-250-mm-50-m-mit-beschriftungsfeld-lebensmittelecht/" :id="`slide-desc-4412-${$id('slider-id')}`">
Druckverschlussbeutel 180 x 250 mm, 50 mµ, mit Beschriftungsfeld, lebensmittelecht </a>
</div>
<div class="py-0 ">
<script>
'use strict';
function amNotificationProductViewComponent_4412() {
return {
isAvailable: "1",
isAvailableConfigurableSimple: true,
isOutofstockConfigurable: "1",
title: "Verfügbarkeit",
options: {},
productIndex: "4412",
hideAddToCartBtn: "",
notificationLabel: "Benachrichtigen Sie mich, wenn das Produkt wieder auf Lager ist",
productId: "4412",
/**
* Overridden method for Product Alert View Model to output url according to product id in js
*
* @param productIndex
* @param type
* @returns {*}
*/
getSubscriptionUrl(productIndex, type) {
const urlParts = ['xnotif/email/',
type, '/product_id/',
productIndex,
(parseInt(productIndex) !== parseInt(this.productId)) ? '/parent_id/' + this.productId : '', '/uenc/', 'aHR0cHM6Ly9zd2lzc3BhY2thZy50ZXN0Lm1lZGlhZGl2aXNpb24uY2gv'
];
return BASE_URL + urlParts.join('');
},
getSimpleProduct(data, el) {
let children = JSON.parse('[]');
/**
* hide addtocart button if simple for configurable product is out of stock
*/
window.addEventListener('configurable-select-changed', (event) => {
let componentElement = document.querySelector('[x-data="amNotificationProductViewComponent_' + event.detail.productId + '()"]') || document.querySelector('#stock_notification_' + event.detail.productId);
let parentElement = componentElement.closest('.product-info');
this.hideAddToCartBtn = parentElement.querySelector('.btn.btn-primary:not(.subscribe-button)');
});
//for pdp only
window.addEventListener('configurable-selection-changed', (event) => {
const addToCartButton = document.getElementById('product-addtocart-button')?.closest('div');
if (addToCartButton) {
addToCartButton.style.display = this.isAvailableConfigurableSimple ? 'flex' : 'none';
}
});
const swatchesComponent = (document.querySelector('[x-data="initConfigurableSwatchOptions_' + data.productId + '()"]') || document.querySelector('[x-data="initAmastyXnotifCatalogSwatchesMixin_' + data.productId + '()"]') || document
.querySelector('[x-data="initAmastyCustomStockStatusOptions_' + data.productId + '()"]'));
const swatchesCount = swatchesComponent?.querySelector('div')?.children?.length || 0;
for (const [key, value] of Object.entries(children[data.productIndex] || {})) {
const previousIndex = this.productIndex;
this.productIndex = data.productIndex;
if (Object.keys(data.selectedValues).length >= swatchesCount) {
this.isAvailable = Number(value);
this.isAvailableConfigurableSimple = Number(value);
}
if (this.hideAddToCartBtn) {
this.hideAddToCartBtn.style.display = !this.isAvailable ? 'none' : 'flex';
}
// plp duplicating indexes case
if (el && (previousIndex === this.productIndex) && !this.isAvailable) {
el.closest('.product-info').querySelector('.btn.btn-primary:not(.subscribe-button)').style.display = 'none';
}
}
},
getAvailable() {
return this.options = {
additionalClass: this.isAvailable ? 'bg-green-500' : 'bg-red-500',
label: this.isAvailable ? 'Auf Lager' : 'Nicht lieferbar',
categoryNotificationLabel: this.isAvailable ? '' : this.notificationLabel,
};
}
}
}
</script>
<!--
<div x-data="{
...amNotificationProductViewComponent_4412(),
...amXnotifSubscribeComponentList_4412()
}"
x-on:configurable-select-changed.window="getSimpleProduct($event.detail, $el)"
x-show="getAvailable()"
id="stock_notification_4412"
class="text-right relative">
<p class="flex items-center justify-center align-middle available gap-x-2 stock" :title="title">
<span class="w-3 h-3 rounded-full flex-shrink-0" :class="options.additionalClass"></span>
<span x-text="options.label"></span>
</p>
</div> -->
<script>
'use strict';
function amXnotifSubscribeComponentList_4412() {
return {
mutationStockSubscription: `mutation AmxnotifStockSubscribe($input: AmxnotifSubscribeInput) {
AmxnotifStockSubscribe(input: $input) {
response_message
}
}`,
isInStock: '1',
isConfigurable: '',
productIdentifier: '4412',
isValid: true,
buttonDisabled: false,
getMessages(type, message) {
return typeof window.dispatchMessages !== "undefined" && window.dispatchMessages(
[{
type: type,
text: message
}]);
},
fetchSubscribe(productId) {
let variables = {
input: {
product_uid: btoa(productId),
parent_uid: this.isConfigurable ? btoa(this.productIdentifier) : '',
}
};
this.buttonDisabled = true;
fetch(BASE_URL + 'graphql', {
method: 'POST',
headers: {
'Store': 'default',
'Content-Type': 'application/json',
},
body: JSON.stringify({
query: this.mutationStockSubscription,
variables
}),
mode: "cors",
credentials: "include"
}).then((response) => response.json()).then((result) => {
if (result?.data?.AmxnotifStockSubscribe) {
this.getMessages("success", result.data.AmxnotifStockSubscribe.response_message);
} else {
let message = result?.errors ? result.errors[0].message : "Es ist ein Fehler aufgetreten.";
this.getMessages("error", message)
}
if (this.isConfigurable) {
setTimeout(() => {
window.dispatchEvent(new Event('showAmLoader'));
window.location.reload()
}, 2000)
}
}).finally(() => {
this.buttonDisabled = false;
})
}
}
}
</script>
</div>
<script>
function initPriceBox__66af36908629c() {
return {
updatePrice(priceData) {
const regularPriceLabel = this.$root.querySelector('.normal-price .price-label');
const regularPriceElement = this.$root.querySelector('.normal-price [data-price-type=finalPrice].price-wrapper .price');
const basePriceElement = this.$root.querySelector('.normal-price [data-price-type=basePrice].price-wrapper .price');
if (priceData.finalPrice.amount < priceData.oldPrice.amount) {
regularPriceLabel.classList.add('hidden');
} else {
regularPriceLabel.classList.remove('hidden');
}
regularPriceElement && (regularPriceElement.innerText = hyva.formatPrice(priceData.finalPrice.amount));
basePriceElement && (basePriceElement.innerText = hyva.formatPrice(priceData.basePrice.amount));
}
}
}
</script>
<div class="pt-1 text-gray-900 flex " x-data="initPriceBox__66af36908629c()" @update-prices-4412.window="updatePrice($event.detail);" x-defer="intersect" x-ignore="">
<div class="price-box price-final_price" data-role="priceBox" data-product-id="4412" data-price-box="product-id-4412">
<a href="https://swisspackag.test.mediadivision.ch/catalog/product/view/id/4412/s/druckverschlussbeutel-180-x-250-mm-50-m-mit-beschriftungsfeld-lebensmittelecht/" class="minimal-price-link font-bold">
<span x-data="" x-id="['4412']" class="price-container price-final_price tax weee" x-defer="intersect" x-ignore="">
<span class="price-label">Ab</span>
<span :id="$id('4412')" data-price-amount="61.5" data-price-type="" class="price-wrapper ">CHF 61.50</span>
</span>
</a>
</div>
<span class="text-gray-400"> /1000 Stk.</span>
</div>
<div class="mt-auto pt-0 flex flex-wrap justify-center items-center">
<button class="absolute right-3 w-auto btn btn-card justify-center text-sm transition
mr-auto" aria-label="In den Warenkorb Druckverschlussbeutel 180 x 250 mm, 50 mµ, mit Beschriftungsfeld, lebensmittelecht">
<img width="30" src="https://swisspackag.test.mediadivision.ch/static/version1722344383/frontend/MediaDivision/swisspack-hyva-theme/de_CH/images/header/warenkorb_light.svg">
<span class="ml-2 inline md:ml-0 md:hidden lg:ml-2 lg:inline">
</span>
</button>
<div class="absolute top-2 -left-10 flex flex-col gap-2 addto-icons">
<button x-data="initWishlist()" @click.prevent="addToWishlist(4412)" aria-label="Zur Merkliste hinzufügen Druckverschlussbeutel 180 x 250 mm, 50 mµ, mit Beschriftungsfeld, lebensmittelecht" type="button"
class="px-4 rounded-r-full h-7 bg-primary-lighter p-0 border-0 inline-flex shrink-0 items-center text-gray-500 hover:text-red-600 ml-2" x-defer="intersect" x-ignore="">
<img width="13" src="https://swisspackag.test.mediadivision.ch/static/version1722344383/frontend/MediaDivision/swisspack-hyva-theme/de_CH/images/header/merkliste.svg">
<span class="text-xs ml-2 max-md:hidden">Merken</span>
</button>
<button x-data="initCompareOnProductList()" @click.prevent="addToCompare(4412)" aria-label="Zur Vergleichsliste hinzufügen Druckverschlussbeutel 180 x 250 mm, 50 mµ, mit Beschriftungsfeld, lebensmittelecht" type="button"
class="px-4 rounded-r-full h-7 bg-primary-lighter p-0 border-0 inline-flex shrink-0 items-center text-gray-500 hover:text-red-600 ml-2" x-defer="intersect" x-ignore="">
<img width="13" src="https://swisspackag.test.mediadivision.ch/static/version1722344383/frontend/MediaDivision/swisspack-hyva-theme/de_CH/images/header/vergleichen.svg">
<span class="text-xs ml-2 max-md:hidden">Vergleichen</span>
</button>
</div>
</div>
</div>
</form>
POST https://swisspackag.test.mediadivision.ch/checkout/cart/add/uenc/%25uenc%25/product/4405/
<form method="post" action="https://swisspackag.test.mediadivision.ch/checkout/cart/add/uenc/%25uenc%25/product/4405/"
class="relative item product product-item product_addtocart_form !left-0 card card-interactive flex flex-col w-full h-full glider-slide center visible" data-gslide="3" style="height: auto; width: 283px;">
<input name="form_key" type="hidden" value="89Mcr1BgikEtQYvn"> <input type="hidden" name="product" value="4405">
<a href="https://swisspackag.test.mediadivision.ch/catalog/product/view/id/4405/s/druckverschlussbeutel-115-x-155-mm-50-m-mit-beschriftungsfeld-lebensmittelecht/" class="product photo product-item-photo block mx-auto mb-3 " tabindex="-1">
<img class="hover:shadow-sm object-contain product-image-photo" x-data="" @update-gallery-4405.window="$root.src = $event.detail" src="https://swisspackag.test.mediadivision.ch/media/catalog/product/cache/6ff2493bc04edee855db9d8f5dd1d705/6/1/610.020_001.jpg" loading="lazy" width="300" height="300" alt="Druckverschlussbeutel 115 x 155 mm, 50 mµ, mit Beschriftungsfeld, lebensmittelecht" title="Druckverschlussbeutel 115 x 155 mm, 50 mµ, mit Beschriftungsfeld, lebensmittelecht">
</a>
<div class="product-info flex-col flex grow ">
<div class=" leading-tight mt-2 mb-1 items-center justify-center text-primary-darker font-semibold text-lg text-left ">
<a class="product-item-link" href="https://swisspackag.test.mediadivision.ch/catalog/product/view/id/4405/s/druckverschlussbeutel-115-x-155-mm-50-m-mit-beschriftungsfeld-lebensmittelecht/" :id="`slide-desc-4405-${$id('slider-id')}`">
Druckverschlussbeutel 115 x 155 mm, 50 mµ, mit Beschriftungsfeld, lebensmittelecht </a>
</div>
<div class="py-0 ">
<script>
'use strict';
function amNotificationProductViewComponent_4405() {
return {
isAvailable: "1",
isAvailableConfigurableSimple: true,
isOutofstockConfigurable: "1",
title: "Verfügbarkeit",
options: {},
productIndex: "4405",
hideAddToCartBtn: "",
notificationLabel: "Benachrichtigen Sie mich, wenn das Produkt wieder auf Lager ist",
productId: "4405",
/**
* Overridden method for Product Alert View Model to output url according to product id in js
*
* @param productIndex
* @param type
* @returns {*}
*/
getSubscriptionUrl(productIndex, type) {
const urlParts = ['xnotif/email/',
type, '/product_id/',
productIndex,
(parseInt(productIndex) !== parseInt(this.productId)) ? '/parent_id/' + this.productId : '', '/uenc/', 'aHR0cHM6Ly9zd2lzc3BhY2thZy50ZXN0Lm1lZGlhZGl2aXNpb24uY2gv'
];
return BASE_URL + urlParts.join('');
},
getSimpleProduct(data, el) {
let children = JSON.parse('[]');
/**
* hide addtocart button if simple for configurable product is out of stock
*/
window.addEventListener('configurable-select-changed', (event) => {
let componentElement = document.querySelector('[x-data="amNotificationProductViewComponent_' + event.detail.productId + '()"]') || document.querySelector('#stock_notification_' + event.detail.productId);
let parentElement = componentElement.closest('.product-info');
this.hideAddToCartBtn = parentElement.querySelector('.btn.btn-primary:not(.subscribe-button)');
});
//for pdp only
window.addEventListener('configurable-selection-changed', (event) => {
const addToCartButton = document.getElementById('product-addtocart-button')?.closest('div');
if (addToCartButton) {
addToCartButton.style.display = this.isAvailableConfigurableSimple ? 'flex' : 'none';
}
});
const swatchesComponent = (document.querySelector('[x-data="initConfigurableSwatchOptions_' + data.productId + '()"]') || document.querySelector('[x-data="initAmastyXnotifCatalogSwatchesMixin_' + data.productId + '()"]') || document
.querySelector('[x-data="initAmastyCustomStockStatusOptions_' + data.productId + '()"]'));
const swatchesCount = swatchesComponent?.querySelector('div')?.children?.length || 0;
for (const [key, value] of Object.entries(children[data.productIndex] || {})) {
const previousIndex = this.productIndex;
this.productIndex = data.productIndex;
if (Object.keys(data.selectedValues).length >= swatchesCount) {
this.isAvailable = Number(value);
this.isAvailableConfigurableSimple = Number(value);
}
if (this.hideAddToCartBtn) {
this.hideAddToCartBtn.style.display = !this.isAvailable ? 'none' : 'flex';
}
// plp duplicating indexes case
if (el && (previousIndex === this.productIndex) && !this.isAvailable) {
el.closest('.product-info').querySelector('.btn.btn-primary:not(.subscribe-button)').style.display = 'none';
}
}
},
getAvailable() {
return this.options = {
additionalClass: this.isAvailable ? 'bg-green-500' : 'bg-red-500',
label: this.isAvailable ? 'Auf Lager' : 'Nicht lieferbar',
categoryNotificationLabel: this.isAvailable ? '' : this.notificationLabel,
};
}
}
}
</script>
<!--
<div x-data="{
...amNotificationProductViewComponent_4405(),
...amXnotifSubscribeComponentList_4405()
}"
x-on:configurable-select-changed.window="getSimpleProduct($event.detail, $el)"
x-show="getAvailable()"
id="stock_notification_4405"
class="text-right relative">
<p class="flex items-center justify-center align-middle available gap-x-2 stock" :title="title">
<span class="w-3 h-3 rounded-full flex-shrink-0" :class="options.additionalClass"></span>
<span x-text="options.label"></span>
</p>
</div> -->
<script>
'use strict';
function amXnotifSubscribeComponentList_4405() {
return {
mutationStockSubscription: `mutation AmxnotifStockSubscribe($input: AmxnotifSubscribeInput) {
AmxnotifStockSubscribe(input: $input) {
response_message
}
}`,
isInStock: '1',
isConfigurable: '',
productIdentifier: '4405',
isValid: true,
buttonDisabled: false,
getMessages(type, message) {
return typeof window.dispatchMessages !== "undefined" && window.dispatchMessages(
[{
type: type,
text: message
}]);
},
fetchSubscribe(productId) {
let variables = {
input: {
product_uid: btoa(productId),
parent_uid: this.isConfigurable ? btoa(this.productIdentifier) : '',
}
};
this.buttonDisabled = true;
fetch(BASE_URL + 'graphql', {
method: 'POST',
headers: {
'Store': 'default',
'Content-Type': 'application/json',
},
body: JSON.stringify({
query: this.mutationStockSubscription,
variables
}),
mode: "cors",
credentials: "include"
}).then((response) => response.json()).then((result) => {
if (result?.data?.AmxnotifStockSubscribe) {
this.getMessages("success", result.data.AmxnotifStockSubscribe.response_message);
} else {
let message = result?.errors ? result.errors[0].message : "Es ist ein Fehler aufgetreten.";
this.getMessages("error", message)
}
if (this.isConfigurable) {
setTimeout(() => {
window.dispatchEvent(new Event('showAmLoader'));
window.location.reload()
}, 2000)
}
}).finally(() => {
this.buttonDisabled = false;
})
}
}
}
</script>
</div>
<script>
function initPriceBox__66af369089f8e() {
return {
updatePrice(priceData) {
const regularPriceLabel = this.$root.querySelector('.normal-price .price-label');
const regularPriceElement = this.$root.querySelector('.normal-price [data-price-type=finalPrice].price-wrapper .price');
const basePriceElement = this.$root.querySelector('.normal-price [data-price-type=basePrice].price-wrapper .price');
if (priceData.finalPrice.amount < priceData.oldPrice.amount) {
regularPriceLabel.classList.add('hidden');
} else {
regularPriceLabel.classList.remove('hidden');
}
regularPriceElement && (regularPriceElement.innerText = hyva.formatPrice(priceData.finalPrice.amount));
basePriceElement && (basePriceElement.innerText = hyva.formatPrice(priceData.basePrice.amount));
}
}
}
</script>
<div class="pt-1 text-gray-900 flex " x-data="initPriceBox__66af369089f8e()" @update-prices-4405.window="updatePrice($event.detail);" x-defer="intersect" x-ignore="">
<div class="price-box price-final_price" data-role="priceBox" data-product-id="4405" data-price-box="product-id-4405">
<a href="https://swisspackag.test.mediadivision.ch/catalog/product/view/id/4405/s/druckverschlussbeutel-115-x-155-mm-50-m-mit-beschriftungsfeld-lebensmittelecht/" class="minimal-price-link font-bold">
<span x-data="" x-id="['4405']" class="price-container price-final_price tax weee" x-defer="intersect" x-ignore="">
<span class="price-label">Ab</span>
<span :id="$id('4405')" data-price-amount="27.7" data-price-type="" class="price-wrapper ">CHF 27.70</span>
</span>
</a>
</div>
<span class="text-gray-400"> /1000 Stk.</span>
</div>
<div class="mt-auto pt-0 flex flex-wrap justify-center items-center">
<button class="absolute right-3 w-auto btn btn-card justify-center text-sm transition
mr-auto" aria-label="In den Warenkorb Druckverschlussbeutel 115 x 155 mm, 50 mµ, mit Beschriftungsfeld, lebensmittelecht">
<img width="30" src="https://swisspackag.test.mediadivision.ch/static/version1722344383/frontend/MediaDivision/swisspack-hyva-theme/de_CH/images/header/warenkorb_light.svg">
<span class="ml-2 inline md:ml-0 md:hidden lg:ml-2 lg:inline">
</span>
</button>
<div class="absolute top-2 -left-10 flex flex-col gap-2 addto-icons">
<button x-data="initWishlist()" @click.prevent="addToWishlist(4405)" aria-label="Zur Merkliste hinzufügen Druckverschlussbeutel 115 x 155 mm, 50 mµ, mit Beschriftungsfeld, lebensmittelecht" type="button"
class="px-4 rounded-r-full h-7 bg-primary-lighter p-0 border-0 inline-flex shrink-0 items-center text-gray-500 hover:text-red-600 ml-2" x-defer="intersect" x-ignore="">
<img width="13" src="https://swisspackag.test.mediadivision.ch/static/version1722344383/frontend/MediaDivision/swisspack-hyva-theme/de_CH/images/header/merkliste.svg">
<span class="text-xs ml-2 max-md:hidden">Merken</span>
</button>
<button x-data="initCompareOnProductList()" @click.prevent="addToCompare(4405)" aria-label="Zur Vergleichsliste hinzufügen Druckverschlussbeutel 115 x 155 mm, 50 mµ, mit Beschriftungsfeld, lebensmittelecht" type="button"
class="px-4 rounded-r-full h-7 bg-primary-lighter p-0 border-0 inline-flex shrink-0 items-center text-gray-500 hover:text-red-600 ml-2" x-defer="intersect" x-ignore="">
<img width="13" src="https://swisspackag.test.mediadivision.ch/static/version1722344383/frontend/MediaDivision/swisspack-hyva-theme/de_CH/images/header/vergleichen.svg">
<span class="text-xs ml-2 max-md:hidden">Vergleichen</span>
</button>
</div>
</div>
</div>
</form>
POST https://swisspackag.test.mediadivision.ch/checkout/cart/add/uenc/%25uenc%25/product/4399/
<form method="post" action="https://swisspackag.test.mediadivision.ch/checkout/cart/add/uenc/%25uenc%25/product/4399/"
class="relative item product product-item product_addtocart_form !left-0 card card-interactive flex flex-col w-full h-full glider-slide right-1" data-gslide="4" style="height: auto; width: 283px;">
<input name="form_key" type="hidden" value="89Mcr1BgikEtQYvn"> <input type="hidden" name="product" value="4399">
<a href="https://swisspackag.test.mediadivision.ch/catalog/product/view/id/4399/s/druckverschlussbeutel-80-x-120-mm-50-m-mit-beschriftungsfeld-lebensmittelecht/" class="product photo product-item-photo block mx-auto mb-3 " tabindex="-1">
<img class="hover:shadow-sm object-contain product-image-photo" x-data="" @update-gallery-4399.window="$root.src = $event.detail" src="https://swisspackag.test.mediadivision.ch/media/catalog/product/cache/6ff2493bc04edee855db9d8f5dd1d705/6/1/610.010_001.jpg" loading="lazy" width="300" height="300" alt="Druckverschlussbeutel 80 x 120 mm, 50 mµ, mit Beschriftungsfeld, lebensmittelecht" title="Druckverschlussbeutel 80 x 120 mm, 50 mµ, mit Beschriftungsfeld, lebensmittelecht">
</a>
<div class="product-info flex-col flex grow ">
<div class=" leading-tight mt-2 mb-1 items-center justify-center text-primary-darker font-semibold text-lg text-left ">
<a class="product-item-link" href="https://swisspackag.test.mediadivision.ch/catalog/product/view/id/4399/s/druckverschlussbeutel-80-x-120-mm-50-m-mit-beschriftungsfeld-lebensmittelecht/" :id="`slide-desc-4399-${$id('slider-id')}`">
Druckverschlussbeutel 80 x 120 mm, 50 mµ, mit Beschriftungsfeld, lebensmittelecht </a>
</div>
<div class="py-0 ">
<script>
'use strict';
function amNotificationProductViewComponent_4399() {
return {
isAvailable: "1",
isAvailableConfigurableSimple: true,
isOutofstockConfigurable: "1",
title: "Verfügbarkeit",
options: {},
productIndex: "4399",
hideAddToCartBtn: "",
notificationLabel: "Benachrichtigen Sie mich, wenn das Produkt wieder auf Lager ist",
productId: "4399",
/**
* Overridden method for Product Alert View Model to output url according to product id in js
*
* @param productIndex
* @param type
* @returns {*}
*/
getSubscriptionUrl(productIndex, type) {
const urlParts = ['xnotif/email/',
type, '/product_id/',
productIndex,
(parseInt(productIndex) !== parseInt(this.productId)) ? '/parent_id/' + this.productId : '', '/uenc/', 'aHR0cHM6Ly9zd2lzc3BhY2thZy50ZXN0Lm1lZGlhZGl2aXNpb24uY2gv'
];
return BASE_URL + urlParts.join('');
},
getSimpleProduct(data, el) {
let children = JSON.parse('[]');
/**
* hide addtocart button if simple for configurable product is out of stock
*/
window.addEventListener('configurable-select-changed', (event) => {
let componentElement = document.querySelector('[x-data="amNotificationProductViewComponent_' + event.detail.productId + '()"]') || document.querySelector('#stock_notification_' + event.detail.productId);
let parentElement = componentElement.closest('.product-info');
this.hideAddToCartBtn = parentElement.querySelector('.btn.btn-primary:not(.subscribe-button)');
});
//for pdp only
window.addEventListener('configurable-selection-changed', (event) => {
const addToCartButton = document.getElementById('product-addtocart-button')?.closest('div');
if (addToCartButton) {
addToCartButton.style.display = this.isAvailableConfigurableSimple ? 'flex' : 'none';
}
});
const swatchesComponent = (document.querySelector('[x-data="initConfigurableSwatchOptions_' + data.productId + '()"]') || document.querySelector('[x-data="initAmastyXnotifCatalogSwatchesMixin_' + data.productId + '()"]') || document
.querySelector('[x-data="initAmastyCustomStockStatusOptions_' + data.productId + '()"]'));
const swatchesCount = swatchesComponent?.querySelector('div')?.children?.length || 0;
for (const [key, value] of Object.entries(children[data.productIndex] || {})) {
const previousIndex = this.productIndex;
this.productIndex = data.productIndex;
if (Object.keys(data.selectedValues).length >= swatchesCount) {
this.isAvailable = Number(value);
this.isAvailableConfigurableSimple = Number(value);
}
if (this.hideAddToCartBtn) {
this.hideAddToCartBtn.style.display = !this.isAvailable ? 'none' : 'flex';
}
// plp duplicating indexes case
if (el && (previousIndex === this.productIndex) && !this.isAvailable) {
el.closest('.product-info').querySelector('.btn.btn-primary:not(.subscribe-button)').style.display = 'none';
}
}
},
getAvailable() {
return this.options = {
additionalClass: this.isAvailable ? 'bg-green-500' : 'bg-red-500',
label: this.isAvailable ? 'Auf Lager' : 'Nicht lieferbar',
categoryNotificationLabel: this.isAvailable ? '' : this.notificationLabel,
};
}
}
}
</script>
<!--
<div x-data="{
...amNotificationProductViewComponent_4399(),
...amXnotifSubscribeComponentList_4399()
}"
x-on:configurable-select-changed.window="getSimpleProduct($event.detail, $el)"
x-show="getAvailable()"
id="stock_notification_4399"
class="text-right relative">
<p class="flex items-center justify-center align-middle available gap-x-2 stock" :title="title">
<span class="w-3 h-3 rounded-full flex-shrink-0" :class="options.additionalClass"></span>
<span x-text="options.label"></span>
</p>
</div> -->
<script>
'use strict';
function amXnotifSubscribeComponentList_4399() {
return {
mutationStockSubscription: `mutation AmxnotifStockSubscribe($input: AmxnotifSubscribeInput) {
AmxnotifStockSubscribe(input: $input) {
response_message
}
}`,
isInStock: '1',
isConfigurable: '',
productIdentifier: '4399',
isValid: true,
buttonDisabled: false,
getMessages(type, message) {
return typeof window.dispatchMessages !== "undefined" && window.dispatchMessages(
[{
type: type,
text: message
}]);
},
fetchSubscribe(productId) {
let variables = {
input: {
product_uid: btoa(productId),
parent_uid: this.isConfigurable ? btoa(this.productIdentifier) : '',
}
};
this.buttonDisabled = true;
fetch(BASE_URL + 'graphql', {
method: 'POST',
headers: {
'Store': 'default',
'Content-Type': 'application/json',
},
body: JSON.stringify({
query: this.mutationStockSubscription,
variables
}),
mode: "cors",
credentials: "include"
}).then((response) => response.json()).then((result) => {
if (result?.data?.AmxnotifStockSubscribe) {
this.getMessages("success", result.data.AmxnotifStockSubscribe.response_message);
} else {
let message = result?.errors ? result.errors[0].message : "Es ist ein Fehler aufgetreten.";
this.getMessages("error", message)
}
if (this.isConfigurable) {
setTimeout(() => {
window.dispatchEvent(new Event('showAmLoader'));
window.location.reload()
}, 2000)
}
}).finally(() => {
this.buttonDisabled = false;
})
}
}
}
</script>
</div>
<script>
function initPriceBox__66af36908dd61() {
return {
updatePrice(priceData) {
const regularPriceLabel = this.$root.querySelector('.normal-price .price-label');
const regularPriceElement = this.$root.querySelector('.normal-price [data-price-type=finalPrice].price-wrapper .price');
const basePriceElement = this.$root.querySelector('.normal-price [data-price-type=basePrice].price-wrapper .price');
if (priceData.finalPrice.amount < priceData.oldPrice.amount) {
regularPriceLabel.classList.add('hidden');
} else {
regularPriceLabel.classList.remove('hidden');
}
regularPriceElement && (regularPriceElement.innerText = hyva.formatPrice(priceData.finalPrice.amount));
basePriceElement && (basePriceElement.innerText = hyva.formatPrice(priceData.basePrice.amount));
}
}
}
</script>
<div class="pt-1 text-gray-900 flex " x-data="initPriceBox__66af36908dd61()" @update-prices-4399.window="updatePrice($event.detail);" x-defer="intersect" x-ignore="">
<div class="price-box price-final_price" data-role="priceBox" data-product-id="4399" data-price-box="product-id-4399">
<a href="https://swisspackag.test.mediadivision.ch/catalog/product/view/id/4399/s/druckverschlussbeutel-80-x-120-mm-50-m-mit-beschriftungsfeld-lebensmittelecht/" class="minimal-price-link font-bold">
<span x-data="" x-id="['4399']" class="price-container price-final_price tax weee" x-defer="intersect" x-ignore="">
<span class="price-label">Ab</span>
<span :id="$id('4399')" data-price-amount="19.75" data-price-type="" class="price-wrapper ">CHF 19.75</span>
</span>
</a>
</div>
<span class="text-gray-400"> /1000 Stk.</span>
</div>
<div class="mt-auto pt-0 flex flex-wrap justify-center items-center">
<button class="absolute right-3 w-auto btn btn-card justify-center text-sm transition
mr-auto" aria-label="In den Warenkorb Druckverschlussbeutel 80 x 120 mm, 50 mµ, mit Beschriftungsfeld, lebensmittelecht">
<img width="30" src="https://swisspackag.test.mediadivision.ch/static/version1722344383/frontend/MediaDivision/swisspack-hyva-theme/de_CH/images/header/warenkorb_light.svg">
<span class="ml-2 inline md:ml-0 md:hidden lg:ml-2 lg:inline">
</span>
</button>
<div class="absolute top-2 -left-10 flex flex-col gap-2 addto-icons">
<button x-data="initWishlist()" @click.prevent="addToWishlist(4399)" aria-label="Zur Merkliste hinzufügen Druckverschlussbeutel 80 x 120 mm, 50 mµ, mit Beschriftungsfeld, lebensmittelecht" type="button"
class="px-4 rounded-r-full h-7 bg-primary-lighter p-0 border-0 inline-flex shrink-0 items-center text-gray-500 hover:text-red-600 ml-2" x-defer="intersect" x-ignore="">
<img width="13" src="https://swisspackag.test.mediadivision.ch/static/version1722344383/frontend/MediaDivision/swisspack-hyva-theme/de_CH/images/header/merkliste.svg">
<span class="text-xs ml-2 max-md:hidden">Merken</span>
</button>
<button x-data="initCompareOnProductList()" @click.prevent="addToCompare(4399)" aria-label="Zur Vergleichsliste hinzufügen Druckverschlussbeutel 80 x 120 mm, 50 mµ, mit Beschriftungsfeld, lebensmittelecht" type="button"
class="px-4 rounded-r-full h-7 bg-primary-lighter p-0 border-0 inline-flex shrink-0 items-center text-gray-500 hover:text-red-600 ml-2" x-defer="intersect" x-ignore="">
<img width="13" src="https://swisspackag.test.mediadivision.ch/static/version1722344383/frontend/MediaDivision/swisspack-hyva-theme/de_CH/images/header/vergleichen.svg">
<span class="text-xs ml-2 max-md:hidden">Vergleichen</span>
</button>
</div>
</div>
</div>
</form>
POST https://swisspackag.test.mediadivision.ch/checkout/cart/add/uenc/%25uenc%25/product/4393/
<form method="post" action="https://swisspackag.test.mediadivision.ch/checkout/cart/add/uenc/%25uenc%25/product/4393/"
class="relative item product product-item product_addtocart_form !left-0 card card-interactive flex flex-col w-full h-full glider-slide right-2" data-gslide="5" style="height: auto; width: 283px;">
<input name="form_key" type="hidden" value="89Mcr1BgikEtQYvn"> <input type="hidden" name="product" value="4393">
<a href="https://swisspackag.test.mediadivision.ch/catalog/product/view/id/4393/s/druckverschlussbeutel-400-x-600-mm-90-m-transparent-und-lebensmittelecht/" class="product photo product-item-photo block mx-auto mb-3 " tabindex="-1">
<img class="hover:shadow-sm object-contain product-image-photo" x-data="" @update-gallery-4393.window="$root.src = $event.detail" src="https://swisspackag.test.mediadivision.ch/media/catalog/product/cache/6ff2493bc04edee855db9d8f5dd1d705/6/0/600.090_001.jpg" loading="lazy" width="300" height="300" alt="Druckverschlussbeutel 400 x 600 mm, 90 mµ, transparent und lebensmittelecht" title="Druckverschlussbeutel 400 x 600 mm, 90 mµ, transparent und lebensmittelecht">
</a>
<div class="product-info flex-col flex grow ">
<div class=" leading-tight mt-2 mb-1 items-center justify-center text-primary-darker font-semibold text-lg text-left ">
<a class="product-item-link" href="https://swisspackag.test.mediadivision.ch/catalog/product/view/id/4393/s/druckverschlussbeutel-400-x-600-mm-90-m-transparent-und-lebensmittelecht/" :id="`slide-desc-4393-${$id('slider-id')}`">
Druckverschlussbeutel 400 x 600 mm, 90 mµ, transparent und lebensmittelecht </a>
</div>
<div class="py-0 ">
<script>
'use strict';
function amNotificationProductViewComponent_4393() {
return {
isAvailable: "1",
isAvailableConfigurableSimple: true,
isOutofstockConfigurable: "1",
title: "Verfügbarkeit",
options: {},
productIndex: "4393",
hideAddToCartBtn: "",
notificationLabel: "Benachrichtigen Sie mich, wenn das Produkt wieder auf Lager ist",
productId: "4393",
/**
* Overridden method for Product Alert View Model to output url according to product id in js
*
* @param productIndex
* @param type
* @returns {*}
*/
getSubscriptionUrl(productIndex, type) {
const urlParts = ['xnotif/email/',
type, '/product_id/',
productIndex,
(parseInt(productIndex) !== parseInt(this.productId)) ? '/parent_id/' + this.productId : '', '/uenc/', 'aHR0cHM6Ly9zd2lzc3BhY2thZy50ZXN0Lm1lZGlhZGl2aXNpb24uY2gv'
];
return BASE_URL + urlParts.join('');
},
getSimpleProduct(data, el) {
let children = JSON.parse('[]');
/**
* hide addtocart button if simple for configurable product is out of stock
*/
window.addEventListener('configurable-select-changed', (event) => {
let componentElement = document.querySelector('[x-data="amNotificationProductViewComponent_' + event.detail.productId + '()"]') || document.querySelector('#stock_notification_' + event.detail.productId);
let parentElement = componentElement.closest('.product-info');
this.hideAddToCartBtn = parentElement.querySelector('.btn.btn-primary:not(.subscribe-button)');
});
//for pdp only
window.addEventListener('configurable-selection-changed', (event) => {
const addToCartButton = document.getElementById('product-addtocart-button')?.closest('div');
if (addToCartButton) {
addToCartButton.style.display = this.isAvailableConfigurableSimple ? 'flex' : 'none';
}
});
const swatchesComponent = (document.querySelector('[x-data="initConfigurableSwatchOptions_' + data.productId + '()"]') || document.querySelector('[x-data="initAmastyXnotifCatalogSwatchesMixin_' + data.productId + '()"]') || document
.querySelector('[x-data="initAmastyCustomStockStatusOptions_' + data.productId + '()"]'));
const swatchesCount = swatchesComponent?.querySelector('div')?.children?.length || 0;
for (const [key, value] of Object.entries(children[data.productIndex] || {})) {
const previousIndex = this.productIndex;
this.productIndex = data.productIndex;
if (Object.keys(data.selectedValues).length >= swatchesCount) {
this.isAvailable = Number(value);
this.isAvailableConfigurableSimple = Number(value);
}
if (this.hideAddToCartBtn) {
this.hideAddToCartBtn.style.display = !this.isAvailable ? 'none' : 'flex';
}
// plp duplicating indexes case
if (el && (previousIndex === this.productIndex) && !this.isAvailable) {
el.closest('.product-info').querySelector('.btn.btn-primary:not(.subscribe-button)').style.display = 'none';
}
}
},
getAvailable() {
return this.options = {
additionalClass: this.isAvailable ? 'bg-green-500' : 'bg-red-500',
label: this.isAvailable ? 'Auf Lager' : 'Nicht lieferbar',
categoryNotificationLabel: this.isAvailable ? '' : this.notificationLabel,
};
}
}
}
</script>
<!--
<div x-data="{
...amNotificationProductViewComponent_4393(),
...amXnotifSubscribeComponentList_4393()
}"
x-on:configurable-select-changed.window="getSimpleProduct($event.detail, $el)"
x-show="getAvailable()"
id="stock_notification_4393"
class="text-right relative">
<p class="flex items-center justify-center align-middle available gap-x-2 stock" :title="title">
<span class="w-3 h-3 rounded-full flex-shrink-0" :class="options.additionalClass"></span>
<span x-text="options.label"></span>
</p>
</div> -->
<script>
'use strict';
function amXnotifSubscribeComponentList_4393() {
return {
mutationStockSubscription: `mutation AmxnotifStockSubscribe($input: AmxnotifSubscribeInput) {
AmxnotifStockSubscribe(input: $input) {
response_message
}
}`,
isInStock: '1',
isConfigurable: '',
productIdentifier: '4393',
isValid: true,
buttonDisabled: false,
getMessages(type, message) {
return typeof window.dispatchMessages !== "undefined" && window.dispatchMessages(
[{
type: type,
text: message
}]);
},
fetchSubscribe(productId) {
let variables = {
input: {
product_uid: btoa(productId),
parent_uid: this.isConfigurable ? btoa(this.productIdentifier) : '',
}
};
this.buttonDisabled = true;
fetch(BASE_URL + 'graphql', {
method: 'POST',
headers: {
'Store': 'default',
'Content-Type': 'application/json',
},
body: JSON.stringify({
query: this.mutationStockSubscription,
variables
}),
mode: "cors",
credentials: "include"
}).then((response) => response.json()).then((result) => {
if (result?.data?.AmxnotifStockSubscribe) {
this.getMessages("success", result.data.AmxnotifStockSubscribe.response_message);
} else {
let message = result?.errors ? result.errors[0].message : "Es ist ein Fehler aufgetreten.";
this.getMessages("error", message)
}
if (this.isConfigurable) {
setTimeout(() => {
window.dispatchEvent(new Event('showAmLoader'));
window.location.reload()
}, 2000)
}
}).finally(() => {
this.buttonDisabled = false;
})
}
}
}
</script>
</div>
<script>
function initPriceBox__66af3690911b4() {
return {
updatePrice(priceData) {
const regularPriceLabel = this.$root.querySelector('.normal-price .price-label');
const regularPriceElement = this.$root.querySelector('.normal-price [data-price-type=finalPrice].price-wrapper .price');
const basePriceElement = this.$root.querySelector('.normal-price [data-price-type=basePrice].price-wrapper .price');
if (priceData.finalPrice.amount < priceData.oldPrice.amount) {
regularPriceLabel.classList.add('hidden');
} else {
regularPriceLabel.classList.remove('hidden');
}
regularPriceElement && (regularPriceElement.innerText = hyva.formatPrice(priceData.finalPrice.amount));
basePriceElement && (basePriceElement.innerText = hyva.formatPrice(priceData.basePrice.amount));
}
}
}
</script>
<div class="pt-1 text-gray-900 flex " x-data="initPriceBox__66af3690911b4()" @update-prices-4393.window="updatePrice($event.detail);" x-defer="intersect" x-ignore="">
<div class="price-box price-final_price" data-role="priceBox" data-product-id="4393" data-price-box="product-id-4393">
<a href="https://swisspackag.test.mediadivision.ch/catalog/product/view/id/4393/s/druckverschlussbeutel-400-x-600-mm-90-m-transparent-und-lebensmittelecht/" class="minimal-price-link font-bold">
<span x-data="" x-id="['4393']" class="price-container price-final_price tax weee" x-defer="intersect" x-ignore="">
<span class="price-label">Ab</span>
<span :id="$id('4393')" data-price-amount="442.5" data-price-type="" class="price-wrapper ">CHF 442.50</span>
</span>
</a>
</div>
<span class="text-gray-400"> /1000 Stk.</span>
</div>
<div class="mt-auto pt-0 flex flex-wrap justify-center items-center">
<button class="absolute right-3 w-auto btn btn-card justify-center text-sm transition
mr-auto" aria-label="In den Warenkorb Druckverschlussbeutel 400 x 600 mm, 90 mµ, transparent und lebensmittelecht">
<img width="30" src="https://swisspackag.test.mediadivision.ch/static/version1722344383/frontend/MediaDivision/swisspack-hyva-theme/de_CH/images/header/warenkorb_light.svg">
<span class="ml-2 inline md:ml-0 md:hidden lg:ml-2 lg:inline">
</span>
</button>
<div class="absolute top-2 -left-10 flex flex-col gap-2 addto-icons">
<button x-data="initWishlist()" @click.prevent="addToWishlist(4393)" aria-label="Zur Merkliste hinzufügen Druckverschlussbeutel 400 x 600 mm, 90 mµ, transparent und lebensmittelecht" type="button"
class="px-4 rounded-r-full h-7 bg-primary-lighter p-0 border-0 inline-flex shrink-0 items-center text-gray-500 hover:text-red-600 ml-2" x-defer="intersect" x-ignore="">
<img width="13" src="https://swisspackag.test.mediadivision.ch/static/version1722344383/frontend/MediaDivision/swisspack-hyva-theme/de_CH/images/header/merkliste.svg">
<span class="text-xs ml-2 max-md:hidden">Merken</span>
</button>
<button x-data="initCompareOnProductList()" @click.prevent="addToCompare(4393)" aria-label="Zur Vergleichsliste hinzufügen Druckverschlussbeutel 400 x 600 mm, 90 mµ, transparent und lebensmittelecht" type="button"
class="px-4 rounded-r-full h-7 bg-primary-lighter p-0 border-0 inline-flex shrink-0 items-center text-gray-500 hover:text-red-600 ml-2" x-defer="intersect" x-ignore="">
<img width="13" src="https://swisspackag.test.mediadivision.ch/static/version1722344383/frontend/MediaDivision/swisspack-hyva-theme/de_CH/images/header/vergleichen.svg">
<span class="text-xs ml-2 max-md:hidden">Vergleichen</span>
</button>
</div>
</div>
</div>
</form>
POST https://swisspackag.test.mediadivision.ch/checkout/cart/add/uenc/%25uenc%25/product/4387/
<form method="post" action="https://swisspackag.test.mediadivision.ch/checkout/cart/add/uenc/%25uenc%25/product/4387/"
class="relative item product product-item product_addtocart_form !left-0 card card-interactive flex flex-col w-full h-full glider-slide right-3" data-gslide="6" style="height: auto; width: 283px;">
<input name="form_key" type="hidden" value="89Mcr1BgikEtQYvn"> <input type="hidden" name="product" value="4387">
<a href="https://swisspackag.test.mediadivision.ch/catalog/product/view/id/4387/s/druckverschlussbeutel-300-x-400-mm-50-m-biologisch-abbaubar-lebensmittelecht/" class="product photo product-item-photo block mx-auto mb-3 " tabindex="-1">
<img class="hover:shadow-sm object-contain product-image-photo" x-data="" @update-gallery-4387.window="$root.src = $event.detail" src="https://swisspackag.test.mediadivision.ch/media/catalog/product/cache/6ff2493bc04edee855db9d8f5dd1d705/6/9/690.100_001.jpg" loading="lazy" width="300" height="300" alt="Druckverschlussbeutel 300 x 400 mm, 50 mµ, Biologisch abbaubar, lebensmittelecht" title="Druckverschlussbeutel 300 x 400 mm, 50 mµ, Biologisch abbaubar, lebensmittelecht">
</a>
<div class="product-info flex-col flex grow ">
<div class=" leading-tight mt-2 mb-1 items-center justify-center text-primary-darker font-semibold text-lg text-left ">
<a class="product-item-link" href="https://swisspackag.test.mediadivision.ch/catalog/product/view/id/4387/s/druckverschlussbeutel-300-x-400-mm-50-m-biologisch-abbaubar-lebensmittelecht/" :id="`slide-desc-4387-${$id('slider-id')}`">
Druckverschlussbeutel 300 x 400 mm, 50 mµ, Biologisch abbaubar, lebensmittelecht </a>
</div>
<div class="py-0 ">
<script>
'use strict';
function amNotificationProductViewComponent_4387() {
return {
isAvailable: "1",
isAvailableConfigurableSimple: true,
isOutofstockConfigurable: "1",
title: "Verfügbarkeit",
options: {},
productIndex: "4387",
hideAddToCartBtn: "",
notificationLabel: "Benachrichtigen Sie mich, wenn das Produkt wieder auf Lager ist",
productId: "4387",
/**
* Overridden method for Product Alert View Model to output url according to product id in js
*
* @param productIndex
* @param type
* @returns {*}
*/
getSubscriptionUrl(productIndex, type) {
const urlParts = ['xnotif/email/',
type, '/product_id/',
productIndex,
(parseInt(productIndex) !== parseInt(this.productId)) ? '/parent_id/' + this.productId : '', '/uenc/', 'aHR0cHM6Ly9zd2lzc3BhY2thZy50ZXN0Lm1lZGlhZGl2aXNpb24uY2gv'
];
return BASE_URL + urlParts.join('');
},
getSimpleProduct(data, el) {
let children = JSON.parse('[]');
/**
* hide addtocart button if simple for configurable product is out of stock
*/
window.addEventListener('configurable-select-changed', (event) => {
let componentElement = document.querySelector('[x-data="amNotificationProductViewComponent_' + event.detail.productId + '()"]') || document.querySelector('#stock_notification_' + event.detail.productId);
let parentElement = componentElement.closest('.product-info');
this.hideAddToCartBtn = parentElement.querySelector('.btn.btn-primary:not(.subscribe-button)');
});
//for pdp only
window.addEventListener('configurable-selection-changed', (event) => {
const addToCartButton = document.getElementById('product-addtocart-button')?.closest('div');
if (addToCartButton) {
addToCartButton.style.display = this.isAvailableConfigurableSimple ? 'flex' : 'none';
}
});
const swatchesComponent = (document.querySelector('[x-data="initConfigurableSwatchOptions_' + data.productId + '()"]') || document.querySelector('[x-data="initAmastyXnotifCatalogSwatchesMixin_' + data.productId + '()"]') || document
.querySelector('[x-data="initAmastyCustomStockStatusOptions_' + data.productId + '()"]'));
const swatchesCount = swatchesComponent?.querySelector('div')?.children?.length || 0;
for (const [key, value] of Object.entries(children[data.productIndex] || {})) {
const previousIndex = this.productIndex;
this.productIndex = data.productIndex;
if (Object.keys(data.selectedValues).length >= swatchesCount) {
this.isAvailable = Number(value);
this.isAvailableConfigurableSimple = Number(value);
}
if (this.hideAddToCartBtn) {
this.hideAddToCartBtn.style.display = !this.isAvailable ? 'none' : 'flex';
}
// plp duplicating indexes case
if (el && (previousIndex === this.productIndex) && !this.isAvailable) {
el.closest('.product-info').querySelector('.btn.btn-primary:not(.subscribe-button)').style.display = 'none';
}
}
},
getAvailable() {
return this.options = {
additionalClass: this.isAvailable ? 'bg-green-500' : 'bg-red-500',
label: this.isAvailable ? 'Auf Lager' : 'Nicht lieferbar',
categoryNotificationLabel: this.isAvailable ? '' : this.notificationLabel,
};
}
}
}
</script>
<!--
<div x-data="{
...amNotificationProductViewComponent_4387(),
...amXnotifSubscribeComponentList_4387()
}"
x-on:configurable-select-changed.window="getSimpleProduct($event.detail, $el)"
x-show="getAvailable()"
id="stock_notification_4387"
class="text-right relative">
<p class="flex items-center justify-center align-middle available gap-x-2 stock" :title="title">
<span class="w-3 h-3 rounded-full flex-shrink-0" :class="options.additionalClass"></span>
<span x-text="options.label"></span>
</p>
</div> -->
<script>
'use strict';
function amXnotifSubscribeComponentList_4387() {
return {
mutationStockSubscription: `mutation AmxnotifStockSubscribe($input: AmxnotifSubscribeInput) {
AmxnotifStockSubscribe(input: $input) {
response_message
}
}`,
isInStock: '1',
isConfigurable: '',
productIdentifier: '4387',
isValid: true,
buttonDisabled: false,
getMessages(type, message) {
return typeof window.dispatchMessages !== "undefined" && window.dispatchMessages(
[{
type: type,
text: message
}]);
},
fetchSubscribe(productId) {
let variables = {
input: {
product_uid: btoa(productId),
parent_uid: this.isConfigurable ? btoa(this.productIdentifier) : '',
}
};
this.buttonDisabled = true;
fetch(BASE_URL + 'graphql', {
method: 'POST',
headers: {
'Store': 'default',
'Content-Type': 'application/json',
},
body: JSON.stringify({
query: this.mutationStockSubscription,
variables
}),
mode: "cors",
credentials: "include"
}).then((response) => response.json()).then((result) => {
if (result?.data?.AmxnotifStockSubscribe) {
this.getMessages("success", result.data.AmxnotifStockSubscribe.response_message);
} else {
let message = result?.errors ? result.errors[0].message : "Es ist ein Fehler aufgetreten.";
this.getMessages("error", message)
}
if (this.isConfigurable) {
setTimeout(() => {
window.dispatchEvent(new Event('showAmLoader'));
window.location.reload()
}, 2000)
}
}).finally(() => {
this.buttonDisabled = false;
})
}
}
}
</script>
</div>
<script>
function initPriceBox__66af369094511() {
return {
updatePrice(priceData) {
const regularPriceLabel = this.$root.querySelector('.normal-price .price-label');
const regularPriceElement = this.$root.querySelector('.normal-price [data-price-type=finalPrice].price-wrapper .price');
const basePriceElement = this.$root.querySelector('.normal-price [data-price-type=basePrice].price-wrapper .price');
if (priceData.finalPrice.amount < priceData.oldPrice.amount) {
regularPriceLabel.classList.add('hidden');
} else {
regularPriceLabel.classList.remove('hidden');
}
regularPriceElement && (regularPriceElement.innerText = hyva.formatPrice(priceData.finalPrice.amount));
basePriceElement && (basePriceElement.innerText = hyva.formatPrice(priceData.basePrice.amount));
}
}
}
</script>
<div class="pt-1 text-gray-900 flex " x-data="initPriceBox__66af369094511()" @update-prices-4387.window="updatePrice($event.detail);" x-defer="intersect" x-ignore="">
<div class="price-box price-final_price" data-role="priceBox" data-product-id="4387" data-price-box="product-id-4387">
<a href="https://swisspackag.test.mediadivision.ch/catalog/product/view/id/4387/s/druckverschlussbeutel-300-x-400-mm-50-m-biologisch-abbaubar-lebensmittelecht/" class="minimal-price-link font-bold">
<span x-data="" x-id="['4387']" class="price-container price-final_price tax weee" x-defer="intersect" x-ignore="">
<span class="price-label">Ab</span>
<span :id="$id('4387')" data-price-amount="331.9" data-price-type="" class="price-wrapper ">CHF 331.90</span>
</span>
</a>
</div>
<span class="text-gray-400"> /1000 Stk.</span>
</div>
<div class="mt-auto pt-0 flex flex-wrap justify-center items-center">
<button class="absolute right-3 w-auto btn btn-card justify-center text-sm transition
mr-auto" aria-label="In den Warenkorb Druckverschlussbeutel 300 x 400 mm, 50 mµ, Biologisch abbaubar, lebensmittelecht">
<img width="30" src="https://swisspackag.test.mediadivision.ch/static/version1722344383/frontend/MediaDivision/swisspack-hyva-theme/de_CH/images/header/warenkorb_light.svg">
<span class="ml-2 inline md:ml-0 md:hidden lg:ml-2 lg:inline">
</span>
</button>
<div class="absolute top-2 -left-10 flex flex-col gap-2 addto-icons">
<button x-data="initWishlist()" @click.prevent="addToWishlist(4387)" aria-label="Zur Merkliste hinzufügen Druckverschlussbeutel 300 x 400 mm, 50 mµ, Biologisch abbaubar, lebensmittelecht" type="button"
class="px-4 rounded-r-full h-7 bg-primary-lighter p-0 border-0 inline-flex shrink-0 items-center text-gray-500 hover:text-red-600 ml-2" x-defer="intersect" x-ignore="">
<img width="13" src="https://swisspackag.test.mediadivision.ch/static/version1722344383/frontend/MediaDivision/swisspack-hyva-theme/de_CH/images/header/merkliste.svg">
<span class="text-xs ml-2 max-md:hidden">Merken</span>
</button>
<button x-data="initCompareOnProductList()" @click.prevent="addToCompare(4387)" aria-label="Zur Vergleichsliste hinzufügen Druckverschlussbeutel 300 x 400 mm, 50 mµ, Biologisch abbaubar, lebensmittelecht" type="button"
class="px-4 rounded-r-full h-7 bg-primary-lighter p-0 border-0 inline-flex shrink-0 items-center text-gray-500 hover:text-red-600 ml-2" x-defer="intersect" x-ignore="">
<img width="13" src="https://swisspackag.test.mediadivision.ch/static/version1722344383/frontend/MediaDivision/swisspack-hyva-theme/de_CH/images/header/vergleichen.svg">
<span class="text-xs ml-2 max-md:hidden">Vergleichen</span>
</button>
</div>
</div>
</div>
</form>
POST https://swisspackag.test.mediadivision.ch/checkout/cart/add/uenc/%25uenc%25/product/4386/
<form method="post" action="https://swisspackag.test.mediadivision.ch/checkout/cart/add/uenc/%25uenc%25/product/4386/"
class="relative item product product-item product_addtocart_form !left-0 card card-interactive flex flex-col w-full h-full glider-slide right-4" data-gslide="7" style="height: auto; width: 283px;">
<input name="form_key" type="hidden" value="89Mcr1BgikEtQYvn"> <input type="hidden" name="product" value="4386">
<a href="https://swisspackag.test.mediadivision.ch/catalog/product/view/id/4386/s/druckverschlussbeutel-300-x-420-mm-50-m-transparent-und-lebensmittelecht/" class="product photo product-item-photo block mx-auto mb-3 " tabindex="-1">
<img class="hover:shadow-sm object-contain product-image-photo" x-data="" @update-gallery-4386.window="$root.src = $event.detail" src="https://swisspackag.test.mediadivision.ch/media/catalog/product/cache/6ff2493bc04edee855db9d8f5dd1d705/6/0/600.080_001.jpg" loading="lazy" width="300" height="300" alt="Druckverschlussbeutel 300 x 420 mm, 50 mµ, transparent und lebensmittelecht" title="Druckverschlussbeutel 300 x 420 mm, 50 mµ, transparent und lebensmittelecht">
</a>
<div class="product-info flex-col flex grow ">
<div class=" leading-tight mt-2 mb-1 items-center justify-center text-primary-darker font-semibold text-lg text-left ">
<a class="product-item-link" href="https://swisspackag.test.mediadivision.ch/catalog/product/view/id/4386/s/druckverschlussbeutel-300-x-420-mm-50-m-transparent-und-lebensmittelecht/" :id="`slide-desc-4386-${$id('slider-id')}`">
Druckverschlussbeutel 300 x 420 mm, 50 mµ, transparent und lebensmittelecht </a>
</div>
<div class="py-0 ">
<script>
'use strict';
function amNotificationProductViewComponent_4386() {
return {
isAvailable: "1",
isAvailableConfigurableSimple: true,
isOutofstockConfigurable: "1",
title: "Verfügbarkeit",
options: {},
productIndex: "4386",
hideAddToCartBtn: "",
notificationLabel: "Benachrichtigen Sie mich, wenn das Produkt wieder auf Lager ist",
productId: "4386",
/**
* Overridden method for Product Alert View Model to output url according to product id in js
*
* @param productIndex
* @param type
* @returns {*}
*/
getSubscriptionUrl(productIndex, type) {
const urlParts = ['xnotif/email/',
type, '/product_id/',
productIndex,
(parseInt(productIndex) !== parseInt(this.productId)) ? '/parent_id/' + this.productId : '', '/uenc/', 'aHR0cHM6Ly9zd2lzc3BhY2thZy50ZXN0Lm1lZGlhZGl2aXNpb24uY2gv'
];
return BASE_URL + urlParts.join('');
},
getSimpleProduct(data, el) {
let children = JSON.parse('[]');
/**
* hide addtocart button if simple for configurable product is out of stock
*/
window.addEventListener('configurable-select-changed', (event) => {
let componentElement = document.querySelector('[x-data="amNotificationProductViewComponent_' + event.detail.productId + '()"]') || document.querySelector('#stock_notification_' + event.detail.productId);
let parentElement = componentElement.closest('.product-info');
this.hideAddToCartBtn = parentElement.querySelector('.btn.btn-primary:not(.subscribe-button)');
});
//for pdp only
window.addEventListener('configurable-selection-changed', (event) => {
const addToCartButton = document.getElementById('product-addtocart-button')?.closest('div');
if (addToCartButton) {
addToCartButton.style.display = this.isAvailableConfigurableSimple ? 'flex' : 'none';
}
});
const swatchesComponent = (document.querySelector('[x-data="initConfigurableSwatchOptions_' + data.productId + '()"]') || document.querySelector('[x-data="initAmastyXnotifCatalogSwatchesMixin_' + data.productId + '()"]') || document
.querySelector('[x-data="initAmastyCustomStockStatusOptions_' + data.productId + '()"]'));
const swatchesCount = swatchesComponent?.querySelector('div')?.children?.length || 0;
for (const [key, value] of Object.entries(children[data.productIndex] || {})) {
const previousIndex = this.productIndex;
this.productIndex = data.productIndex;
if (Object.keys(data.selectedValues).length >= swatchesCount) {
this.isAvailable = Number(value);
this.isAvailableConfigurableSimple = Number(value);
}
if (this.hideAddToCartBtn) {
this.hideAddToCartBtn.style.display = !this.isAvailable ? 'none' : 'flex';
}
// plp duplicating indexes case
if (el && (previousIndex === this.productIndex) && !this.isAvailable) {
el.closest('.product-info').querySelector('.btn.btn-primary:not(.subscribe-button)').style.display = 'none';
}
}
},
getAvailable() {
return this.options = {
additionalClass: this.isAvailable ? 'bg-green-500' : 'bg-red-500',
label: this.isAvailable ? 'Auf Lager' : 'Nicht lieferbar',
categoryNotificationLabel: this.isAvailable ? '' : this.notificationLabel,
};
}
}
}
</script>
<!--
<div x-data="{
...amNotificationProductViewComponent_4386(),
...amXnotifSubscribeComponentList_4386()
}"
x-on:configurable-select-changed.window="getSimpleProduct($event.detail, $el)"
x-show="getAvailable()"
id="stock_notification_4386"
class="text-right relative">
<p class="flex items-center justify-center align-middle available gap-x-2 stock" :title="title">
<span class="w-3 h-3 rounded-full flex-shrink-0" :class="options.additionalClass"></span>
<span x-text="options.label"></span>
</p>
</div> -->
<script>
'use strict';
function amXnotifSubscribeComponentList_4386() {
return {
mutationStockSubscription: `mutation AmxnotifStockSubscribe($input: AmxnotifSubscribeInput) {
AmxnotifStockSubscribe(input: $input) {
response_message
}
}`,
isInStock: '1',
isConfigurable: '',
productIdentifier: '4386',
isValid: true,
buttonDisabled: false,
getMessages(type, message) {
return typeof window.dispatchMessages !== "undefined" && window.dispatchMessages(
[{
type: type,
text: message
}]);
},
fetchSubscribe(productId) {
let variables = {
input: {
product_uid: btoa(productId),
parent_uid: this.isConfigurable ? btoa(this.productIdentifier) : '',
}
};
this.buttonDisabled = true;
fetch(BASE_URL + 'graphql', {
method: 'POST',
headers: {
'Store': 'default',
'Content-Type': 'application/json',
},
body: JSON.stringify({
query: this.mutationStockSubscription,
variables
}),
mode: "cors",
credentials: "include"
}).then((response) => response.json()).then((result) => {
if (result?.data?.AmxnotifStockSubscribe) {
this.getMessages("success", result.data.AmxnotifStockSubscribe.response_message);
} else {
let message = result?.errors ? result.errors[0].message : "Es ist ein Fehler aufgetreten.";
this.getMessages("error", message)
}
if (this.isConfigurable) {
setTimeout(() => {
window.dispatchEvent(new Event('showAmLoader'));
window.location.reload()
}, 2000)
}
}).finally(() => {
this.buttonDisabled = false;
})
}
}
}
</script>
</div>
<script>
function initPriceBox__66af369097b3b() {
return {
updatePrice(priceData) {
const regularPriceLabel = this.$root.querySelector('.normal-price .price-label');
const regularPriceElement = this.$root.querySelector('.normal-price [data-price-type=finalPrice].price-wrapper .price');
const basePriceElement = this.$root.querySelector('.normal-price [data-price-type=basePrice].price-wrapper .price');
if (priceData.finalPrice.amount < priceData.oldPrice.amount) {
regularPriceLabel.classList.add('hidden');
} else {
regularPriceLabel.classList.remove('hidden');
}
regularPriceElement && (regularPriceElement.innerText = hyva.formatPrice(priceData.finalPrice.amount));
basePriceElement && (basePriceElement.innerText = hyva.formatPrice(priceData.basePrice.amount));
}
}
}
</script>
<div class="pt-1 text-gray-900 flex " x-data="initPriceBox__66af369097b3b()" @update-prices-4386.window="updatePrice($event.detail);" x-defer="intersect" x-ignore="">
<div class="price-box price-final_price" data-role="priceBox" data-product-id="4386" data-price-box="product-id-4386">
<a href="https://swisspackag.test.mediadivision.ch/catalog/product/view/id/4386/s/druckverschlussbeutel-300-x-420-mm-50-m-transparent-und-lebensmittelecht/" class="minimal-price-link font-bold">
<span x-data="" x-id="['4386']" class="price-container price-final_price tax weee" x-defer="intersect" x-ignore="">
<span class="price-label">Ab</span>
<span :id="$id('4386')" data-price-amount="123" data-price-type="" class="price-wrapper ">CHF 123.00</span>
</span>
</a>
</div>
<span class="text-gray-400"> /1000 Stk.</span>
</div>
<div class="mt-auto pt-0 flex flex-wrap justify-center items-center">
<button class="absolute right-3 w-auto btn btn-card justify-center text-sm transition
mr-auto" aria-label="In den Warenkorb Druckverschlussbeutel 300 x 420 mm, 50 mµ, transparent und lebensmittelecht">
<img width="30" src="https://swisspackag.test.mediadivision.ch/static/version1722344383/frontend/MediaDivision/swisspack-hyva-theme/de_CH/images/header/warenkorb_light.svg">
<span class="ml-2 inline md:ml-0 md:hidden lg:ml-2 lg:inline">
</span>
</button>
<div class="absolute top-2 -left-10 flex flex-col gap-2 addto-icons">
<button x-data="initWishlist()" @click.prevent="addToWishlist(4386)" aria-label="Zur Merkliste hinzufügen Druckverschlussbeutel 300 x 420 mm, 50 mµ, transparent und lebensmittelecht" type="button"
class="px-4 rounded-r-full h-7 bg-primary-lighter p-0 border-0 inline-flex shrink-0 items-center text-gray-500 hover:text-red-600 ml-2" x-defer="intersect" x-ignore="">
<img width="13" src="https://swisspackag.test.mediadivision.ch/static/version1722344383/frontend/MediaDivision/swisspack-hyva-theme/de_CH/images/header/merkliste.svg">
<span class="text-xs ml-2 max-md:hidden">Merken</span>
</button>
<button x-data="initCompareOnProductList()" @click.prevent="addToCompare(4386)" aria-label="Zur Vergleichsliste hinzufügen Druckverschlussbeutel 300 x 420 mm, 50 mµ, transparent und lebensmittelecht" type="button"
class="px-4 rounded-r-full h-7 bg-primary-lighter p-0 border-0 inline-flex shrink-0 items-center text-gray-500 hover:text-red-600 ml-2" x-defer="intersect" x-ignore="">
<img width="13" src="https://swisspackag.test.mediadivision.ch/static/version1722344383/frontend/MediaDivision/swisspack-hyva-theme/de_CH/images/header/vergleichen.svg">
<span class="text-xs ml-2 max-md:hidden">Vergleichen</span>
</button>
</div>
</div>
</div>
</form>
POST https://swisspackag.test.mediadivision.ch/checkout/cart/add/uenc/%25uenc%25/product/4384/
<form method="post" action="https://swisspackag.test.mediadivision.ch/checkout/cart/add/uenc/%25uenc%25/product/4384/"
class="relative item product product-item product_addtocart_form !left-0 card card-interactive flex flex-col w-full h-full glider-slide right-5" data-gslide="8" style="height: auto; width: 283px;">
<input name="form_key" type="hidden" value="89Mcr1BgikEtQYvn"> <input type="hidden" name="product" value="4384">
<a href="https://swisspackag.test.mediadivision.ch/catalog/product/view/id/4384/s/druckverschlussbeutel-150-x-180-mm-75-m-transparent-und-lebensmittelecht/" class="product photo product-item-photo block mx-auto mb-3 " tabindex="-1">
<img class="hover:shadow-sm object-contain product-image-photo" x-data="" @update-gallery-4384.window="$root.src = $event.detail" src="https://swisspackag.test.mediadivision.ch/media/catalog/product/cache/6ff2493bc04edee855db9d8f5dd1d705/6/0/600.050_001.jpg" loading="lazy" width="300" height="300" alt="Druckverschlussbeutel 150 x 180 mm, 75 mµ, transparent und lebensmittelecht" title="Druckverschlussbeutel 150 x 180 mm, 75 mµ, transparent und lebensmittelecht">
</a>
<div class="product-info flex-col flex grow ">
<div class=" leading-tight mt-2 mb-1 items-center justify-center text-primary-darker font-semibold text-lg text-left ">
<a class="product-item-link" href="https://swisspackag.test.mediadivision.ch/catalog/product/view/id/4384/s/druckverschlussbeutel-150-x-180-mm-75-m-transparent-und-lebensmittelecht/" :id="`slide-desc-4384-${$id('slider-id')}`">
Druckverschlussbeutel 150 x 180 mm, 75 mµ, transparent und lebensmittelecht </a>
</div>
<div class="py-0 ">
<script>
'use strict';
function amNotificationProductViewComponent_4384() {
return {
isAvailable: "1",
isAvailableConfigurableSimple: true,
isOutofstockConfigurable: "1",
title: "Verfügbarkeit",
options: {},
productIndex: "4384",
hideAddToCartBtn: "",
notificationLabel: "Benachrichtigen Sie mich, wenn das Produkt wieder auf Lager ist",
productId: "4384",
/**
* Overridden method for Product Alert View Model to output url according to product id in js
*
* @param productIndex
* @param type
* @returns {*}
*/
getSubscriptionUrl(productIndex, type) {
const urlParts = ['xnotif/email/',
type, '/product_id/',
productIndex,
(parseInt(productIndex) !== parseInt(this.productId)) ? '/parent_id/' + this.productId : '', '/uenc/', 'aHR0cHM6Ly9zd2lzc3BhY2thZy50ZXN0Lm1lZGlhZGl2aXNpb24uY2gv'
];
return BASE_URL + urlParts.join('');
},
getSimpleProduct(data, el) {
let children = JSON.parse('[]');
/**
* hide addtocart button if simple for configurable product is out of stock
*/
window.addEventListener('configurable-select-changed', (event) => {
let componentElement = document.querySelector('[x-data="amNotificationProductViewComponent_' + event.detail.productId + '()"]') || document.querySelector('#stock_notification_' + event.detail.productId);
let parentElement = componentElement.closest('.product-info');
this.hideAddToCartBtn = parentElement.querySelector('.btn.btn-primary:not(.subscribe-button)');
});
//for pdp only
window.addEventListener('configurable-selection-changed', (event) => {
const addToCartButton = document.getElementById('product-addtocart-button')?.closest('div');
if (addToCartButton) {
addToCartButton.style.display = this.isAvailableConfigurableSimple ? 'flex' : 'none';
}
});
const swatchesComponent = (document.querySelector('[x-data="initConfigurableSwatchOptions_' + data.productId + '()"]') || document.querySelector('[x-data="initAmastyXnotifCatalogSwatchesMixin_' + data.productId + '()"]') || document
.querySelector('[x-data="initAmastyCustomStockStatusOptions_' + data.productId + '()"]'));
const swatchesCount = swatchesComponent?.querySelector('div')?.children?.length || 0;
for (const [key, value] of Object.entries(children[data.productIndex] || {})) {
const previousIndex = this.productIndex;
this.productIndex = data.productIndex;
if (Object.keys(data.selectedValues).length >= swatchesCount) {
this.isAvailable = Number(value);
this.isAvailableConfigurableSimple = Number(value);
}
if (this.hideAddToCartBtn) {
this.hideAddToCartBtn.style.display = !this.isAvailable ? 'none' : 'flex';
}
// plp duplicating indexes case
if (el && (previousIndex === this.productIndex) && !this.isAvailable) {
el.closest('.product-info').querySelector('.btn.btn-primary:not(.subscribe-button)').style.display = 'none';
}
}
},
getAvailable() {
return this.options = {
additionalClass: this.isAvailable ? 'bg-green-500' : 'bg-red-500',
label: this.isAvailable ? 'Auf Lager' : 'Nicht lieferbar',
categoryNotificationLabel: this.isAvailable ? '' : this.notificationLabel,
};
}
}
}
</script>
<!--
<div x-data="{
...amNotificationProductViewComponent_4384(),
...amXnotifSubscribeComponentList_4384()
}"
x-on:configurable-select-changed.window="getSimpleProduct($event.detail, $el)"
x-show="getAvailable()"
id="stock_notification_4384"
class="text-right relative">
<p class="flex items-center justify-center align-middle available gap-x-2 stock" :title="title">
<span class="w-3 h-3 rounded-full flex-shrink-0" :class="options.additionalClass"></span>
<span x-text="options.label"></span>
</p>
</div> -->
<script>
'use strict';
function amXnotifSubscribeComponentList_4384() {
return {
mutationStockSubscription: `mutation AmxnotifStockSubscribe($input: AmxnotifSubscribeInput) {
AmxnotifStockSubscribe(input: $input) {
response_message
}
}`,
isInStock: '1',
isConfigurable: '',
productIdentifier: '4384',
isValid: true,
buttonDisabled: false,
getMessages(type, message) {
return typeof window.dispatchMessages !== "undefined" && window.dispatchMessages(
[{
type: type,
text: message
}]);
},
fetchSubscribe(productId) {
let variables = {
input: {
product_uid: btoa(productId),
parent_uid: this.isConfigurable ? btoa(this.productIdentifier) : '',
}
};
this.buttonDisabled = true;
fetch(BASE_URL + 'graphql', {
method: 'POST',
headers: {
'Store': 'default',
'Content-Type': 'application/json',
},
body: JSON.stringify({
query: this.mutationStockSubscription,
variables
}),
mode: "cors",
credentials: "include"
}).then((response) => response.json()).then((result) => {
if (result?.data?.AmxnotifStockSubscribe) {
this.getMessages("success", result.data.AmxnotifStockSubscribe.response_message);
} else {
let message = result?.errors ? result.errors[0].message : "Es ist ein Fehler aufgetreten.";
this.getMessages("error", message)
}
if (this.isConfigurable) {
setTimeout(() => {
window.dispatchEvent(new Event('showAmLoader'));
window.location.reload()
}, 2000)
}
}).finally(() => {
this.buttonDisabled = false;
})
}
}
}
</script>
</div>
<script>
function initPriceBox__66af36909ae8a() {
return {
updatePrice(priceData) {
const regularPriceLabel = this.$root.querySelector('.normal-price .price-label');
const regularPriceElement = this.$root.querySelector('.normal-price [data-price-type=finalPrice].price-wrapper .price');
const basePriceElement = this.$root.querySelector('.normal-price [data-price-type=basePrice].price-wrapper .price');
if (priceData.finalPrice.amount < priceData.oldPrice.amount) {
regularPriceLabel.classList.add('hidden');
} else {
regularPriceLabel.classList.remove('hidden');
}
regularPriceElement && (regularPriceElement.innerText = hyva.formatPrice(priceData.finalPrice.amount));
basePriceElement && (basePriceElement.innerText = hyva.formatPrice(priceData.basePrice.amount));
}
}
}
</script>
<div class="pt-1 text-gray-900 flex " x-data="initPriceBox__66af36909ae8a()" @update-prices-4384.window="updatePrice($event.detail);" x-defer="intersect" x-ignore="">
<div class="price-box price-final_price" data-role="priceBox" data-product-id="4384" data-price-box="product-id-4384">
<a href="https://swisspackag.test.mediadivision.ch/catalog/product/view/id/4384/s/druckverschlussbeutel-150-x-180-mm-75-m-transparent-und-lebensmittelecht/" class="minimal-price-link font-bold">
<span x-data="" x-id="['4384']" class="price-container price-final_price tax weee" x-defer="intersect" x-ignore="">
<span class="price-label">Ab</span>
<span :id="$id('4384')" data-price-amount="56" data-price-type="" class="price-wrapper ">CHF 56.00</span>
</span>
</a>
</div>
<span class="text-gray-400"> /1000 Stk.</span>
</div>
<div class="mt-auto pt-0 flex flex-wrap justify-center items-center">
<button class="absolute right-3 w-auto btn btn-card justify-center text-sm transition
mr-auto" aria-label="In den Warenkorb Druckverschlussbeutel 150 x 180 mm, 75 mµ, transparent und lebensmittelecht">
<img width="30" src="https://swisspackag.test.mediadivision.ch/static/version1722344383/frontend/MediaDivision/swisspack-hyva-theme/de_CH/images/header/warenkorb_light.svg">
<span class="ml-2 inline md:ml-0 md:hidden lg:ml-2 lg:inline">
</span>
</button>
<div class="absolute top-2 -left-10 flex flex-col gap-2 addto-icons">
<button x-data="initWishlist()" @click.prevent="addToWishlist(4384)" aria-label="Zur Merkliste hinzufügen Druckverschlussbeutel 150 x 180 mm, 75 mµ, transparent und lebensmittelecht" type="button"
class="px-4 rounded-r-full h-7 bg-primary-lighter p-0 border-0 inline-flex shrink-0 items-center text-gray-500 hover:text-red-600 ml-2" x-defer="intersect" x-ignore="">
<img width="13" src="https://swisspackag.test.mediadivision.ch/static/version1722344383/frontend/MediaDivision/swisspack-hyva-theme/de_CH/images/header/merkliste.svg">
<span class="text-xs ml-2 max-md:hidden">Merken</span>
</button>
<button x-data="initCompareOnProductList()" @click.prevent="addToCompare(4384)" aria-label="Zur Vergleichsliste hinzufügen Druckverschlussbeutel 150 x 180 mm, 75 mµ, transparent und lebensmittelecht" type="button"
class="px-4 rounded-r-full h-7 bg-primary-lighter p-0 border-0 inline-flex shrink-0 items-center text-gray-500 hover:text-red-600 ml-2" x-defer="intersect" x-ignore="">
<img width="13" src="https://swisspackag.test.mediadivision.ch/static/version1722344383/frontend/MediaDivision/swisspack-hyva-theme/de_CH/images/header/vergleichen.svg">
<span class="text-xs ml-2 max-md:hidden">Vergleichen</span>
</button>
</div>
</div>
</div>
</form>
POST https://swisspackag.test.mediadivision.ch/checkout/cart/add/uenc/%25uenc%25/product/4379/
<form method="post" action="https://swisspackag.test.mediadivision.ch/checkout/cart/add/uenc/%25uenc%25/product/4379/"
class="relative item product product-item product_addtocart_form !left-0 card card-interactive flex flex-col w-full h-full glider-slide right-6" data-gslide="9" style="height: auto; width: 283px;">
<input name="form_key" type="hidden" value="89Mcr1BgikEtQYvn"> <input type="hidden" name="product" value="4379">
<a href="https://swisspackag.test.mediadivision.ch/catalog/product/view/id/4379/s/druckverschlussbeutel-60-x-80-mm-50-m-biologisch-abbaubar-lebensmittelecht/" class="product photo product-item-photo block mx-auto mb-3 " tabindex="-1">
<img class="hover:shadow-sm object-contain product-image-photo" x-data="" @update-gallery-4379.window="$root.src = $event.detail" src="https://swisspackag.test.mediadivision.ch/media/catalog/product/cache/6ff2493bc04edee855db9d8f5dd1d705/6/9/690.090_001.jpg" loading="lazy" width="300" height="300" alt="Druckverschlussbeutel 60 x 80 mm, 50 mµ, Biologisch abbaubar, lebensmittelecht" title="Druckverschlussbeutel 60 x 80 mm, 50 mµ, Biologisch abbaubar, lebensmittelecht">
</a>
<div class="product-info flex-col flex grow ">
<div class=" leading-tight mt-2 mb-1 items-center justify-center text-primary-darker font-semibold text-lg text-left ">
<a class="product-item-link" href="https://swisspackag.test.mediadivision.ch/catalog/product/view/id/4379/s/druckverschlussbeutel-60-x-80-mm-50-m-biologisch-abbaubar-lebensmittelecht/" :id="`slide-desc-4379-${$id('slider-id')}`">
Druckverschlussbeutel 60 x 80 mm, 50 mµ, Biologisch abbaubar, lebensmittelecht </a>
</div>
<div class="py-0 ">
<script>
'use strict';
function amNotificationProductViewComponent_4379() {
return {
isAvailable: "1",
isAvailableConfigurableSimple: true,
isOutofstockConfigurable: "1",
title: "Verfügbarkeit",
options: {},
productIndex: "4379",
hideAddToCartBtn: "",
notificationLabel: "Benachrichtigen Sie mich, wenn das Produkt wieder auf Lager ist",
productId: "4379",
/**
* Overridden method for Product Alert View Model to output url according to product id in js
*
* @param productIndex
* @param type
* @returns {*}
*/
getSubscriptionUrl(productIndex, type) {
const urlParts = ['xnotif/email/',
type, '/product_id/',
productIndex,
(parseInt(productIndex) !== parseInt(this.productId)) ? '/parent_id/' + this.productId : '', '/uenc/', 'aHR0cHM6Ly9zd2lzc3BhY2thZy50ZXN0Lm1lZGlhZGl2aXNpb24uY2gv'
];
return BASE_URL + urlParts.join('');
},
getSimpleProduct(data, el) {
let children = JSON.parse('[]');
/**
* hide addtocart button if simple for configurable product is out of stock
*/
window.addEventListener('configurable-select-changed', (event) => {
let componentElement = document.querySelector('[x-data="amNotificationProductViewComponent_' + event.detail.productId + '()"]') || document.querySelector('#stock_notification_' + event.detail.productId);
let parentElement = componentElement.closest('.product-info');
this.hideAddToCartBtn = parentElement.querySelector('.btn.btn-primary:not(.subscribe-button)');
});
//for pdp only
window.addEventListener('configurable-selection-changed', (event) => {
const addToCartButton = document.getElementById('product-addtocart-button')?.closest('div');
if (addToCartButton) {
addToCartButton.style.display = this.isAvailableConfigurableSimple ? 'flex' : 'none';
}
});
const swatchesComponent = (document.querySelector('[x-data="initConfigurableSwatchOptions_' + data.productId + '()"]') || document.querySelector('[x-data="initAmastyXnotifCatalogSwatchesMixin_' + data.productId + '()"]') || document
.querySelector('[x-data="initAmastyCustomStockStatusOptions_' + data.productId + '()"]'));
const swatchesCount = swatchesComponent?.querySelector('div')?.children?.length || 0;
for (const [key, value] of Object.entries(children[data.productIndex] || {})) {
const previousIndex = this.productIndex;
this.productIndex = data.productIndex;
if (Object.keys(data.selectedValues).length >= swatchesCount) {
this.isAvailable = Number(value);
this.isAvailableConfigurableSimple = Number(value);
}
if (this.hideAddToCartBtn) {
this.hideAddToCartBtn.style.display = !this.isAvailable ? 'none' : 'flex';
}
// plp duplicating indexes case
if (el && (previousIndex === this.productIndex) && !this.isAvailable) {
el.closest('.product-info').querySelector('.btn.btn-primary:not(.subscribe-button)').style.display = 'none';
}
}
},
getAvailable() {
return this.options = {
additionalClass: this.isAvailable ? 'bg-green-500' : 'bg-red-500',
label: this.isAvailable ? 'Auf Lager' : 'Nicht lieferbar',
categoryNotificationLabel: this.isAvailable ? '' : this.notificationLabel,
};
}
}
}
</script>
<!--
<div x-data="{
...amNotificationProductViewComponent_4379(),
...amXnotifSubscribeComponentList_4379()
}"
x-on:configurable-select-changed.window="getSimpleProduct($event.detail, $el)"
x-show="getAvailable()"
id="stock_notification_4379"
class="text-right relative">
<p class="flex items-center justify-center align-middle available gap-x-2 stock" :title="title">
<span class="w-3 h-3 rounded-full flex-shrink-0" :class="options.additionalClass"></span>
<span x-text="options.label"></span>
</p>
</div> -->
<script>
'use strict';
function amXnotifSubscribeComponentList_4379() {
return {
mutationStockSubscription: `mutation AmxnotifStockSubscribe($input: AmxnotifSubscribeInput) {
AmxnotifStockSubscribe(input: $input) {
response_message
}
}`,
isInStock: '1',
isConfigurable: '',
productIdentifier: '4379',
isValid: true,
buttonDisabled: false,
getMessages(type, message) {
return typeof window.dispatchMessages !== "undefined" && window.dispatchMessages(
[{
type: type,
text: message
}]);
},
fetchSubscribe(productId) {
let variables = {
input: {
product_uid: btoa(productId),
parent_uid: this.isConfigurable ? btoa(this.productIdentifier) : '',
}
};
this.buttonDisabled = true;
fetch(BASE_URL + 'graphql', {
method: 'POST',
headers: {
'Store': 'default',
'Content-Type': 'application/json',
},
body: JSON.stringify({
query: this.mutationStockSubscription,
variables
}),
mode: "cors",
credentials: "include"
}).then((response) => response.json()).then((result) => {
if (result?.data?.AmxnotifStockSubscribe) {
this.getMessages("success", result.data.AmxnotifStockSubscribe.response_message);
} else {
let message = result?.errors ? result.errors[0].message : "Es ist ein Fehler aufgetreten.";
this.getMessages("error", message)
}
if (this.isConfigurable) {
setTimeout(() => {
window.dispatchEvent(new Event('showAmLoader'));
window.location.reload()
}, 2000)
}
}).finally(() => {
this.buttonDisabled = false;
})
}
}
}
</script>
</div>
<script>
function initPriceBox__66af36909e242() {
return {
updatePrice(priceData) {
const regularPriceLabel = this.$root.querySelector('.normal-price .price-label');
const regularPriceElement = this.$root.querySelector('.normal-price [data-price-type=finalPrice].price-wrapper .price');
const basePriceElement = this.$root.querySelector('.normal-price [data-price-type=basePrice].price-wrapper .price');
if (priceData.finalPrice.amount < priceData.oldPrice.amount) {
regularPriceLabel.classList.add('hidden');
} else {
regularPriceLabel.classList.remove('hidden');
}
regularPriceElement && (regularPriceElement.innerText = hyva.formatPrice(priceData.finalPrice.amount));
basePriceElement && (basePriceElement.innerText = hyva.formatPrice(priceData.basePrice.amount));
}
}
}
</script>
<div class="pt-1 text-gray-900 flex " x-data="initPriceBox__66af36909e242()" @update-prices-4379.window="updatePrice($event.detail);" x-defer="intersect" x-ignore="">
<div class="price-box price-final_price" data-role="priceBox" data-product-id="4379" data-price-box="product-id-4379">
<a href="https://swisspackag.test.mediadivision.ch/catalog/product/view/id/4379/s/druckverschlussbeutel-60-x-80-mm-50-m-biologisch-abbaubar-lebensmittelecht/" class="minimal-price-link font-bold">
<span x-data="" x-id="['4379']" class="price-container price-final_price tax weee" x-defer="intersect" x-ignore="">
<span class="price-label">Ab</span>
<span :id="$id('4379')" data-price-amount="21.4" data-price-type="" class="price-wrapper ">CHF 21.40</span>
</span>
</a>
</div>
<span class="text-gray-400"> /1000 Stk.</span>
</div>
<div class="mt-auto pt-0 flex flex-wrap justify-center items-center">
<button class="absolute right-3 w-auto btn btn-card justify-center text-sm transition
mr-auto" aria-label="In den Warenkorb Druckverschlussbeutel 60 x 80 mm, 50 mµ, Biologisch abbaubar, lebensmittelecht">
<img width="30" src="https://swisspackag.test.mediadivision.ch/static/version1722344383/frontend/MediaDivision/swisspack-hyva-theme/de_CH/images/header/warenkorb_light.svg">
<span class="ml-2 inline md:ml-0 md:hidden lg:ml-2 lg:inline">
</span>
</button>
<div class="absolute top-2 -left-10 flex flex-col gap-2 addto-icons">
<button x-data="initWishlist()" @click.prevent="addToWishlist(4379)" aria-label="Zur Merkliste hinzufügen Druckverschlussbeutel 60 x 80 mm, 50 mµ, Biologisch abbaubar, lebensmittelecht" type="button"
class="px-4 rounded-r-full h-7 bg-primary-lighter p-0 border-0 inline-flex shrink-0 items-center text-gray-500 hover:text-red-600 ml-2" x-defer="intersect" x-ignore="">
<img width="13" src="https://swisspackag.test.mediadivision.ch/static/version1722344383/frontend/MediaDivision/swisspack-hyva-theme/de_CH/images/header/merkliste.svg">
<span class="text-xs ml-2 max-md:hidden">Merken</span>
</button>
<button x-data="initCompareOnProductList()" @click.prevent="addToCompare(4379)" aria-label="Zur Vergleichsliste hinzufügen Druckverschlussbeutel 60 x 80 mm, 50 mµ, Biologisch abbaubar, lebensmittelecht" type="button"
class="px-4 rounded-r-full h-7 bg-primary-lighter p-0 border-0 inline-flex shrink-0 items-center text-gray-500 hover:text-red-600 ml-2" x-defer="intersect" x-ignore="">
<img width="13" src="https://swisspackag.test.mediadivision.ch/static/version1722344383/frontend/MediaDivision/swisspack-hyva-theme/de_CH/images/header/vergleichen.svg">
<span class="text-xs ml-2 max-md:hidden">Vergleichen</span>
</button>
</div>
</div>
</div>
</form>
POST https://swisspackag.test.mediadivision.ch/checkout/cart/add/uenc/%25uenc%25/product/4376/
<form method="post" action="https://swisspackag.test.mediadivision.ch/checkout/cart/add/uenc/%25uenc%25/product/4376/"
class="relative item product product-item product_addtocart_form !left-0 card card-interactive flex flex-col w-full h-full glider-slide right-7" data-gslide="10" style="height: auto; width: 283px;">
<input name="form_key" type="hidden" value="89Mcr1BgikEtQYvn"> <input type="hidden" name="product" value="4376">
<a href="https://swisspackag.test.mediadivision.ch/catalog/product/view/id/4376/s/druckverschlussbeutel-240-x-310-mm-50-m-transparent-und-lebensmittelecht/" class="product photo product-item-photo block mx-auto mb-3 " tabindex="-1">
<img class="hover:shadow-sm object-contain product-image-photo" x-data="" @update-gallery-4376.window="$root.src = $event.detail" src="https://swisspackag.test.mediadivision.ch/media/catalog/product/cache/6ff2493bc04edee855db9d8f5dd1d705/6/0/600.070_001.jpg" loading="lazy" width="300" height="300" alt="Druckverschlussbeutel 240 x 310 mm, 50 mµ, transparent und lebensmittelecht" title="Druckverschlussbeutel 240 x 310 mm, 50 mµ, transparent und lebensmittelecht">
</a>
<div class="product-info flex-col flex grow ">
<div class=" leading-tight mt-2 mb-1 items-center justify-center text-primary-darker font-semibold text-lg text-left ">
<a class="product-item-link" href="https://swisspackag.test.mediadivision.ch/catalog/product/view/id/4376/s/druckverschlussbeutel-240-x-310-mm-50-m-transparent-und-lebensmittelecht/" :id="`slide-desc-4376-${$id('slider-id')}`">
Druckverschlussbeutel 240 x 310 mm, 50 mµ, transparent und lebensmittelecht </a>
</div>
<div class="py-0 ">
<script>
'use strict';
function amNotificationProductViewComponent_4376() {
return {
isAvailable: "1",
isAvailableConfigurableSimple: true,
isOutofstockConfigurable: "1",
title: "Verfügbarkeit",
options: {},
productIndex: "4376",
hideAddToCartBtn: "",
notificationLabel: "Benachrichtigen Sie mich, wenn das Produkt wieder auf Lager ist",
productId: "4376",
/**
* Overridden method for Product Alert View Model to output url according to product id in js
*
* @param productIndex
* @param type
* @returns {*}
*/
getSubscriptionUrl(productIndex, type) {
const urlParts = ['xnotif/email/',
type, '/product_id/',
productIndex,
(parseInt(productIndex) !== parseInt(this.productId)) ? '/parent_id/' + this.productId : '', '/uenc/', 'aHR0cHM6Ly9zd2lzc3BhY2thZy50ZXN0Lm1lZGlhZGl2aXNpb24uY2gv'
];
return BASE_URL + urlParts.join('');
},
getSimpleProduct(data, el) {
let children = JSON.parse('[]');
/**
* hide addtocart button if simple for configurable product is out of stock
*/
window.addEventListener('configurable-select-changed', (event) => {
let componentElement = document.querySelector('[x-data="amNotificationProductViewComponent_' + event.detail.productId + '()"]') || document.querySelector('#stock_notification_' + event.detail.productId);
let parentElement = componentElement.closest('.product-info');
this.hideAddToCartBtn = parentElement.querySelector('.btn.btn-primary:not(.subscribe-button)');
});
//for pdp only
window.addEventListener('configurable-selection-changed', (event) => {
const addToCartButton = document.getElementById('product-addtocart-button')?.closest('div');
if (addToCartButton) {
addToCartButton.style.display = this.isAvailableConfigurableSimple ? 'flex' : 'none';
}
});
const swatchesComponent = (document.querySelector('[x-data="initConfigurableSwatchOptions_' + data.productId + '()"]') || document.querySelector('[x-data="initAmastyXnotifCatalogSwatchesMixin_' + data.productId + '()"]') || document
.querySelector('[x-data="initAmastyCustomStockStatusOptions_' + data.productId + '()"]'));
const swatchesCount = swatchesComponent?.querySelector('div')?.children?.length || 0;
for (const [key, value] of Object.entries(children[data.productIndex] || {})) {
const previousIndex = this.productIndex;
this.productIndex = data.productIndex;
if (Object.keys(data.selectedValues).length >= swatchesCount) {
this.isAvailable = Number(value);
this.isAvailableConfigurableSimple = Number(value);
}
if (this.hideAddToCartBtn) {
this.hideAddToCartBtn.style.display = !this.isAvailable ? 'none' : 'flex';
}
// plp duplicating indexes case
if (el && (previousIndex === this.productIndex) && !this.isAvailable) {
el.closest('.product-info').querySelector('.btn.btn-primary:not(.subscribe-button)').style.display = 'none';
}
}
},
getAvailable() {
return this.options = {
additionalClass: this.isAvailable ? 'bg-green-500' : 'bg-red-500',
label: this.isAvailable ? 'Auf Lager' : 'Nicht lieferbar',
categoryNotificationLabel: this.isAvailable ? '' : this.notificationLabel,
};
}
}
}
</script>
<!--
<div x-data="{
...amNotificationProductViewComponent_4376(),
...amXnotifSubscribeComponentList_4376()
}"
x-on:configurable-select-changed.window="getSimpleProduct($event.detail, $el)"
x-show="getAvailable()"
id="stock_notification_4376"
class="text-right relative">
<p class="flex items-center justify-center align-middle available gap-x-2 stock" :title="title">
<span class="w-3 h-3 rounded-full flex-shrink-0" :class="options.additionalClass"></span>
<span x-text="options.label"></span>
</p>
</div> -->
<script>
'use strict';
function amXnotifSubscribeComponentList_4376() {
return {
mutationStockSubscription: `mutation AmxnotifStockSubscribe($input: AmxnotifSubscribeInput) {
AmxnotifStockSubscribe(input: $input) {
response_message
}
}`,
isInStock: '1',
isConfigurable: '',
productIdentifier: '4376',
isValid: true,
buttonDisabled: false,
getMessages(type, message) {
return typeof window.dispatchMessages !== "undefined" && window.dispatchMessages(
[{
type: type,
text: message
}]);
},
fetchSubscribe(productId) {
let variables = {
input: {
product_uid: btoa(productId),
parent_uid: this.isConfigurable ? btoa(this.productIdentifier) : '',
}
};
this.buttonDisabled = true;
fetch(BASE_URL + 'graphql', {
method: 'POST',
headers: {
'Store': 'default',
'Content-Type': 'application/json',
},
body: JSON.stringify({
query: this.mutationStockSubscription,
variables
}),
mode: "cors",
credentials: "include"
}).then((response) => response.json()).then((result) => {
if (result?.data?.AmxnotifStockSubscribe) {
this.getMessages("success", result.data.AmxnotifStockSubscribe.response_message);
} else {
let message = result?.errors ? result.errors[0].message : "Es ist ein Fehler aufgetreten.";
this.getMessages("error", message)
}
if (this.isConfigurable) {
setTimeout(() => {
window.dispatchEvent(new Event('showAmLoader'));
window.location.reload()
}, 2000)
}
}).finally(() => {
this.buttonDisabled = false;
})
}
}
}
</script>
</div>
<script>
function initPriceBox__66af3690a0f80() {
return {
updatePrice(priceData) {
const regularPriceLabel = this.$root.querySelector('.normal-price .price-label');
const regularPriceElement = this.$root.querySelector('.normal-price [data-price-type=finalPrice].price-wrapper .price');
const basePriceElement = this.$root.querySelector('.normal-price [data-price-type=basePrice].price-wrapper .price');
if (priceData.finalPrice.amount < priceData.oldPrice.amount) {
regularPriceLabel.classList.add('hidden');
} else {
regularPriceLabel.classList.remove('hidden');
}
regularPriceElement && (regularPriceElement.innerText = hyva.formatPrice(priceData.finalPrice.amount));
basePriceElement && (basePriceElement.innerText = hyva.formatPrice(priceData.basePrice.amount));
}
}
}
</script>
<div class="pt-1 text-gray-900 flex " x-data="initPriceBox__66af3690a0f80()" @update-prices-4376.window="updatePrice($event.detail);" x-defer="intersect" x-ignore="">
<div class="price-box price-final_price" data-role="priceBox" data-product-id="4376" data-price-box="product-id-4376">
<a href="https://swisspackag.test.mediadivision.ch/catalog/product/view/id/4376/s/druckverschlussbeutel-240-x-310-mm-50-m-transparent-und-lebensmittelecht/" class="minimal-price-link font-bold">
<span x-data="" x-id="['4376']" class="price-container price-final_price tax weee" x-defer="intersect" x-ignore="">
<span class="price-label">Ab</span>
<span :id="$id('4376')" data-price-amount="74.25" data-price-type="" class="price-wrapper ">CHF 74.25</span>
</span>
</a>
</div>
<span class="text-gray-400"> /1000 Stk.</span>
</div>
<div class="mt-auto pt-0 flex flex-wrap justify-center items-center">
<button class="absolute right-3 w-auto btn btn-card justify-center text-sm transition
mr-auto" aria-label="In den Warenkorb Druckverschlussbeutel 240 x 310 mm, 50 mµ, transparent und lebensmittelecht">
<img width="30" src="https://swisspackag.test.mediadivision.ch/static/version1722344383/frontend/MediaDivision/swisspack-hyva-theme/de_CH/images/header/warenkorb_light.svg">
<span class="ml-2 inline md:ml-0 md:hidden lg:ml-2 lg:inline">
</span>
</button>
<div class="absolute top-2 -left-10 flex flex-col gap-2 addto-icons">
<button x-data="initWishlist()" @click.prevent="addToWishlist(4376)" aria-label="Zur Merkliste hinzufügen Druckverschlussbeutel 240 x 310 mm, 50 mµ, transparent und lebensmittelecht" type="button"
class="px-4 rounded-r-full h-7 bg-primary-lighter p-0 border-0 inline-flex shrink-0 items-center text-gray-500 hover:text-red-600 ml-2" x-defer="intersect" x-ignore="">
<img width="13" src="https://swisspackag.test.mediadivision.ch/static/version1722344383/frontend/MediaDivision/swisspack-hyva-theme/de_CH/images/header/merkliste.svg">
<span class="text-xs ml-2 max-md:hidden">Merken</span>
</button>
<button x-data="initCompareOnProductList()" @click.prevent="addToCompare(4376)" aria-label="Zur Vergleichsliste hinzufügen Druckverschlussbeutel 240 x 310 mm, 50 mµ, transparent und lebensmittelecht" type="button"
class="px-4 rounded-r-full h-7 bg-primary-lighter p-0 border-0 inline-flex shrink-0 items-center text-gray-500 hover:text-red-600 ml-2" x-defer="intersect" x-ignore="">
<img width="13" src="https://swisspackag.test.mediadivision.ch/static/version1722344383/frontend/MediaDivision/swisspack-hyva-theme/de_CH/images/header/vergleichen.svg">
<span class="text-xs ml-2 max-md:hidden">Vergleichen</span>
</button>
</div>
</div>
</div>
</form>
POST https://swisspackag.test.mediadivision.ch/checkout/cart/add/uenc/%25uenc%25/product/4374/
<form method="post" action="https://swisspackag.test.mediadivision.ch/checkout/cart/add/uenc/%25uenc%25/product/4374/"
class="relative item product product-item product_addtocart_form !left-0 card card-interactive flex flex-col w-full h-full glider-slide right-8" data-gslide="11" style="height: auto; width: 283px;">
<input name="form_key" type="hidden" value="89Mcr1BgikEtQYvn"> <input type="hidden" name="product" value="4374">
<a href="https://swisspackag.test.mediadivision.ch/catalog/product/view/id/4374/s/druckverschlussbeutel-100-x-220-mm-50-m-transparent-und-lebensmittelecht/" class="product photo product-item-photo block mx-auto mb-3 " tabindex="-1">
<img class="hover:shadow-sm object-contain product-image-photo" x-data="" @update-gallery-4374.window="$root.src = $event.detail" src="https://swisspackag.test.mediadivision.ch/media/catalog/product/cache/6ff2493bc04edee855db9d8f5dd1d705/6/0/600.040_001.jpg" loading="lazy" width="300" height="300" alt="Druckverschlussbeutel 100 x 220 mm, 50 mµ, transparent und lebensmittelecht" title="Druckverschlussbeutel 100 x 220 mm, 50 mµ, transparent und lebensmittelecht">
</a>
<div class="product-info flex-col flex grow ">
<div class=" leading-tight mt-2 mb-1 items-center justify-center text-primary-darker font-semibold text-lg text-left ">
<a class="product-item-link" href="https://swisspackag.test.mediadivision.ch/catalog/product/view/id/4374/s/druckverschlussbeutel-100-x-220-mm-50-m-transparent-und-lebensmittelecht/" :id="`slide-desc-4374-${$id('slider-id')}`">
Druckverschlussbeutel 100 x 220 mm, 50 mµ, transparent und lebensmittelecht </a>
</div>
<div class="py-0 ">
<script>
'use strict';
function amNotificationProductViewComponent_4374() {
return {
isAvailable: "1",
isAvailableConfigurableSimple: true,
isOutofstockConfigurable: "1",
title: "Verfügbarkeit",
options: {},
productIndex: "4374",
hideAddToCartBtn: "",
notificationLabel: "Benachrichtigen Sie mich, wenn das Produkt wieder auf Lager ist",
productId: "4374",
/**
* Overridden method for Product Alert View Model to output url according to product id in js
*
* @param productIndex
* @param type
* @returns {*}
*/
getSubscriptionUrl(productIndex, type) {
const urlParts = ['xnotif/email/',
type, '/product_id/',
productIndex,
(parseInt(productIndex) !== parseInt(this.productId)) ? '/parent_id/' + this.productId : '', '/uenc/', 'aHR0cHM6Ly9zd2lzc3BhY2thZy50ZXN0Lm1lZGlhZGl2aXNpb24uY2gv'
];
return BASE_URL + urlParts.join('');
},
getSimpleProduct(data, el) {
let children = JSON.parse('[]');
/**
* hide addtocart button if simple for configurable product is out of stock
*/
window.addEventListener('configurable-select-changed', (event) => {
let componentElement = document.querySelector('[x-data="amNotificationProductViewComponent_' + event.detail.productId + '()"]') || document.querySelector('#stock_notification_' + event.detail.productId);
let parentElement = componentElement.closest('.product-info');
this.hideAddToCartBtn = parentElement.querySelector('.btn.btn-primary:not(.subscribe-button)');
});
//for pdp only
window.addEventListener('configurable-selection-changed', (event) => {
const addToCartButton = document.getElementById('product-addtocart-button')?.closest('div');
if (addToCartButton) {
addToCartButton.style.display = this.isAvailableConfigurableSimple ? 'flex' : 'none';
}
});
const swatchesComponent = (document.querySelector('[x-data="initConfigurableSwatchOptions_' + data.productId + '()"]') || document.querySelector('[x-data="initAmastyXnotifCatalogSwatchesMixin_' + data.productId + '()"]') || document
.querySelector('[x-data="initAmastyCustomStockStatusOptions_' + data.productId + '()"]'));
const swatchesCount = swatchesComponent?.querySelector('div')?.children?.length || 0;
for (const [key, value] of Object.entries(children[data.productIndex] || {})) {
const previousIndex = this.productIndex;
this.productIndex = data.productIndex;
if (Object.keys(data.selectedValues).length >= swatchesCount) {
this.isAvailable = Number(value);
this.isAvailableConfigurableSimple = Number(value);
}
if (this.hideAddToCartBtn) {
this.hideAddToCartBtn.style.display = !this.isAvailable ? 'none' : 'flex';
}
// plp duplicating indexes case
if (el && (previousIndex === this.productIndex) && !this.isAvailable) {
el.closest('.product-info').querySelector('.btn.btn-primary:not(.subscribe-button)').style.display = 'none';
}
}
},
getAvailable() {
return this.options = {
additionalClass: this.isAvailable ? 'bg-green-500' : 'bg-red-500',
label: this.isAvailable ? 'Auf Lager' : 'Nicht lieferbar',
categoryNotificationLabel: this.isAvailable ? '' : this.notificationLabel,
};
}
}
}
</script>
<!--
<div x-data="{
...amNotificationProductViewComponent_4374(),
...amXnotifSubscribeComponentList_4374()
}"
x-on:configurable-select-changed.window="getSimpleProduct($event.detail, $el)"
x-show="getAvailable()"
id="stock_notification_4374"
class="text-right relative">
<p class="flex items-center justify-center align-middle available gap-x-2 stock" :title="title">
<span class="w-3 h-3 rounded-full flex-shrink-0" :class="options.additionalClass"></span>
<span x-text="options.label"></span>
</p>
</div> -->
<script>
'use strict';
function amXnotifSubscribeComponentList_4374() {
return {
mutationStockSubscription: `mutation AmxnotifStockSubscribe($input: AmxnotifSubscribeInput) {
AmxnotifStockSubscribe(input: $input) {
response_message
}
}`,
isInStock: '1',
isConfigurable: '',
productIdentifier: '4374',
isValid: true,
buttonDisabled: false,
getMessages(type, message) {
return typeof window.dispatchMessages !== "undefined" && window.dispatchMessages(
[{
type: type,
text: message
}]);
},
fetchSubscribe(productId) {
let variables = {
input: {
product_uid: btoa(productId),
parent_uid: this.isConfigurable ? btoa(this.productIdentifier) : '',
}
};
this.buttonDisabled = true;
fetch(BASE_URL + 'graphql', {
method: 'POST',
headers: {
'Store': 'default',
'Content-Type': 'application/json',
},
body: JSON.stringify({
query: this.mutationStockSubscription,
variables
}),
mode: "cors",
credentials: "include"
}).then((response) => response.json()).then((result) => {
if (result?.data?.AmxnotifStockSubscribe) {
this.getMessages("success", result.data.AmxnotifStockSubscribe.response_message);
} else {
let message = result?.errors ? result.errors[0].message : "Es ist ein Fehler aufgetreten.";
this.getMessages("error", message)
}
if (this.isConfigurable) {
setTimeout(() => {
window.dispatchEvent(new Event('showAmLoader'));
window.location.reload()
}, 2000)
}
}).finally(() => {
this.buttonDisabled = false;
})
}
}
}
</script>
</div>
<script>
function initPriceBox__66af3690a418d() {
return {
updatePrice(priceData) {
const regularPriceLabel = this.$root.querySelector('.normal-price .price-label');
const regularPriceElement = this.$root.querySelector('.normal-price [data-price-type=finalPrice].price-wrapper .price');
const basePriceElement = this.$root.querySelector('.normal-price [data-price-type=basePrice].price-wrapper .price');
if (priceData.finalPrice.amount < priceData.oldPrice.amount) {
regularPriceLabel.classList.add('hidden');
} else {
regularPriceLabel.classList.remove('hidden');
}
regularPriceElement && (regularPriceElement.innerText = hyva.formatPrice(priceData.finalPrice.amount));
basePriceElement && (basePriceElement.innerText = hyva.formatPrice(priceData.basePrice.amount));
}
}
}
</script>
<div class="pt-1 text-gray-900 flex " x-data="initPriceBox__66af3690a418d()" @update-prices-4374.window="updatePrice($event.detail);" x-defer="intersect" x-ignore="">
<div class="price-box price-final_price" data-role="priceBox" data-product-id="4374" data-price-box="product-id-4374">
<a href="https://swisspackag.test.mediadivision.ch/catalog/product/view/id/4374/s/druckverschlussbeutel-100-x-220-mm-50-m-transparent-und-lebensmittelecht/" class="minimal-price-link font-bold">
<span x-data="" x-id="['4374']" class="price-container price-final_price tax weee" x-defer="intersect" x-ignore="">
<span class="price-label">Ab</span>
<span :id="$id('4374')" data-price-amount="31.85" data-price-type="" class="price-wrapper ">CHF 31.85</span>
</span>
</a>
</div>
<span class="text-gray-400"> /1000 Stk.</span>
</div>
<div class="mt-auto pt-0 flex flex-wrap justify-center items-center">
<button class="absolute right-3 w-auto btn btn-card justify-center text-sm transition
mr-auto" aria-label="In den Warenkorb Druckverschlussbeutel 100 x 220 mm, 50 mµ, transparent und lebensmittelecht">
<img width="30" src="https://swisspackag.test.mediadivision.ch/static/version1722344383/frontend/MediaDivision/swisspack-hyva-theme/de_CH/images/header/warenkorb_light.svg">
<span class="ml-2 inline md:ml-0 md:hidden lg:ml-2 lg:inline">
</span>
</button>
<div class="absolute top-2 -left-10 flex flex-col gap-2 addto-icons">
<button x-data="initWishlist()" @click.prevent="addToWishlist(4374)" aria-label="Zur Merkliste hinzufügen Druckverschlussbeutel 100 x 220 mm, 50 mµ, transparent und lebensmittelecht" type="button"
class="px-4 rounded-r-full h-7 bg-primary-lighter p-0 border-0 inline-flex shrink-0 items-center text-gray-500 hover:text-red-600 ml-2" x-defer="intersect" x-ignore="">
<img width="13" src="https://swisspackag.test.mediadivision.ch/static/version1722344383/frontend/MediaDivision/swisspack-hyva-theme/de_CH/images/header/merkliste.svg">
<span class="text-xs ml-2 max-md:hidden">Merken</span>
</button>
<button x-data="initCompareOnProductList()" @click.prevent="addToCompare(4374)" aria-label="Zur Vergleichsliste hinzufügen Druckverschlussbeutel 100 x 220 mm, 50 mµ, transparent und lebensmittelecht" type="button"
class="px-4 rounded-r-full h-7 bg-primary-lighter p-0 border-0 inline-flex shrink-0 items-center text-gray-500 hover:text-red-600 ml-2" x-defer="intersect" x-ignore="">
<img width="13" src="https://swisspackag.test.mediadivision.ch/static/version1722344383/frontend/MediaDivision/swisspack-hyva-theme/de_CH/images/header/vergleichen.svg">
<span class="text-xs ml-2 max-md:hidden">Vergleichen</span>
</button>
</div>
</div>
</div>
</form>
POST https://swisspackag.test.mediadivision.ch/checkout/cart/add/uenc/%25uenc%25/product/4370/
<form method="post" action="https://swisspackag.test.mediadivision.ch/checkout/cart/add/uenc/%25uenc%25/product/4370/"
class="relative item product product-item product_addtocart_form !left-0 card card-interactive flex flex-col w-full h-full glider-slide right-9" data-gslide="12" style="height: auto; width: 283px;">
<input name="form_key" type="hidden" value="89Mcr1BgikEtQYvn"> <input type="hidden" name="product" value="4370">
<a href="https://swisspackag.test.mediadivision.ch/catalog/product/view/id/4370/s/druckverschlussbeutel-180-x-250-mm-90-m-mit-eurolochung-lebensmittelecht/" class="product photo product-item-photo block mx-auto mb-3 " tabindex="-1">
<img class="hover:shadow-sm object-contain product-image-photo" x-data="" @update-gallery-4370.window="$root.src = $event.detail" src="https://swisspackag.test.mediadivision.ch/media/catalog/product/cache/6ff2493bc04edee855db9d8f5dd1d705/6/1/610.060_001.jpg" loading="lazy" width="300" height="300" alt="Druckverschlussbeutel 180 x 250 mm, 90 mµ, mit Eurolochung, lebensmittelecht" title="Druckverschlussbeutel 180 x 250 mm, 90 mµ, mit Eurolochung, lebensmittelecht">
</a>
<div class="product-info flex-col flex grow ">
<div class=" leading-tight mt-2 mb-1 items-center justify-center text-primary-darker font-semibold text-lg text-left ">
<a class="product-item-link" href="https://swisspackag.test.mediadivision.ch/catalog/product/view/id/4370/s/druckverschlussbeutel-180-x-250-mm-90-m-mit-eurolochung-lebensmittelecht/" :id="`slide-desc-4370-${$id('slider-id')}`">
Druckverschlussbeutel 180 x 250 mm, 90 mµ, mit Eurolochung, lebensmittelecht </a>
</div>
<div class="py-0 ">
<script>
'use strict';
function amNotificationProductViewComponent_4370() {
return {
isAvailable: "1",
isAvailableConfigurableSimple: true,
isOutofstockConfigurable: "1",
title: "Verfügbarkeit",
options: {},
productIndex: "4370",
hideAddToCartBtn: "",
notificationLabel: "Benachrichtigen Sie mich, wenn das Produkt wieder auf Lager ist",
productId: "4370",
/**
* Overridden method for Product Alert View Model to output url according to product id in js
*
* @param productIndex
* @param type
* @returns {*}
*/
getSubscriptionUrl(productIndex, type) {
const urlParts = ['xnotif/email/',
type, '/product_id/',
productIndex,
(parseInt(productIndex) !== parseInt(this.productId)) ? '/parent_id/' + this.productId : '', '/uenc/', 'aHR0cHM6Ly9zd2lzc3BhY2thZy50ZXN0Lm1lZGlhZGl2aXNpb24uY2gv'
];
return BASE_URL + urlParts.join('');
},
getSimpleProduct(data, el) {
let children = JSON.parse('[]');
/**
* hide addtocart button if simple for configurable product is out of stock
*/
window.addEventListener('configurable-select-changed', (event) => {
let componentElement = document.querySelector('[x-data="amNotificationProductViewComponent_' + event.detail.productId + '()"]') || document.querySelector('#stock_notification_' + event.detail.productId);
let parentElement = componentElement.closest('.product-info');
this.hideAddToCartBtn = parentElement.querySelector('.btn.btn-primary:not(.subscribe-button)');
});
//for pdp only
window.addEventListener('configurable-selection-changed', (event) => {
const addToCartButton = document.getElementById('product-addtocart-button')?.closest('div');
if (addToCartButton) {
addToCartButton.style.display = this.isAvailableConfigurableSimple ? 'flex' : 'none';
}
});
const swatchesComponent = (document.querySelector('[x-data="initConfigurableSwatchOptions_' + data.productId + '()"]') || document.querySelector('[x-data="initAmastyXnotifCatalogSwatchesMixin_' + data.productId + '()"]') || document
.querySelector('[x-data="initAmastyCustomStockStatusOptions_' + data.productId + '()"]'));
const swatchesCount = swatchesComponent?.querySelector('div')?.children?.length || 0;
for (const [key, value] of Object.entries(children[data.productIndex] || {})) {
const previousIndex = this.productIndex;
this.productIndex = data.productIndex;
if (Object.keys(data.selectedValues).length >= swatchesCount) {
this.isAvailable = Number(value);
this.isAvailableConfigurableSimple = Number(value);
}
if (this.hideAddToCartBtn) {
this.hideAddToCartBtn.style.display = !this.isAvailable ? 'none' : 'flex';
}
// plp duplicating indexes case
if (el && (previousIndex === this.productIndex) && !this.isAvailable) {
el.closest('.product-info').querySelector('.btn.btn-primary:not(.subscribe-button)').style.display = 'none';
}
}
},
getAvailable() {
return this.options = {
additionalClass: this.isAvailable ? 'bg-green-500' : 'bg-red-500',
label: this.isAvailable ? 'Auf Lager' : 'Nicht lieferbar',
categoryNotificationLabel: this.isAvailable ? '' : this.notificationLabel,
};
}
}
}
</script>
<!--
<div x-data="{
...amNotificationProductViewComponent_4370(),
...amXnotifSubscribeComponentList_4370()
}"
x-on:configurable-select-changed.window="getSimpleProduct($event.detail, $el)"
x-show="getAvailable()"
id="stock_notification_4370"
class="text-right relative">
<p class="flex items-center justify-center align-middle available gap-x-2 stock" :title="title">
<span class="w-3 h-3 rounded-full flex-shrink-0" :class="options.additionalClass"></span>
<span x-text="options.label"></span>
</p>
</div> -->
<script>
'use strict';
function amXnotifSubscribeComponentList_4370() {
return {
mutationStockSubscription: `mutation AmxnotifStockSubscribe($input: AmxnotifSubscribeInput) {
AmxnotifStockSubscribe(input: $input) {
response_message
}
}`,
isInStock: '1',
isConfigurable: '',
productIdentifier: '4370',
isValid: true,
buttonDisabled: false,
getMessages(type, message) {
return typeof window.dispatchMessages !== "undefined" && window.dispatchMessages(
[{
type: type,
text: message
}]);
},
fetchSubscribe(productId) {
let variables = {
input: {
product_uid: btoa(productId),
parent_uid: this.isConfigurable ? btoa(this.productIdentifier) : '',
}
};
this.buttonDisabled = true;
fetch(BASE_URL + 'graphql', {
method: 'POST',
headers: {
'Store': 'default',
'Content-Type': 'application/json',
},
body: JSON.stringify({
query: this.mutationStockSubscription,
variables
}),
mode: "cors",
credentials: "include"
}).then((response) => response.json()).then((result) => {
if (result?.data?.AmxnotifStockSubscribe) {
this.getMessages("success", result.data.AmxnotifStockSubscribe.response_message);
} else {
let message = result?.errors ? result.errors[0].message : "Es ist ein Fehler aufgetreten.";
this.getMessages("error", message)
}
if (this.isConfigurable) {
setTimeout(() => {
window.dispatchEvent(new Event('showAmLoader'));
window.location.reload()
}, 2000)
}
}).finally(() => {
this.buttonDisabled = false;
})
}
}
}
</script>
</div>
<script>
function initPriceBox__66af3690a6e38() {
return {
updatePrice(priceData) {
const regularPriceLabel = this.$root.querySelector('.normal-price .price-label');
const regularPriceElement = this.$root.querySelector('.normal-price [data-price-type=finalPrice].price-wrapper .price');
const basePriceElement = this.$root.querySelector('.normal-price [data-price-type=basePrice].price-wrapper .price');
if (priceData.finalPrice.amount < priceData.oldPrice.amount) {
regularPriceLabel.classList.add('hidden');
} else {
regularPriceLabel.classList.remove('hidden');
}
regularPriceElement && (regularPriceElement.innerText = hyva.formatPrice(priceData.finalPrice.amount));
basePriceElement && (basePriceElement.innerText = hyva.formatPrice(priceData.basePrice.amount));
}
}
}
</script>
<div class="pt-1 text-gray-900 flex " x-data="initPriceBox__66af3690a6e38()" @update-prices-4370.window="updatePrice($event.detail);" x-defer="intersect" x-ignore="">
<div class="price-box price-final_price" data-role="priceBox" data-product-id="4370" data-price-box="product-id-4370">
<a href="https://swisspackag.test.mediadivision.ch/catalog/product/view/id/4370/s/druckverschlussbeutel-180-x-250-mm-90-m-mit-eurolochung-lebensmittelecht/" class="minimal-price-link font-bold">
<span x-data="" x-id="['4370']" class="price-container price-final_price tax weee" x-defer="intersect" x-ignore="">
<span class="price-label">Ab</span>
<span :id="$id('4370')" data-price-amount="124.9" data-price-type="" class="price-wrapper ">CHF 124.90</span>
</span>
</a>
</div>
<span class="text-gray-400"> /1000 Stk.</span>
</div>
<div class="mt-auto pt-0 flex flex-wrap justify-center items-center">
<button class="absolute right-3 w-auto btn btn-card justify-center text-sm transition
mr-auto" aria-label="In den Warenkorb Druckverschlussbeutel 180 x 250 mm, 90 mµ, mit Eurolochung, lebensmittelecht">
<img width="30" src="https://swisspackag.test.mediadivision.ch/static/version1722344383/frontend/MediaDivision/swisspack-hyva-theme/de_CH/images/header/warenkorb_light.svg">
<span class="ml-2 inline md:ml-0 md:hidden lg:ml-2 lg:inline">
</span>
</button>
<div class="absolute top-2 -left-10 flex flex-col gap-2 addto-icons">
<button x-data="initWishlist()" @click.prevent="addToWishlist(4370)" aria-label="Zur Merkliste hinzufügen Druckverschlussbeutel 180 x 250 mm, 90 mµ, mit Eurolochung, lebensmittelecht" type="button"
class="px-4 rounded-r-full h-7 bg-primary-lighter p-0 border-0 inline-flex shrink-0 items-center text-gray-500 hover:text-red-600 ml-2" x-defer="intersect" x-ignore="">
<img width="13" src="https://swisspackag.test.mediadivision.ch/static/version1722344383/frontend/MediaDivision/swisspack-hyva-theme/de_CH/images/header/merkliste.svg">
<span class="text-xs ml-2 max-md:hidden">Merken</span>
</button>
<button x-data="initCompareOnProductList()" @click.prevent="addToCompare(4370)" aria-label="Zur Vergleichsliste hinzufügen Druckverschlussbeutel 180 x 250 mm, 90 mµ, mit Eurolochung, lebensmittelecht" type="button"
class="px-4 rounded-r-full h-7 bg-primary-lighter p-0 border-0 inline-flex shrink-0 items-center text-gray-500 hover:text-red-600 ml-2" x-defer="intersect" x-ignore="">
<img width="13" src="https://swisspackag.test.mediadivision.ch/static/version1722344383/frontend/MediaDivision/swisspack-hyva-theme/de_CH/images/header/vergleichen.svg">
<span class="text-xs ml-2 max-md:hidden">Vergleichen</span>
</button>
</div>
</div>
</div>
</form>
POST https://swisspackag.test.mediadivision.ch/checkout/cart/add/uenc/%25uenc%25/product/4366/
<form method="post" action="https://swisspackag.test.mediadivision.ch/checkout/cart/add/uenc/%25uenc%25/product/4366/"
class="relative item product product-item product_addtocart_form !left-0 card card-interactive flex flex-col w-full h-full glider-slide right-10" data-gslide="13" style="height: auto; width: 283px;">
<input name="form_key" type="hidden" value="89Mcr1BgikEtQYvn"> <input type="hidden" name="product" value="4366">
<a href="https://swisspackag.test.mediadivision.ch/catalog/product/view/id/4366/s/druckverschlussbeutel-80-x-250-mm-50-m-transparent-und-lebensmittelecht/" class="product photo product-item-photo block mx-auto mb-3 " tabindex="-1">
<img class="hover:shadow-sm object-contain product-image-photo" x-data="" @update-gallery-4366.window="$root.src = $event.detail" src="https://swisspackag.test.mediadivision.ch/media/catalog/product/cache/6ff2493bc04edee855db9d8f5dd1d705/6/0/600.030_001.jpg" loading="lazy" width="300" height="300" alt="Druckverschlussbeutel 80 x 250 mm, 50 mµ, transparent und lebensmittelecht" title="Druckverschlussbeutel 80 x 250 mm, 50 mµ, transparent und lebensmittelecht">
</a>
<div class="product-info flex-col flex grow ">
<div class=" leading-tight mt-2 mb-1 items-center justify-center text-primary-darker font-semibold text-lg text-left ">
<a class="product-item-link" href="https://swisspackag.test.mediadivision.ch/catalog/product/view/id/4366/s/druckverschlussbeutel-80-x-250-mm-50-m-transparent-und-lebensmittelecht/" :id="`slide-desc-4366-${$id('slider-id')}`">
Druckverschlussbeutel 80 x 250 mm, 50 mµ, transparent und lebensmittelecht </a>
</div>
<div class="py-0 ">
<script>
'use strict';
function amNotificationProductViewComponent_4366() {
return {
isAvailable: "1",
isAvailableConfigurableSimple: true,
isOutofstockConfigurable: "1",
title: "Verfügbarkeit",
options: {},
productIndex: "4366",
hideAddToCartBtn: "",
notificationLabel: "Benachrichtigen Sie mich, wenn das Produkt wieder auf Lager ist",
productId: "4366",
/**
* Overridden method for Product Alert View Model to output url according to product id in js
*
* @param productIndex
* @param type
* @returns {*}
*/
getSubscriptionUrl(productIndex, type) {
const urlParts = ['xnotif/email/',
type, '/product_id/',
productIndex,
(parseInt(productIndex) !== parseInt(this.productId)) ? '/parent_id/' + this.productId : '', '/uenc/', 'aHR0cHM6Ly9zd2lzc3BhY2thZy50ZXN0Lm1lZGlhZGl2aXNpb24uY2gv'
];
return BASE_URL + urlParts.join('');
},
getSimpleProduct(data, el) {
let children = JSON.parse('[]');
/**
* hide addtocart button if simple for configurable product is out of stock
*/
window.addEventListener('configurable-select-changed', (event) => {
let componentElement = document.querySelector('[x-data="amNotificationProductViewComponent_' + event.detail.productId + '()"]') || document.querySelector('#stock_notification_' + event.detail.productId);
let parentElement = componentElement.closest('.product-info');
this.hideAddToCartBtn = parentElement.querySelector('.btn.btn-primary:not(.subscribe-button)');
});
//for pdp only
window.addEventListener('configurable-selection-changed', (event) => {
const addToCartButton = document.getElementById('product-addtocart-button')?.closest('div');
if (addToCartButton) {
addToCartButton.style.display = this.isAvailableConfigurableSimple ? 'flex' : 'none';
}
});
const swatchesComponent = (document.querySelector('[x-data="initConfigurableSwatchOptions_' + data.productId + '()"]') || document.querySelector('[x-data="initAmastyXnotifCatalogSwatchesMixin_' + data.productId + '()"]') || document
.querySelector('[x-data="initAmastyCustomStockStatusOptions_' + data.productId + '()"]'));
const swatchesCount = swatchesComponent?.querySelector('div')?.children?.length || 0;
for (const [key, value] of Object.entries(children[data.productIndex] || {})) {
const previousIndex = this.productIndex;
this.productIndex = data.productIndex;
if (Object.keys(data.selectedValues).length >= swatchesCount) {
this.isAvailable = Number(value);
this.isAvailableConfigurableSimple = Number(value);
}
if (this.hideAddToCartBtn) {
this.hideAddToCartBtn.style.display = !this.isAvailable ? 'none' : 'flex';
}
// plp duplicating indexes case
if (el && (previousIndex === this.productIndex) && !this.isAvailable) {
el.closest('.product-info').querySelector('.btn.btn-primary:not(.subscribe-button)').style.display = 'none';
}
}
},
getAvailable() {
return this.options = {
additionalClass: this.isAvailable ? 'bg-green-500' : 'bg-red-500',
label: this.isAvailable ? 'Auf Lager' : 'Nicht lieferbar',
categoryNotificationLabel: this.isAvailable ? '' : this.notificationLabel,
};
}
}
}
</script>
<!--
<div x-data="{
...amNotificationProductViewComponent_4366(),
...amXnotifSubscribeComponentList_4366()
}"
x-on:configurable-select-changed.window="getSimpleProduct($event.detail, $el)"
x-show="getAvailable()"
id="stock_notification_4366"
class="text-right relative">
<p class="flex items-center justify-center align-middle available gap-x-2 stock" :title="title">
<span class="w-3 h-3 rounded-full flex-shrink-0" :class="options.additionalClass"></span>
<span x-text="options.label"></span>
</p>
</div> -->
<script>
'use strict';
function amXnotifSubscribeComponentList_4366() {
return {
mutationStockSubscription: `mutation AmxnotifStockSubscribe($input: AmxnotifSubscribeInput) {
AmxnotifStockSubscribe(input: $input) {
response_message
}
}`,
isInStock: '1',
isConfigurable: '',
productIdentifier: '4366',
isValid: true,
buttonDisabled: false,
getMessages(type, message) {
return typeof window.dispatchMessages !== "undefined" && window.dispatchMessages(
[{
type: type,
text: message
}]);
},
fetchSubscribe(productId) {
let variables = {
input: {
product_uid: btoa(productId),
parent_uid: this.isConfigurable ? btoa(this.productIdentifier) : '',
}
};
this.buttonDisabled = true;
fetch(BASE_URL + 'graphql', {
method: 'POST',
headers: {
'Store': 'default',
'Content-Type': 'application/json',
},
body: JSON.stringify({
query: this.mutationStockSubscription,
variables
}),
mode: "cors",
credentials: "include"
}).then((response) => response.json()).then((result) => {
if (result?.data?.AmxnotifStockSubscribe) {
this.getMessages("success", result.data.AmxnotifStockSubscribe.response_message);
} else {
let message = result?.errors ? result.errors[0].message : "Es ist ein Fehler aufgetreten.";
this.getMessages("error", message)
}
if (this.isConfigurable) {
setTimeout(() => {
window.dispatchEvent(new Event('showAmLoader'));
window.location.reload()
}, 2000)
}
}).finally(() => {
this.buttonDisabled = false;
})
}
}
}
</script>
</div>
<script>
function initPriceBox__66af3690a9f1c() {
return {
updatePrice(priceData) {
const regularPriceLabel = this.$root.querySelector('.normal-price .price-label');
const regularPriceElement = this.$root.querySelector('.normal-price [data-price-type=finalPrice].price-wrapper .price');
const basePriceElement = this.$root.querySelector('.normal-price [data-price-type=basePrice].price-wrapper .price');
if (priceData.finalPrice.amount < priceData.oldPrice.amount) {
regularPriceLabel.classList.add('hidden');
} else {
regularPriceLabel.classList.remove('hidden');
}
regularPriceElement && (regularPriceElement.innerText = hyva.formatPrice(priceData.finalPrice.amount));
basePriceElement && (basePriceElement.innerText = hyva.formatPrice(priceData.basePrice.amount));
}
}
}
</script>
<div class="pt-1 text-gray-900 flex " x-data="initPriceBox__66af3690a9f1c()" @update-prices-4366.window="updatePrice($event.detail);" x-defer="intersect" x-ignore="">
<div class="price-box price-final_price" data-role="priceBox" data-product-id="4366" data-price-box="product-id-4366">
<a href="https://swisspackag.test.mediadivision.ch/catalog/product/view/id/4366/s/druckverschlussbeutel-80-x-250-mm-50-m-transparent-und-lebensmittelecht/" class="minimal-price-link font-bold">
<span x-data="" x-id="['4366']" class="price-container price-final_price tax weee" x-defer="intersect" x-ignore="">
<span class="price-label">Ab</span>
<span :id="$id('4366')" data-price-amount="30.45" data-price-type="" class="price-wrapper ">CHF 30.45</span>
</span>
</a>
</div>
<span class="text-gray-400"> /1000 Stk.</span>
</div>
<div class="mt-auto pt-0 flex flex-wrap justify-center items-center">
<button class="absolute right-3 w-auto btn btn-card justify-center text-sm transition
mr-auto" aria-label="In den Warenkorb Druckverschlussbeutel 80 x 250 mm, 50 mµ, transparent und lebensmittelecht">
<img width="30" src="https://swisspackag.test.mediadivision.ch/static/version1722344383/frontend/MediaDivision/swisspack-hyva-theme/de_CH/images/header/warenkorb_light.svg">
<span class="ml-2 inline md:ml-0 md:hidden lg:ml-2 lg:inline">
</span>
</button>
<div class="absolute top-2 -left-10 flex flex-col gap-2 addto-icons">
<button x-data="initWishlist()" @click.prevent="addToWishlist(4366)" aria-label="Zur Merkliste hinzufügen Druckverschlussbeutel 80 x 250 mm, 50 mµ, transparent und lebensmittelecht" type="button"
class="px-4 rounded-r-full h-7 bg-primary-lighter p-0 border-0 inline-flex shrink-0 items-center text-gray-500 hover:text-red-600 ml-2" x-defer="intersect" x-ignore="">
<img width="13" src="https://swisspackag.test.mediadivision.ch/static/version1722344383/frontend/MediaDivision/swisspack-hyva-theme/de_CH/images/header/merkliste.svg">
<span class="text-xs ml-2 max-md:hidden">Merken</span>
</button>
<button x-data="initCompareOnProductList()" @click.prevent="addToCompare(4366)" aria-label="Zur Vergleichsliste hinzufügen Druckverschlussbeutel 80 x 250 mm, 50 mµ, transparent und lebensmittelecht" type="button"
class="px-4 rounded-r-full h-7 bg-primary-lighter p-0 border-0 inline-flex shrink-0 items-center text-gray-500 hover:text-red-600 ml-2" x-defer="intersect" x-ignore="">
<img width="13" src="https://swisspackag.test.mediadivision.ch/static/version1722344383/frontend/MediaDivision/swisspack-hyva-theme/de_CH/images/header/vergleichen.svg">
<span class="text-xs ml-2 max-md:hidden">Vergleichen</span>
</button>
</div>
</div>
</div>
</form>
POST https://swisspackag.test.mediadivision.ch/checkout/cart/add/uenc/%25uenc%25/product/4362/
<form method="post" action="https://swisspackag.test.mediadivision.ch/checkout/cart/add/uenc/%25uenc%25/product/4362/"
class="relative item product product-item product_addtocart_form !left-0 card card-interactive flex flex-col w-full h-full glider-slide right-11" data-gslide="14" style="height: auto; width: 283px;">
<input name="form_key" type="hidden" value="89Mcr1BgikEtQYvn"> <input type="hidden" name="product" value="4362">
<a href="https://swisspackag.test.mediadivision.ch/catalog/product/view/id/4362/s/druckverschlussbeutel-90-x-110-mm-50-m-mit-eurolochung-lebensmittelecht/" class="product photo product-item-photo block mx-auto mb-3 " tabindex="-1">
<img class="hover:shadow-sm object-contain product-image-photo" x-data="" @update-gallery-4362.window="$root.src = $event.detail" src="https://swisspackag.test.mediadivision.ch/media/catalog/product/cache/6ff2493bc04edee855db9d8f5dd1d705/6/1/610.050_001.jpg" loading="lazy" width="300" height="300" alt="Druckverschlussbeutel 90 x 110 mm, 50 mµ, mit Eurolochung, lebensmittelecht" title="Druckverschlussbeutel 90 x 110 mm, 50 mµ, mit Eurolochung, lebensmittelecht">
</a>
<div class="product-info flex-col flex grow ">
<div class=" leading-tight mt-2 mb-1 items-center justify-center text-primary-darker font-semibold text-lg text-left ">
<a class="product-item-link" href="https://swisspackag.test.mediadivision.ch/catalog/product/view/id/4362/s/druckverschlussbeutel-90-x-110-mm-50-m-mit-eurolochung-lebensmittelecht/" :id="`slide-desc-4362-${$id('slider-id')}`">
Druckverschlussbeutel 90 x 110 mm, 50 mµ, mit Eurolochung, lebensmittelecht </a>
</div>
<div class="py-0 ">
<script>
'use strict';
function amNotificationProductViewComponent_4362() {
return {
isAvailable: "1",
isAvailableConfigurableSimple: true,
isOutofstockConfigurable: "1",
title: "Verfügbarkeit",
options: {},
productIndex: "4362",
hideAddToCartBtn: "",
notificationLabel: "Benachrichtigen Sie mich, wenn das Produkt wieder auf Lager ist",
productId: "4362",
/**
* Overridden method for Product Alert View Model to output url according to product id in js
*
* @param productIndex
* @param type
* @returns {*}
*/
getSubscriptionUrl(productIndex, type) {
const urlParts = ['xnotif/email/',
type, '/product_id/',
productIndex,
(parseInt(productIndex) !== parseInt(this.productId)) ? '/parent_id/' + this.productId : '', '/uenc/', 'aHR0cHM6Ly9zd2lzc3BhY2thZy50ZXN0Lm1lZGlhZGl2aXNpb24uY2gv'
];
return BASE_URL + urlParts.join('');
},
getSimpleProduct(data, el) {
let children = JSON.parse('[]');
/**
* hide addtocart button if simple for configurable product is out of stock
*/
window.addEventListener('configurable-select-changed', (event) => {
let componentElement = document.querySelector('[x-data="amNotificationProductViewComponent_' + event.detail.productId + '()"]') || document.querySelector('#stock_notification_' + event.detail.productId);
let parentElement = componentElement.closest('.product-info');
this.hideAddToCartBtn = parentElement.querySelector('.btn.btn-primary:not(.subscribe-button)');
});
//for pdp only
window.addEventListener('configurable-selection-changed', (event) => {
const addToCartButton = document.getElementById('product-addtocart-button')?.closest('div');
if (addToCartButton) {
addToCartButton.style.display = this.isAvailableConfigurableSimple ? 'flex' : 'none';
}
});
const swatchesComponent = (document.querySelector('[x-data="initConfigurableSwatchOptions_' + data.productId + '()"]') || document.querySelector('[x-data="initAmastyXnotifCatalogSwatchesMixin_' + data.productId + '()"]') || document
.querySelector('[x-data="initAmastyCustomStockStatusOptions_' + data.productId + '()"]'));
const swatchesCount = swatchesComponent?.querySelector('div')?.children?.length || 0;
for (const [key, value] of Object.entries(children[data.productIndex] || {})) {
const previousIndex = this.productIndex;
this.productIndex = data.productIndex;
if (Object.keys(data.selectedValues).length >= swatchesCount) {
this.isAvailable = Number(value);
this.isAvailableConfigurableSimple = Number(value);
}
if (this.hideAddToCartBtn) {
this.hideAddToCartBtn.style.display = !this.isAvailable ? 'none' : 'flex';
}
// plp duplicating indexes case
if (el && (previousIndex === this.productIndex) && !this.isAvailable) {
el.closest('.product-info').querySelector('.btn.btn-primary:not(.subscribe-button)').style.display = 'none';
}
}
},
getAvailable() {
return this.options = {
additionalClass: this.isAvailable ? 'bg-green-500' : 'bg-red-500',
label: this.isAvailable ? 'Auf Lager' : 'Nicht lieferbar',
categoryNotificationLabel: this.isAvailable ? '' : this.notificationLabel,
};
}
}
}
</script>
<!--
<div x-data="{
...amNotificationProductViewComponent_4362(),
...amXnotifSubscribeComponentList_4362()
}"
x-on:configurable-select-changed.window="getSimpleProduct($event.detail, $el)"
x-show="getAvailable()"
id="stock_notification_4362"
class="text-right relative">
<p class="flex items-center justify-center align-middle available gap-x-2 stock" :title="title">
<span class="w-3 h-3 rounded-full flex-shrink-0" :class="options.additionalClass"></span>
<span x-text="options.label"></span>
</p>
</div> -->
<script>
'use strict';
function amXnotifSubscribeComponentList_4362() {
return {
mutationStockSubscription: `mutation AmxnotifStockSubscribe($input: AmxnotifSubscribeInput) {
AmxnotifStockSubscribe(input: $input) {
response_message
}
}`,
isInStock: '1',
isConfigurable: '',
productIdentifier: '4362',
isValid: true,
buttonDisabled: false,
getMessages(type, message) {
return typeof window.dispatchMessages !== "undefined" && window.dispatchMessages(
[{
type: type,
text: message
}]);
},
fetchSubscribe(productId) {
let variables = {
input: {
product_uid: btoa(productId),
parent_uid: this.isConfigurable ? btoa(this.productIdentifier) : '',
}
};
this.buttonDisabled = true;
fetch(BASE_URL + 'graphql', {
method: 'POST',
headers: {
'Store': 'default',
'Content-Type': 'application/json',
},
body: JSON.stringify({
query: this.mutationStockSubscription,
variables
}),
mode: "cors",
credentials: "include"
}).then((response) => response.json()).then((result) => {
if (result?.data?.AmxnotifStockSubscribe) {
this.getMessages("success", result.data.AmxnotifStockSubscribe.response_message);
} else {
let message = result?.errors ? result.errors[0].message : "Es ist ein Fehler aufgetreten.";
this.getMessages("error", message)
}
if (this.isConfigurable) {
setTimeout(() => {
window.dispatchEvent(new Event('showAmLoader'));
window.location.reload()
}, 2000)
}
}).finally(() => {
this.buttonDisabled = false;
})
}
}
}
</script>
</div>
<script>
function initPriceBox__66af3690af620() {
return {
updatePrice(priceData) {
const regularPriceLabel = this.$root.querySelector('.normal-price .price-label');
const regularPriceElement = this.$root.querySelector('.normal-price [data-price-type=finalPrice].price-wrapper .price');
const basePriceElement = this.$root.querySelector('.normal-price [data-price-type=basePrice].price-wrapper .price');
if (priceData.finalPrice.amount < priceData.oldPrice.amount) {
regularPriceLabel.classList.add('hidden');
} else {
regularPriceLabel.classList.remove('hidden');
}
regularPriceElement && (regularPriceElement.innerText = hyva.formatPrice(priceData.finalPrice.amount));
basePriceElement && (basePriceElement.innerText = hyva.formatPrice(priceData.basePrice.amount));
}
}
}
</script>
<div class="pt-1 text-gray-900 flex " x-data="initPriceBox__66af3690af620()" @update-prices-4362.window="updatePrice($event.detail);" x-defer="intersect" x-ignore="">
<div class="price-box price-final_price" data-role="priceBox" data-product-id="4362" data-price-box="product-id-4362">
<a href="https://swisspackag.test.mediadivision.ch/catalog/product/view/id/4362/s/druckverschlussbeutel-90-x-110-mm-50-m-mit-eurolochung-lebensmittelecht/" class="minimal-price-link font-bold">
<span x-data="" x-id="['4362']" class="price-container price-final_price tax weee" x-defer="intersect" x-ignore="">
<span class="price-label">Ab</span>
<span :id="$id('4362')" data-price-amount="19.9" data-price-type="" class="price-wrapper ">CHF 19.90</span>
</span>
</a>
</div>
<span class="text-gray-400"> /1000 Stk.</span>
</div>
<div class="mt-auto pt-0 flex flex-wrap justify-center items-center">
<button class="absolute right-3 w-auto btn btn-card justify-center text-sm transition
mr-auto" aria-label="In den Warenkorb Druckverschlussbeutel 90 x 110 mm, 50 mµ, mit Eurolochung, lebensmittelecht">
<img width="30" src="https://swisspackag.test.mediadivision.ch/static/version1722344383/frontend/MediaDivision/swisspack-hyva-theme/de_CH/images/header/warenkorb_light.svg">
<span class="ml-2 inline md:ml-0 md:hidden lg:ml-2 lg:inline">
</span>
</button>
<div class="absolute top-2 -left-10 flex flex-col gap-2 addto-icons">
<button x-data="initWishlist()" @click.prevent="addToWishlist(4362)" aria-label="Zur Merkliste hinzufügen Druckverschlussbeutel 90 x 110 mm, 50 mµ, mit Eurolochung, lebensmittelecht" type="button"
class="px-4 rounded-r-full h-7 bg-primary-lighter p-0 border-0 inline-flex shrink-0 items-center text-gray-500 hover:text-red-600 ml-2" x-defer="intersect" x-ignore="">
<img width="13" src="https://swisspackag.test.mediadivision.ch/static/version1722344383/frontend/MediaDivision/swisspack-hyva-theme/de_CH/images/header/merkliste.svg">
<span class="text-xs ml-2 max-md:hidden">Merken</span>
</button>
<button x-data="initCompareOnProductList()" @click.prevent="addToCompare(4362)" aria-label="Zur Vergleichsliste hinzufügen Druckverschlussbeutel 90 x 110 mm, 50 mµ, mit Eurolochung, lebensmittelecht" type="button"
class="px-4 rounded-r-full h-7 bg-primary-lighter p-0 border-0 inline-flex shrink-0 items-center text-gray-500 hover:text-red-600 ml-2" x-defer="intersect" x-ignore="">
<img width="13" src="https://swisspackag.test.mediadivision.ch/static/version1722344383/frontend/MediaDivision/swisspack-hyva-theme/de_CH/images/header/vergleichen.svg">
<span class="text-xs ml-2 max-md:hidden">Vergleichen</span>
</button>
</div>
</div>
</div>
</form>
POST https://swisspackag.test.mediadivision.ch/checkout/cart/add/uenc/%25uenc%25/product/4358/
<form method="post" action="https://swisspackag.test.mediadivision.ch/checkout/cart/add/uenc/%25uenc%25/product/4358/"
class="relative item product product-item product_addtocart_form !left-0 card card-interactive flex flex-col w-full h-full glider-slide right-12" data-gslide="15" style="height: auto; width: 283px;">
<input name="form_key" type="hidden" value="89Mcr1BgikEtQYvn"> <input type="hidden" name="product" value="4358">
<a href="https://swisspackag.test.mediadivision.ch/catalog/product/view/id/4358/s/druckverschlussbeutel-60-x-230-mm-50-m-transparent-und-lebensmittelecht/" class="product photo product-item-photo block mx-auto mb-3 " tabindex="-1">
<img class="hover:shadow-sm object-contain product-image-photo" x-data="" @update-gallery-4358.window="$root.src = $event.detail" src="https://swisspackag.test.mediadivision.ch/media/catalog/product/cache/6ff2493bc04edee855db9d8f5dd1d705/6/0/600.020_001.jpg" loading="lazy" width="300" height="300" alt="Druckverschlussbeutel 60 x 230 mm, 50 mµ, transparent und lebensmittelecht" title="Druckverschlussbeutel 60 x 230 mm, 50 mµ, transparent und lebensmittelecht">
</a>
<div class="product-info flex-col flex grow ">
<div class=" leading-tight mt-2 mb-1 items-center justify-center text-primary-darker font-semibold text-lg text-left ">
<a class="product-item-link" href="https://swisspackag.test.mediadivision.ch/catalog/product/view/id/4358/s/druckverschlussbeutel-60-x-230-mm-50-m-transparent-und-lebensmittelecht/" :id="`slide-desc-4358-${$id('slider-id')}`">
Druckverschlussbeutel 60 x 230 mm, 50 mµ, transparent und lebensmittelecht </a>
</div>
<div class="py-0 ">
<script>
'use strict';
function amNotificationProductViewComponent_4358() {
return {
isAvailable: "1",
isAvailableConfigurableSimple: true,
isOutofstockConfigurable: "1",
title: "Verfügbarkeit",
options: {},
productIndex: "4358",
hideAddToCartBtn: "",
notificationLabel: "Benachrichtigen Sie mich, wenn das Produkt wieder auf Lager ist",
productId: "4358",
/**
* Overridden method for Product Alert View Model to output url according to product id in js
*
* @param productIndex
* @param type
* @returns {*}
*/
getSubscriptionUrl(productIndex, type) {
const urlParts = ['xnotif/email/',
type, '/product_id/',
productIndex,
(parseInt(productIndex) !== parseInt(this.productId)) ? '/parent_id/' + this.productId : '', '/uenc/', 'aHR0cHM6Ly9zd2lzc3BhY2thZy50ZXN0Lm1lZGlhZGl2aXNpb24uY2gv'
];
return BASE_URL + urlParts.join('');
},
getSimpleProduct(data, el) {
let children = JSON.parse('[]');
/**
* hide addtocart button if simple for configurable product is out of stock
*/
window.addEventListener('configurable-select-changed', (event) => {
let componentElement = document.querySelector('[x-data="amNotificationProductViewComponent_' + event.detail.productId + '()"]') || document.querySelector('#stock_notification_' + event.detail.productId);
let parentElement = componentElement.closest('.product-info');
this.hideAddToCartBtn = parentElement.querySelector('.btn.btn-primary:not(.subscribe-button)');
});
//for pdp only
window.addEventListener('configurable-selection-changed', (event) => {
const addToCartButton = document.getElementById('product-addtocart-button')?.closest('div');
if (addToCartButton) {
addToCartButton.style.display = this.isAvailableConfigurableSimple ? 'flex' : 'none';
}
});
const swatchesComponent = (document.querySelector('[x-data="initConfigurableSwatchOptions_' + data.productId + '()"]') || document.querySelector('[x-data="initAmastyXnotifCatalogSwatchesMixin_' + data.productId + '()"]') || document
.querySelector('[x-data="initAmastyCustomStockStatusOptions_' + data.productId + '()"]'));
const swatchesCount = swatchesComponent?.querySelector('div')?.children?.length || 0;
for (const [key, value] of Object.entries(children[data.productIndex] || {})) {
const previousIndex = this.productIndex;
this.productIndex = data.productIndex;
if (Object.keys(data.selectedValues).length >= swatchesCount) {
this.isAvailable = Number(value);
this.isAvailableConfigurableSimple = Number(value);
}
if (this.hideAddToCartBtn) {
this.hideAddToCartBtn.style.display = !this.isAvailable ? 'none' : 'flex';
}
// plp duplicating indexes case
if (el && (previousIndex === this.productIndex) && !this.isAvailable) {
el.closest('.product-info').querySelector('.btn.btn-primary:not(.subscribe-button)').style.display = 'none';
}
}
},
getAvailable() {
return this.options = {
additionalClass: this.isAvailable ? 'bg-green-500' : 'bg-red-500',
label: this.isAvailable ? 'Auf Lager' : 'Nicht lieferbar',
categoryNotificationLabel: this.isAvailable ? '' : this.notificationLabel,
};
}
}
}
</script>
<!--
<div x-data="{
...amNotificationProductViewComponent_4358(),
...amXnotifSubscribeComponentList_4358()
}"
x-on:configurable-select-changed.window="getSimpleProduct($event.detail, $el)"
x-show="getAvailable()"
id="stock_notification_4358"
class="text-right relative">
<p class="flex items-center justify-center align-middle available gap-x-2 stock" :title="title">
<span class="w-3 h-3 rounded-full flex-shrink-0" :class="options.additionalClass"></span>
<span x-text="options.label"></span>
</p>
</div> -->
<script>
'use strict';
function amXnotifSubscribeComponentList_4358() {
return {
mutationStockSubscription: `mutation AmxnotifStockSubscribe($input: AmxnotifSubscribeInput) {
AmxnotifStockSubscribe(input: $input) {
response_message
}
}`,
isInStock: '1',
isConfigurable: '',
productIdentifier: '4358',
isValid: true,
buttonDisabled: false,
getMessages(type, message) {
return typeof window.dispatchMessages !== "undefined" && window.dispatchMessages(
[{
type: type,
text: message
}]);
},
fetchSubscribe(productId) {
let variables = {
input: {
product_uid: btoa(productId),
parent_uid: this.isConfigurable ? btoa(this.productIdentifier) : '',
}
};
this.buttonDisabled = true;
fetch(BASE_URL + 'graphql', {
method: 'POST',
headers: {
'Store': 'default',
'Content-Type': 'application/json',
},
body: JSON.stringify({
query: this.mutationStockSubscription,
variables
}),
mode: "cors",
credentials: "include"
}).then((response) => response.json()).then((result) => {
if (result?.data?.AmxnotifStockSubscribe) {
this.getMessages("success", result.data.AmxnotifStockSubscribe.response_message);
} else {
let message = result?.errors ? result.errors[0].message : "Es ist ein Fehler aufgetreten.";
this.getMessages("error", message)
}
if (this.isConfigurable) {
setTimeout(() => {
window.dispatchEvent(new Event('showAmLoader'));
window.location.reload()
}, 2000)
}
}).finally(() => {
this.buttonDisabled = false;
})
}
}
}
</script>
</div>
<script>
function initPriceBox__66af3690b386b() {
return {
updatePrice(priceData) {
const regularPriceLabel = this.$root.querySelector('.normal-price .price-label');
const regularPriceElement = this.$root.querySelector('.normal-price [data-price-type=finalPrice].price-wrapper .price');
const basePriceElement = this.$root.querySelector('.normal-price [data-price-type=basePrice].price-wrapper .price');
if (priceData.finalPrice.amount < priceData.oldPrice.amount) {
regularPriceLabel.classList.add('hidden');
} else {
regularPriceLabel.classList.remove('hidden');
}
regularPriceElement && (regularPriceElement.innerText = hyva.formatPrice(priceData.finalPrice.amount));
basePriceElement && (basePriceElement.innerText = hyva.formatPrice(priceData.basePrice.amount));
}
}
}
</script>
<div class="pt-1 text-gray-900 flex " x-data="initPriceBox__66af3690b386b()" @update-prices-4358.window="updatePrice($event.detail);" x-defer="intersect" x-ignore="">
<div class="price-box price-final_price" data-role="priceBox" data-product-id="4358" data-price-box="product-id-4358">
<a href="https://swisspackag.test.mediadivision.ch/catalog/product/view/id/4358/s/druckverschlussbeutel-60-x-230-mm-50-m-transparent-und-lebensmittelecht/" class="minimal-price-link font-bold">
<span x-data="" x-id="['4358']" class="price-container price-final_price tax weee" x-defer="intersect" x-ignore="">
<span class="price-label">Ab</span>
<span :id="$id('4358')" data-price-amount="25.95" data-price-type="" class="price-wrapper ">CHF 25.95</span>
</span>
</a>
</div>
<span class="text-gray-400"> /1000 Stk.</span>
</div>
<div class="mt-auto pt-0 flex flex-wrap justify-center items-center">
<button class="absolute right-3 w-auto btn btn-card justify-center text-sm transition
mr-auto" aria-label="In den Warenkorb Druckverschlussbeutel 60 x 230 mm, 50 mµ, transparent und lebensmittelecht">
<img width="30" src="https://swisspackag.test.mediadivision.ch/static/version1722344383/frontend/MediaDivision/swisspack-hyva-theme/de_CH/images/header/warenkorb_light.svg">
<span class="ml-2 inline md:ml-0 md:hidden lg:ml-2 lg:inline">
</span>
</button>
<div class="absolute top-2 -left-10 flex flex-col gap-2 addto-icons">
<button x-data="initWishlist()" @click.prevent="addToWishlist(4358)" aria-label="Zur Merkliste hinzufügen Druckverschlussbeutel 60 x 230 mm, 50 mµ, transparent und lebensmittelecht" type="button"
class="px-4 rounded-r-full h-7 bg-primary-lighter p-0 border-0 inline-flex shrink-0 items-center text-gray-500 hover:text-red-600 ml-2" x-defer="intersect" x-ignore="">
<img width="13" src="https://swisspackag.test.mediadivision.ch/static/version1722344383/frontend/MediaDivision/swisspack-hyva-theme/de_CH/images/header/merkliste.svg">
<span class="text-xs ml-2 max-md:hidden">Merken</span>
</button>
<button x-data="initCompareOnProductList()" @click.prevent="addToCompare(4358)" aria-label="Zur Vergleichsliste hinzufügen Druckverschlussbeutel 60 x 230 mm, 50 mµ, transparent und lebensmittelecht" type="button"
class="px-4 rounded-r-full h-7 bg-primary-lighter p-0 border-0 inline-flex shrink-0 items-center text-gray-500 hover:text-red-600 ml-2" x-defer="intersect" x-ignore="">
<img width="13" src="https://swisspackag.test.mediadivision.ch/static/version1722344383/frontend/MediaDivision/swisspack-hyva-theme/de_CH/images/header/vergleichen.svg">
<span class="text-xs ml-2 max-md:hidden">Vergleichen</span>
</button>
</div>
</div>
</div>
</form>
POST https://swisspackag.test.mediadivision.ch/checkout/cart/add/uenc/%25uenc%25/product/4354/
<form method="post" action="https://swisspackag.test.mediadivision.ch/checkout/cart/add/uenc/%25uenc%25/product/4354/"
class="relative item product product-item product_addtocart_form !left-0 card card-interactive flex flex-col w-full h-full glider-slide right-13" data-gslide="16" style="height: auto; width: 283px;">
<input name="form_key" type="hidden" value="89Mcr1BgikEtQYvn"> <input type="hidden" name="product" value="4354">
<a href="https://swisspackag.test.mediadivision.ch/catalog/product/view/id/4354/s/druckverschlussbeutel-70-x-100-mm-90-m-mit-rezyklatanteil-transparent/" class="product photo product-item-photo block mx-auto mb-3 " tabindex="-1">
<img class="hover:shadow-sm object-contain product-image-photo" x-data="" @update-gallery-4354.window="$root.src = $event.detail" src="https://swisspackag.test.mediadivision.ch/media/catalog/product/cache/6ff2493bc04edee855db9d8f5dd1d705/6/1/610.150_001.jpg" loading="lazy" width="300" height="300" alt="Druckverschlussbeutel 70 x 100 mm, 90 mµ, mit Rezyklatanteil, transparent" title="Druckverschlussbeutel 70 x 100 mm, 90 mµ, mit Rezyklatanteil, transparent">
</a>
<div class="product-info flex-col flex grow ">
<div class=" leading-tight mt-2 mb-1 items-center justify-center text-primary-darker font-semibold text-lg text-left ">
<a class="product-item-link" href="https://swisspackag.test.mediadivision.ch/catalog/product/view/id/4354/s/druckverschlussbeutel-70-x-100-mm-90-m-mit-rezyklatanteil-transparent/" :id="`slide-desc-4354-${$id('slider-id')}`">
Druckverschlussbeutel 70 x 100 mm, 90 mµ, mit Rezyklatanteil, transparent </a>
</div>
<div class="py-0 ">
<script>
'use strict';
function amNotificationProductViewComponent_4354() {
return {
isAvailable: "1",
isAvailableConfigurableSimple: true,
isOutofstockConfigurable: "1",
title: "Verfügbarkeit",
options: {},
productIndex: "4354",
hideAddToCartBtn: "",
notificationLabel: "Benachrichtigen Sie mich, wenn das Produkt wieder auf Lager ist",
productId: "4354",
/**
* Overridden method for Product Alert View Model to output url according to product id in js
*
* @param productIndex
* @param type
* @returns {*}
*/
getSubscriptionUrl(productIndex, type) {
const urlParts = ['xnotif/email/',
type, '/product_id/',
productIndex,
(parseInt(productIndex) !== parseInt(this.productId)) ? '/parent_id/' + this.productId : '', '/uenc/', 'aHR0cHM6Ly9zd2lzc3BhY2thZy50ZXN0Lm1lZGlhZGl2aXNpb24uY2gv'
];
return BASE_URL + urlParts.join('');
},
getSimpleProduct(data, el) {
let children = JSON.parse('[]');
/**
* hide addtocart button if simple for configurable product is out of stock
*/
window.addEventListener('configurable-select-changed', (event) => {
let componentElement = document.querySelector('[x-data="amNotificationProductViewComponent_' + event.detail.productId + '()"]') || document.querySelector('#stock_notification_' + event.detail.productId);
let parentElement = componentElement.closest('.product-info');
this.hideAddToCartBtn = parentElement.querySelector('.btn.btn-primary:not(.subscribe-button)');
});
//for pdp only
window.addEventListener('configurable-selection-changed', (event) => {
const addToCartButton = document.getElementById('product-addtocart-button')?.closest('div');
if (addToCartButton) {
addToCartButton.style.display = this.isAvailableConfigurableSimple ? 'flex' : 'none';
}
});
const swatchesComponent = (document.querySelector('[x-data="initConfigurableSwatchOptions_' + data.productId + '()"]') || document.querySelector('[x-data="initAmastyXnotifCatalogSwatchesMixin_' + data.productId + '()"]') || document
.querySelector('[x-data="initAmastyCustomStockStatusOptions_' + data.productId + '()"]'));
const swatchesCount = swatchesComponent?.querySelector('div')?.children?.length || 0;
for (const [key, value] of Object.entries(children[data.productIndex] || {})) {
const previousIndex = this.productIndex;
this.productIndex = data.productIndex;
if (Object.keys(data.selectedValues).length >= swatchesCount) {
this.isAvailable = Number(value);
this.isAvailableConfigurableSimple = Number(value);
}
if (this.hideAddToCartBtn) {
this.hideAddToCartBtn.style.display = !this.isAvailable ? 'none' : 'flex';
}
// plp duplicating indexes case
if (el && (previousIndex === this.productIndex) && !this.isAvailable) {
el.closest('.product-info').querySelector('.btn.btn-primary:not(.subscribe-button)').style.display = 'none';
}
}
},
getAvailable() {
return this.options = {
additionalClass: this.isAvailable ? 'bg-green-500' : 'bg-red-500',
label: this.isAvailable ? 'Auf Lager' : 'Nicht lieferbar',
categoryNotificationLabel: this.isAvailable ? '' : this.notificationLabel,
};
}
}
}
</script>
<!--
<div x-data="{
...amNotificationProductViewComponent_4354(),
...amXnotifSubscribeComponentList_4354()
}"
x-on:configurable-select-changed.window="getSimpleProduct($event.detail, $el)"
x-show="getAvailable()"
id="stock_notification_4354"
class="text-right relative">
<p class="flex items-center justify-center align-middle available gap-x-2 stock" :title="title">
<span class="w-3 h-3 rounded-full flex-shrink-0" :class="options.additionalClass"></span>
<span x-text="options.label"></span>
</p>
</div> -->
<script>
'use strict';
function amXnotifSubscribeComponentList_4354() {
return {
mutationStockSubscription: `mutation AmxnotifStockSubscribe($input: AmxnotifSubscribeInput) {
AmxnotifStockSubscribe(input: $input) {
response_message
}
}`,
isInStock: '1',
isConfigurable: '',
productIdentifier: '4354',
isValid: true,
buttonDisabled: false,
getMessages(type, message) {
return typeof window.dispatchMessages !== "undefined" && window.dispatchMessages(
[{
type: type,
text: message
}]);
},
fetchSubscribe(productId) {
let variables = {
input: {
product_uid: btoa(productId),
parent_uid: this.isConfigurable ? btoa(this.productIdentifier) : '',
}
};
this.buttonDisabled = true;
fetch(BASE_URL + 'graphql', {
method: 'POST',
headers: {
'Store': 'default',
'Content-Type': 'application/json',
},
body: JSON.stringify({
query: this.mutationStockSubscription,
variables
}),
mode: "cors",
credentials: "include"
}).then((response) => response.json()).then((result) => {
if (result?.data?.AmxnotifStockSubscribe) {
this.getMessages("success", result.data.AmxnotifStockSubscribe.response_message);
} else {
let message = result?.errors ? result.errors[0].message : "Es ist ein Fehler aufgetreten.";
this.getMessages("error", message)
}
if (this.isConfigurable) {
setTimeout(() => {
window.dispatchEvent(new Event('showAmLoader'));
window.location.reload()
}, 2000)
}
}).finally(() => {
this.buttonDisabled = false;
})
}
}
}
</script>
</div>
<script>
function initPriceBox__66af3690b7a71() {
return {
updatePrice(priceData) {
const regularPriceLabel = this.$root.querySelector('.normal-price .price-label');
const regularPriceElement = this.$root.querySelector('.normal-price [data-price-type=finalPrice].price-wrapper .price');
const basePriceElement = this.$root.querySelector('.normal-price [data-price-type=basePrice].price-wrapper .price');
if (priceData.finalPrice.amount < priceData.oldPrice.amount) {
regularPriceLabel.classList.add('hidden');
} else {
regularPriceLabel.classList.remove('hidden');
}
regularPriceElement && (regularPriceElement.innerText = hyva.formatPrice(priceData.finalPrice.amount));
basePriceElement && (basePriceElement.innerText = hyva.formatPrice(priceData.basePrice.amount));
}
}
}
</script>
<div class="pt-1 text-gray-900 flex " x-data="initPriceBox__66af3690b7a71()" @update-prices-4354.window="updatePrice($event.detail);" x-defer="intersect" x-ignore="">
<div class="price-box price-final_price" data-role="priceBox" data-product-id="4354" data-price-box="product-id-4354">
<a href="https://swisspackag.test.mediadivision.ch/catalog/product/view/id/4354/s/druckverschlussbeutel-70-x-100-mm-90-m-mit-rezyklatanteil-transparent/" class="minimal-price-link font-bold">
<span x-data="" x-id="['4354']" class="price-container price-final_price tax weee" x-defer="intersect" x-ignore="">
<span class="price-label">Ab</span>
<span :id="$id('4354')" data-price-amount="29.2" data-price-type="" class="price-wrapper ">CHF 29.20</span>
</span>
</a>
</div>
<span class="text-gray-400"> /1000 Stk.</span>
</div>
<div class="mt-auto pt-0 flex flex-wrap justify-center items-center">
<button class="absolute right-3 w-auto btn btn-card justify-center text-sm transition
mr-auto" aria-label="In den Warenkorb Druckverschlussbeutel 70 x 100 mm, 90 mµ, mit Rezyklatanteil, transparent">
<img width="30" src="https://swisspackag.test.mediadivision.ch/static/version1722344383/frontend/MediaDivision/swisspack-hyva-theme/de_CH/images/header/warenkorb_light.svg">
<span class="ml-2 inline md:ml-0 md:hidden lg:ml-2 lg:inline">
</span>
</button>
<div class="absolute top-2 -left-10 flex flex-col gap-2 addto-icons">
<button x-data="initWishlist()" @click.prevent="addToWishlist(4354)" aria-label="Zur Merkliste hinzufügen Druckverschlussbeutel 70 x 100 mm, 90 mµ, mit Rezyklatanteil, transparent" type="button"
class="px-4 rounded-r-full h-7 bg-primary-lighter p-0 border-0 inline-flex shrink-0 items-center text-gray-500 hover:text-red-600 ml-2" x-defer="intersect" x-ignore="">
<img width="13" src="https://swisspackag.test.mediadivision.ch/static/version1722344383/frontend/MediaDivision/swisspack-hyva-theme/de_CH/images/header/merkliste.svg">
<span class="text-xs ml-2 max-md:hidden">Merken</span>
</button>
<button x-data="initCompareOnProductList()" @click.prevent="addToCompare(4354)" aria-label="Zur Vergleichsliste hinzufügen Druckverschlussbeutel 70 x 100 mm, 90 mµ, mit Rezyklatanteil, transparent" type="button"
class="px-4 rounded-r-full h-7 bg-primary-lighter p-0 border-0 inline-flex shrink-0 items-center text-gray-500 hover:text-red-600 ml-2" x-defer="intersect" x-ignore="">
<img width="13" src="https://swisspackag.test.mediadivision.ch/static/version1722344383/frontend/MediaDivision/swisspack-hyva-theme/de_CH/images/header/vergleichen.svg">
<span class="text-xs ml-2 max-md:hidden">Vergleichen</span>
</button>
</div>
</div>
</div>
</form>
POST https://swisspackag.test.mediadivision.ch/checkout/cart/add/uenc/%25uenc%25/product/4353/
<form method="post" action="https://swisspackag.test.mediadivision.ch/checkout/cart/add/uenc/%25uenc%25/product/4353/"
class="relative item product product-item product_addtocart_form !left-0 card card-interactive flex flex-col w-full h-full glider-slide right-14" data-gslide="17" style="height: auto; width: 283px;">
<input name="form_key" type="hidden" value="89Mcr1BgikEtQYvn"> <input type="hidden" name="product" value="4353">
<a href="https://swisspackag.test.mediadivision.ch/catalog/product/view/id/4353/s/druckverschlussbeutel-200-x-300-mm-50-m-mit-rezyklatanteil-transparent/" class="product photo product-item-photo block mx-auto mb-3 " tabindex="-1">
<img class="hover:shadow-sm object-contain product-image-photo" x-data="" @update-gallery-4353.window="$root.src = $event.detail" src="https://swisspackag.test.mediadivision.ch/media/catalog/product/cache/6ff2493bc04edee855db9d8f5dd1d705/6/1/610.120_001.jpg" loading="lazy" width="300" height="300" alt="Druckverschlussbeutel 200 x 300 mm, 50 mµ, mit Rezyklatanteil, transparent" title="Druckverschlussbeutel 200 x 300 mm, 50 mµ, mit Rezyklatanteil, transparent">
</a>
<div class="product-info flex-col flex grow ">
<div class=" leading-tight mt-2 mb-1 items-center justify-center text-primary-darker font-semibold text-lg text-left ">
<a class="product-item-link" href="https://swisspackag.test.mediadivision.ch/catalog/product/view/id/4353/s/druckverschlussbeutel-200-x-300-mm-50-m-mit-rezyklatanteil-transparent/" :id="`slide-desc-4353-${$id('slider-id')}`">
Druckverschlussbeutel 200 x 300 mm, 50 mµ, mit Rezyklatanteil, transparent </a>
</div>
<div class="py-0 ">
<script>
'use strict';
function amNotificationProductViewComponent_4353() {
return {
isAvailable: "1",
isAvailableConfigurableSimple: true,
isOutofstockConfigurable: "1",
title: "Verfügbarkeit",
options: {},
productIndex: "4353",
hideAddToCartBtn: "",
notificationLabel: "Benachrichtigen Sie mich, wenn das Produkt wieder auf Lager ist",
productId: "4353",
/**
* Overridden method for Product Alert View Model to output url according to product id in js
*
* @param productIndex
* @param type
* @returns {*}
*/
getSubscriptionUrl(productIndex, type) {
const urlParts = ['xnotif/email/',
type, '/product_id/',
productIndex,
(parseInt(productIndex) !== parseInt(this.productId)) ? '/parent_id/' + this.productId : '', '/uenc/', 'aHR0cHM6Ly9zd2lzc3BhY2thZy50ZXN0Lm1lZGlhZGl2aXNpb24uY2gv'
];
return BASE_URL + urlParts.join('');
},
getSimpleProduct(data, el) {
let children = JSON.parse('[]');
/**
* hide addtocart button if simple for configurable product is out of stock
*/
window.addEventListener('configurable-select-changed', (event) => {
let componentElement = document.querySelector('[x-data="amNotificationProductViewComponent_' + event.detail.productId + '()"]') || document.querySelector('#stock_notification_' + event.detail.productId);
let parentElement = componentElement.closest('.product-info');
this.hideAddToCartBtn = parentElement.querySelector('.btn.btn-primary:not(.subscribe-button)');
});
//for pdp only
window.addEventListener('configurable-selection-changed', (event) => {
const addToCartButton = document.getElementById('product-addtocart-button')?.closest('div');
if (addToCartButton) {
addToCartButton.style.display = this.isAvailableConfigurableSimple ? 'flex' : 'none';
}
});
const swatchesComponent = (document.querySelector('[x-data="initConfigurableSwatchOptions_' + data.productId + '()"]') || document.querySelector('[x-data="initAmastyXnotifCatalogSwatchesMixin_' + data.productId + '()"]') || document
.querySelector('[x-data="initAmastyCustomStockStatusOptions_' + data.productId + '()"]'));
const swatchesCount = swatchesComponent?.querySelector('div')?.children?.length || 0;
for (const [key, value] of Object.entries(children[data.productIndex] || {})) {
const previousIndex = this.productIndex;
this.productIndex = data.productIndex;
if (Object.keys(data.selectedValues).length >= swatchesCount) {
this.isAvailable = Number(value);
this.isAvailableConfigurableSimple = Number(value);
}
if (this.hideAddToCartBtn) {
this.hideAddToCartBtn.style.display = !this.isAvailable ? 'none' : 'flex';
}
// plp duplicating indexes case
if (el && (previousIndex === this.productIndex) && !this.isAvailable) {
el.closest('.product-info').querySelector('.btn.btn-primary:not(.subscribe-button)').style.display = 'none';
}
}
},
getAvailable() {
return this.options = {
additionalClass: this.isAvailable ? 'bg-green-500' : 'bg-red-500',
label: this.isAvailable ? 'Auf Lager' : 'Nicht lieferbar',
categoryNotificationLabel: this.isAvailable ? '' : this.notificationLabel,
};
}
}
}
</script>
<!--
<div x-data="{
...amNotificationProductViewComponent_4353(),
...amXnotifSubscribeComponentList_4353()
}"
x-on:configurable-select-changed.window="getSimpleProduct($event.detail, $el)"
x-show="getAvailable()"
id="stock_notification_4353"
class="text-right relative">
<p class="flex items-center justify-center align-middle available gap-x-2 stock" :title="title">
<span class="w-3 h-3 rounded-full flex-shrink-0" :class="options.additionalClass"></span>
<span x-text="options.label"></span>
</p>
</div> -->
<script>
'use strict';
function amXnotifSubscribeComponentList_4353() {
return {
mutationStockSubscription: `mutation AmxnotifStockSubscribe($input: AmxnotifSubscribeInput) {
AmxnotifStockSubscribe(input: $input) {
response_message
}
}`,
isInStock: '1',
isConfigurable: '',
productIdentifier: '4353',
isValid: true,
buttonDisabled: false,
getMessages(type, message) {
return typeof window.dispatchMessages !== "undefined" && window.dispatchMessages(
[{
type: type,
text: message
}]);
},
fetchSubscribe(productId) {
let variables = {
input: {
product_uid: btoa(productId),
parent_uid: this.isConfigurable ? btoa(this.productIdentifier) : '',
}
};
this.buttonDisabled = true;
fetch(BASE_URL + 'graphql', {
method: 'POST',
headers: {
'Store': 'default',
'Content-Type': 'application/json',
},
body: JSON.stringify({
query: this.mutationStockSubscription,
variables
}),
mode: "cors",
credentials: "include"
}).then((response) => response.json()).then((result) => {
if (result?.data?.AmxnotifStockSubscribe) {
this.getMessages("success", result.data.AmxnotifStockSubscribe.response_message);
} else {
let message = result?.errors ? result.errors[0].message : "Es ist ein Fehler aufgetreten.";
this.getMessages("error", message)
}
if (this.isConfigurable) {
setTimeout(() => {
window.dispatchEvent(new Event('showAmLoader'));
window.location.reload()
}, 2000)
}
}).finally(() => {
this.buttonDisabled = false;
})
}
}
}
</script>
</div>
<script>
function initPriceBox__66af3690bb831() {
return {
updatePrice(priceData) {
const regularPriceLabel = this.$root.querySelector('.normal-price .price-label');
const regularPriceElement = this.$root.querySelector('.normal-price [data-price-type=finalPrice].price-wrapper .price');
const basePriceElement = this.$root.querySelector('.normal-price [data-price-type=basePrice].price-wrapper .price');
if (priceData.finalPrice.amount < priceData.oldPrice.amount) {
regularPriceLabel.classList.add('hidden');
} else {
regularPriceLabel.classList.remove('hidden');
}
regularPriceElement && (regularPriceElement.innerText = hyva.formatPrice(priceData.finalPrice.amount));
basePriceElement && (basePriceElement.innerText = hyva.formatPrice(priceData.basePrice.amount));
}
}
}
</script>
<div class="pt-1 text-gray-900 flex " x-data="initPriceBox__66af3690bb831()" @update-prices-4353.window="updatePrice($event.detail);" x-defer="intersect" x-ignore="">
<div class="price-box price-final_price" data-role="priceBox" data-product-id="4353" data-price-box="product-id-4353">
<a href="https://swisspackag.test.mediadivision.ch/catalog/product/view/id/4353/s/druckverschlussbeutel-200-x-300-mm-50-m-mit-rezyklatanteil-transparent/" class="minimal-price-link font-bold">
<span x-data="" x-id="['4353']" class="price-container price-final_price tax weee" x-defer="intersect" x-ignore="">
<span class="price-label">Ab</span>
<span :id="$id('4353')" data-price-amount="69.3" data-price-type="" class="price-wrapper ">CHF 69.30</span>
</span>
</a>
</div>
<span class="text-gray-400"> /1000 Stk.</span>
</div>
<div class="mt-auto pt-0 flex flex-wrap justify-center items-center">
<button class="absolute right-3 w-auto btn btn-card justify-center text-sm transition
mr-auto" aria-label="In den Warenkorb Druckverschlussbeutel 200 x 300 mm, 50 mµ, mit Rezyklatanteil, transparent">
<img width="30" src="https://swisspackag.test.mediadivision.ch/static/version1722344383/frontend/MediaDivision/swisspack-hyva-theme/de_CH/images/header/warenkorb_light.svg">
<span class="ml-2 inline md:ml-0 md:hidden lg:ml-2 lg:inline">
</span>
</button>
<div class="absolute top-2 -left-10 flex flex-col gap-2 addto-icons">
<button x-data="initWishlist()" @click.prevent="addToWishlist(4353)" aria-label="Zur Merkliste hinzufügen Druckverschlussbeutel 200 x 300 mm, 50 mµ, mit Rezyklatanteil, transparent" type="button"
class="px-4 rounded-r-full h-7 bg-primary-lighter p-0 border-0 inline-flex shrink-0 items-center text-gray-500 hover:text-red-600 ml-2" x-defer="intersect" x-ignore="">
<img width="13" src="https://swisspackag.test.mediadivision.ch/static/version1722344383/frontend/MediaDivision/swisspack-hyva-theme/de_CH/images/header/merkliste.svg">
<span class="text-xs ml-2 max-md:hidden">Merken</span>
</button>
<button x-data="initCompareOnProductList()" @click.prevent="addToCompare(4353)" aria-label="Zur Vergleichsliste hinzufügen Druckverschlussbeutel 200 x 300 mm, 50 mµ, mit Rezyklatanteil, transparent" type="button"
class="px-4 rounded-r-full h-7 bg-primary-lighter p-0 border-0 inline-flex shrink-0 items-center text-gray-500 hover:text-red-600 ml-2" x-defer="intersect" x-ignore="">
<img width="13" src="https://swisspackag.test.mediadivision.ch/static/version1722344383/frontend/MediaDivision/swisspack-hyva-theme/de_CH/images/header/vergleichen.svg">
<span class="text-xs ml-2 max-md:hidden">Vergleichen</span>
</button>
</div>
</div>
</div>
</form>
POST https://swisspackag.test.mediadivision.ch/checkout/cart/add/uenc/%25uenc%25/product/4352/
<form method="post" action="https://swisspackag.test.mediadivision.ch/checkout/cart/add/uenc/%25uenc%25/product/4352/"
class="relative item product product-item product_addtocart_form !left-0 card card-interactive flex flex-col w-full h-full glider-slide right-15" data-gslide="18" style="height: auto; width: 283px;">
<input name="form_key" type="hidden" value="89Mcr1BgikEtQYvn"> <input type="hidden" name="product" value="4352">
<a href="https://swisspackag.test.mediadivision.ch/catalog/product/view/id/4352/s/druckverschlussbeutel-160-x-220-mm-50-m-mit-rundloch-lebensmittelecht/" class="product photo product-item-photo block mx-auto mb-3 " tabindex="-1">
<img class="hover:shadow-sm object-contain product-image-photo" x-data="" @update-gallery-4352.window="$root.src = $event.detail" src="https://swisspackag.test.mediadivision.ch/media/catalog/product/cache/6ff2493bc04edee855db9d8f5dd1d705/6/1/610.100_001.jpg" loading="lazy" width="300" height="300" alt="Druckverschlussbeutel 160 x 220 mm, 50 mµ, mit Rundloch, lebensmittelecht" title="Druckverschlussbeutel 160 x 220 mm, 50 mµ, mit Rundloch, lebensmittelecht">
</a>
<div class="product-info flex-col flex grow ">
<div class=" leading-tight mt-2 mb-1 items-center justify-center text-primary-darker font-semibold text-lg text-left ">
<a class="product-item-link" href="https://swisspackag.test.mediadivision.ch/catalog/product/view/id/4352/s/druckverschlussbeutel-160-x-220-mm-50-m-mit-rundloch-lebensmittelecht/" :id="`slide-desc-4352-${$id('slider-id')}`">
Druckverschlussbeutel 160 x 220 mm, 50 mµ, mit Rundloch, lebensmittelecht </a>
</div>
<div class="py-0 ">
<script>
'use strict';
function amNotificationProductViewComponent_4352() {
return {
isAvailable: "1",
isAvailableConfigurableSimple: true,
isOutofstockConfigurable: "1",
title: "Verfügbarkeit",
options: {},
productIndex: "4352",
hideAddToCartBtn: "",
notificationLabel: "Benachrichtigen Sie mich, wenn das Produkt wieder auf Lager ist",
productId: "4352",
/**
* Overridden method for Product Alert View Model to output url according to product id in js
*
* @param productIndex
* @param type
* @returns {*}
*/
getSubscriptionUrl(productIndex, type) {
const urlParts = ['xnotif/email/',
type, '/product_id/',
productIndex,
(parseInt(productIndex) !== parseInt(this.productId)) ? '/parent_id/' + this.productId : '', '/uenc/', 'aHR0cHM6Ly9zd2lzc3BhY2thZy50ZXN0Lm1lZGlhZGl2aXNpb24uY2gv'
];
return BASE_URL + urlParts.join('');
},
getSimpleProduct(data, el) {
let children = JSON.parse('[]');
/**
* hide addtocart button if simple for configurable product is out of stock
*/
window.addEventListener('configurable-select-changed', (event) => {
let componentElement = document.querySelector('[x-data="amNotificationProductViewComponent_' + event.detail.productId + '()"]') || document.querySelector('#stock_notification_' + event.detail.productId);
let parentElement = componentElement.closest('.product-info');
this.hideAddToCartBtn = parentElement.querySelector('.btn.btn-primary:not(.subscribe-button)');
});
//for pdp only
window.addEventListener('configurable-selection-changed', (event) => {
const addToCartButton = document.getElementById('product-addtocart-button')?.closest('div');
if (addToCartButton) {
addToCartButton.style.display = this.isAvailableConfigurableSimple ? 'flex' : 'none';
}
});
const swatchesComponent = (document.querySelector('[x-data="initConfigurableSwatchOptions_' + data.productId + '()"]') || document.querySelector('[x-data="initAmastyXnotifCatalogSwatchesMixin_' + data.productId + '()"]') || document
.querySelector('[x-data="initAmastyCustomStockStatusOptions_' + data.productId + '()"]'));
const swatchesCount = swatchesComponent?.querySelector('div')?.children?.length || 0;
for (const [key, value] of Object.entries(children[data.productIndex] || {})) {
const previousIndex = this.productIndex;
this.productIndex = data.productIndex;
if (Object.keys(data.selectedValues).length >= swatchesCount) {
this.isAvailable = Number(value);
this.isAvailableConfigurableSimple = Number(value);
}
if (this.hideAddToCartBtn) {
this.hideAddToCartBtn.style.display = !this.isAvailable ? 'none' : 'flex';
}
// plp duplicating indexes case
if (el && (previousIndex === this.productIndex) && !this.isAvailable) {
el.closest('.product-info').querySelector('.btn.btn-primary:not(.subscribe-button)').style.display = 'none';
}
}
},
getAvailable() {
return this.options = {
additionalClass: this.isAvailable ? 'bg-green-500' : 'bg-red-500',
label: this.isAvailable ? 'Auf Lager' : 'Nicht lieferbar',
categoryNotificationLabel: this.isAvailable ? '' : this.notificationLabel,
};
}
}
}
</script>
<!--
<div x-data="{
...amNotificationProductViewComponent_4352(),
...amXnotifSubscribeComponentList_4352()
}"
x-on:configurable-select-changed.window="getSimpleProduct($event.detail, $el)"
x-show="getAvailable()"
id="stock_notification_4352"
class="text-right relative">
<p class="flex items-center justify-center align-middle available gap-x-2 stock" :title="title">
<span class="w-3 h-3 rounded-full flex-shrink-0" :class="options.additionalClass"></span>
<span x-text="options.label"></span>
</p>
</div> -->
<script>
'use strict';
function amXnotifSubscribeComponentList_4352() {
return {
mutationStockSubscription: `mutation AmxnotifStockSubscribe($input: AmxnotifSubscribeInput) {
AmxnotifStockSubscribe(input: $input) {
response_message
}
}`,
isInStock: '1',
isConfigurable: '',
productIdentifier: '4352',
isValid: true,
buttonDisabled: false,
getMessages(type, message) {
return typeof window.dispatchMessages !== "undefined" && window.dispatchMessages(
[{
type: type,
text: message
}]);
},
fetchSubscribe(productId) {
let variables = {
input: {
product_uid: btoa(productId),
parent_uid: this.isConfigurable ? btoa(this.productIdentifier) : '',
}
};
this.buttonDisabled = true;
fetch(BASE_URL + 'graphql', {
method: 'POST',
headers: {
'Store': 'default',
'Content-Type': 'application/json',
},
body: JSON.stringify({
query: this.mutationStockSubscription,
variables
}),
mode: "cors",
credentials: "include"
}).then((response) => response.json()).then((result) => {
if (result?.data?.AmxnotifStockSubscribe) {
this.getMessages("success", result.data.AmxnotifStockSubscribe.response_message);
} else {
let message = result?.errors ? result.errors[0].message : "Es ist ein Fehler aufgetreten.";
this.getMessages("error", message)
}
if (this.isConfigurable) {
setTimeout(() => {
window.dispatchEvent(new Event('showAmLoader'));
window.location.reload()
}, 2000)
}
}).finally(() => {
this.buttonDisabled = false;
})
}
}
}
</script>
</div>
<script>
function initPriceBox__66af3690c2fcc() {
return {
updatePrice(priceData) {
const regularPriceLabel = this.$root.querySelector('.normal-price .price-label');
const regularPriceElement = this.$root.querySelector('.normal-price [data-price-type=finalPrice].price-wrapper .price');
const basePriceElement = this.$root.querySelector('.normal-price [data-price-type=basePrice].price-wrapper .price');
if (priceData.finalPrice.amount < priceData.oldPrice.amount) {
regularPriceLabel.classList.add('hidden');
} else {
regularPriceLabel.classList.remove('hidden');
}
regularPriceElement && (regularPriceElement.innerText = hyva.formatPrice(priceData.finalPrice.amount));
basePriceElement && (basePriceElement.innerText = hyva.formatPrice(priceData.basePrice.amount));
}
}
}
</script>
<div class="pt-1 text-gray-900 flex " x-data="initPriceBox__66af3690c2fcc()" @update-prices-4352.window="updatePrice($event.detail);" x-defer="intersect" x-ignore="">
<div class="price-box price-final_price" data-role="priceBox" data-product-id="4352" data-price-box="product-id-4352">
<a href="https://swisspackag.test.mediadivision.ch/catalog/product/view/id/4352/s/druckverschlussbeutel-160-x-220-mm-50-m-mit-rundloch-lebensmittelecht/" class="minimal-price-link font-bold">
<span x-data="" x-id="['4352']" class="price-container price-final_price tax weee" x-defer="intersect" x-ignore="">
<span class="price-label">Ab</span>
<span :id="$id('4352')" data-price-amount="71.35" data-price-type="" class="price-wrapper ">CHF 71.35</span>
</span>
</a>
</div>
</div>
<div class="mt-auto pt-0 flex flex-wrap justify-center items-center">
<button class="absolute right-3 w-auto btn btn-card justify-center text-sm transition
mr-auto" aria-label="In den Warenkorb Druckverschlussbeutel 160 x 220 mm, 50 mµ, mit Rundloch, lebensmittelecht">
<img width="30" src="https://swisspackag.test.mediadivision.ch/static/version1722344383/frontend/MediaDivision/swisspack-hyva-theme/de_CH/images/header/warenkorb_light.svg">
<span class="ml-2 inline md:ml-0 md:hidden lg:ml-2 lg:inline">
</span>
</button>
<div class="absolute top-2 -left-10 flex flex-col gap-2 addto-icons">
<button x-data="initWishlist()" @click.prevent="addToWishlist(4352)" aria-label="Zur Merkliste hinzufügen Druckverschlussbeutel 160 x 220 mm, 50 mµ, mit Rundloch, lebensmittelecht" type="button"
class="px-4 rounded-r-full h-7 bg-primary-lighter p-0 border-0 inline-flex shrink-0 items-center text-gray-500 hover:text-red-600 ml-2" x-defer="intersect" x-ignore="">
<img width="13" src="https://swisspackag.test.mediadivision.ch/static/version1722344383/frontend/MediaDivision/swisspack-hyva-theme/de_CH/images/header/merkliste.svg">
<span class="text-xs ml-2 max-md:hidden">Merken</span>
</button>
<button x-data="initCompareOnProductList()" @click.prevent="addToCompare(4352)" aria-label="Zur Vergleichsliste hinzufügen Druckverschlussbeutel 160 x 220 mm, 50 mµ, mit Rundloch, lebensmittelecht" type="button"
class="px-4 rounded-r-full h-7 bg-primary-lighter p-0 border-0 inline-flex shrink-0 items-center text-gray-500 hover:text-red-600 ml-2" x-defer="intersect" x-ignore="">
<img width="13" src="https://swisspackag.test.mediadivision.ch/static/version1722344383/frontend/MediaDivision/swisspack-hyva-theme/de_CH/images/header/vergleichen.svg">
<span class="text-xs ml-2 max-md:hidden">Vergleichen</span>
</button>
</div>
</div>
</div>
</form>
POST https://swisspackag.test.mediadivision.ch/checkout/cart/add/uenc/%25uenc%25/product/1263/
<form method="post" action="https://swisspackag.test.mediadivision.ch/checkout/cart/add/uenc/%25uenc%25/product/1263/"
class="relative item product product-item product_addtocart_form !left-0 card card-interactive flex flex-col w-full h-full glider-slide right-16" data-gslide="19" style="height: auto; width: 283px;">
<input name="form_key" type="hidden" value="89Mcr1BgikEtQYvn"> <input type="hidden" name="product" value="1263">
<a href="https://swisspackag.test.mediadivision.ch/catalog/product/view/id/1263/s/druckverschlussbeutel-100-x-150-mm-50-m-mit-beschriftungsfeld-lebensmittelecht/" class="product photo product-item-photo block mx-auto mb-3 " tabindex="-1">
<img class="hover:shadow-sm object-contain product-image-photo" x-data="" @update-gallery-1263.window="$root.src = $event.detail" src="https://swisspackag.test.mediadivision.ch/media/catalog/product/cache/6ff2493bc04edee855db9d8f5dd1d705/6/1/610.017_001.jpg" loading="lazy" width="300" height="300" alt="Druckverschlussbeutel 100 x 150 mm, 50 mµ, mit Beschriftungsfeld, lebensmittelecht" title="Druckverschlussbeutel 100 x 150 mm, 50 mµ, mit Beschriftungsfeld, lebensmittelecht">
</a>
<div class="product-info flex-col flex grow ">
<div class=" leading-tight mt-2 mb-1 items-center justify-center text-primary-darker font-semibold text-lg text-left ">
<a class="product-item-link" href="https://swisspackag.test.mediadivision.ch/catalog/product/view/id/1263/s/druckverschlussbeutel-100-x-150-mm-50-m-mit-beschriftungsfeld-lebensmittelecht/" :id="`slide-desc-1263-${$id('slider-id')}`">
Druckverschlussbeutel 100 x 150 mm, 50 mµ, mit Beschriftungsfeld, lebensmittelecht </a>
</div>
<div class="py-0 ">
<script>
'use strict';
function amNotificationProductViewComponent_1263() {
return {
isAvailable: "1",
isAvailableConfigurableSimple: true,
isOutofstockConfigurable: "1",
title: "Verfügbarkeit",
options: {},
productIndex: "1263",
hideAddToCartBtn: "",
notificationLabel: "Benachrichtigen Sie mich, wenn das Produkt wieder auf Lager ist",
productId: "1263",
/**
* Overridden method for Product Alert View Model to output url according to product id in js
*
* @param productIndex
* @param type
* @returns {*}
*/
getSubscriptionUrl(productIndex, type) {
const urlParts = ['xnotif/email/',
type, '/product_id/',
productIndex,
(parseInt(productIndex) !== parseInt(this.productId)) ? '/parent_id/' + this.productId : '', '/uenc/', 'aHR0cHM6Ly9zd2lzc3BhY2thZy50ZXN0Lm1lZGlhZGl2aXNpb24uY2gv'
];
return BASE_URL + urlParts.join('');
},
getSimpleProduct(data, el) {
let children = JSON.parse('[]');
/**
* hide addtocart button if simple for configurable product is out of stock
*/
window.addEventListener('configurable-select-changed', (event) => {
let componentElement = document.querySelector('[x-data="amNotificationProductViewComponent_' + event.detail.productId + '()"]') || document.querySelector('#stock_notification_' + event.detail.productId);
let parentElement = componentElement.closest('.product-info');
this.hideAddToCartBtn = parentElement.querySelector('.btn.btn-primary:not(.subscribe-button)');
});
//for pdp only
window.addEventListener('configurable-selection-changed', (event) => {
const addToCartButton = document.getElementById('product-addtocart-button')?.closest('div');
if (addToCartButton) {
addToCartButton.style.display = this.isAvailableConfigurableSimple ? 'flex' : 'none';
}
});
const swatchesComponent = (document.querySelector('[x-data="initConfigurableSwatchOptions_' + data.productId + '()"]') || document.querySelector('[x-data="initAmastyXnotifCatalogSwatchesMixin_' + data.productId + '()"]') || document
.querySelector('[x-data="initAmastyCustomStockStatusOptions_' + data.productId + '()"]'));
const swatchesCount = swatchesComponent?.querySelector('div')?.children?.length || 0;
for (const [key, value] of Object.entries(children[data.productIndex] || {})) {
const previousIndex = this.productIndex;
this.productIndex = data.productIndex;
if (Object.keys(data.selectedValues).length >= swatchesCount) {
this.isAvailable = Number(value);
this.isAvailableConfigurableSimple = Number(value);
}
if (this.hideAddToCartBtn) {
this.hideAddToCartBtn.style.display = !this.isAvailable ? 'none' : 'flex';
}
// plp duplicating indexes case
if (el && (previousIndex === this.productIndex) && !this.isAvailable) {
el.closest('.product-info').querySelector('.btn.btn-primary:not(.subscribe-button)').style.display = 'none';
}
}
},
getAvailable() {
return this.options = {
additionalClass: this.isAvailable ? 'bg-green-500' : 'bg-red-500',
label: this.isAvailable ? 'Auf Lager' : 'Nicht lieferbar',
categoryNotificationLabel: this.isAvailable ? '' : this.notificationLabel,
};
}
}
}
</script>
<!--
<div x-data="{
...amNotificationProductViewComponent_1263(),
...amXnotifSubscribeComponentList_1263()
}"
x-on:configurable-select-changed.window="getSimpleProduct($event.detail, $el)"
x-show="getAvailable()"
id="stock_notification_1263"
class="text-right relative">
<p class="flex items-center justify-center align-middle available gap-x-2 stock" :title="title">
<span class="w-3 h-3 rounded-full flex-shrink-0" :class="options.additionalClass"></span>
<span x-text="options.label"></span>
</p>
</div> -->
<script>
'use strict';
function amXnotifSubscribeComponentList_1263() {
return {
mutationStockSubscription: `mutation AmxnotifStockSubscribe($input: AmxnotifSubscribeInput) {
AmxnotifStockSubscribe(input: $input) {
response_message
}
}`,
isInStock: '1',
isConfigurable: '',
productIdentifier: '1263',
isValid: true,
buttonDisabled: false,
getMessages(type, message) {
return typeof window.dispatchMessages !== "undefined" && window.dispatchMessages(
[{
type: type,
text: message
}]);
},
fetchSubscribe(productId) {
let variables = {
input: {
product_uid: btoa(productId),
parent_uid: this.isConfigurable ? btoa(this.productIdentifier) : '',
}
};
this.buttonDisabled = true;
fetch(BASE_URL + 'graphql', {
method: 'POST',
headers: {
'Store': 'default',
'Content-Type': 'application/json',
},
body: JSON.stringify({
query: this.mutationStockSubscription,
variables
}),
mode: "cors",
credentials: "include"
}).then((response) => response.json()).then((result) => {
if (result?.data?.AmxnotifStockSubscribe) {
this.getMessages("success", result.data.AmxnotifStockSubscribe.response_message);
} else {
let message = result?.errors ? result.errors[0].message : "Es ist ein Fehler aufgetreten.";
this.getMessages("error", message)
}
if (this.isConfigurable) {
setTimeout(() => {
window.dispatchEvent(new Event('showAmLoader'));
window.location.reload()
}, 2000)
}
}).finally(() => {
this.buttonDisabled = false;
})
}
}
}
</script>
</div>
<script>
function initPriceBox__66af3690c797a() {
return {
updatePrice(priceData) {
const regularPriceLabel = this.$root.querySelector('.normal-price .price-label');
const regularPriceElement = this.$root.querySelector('.normal-price [data-price-type=finalPrice].price-wrapper .price');
const basePriceElement = this.$root.querySelector('.normal-price [data-price-type=basePrice].price-wrapper .price');
if (priceData.finalPrice.amount < priceData.oldPrice.amount) {
regularPriceLabel.classList.add('hidden');
} else {
regularPriceLabel.classList.remove('hidden');
}
regularPriceElement && (regularPriceElement.innerText = hyva.formatPrice(priceData.finalPrice.amount));
basePriceElement && (basePriceElement.innerText = hyva.formatPrice(priceData.basePrice.amount));
}
}
}
</script>
<div class="pt-1 text-gray-900 flex " x-data="initPriceBox__66af3690c797a()" @update-prices-1263.window="updatePrice($event.detail);" x-defer="intersect" x-ignore="">
<div class="price-box price-final_price" data-role="priceBox" data-product-id="1263" data-price-box="product-id-1263">
<a href="https://swisspackag.test.mediadivision.ch/catalog/product/view/id/1263/s/druckverschlussbeutel-100-x-150-mm-50-m-mit-beschriftungsfeld-lebensmittelecht/" class="minimal-price-link font-bold">
<span x-data="" x-id="['1263']" class="price-container price-final_price tax weee" x-defer="intersect" x-ignore="">
<span class="price-label">Ab</span>
<span :id="$id('1263')" data-price-amount="27.3" data-price-type="" class="price-wrapper ">CHF 27.30</span>
</span>
</a>
</div>
<span class="text-gray-400"> /1000 Stk.</span>
</div>
<div class="mt-auto pt-0 flex flex-wrap justify-center items-center">
<button class="absolute right-3 w-auto btn btn-card justify-center text-sm transition
mr-auto" aria-label="In den Warenkorb Druckverschlussbeutel 100 x 150 mm, 50 mµ, mit Beschriftungsfeld, lebensmittelecht">
<img width="30" src="https://swisspackag.test.mediadivision.ch/static/version1722344383/frontend/MediaDivision/swisspack-hyva-theme/de_CH/images/header/warenkorb_light.svg">
<span class="ml-2 inline md:ml-0 md:hidden lg:ml-2 lg:inline">
</span>
</button>
<div class="absolute top-2 -left-10 flex flex-col gap-2 addto-icons">
<button x-data="initWishlist()" @click.prevent="addToWishlist(1263)" aria-label="Zur Merkliste hinzufügen Druckverschlussbeutel 100 x 150 mm, 50 mµ, mit Beschriftungsfeld, lebensmittelecht" type="button"
class="px-4 rounded-r-full h-7 bg-primary-lighter p-0 border-0 inline-flex shrink-0 items-center text-gray-500 hover:text-red-600 ml-2" x-defer="intersect" x-ignore="">
<img width="13" src="https://swisspackag.test.mediadivision.ch/static/version1722344383/frontend/MediaDivision/swisspack-hyva-theme/de_CH/images/header/merkliste.svg">
<span class="text-xs ml-2 max-md:hidden">Merken</span>
</button>
<button x-data="initCompareOnProductList()" @click.prevent="addToCompare(1263)" aria-label="Zur Vergleichsliste hinzufügen Druckverschlussbeutel 100 x 150 mm, 50 mµ, mit Beschriftungsfeld, lebensmittelecht" type="button"
class="px-4 rounded-r-full h-7 bg-primary-lighter p-0 border-0 inline-flex shrink-0 items-center text-gray-500 hover:text-red-600 ml-2" x-defer="intersect" x-ignore="">
<img width="13" src="https://swisspackag.test.mediadivision.ch/static/version1722344383/frontend/MediaDivision/swisspack-hyva-theme/de_CH/images/header/vergleichen.svg">
<span class="text-xs ml-2 max-md:hidden">Vergleichen</span>
</button>
</div>
</div>
</div>
</form>
POST https://swisspackag.test.mediadivision.ch/checkout/cart/add/uenc/%25uenc%25/product/4428/
<form method="post" action="https://swisspackag.test.mediadivision.ch/checkout/cart/add/uenc/%25uenc%25/product/4428/"
class="relative item product product-item product_addtocart_form !left-0 card card-interactive flex flex-col w-full h-full glider-slide active left-2 visible" data-gslide="0" style="height: auto; width: 283px;">
<input name="form_key" type="hidden" value="89Mcr1BgikEtQYvn"> <input type="hidden" name="product" value="4428">
<a href="https://swisspackag.test.mediadivision.ch/catalog/product/view/id/4428/s/sicherheitspackband-5051r-50-mm-rot-geoffnet/" class="product photo product-item-photo block mx-auto mb-3 " tabindex="-1">
<img class="hover:shadow-sm object-contain product-image-photo" x-data="" @update-gallery-4428.window="$root.src = $event.detail" src="https://swisspackag.test.mediadivision.ch/media/catalog/product/cache/6ff2493bc04edee855db9d8f5dd1d705/5/0/5051r-0050-50_001.jpeg" loading="lazy" width="300" height="300" alt="Sicherheitspackband 5051R 50 mm rot 'geöffnet'" title="Sicherheitspackband 5051R 50 mm rot 'geöffnet'">
</a>
<div class="product-info flex-col flex grow ">
<div class=" leading-tight mt-2 mb-1 items-center justify-center text-primary-darker font-semibold text-lg text-left ">
<a class="product-item-link" href="https://swisspackag.test.mediadivision.ch/catalog/product/view/id/4428/s/sicherheitspackband-5051r-50-mm-rot-geoffnet/" :id="`slide-desc-4428-${$id('slider-id')}`">
Sicherheitspackband 5051R 50 mm rot 'geöffnet' </a>
</div>
<div class="py-0 ">
<script>
'use strict';
function amNotificationProductViewComponent_4428() {
return {
isAvailable: "1",
isAvailableConfigurableSimple: true,
isOutofstockConfigurable: "1",
title: "Verfügbarkeit",
options: {},
productIndex: "4428",
hideAddToCartBtn: "",
notificationLabel: "Benachrichtigen Sie mich, wenn das Produkt wieder auf Lager ist",
productId: "4428",
/**
* Overridden method for Product Alert View Model to output url according to product id in js
*
* @param productIndex
* @param type
* @returns {*}
*/
getSubscriptionUrl(productIndex, type) {
const urlParts = ['xnotif/email/',
type, '/product_id/',
productIndex,
(parseInt(productIndex) !== parseInt(this.productId)) ? '/parent_id/' + this.productId : '', '/uenc/', 'aHR0cHM6Ly9zd2lzc3BhY2thZy50ZXN0Lm1lZGlhZGl2aXNpb24uY2gv'
];
return BASE_URL + urlParts.join('');
},
getSimpleProduct(data, el) {
let children = JSON.parse('[]');
/**
* hide addtocart button if simple for configurable product is out of stock
*/
window.addEventListener('configurable-select-changed', (event) => {
let componentElement = document.querySelector('[x-data="amNotificationProductViewComponent_' + event.detail.productId + '()"]') || document.querySelector('#stock_notification_' + event.detail.productId);
let parentElement = componentElement.closest('.product-info');
this.hideAddToCartBtn = parentElement.querySelector('.btn.btn-primary:not(.subscribe-button)');
});
//for pdp only
window.addEventListener('configurable-selection-changed', (event) => {
const addToCartButton = document.getElementById('product-addtocart-button')?.closest('div');
if (addToCartButton) {
addToCartButton.style.display = this.isAvailableConfigurableSimple ? 'flex' : 'none';
}
});
const swatchesComponent = (document.querySelector('[x-data="initConfigurableSwatchOptions_' + data.productId + '()"]') || document.querySelector('[x-data="initAmastyXnotifCatalogSwatchesMixin_' + data.productId + '()"]') || document
.querySelector('[x-data="initAmastyCustomStockStatusOptions_' + data.productId + '()"]'));
const swatchesCount = swatchesComponent?.querySelector('div')?.children?.length || 0;
for (const [key, value] of Object.entries(children[data.productIndex] || {})) {
const previousIndex = this.productIndex;
this.productIndex = data.productIndex;
if (Object.keys(data.selectedValues).length >= swatchesCount) {
this.isAvailable = Number(value);
this.isAvailableConfigurableSimple = Number(value);
}
if (this.hideAddToCartBtn) {
this.hideAddToCartBtn.style.display = !this.isAvailable ? 'none' : 'flex';
}
// plp duplicating indexes case
if (el && (previousIndex === this.productIndex) && !this.isAvailable) {
el.closest('.product-info').querySelector('.btn.btn-primary:not(.subscribe-button)').style.display = 'none';
}
}
},
getAvailable() {
return this.options = {
additionalClass: this.isAvailable ? 'bg-green-500' : 'bg-red-500',
label: this.isAvailable ? 'Auf Lager' : 'Nicht lieferbar',
categoryNotificationLabel: this.isAvailable ? '' : this.notificationLabel,
};
}
}
}
</script>
<!--
<div x-data="{
...amNotificationProductViewComponent_4428(),
...amXnotifSubscribeComponentList_4428()
}"
x-on:configurable-select-changed.window="getSimpleProduct($event.detail, $el)"
x-show="getAvailable()"
id="stock_notification_4428"
class="text-right relative">
<p class="flex items-center justify-center align-middle available gap-x-2 stock" :title="title">
<span class="w-3 h-3 rounded-full flex-shrink-0" :class="options.additionalClass"></span>
<span x-text="options.label"></span>
</p>
</div> -->
<script>
'use strict';
function amXnotifSubscribeComponentList_4428() {
return {
mutationStockSubscription: `mutation AmxnotifStockSubscribe($input: AmxnotifSubscribeInput) {
AmxnotifStockSubscribe(input: $input) {
response_message
}
}`,
isInStock: '1',
isConfigurable: '',
productIdentifier: '4428',
isValid: true,
buttonDisabled: false,
getMessages(type, message) {
return typeof window.dispatchMessages !== "undefined" && window.dispatchMessages(
[{
type: type,
text: message
}]);
},
fetchSubscribe(productId) {
let variables = {
input: {
product_uid: btoa(productId),
parent_uid: this.isConfigurable ? btoa(this.productIdentifier) : '',
}
};
this.buttonDisabled = true;
fetch(BASE_URL + 'graphql', {
method: 'POST',
headers: {
'Store': 'default',
'Content-Type': 'application/json',
},
body: JSON.stringify({
query: this.mutationStockSubscription,
variables
}),
mode: "cors",
credentials: "include"
}).then((response) => response.json()).then((result) => {
if (result?.data?.AmxnotifStockSubscribe) {
this.getMessages("success", result.data.AmxnotifStockSubscribe.response_message);
} else {
let message = result?.errors ? result.errors[0].message : "Es ist ein Fehler aufgetreten.";
this.getMessages("error", message)
}
if (this.isConfigurable) {
setTimeout(() => {
window.dispatchEvent(new Event('showAmLoader'));
window.location.reload()
}, 2000)
}
}).finally(() => {
this.buttonDisabled = false;
})
}
}
}
</script>
</div>
<script>
function initPriceBox__66af3690d94f2() {
return {
updatePrice(priceData) {
const regularPriceLabel = this.$root.querySelector('.normal-price .price-label');
const regularPriceElement = this.$root.querySelector('.normal-price [data-price-type=finalPrice].price-wrapper .price');
const basePriceElement = this.$root.querySelector('.normal-price [data-price-type=basePrice].price-wrapper .price');
if (priceData.finalPrice.amount < priceData.oldPrice.amount) {
regularPriceLabel.classList.add('hidden');
} else {
regularPriceLabel.classList.remove('hidden');
}
regularPriceElement && (regularPriceElement.innerText = hyva.formatPrice(priceData.finalPrice.amount));
basePriceElement && (basePriceElement.innerText = hyva.formatPrice(priceData.basePrice.amount));
}
}
}
</script>
<div class="pt-1 text-gray-900 flex " x-data="initPriceBox__66af3690d94f2()" @update-prices-4428.window="updatePrice($event.detail);" x-defer="intersect" x-ignore="">
<div class="price-box price-final_price" data-role="priceBox" data-product-id="4428" data-price-box="product-id-4428">
<a href="https://swisspackag.test.mediadivision.ch/catalog/product/view/id/4428/s/sicherheitspackband-5051r-50-mm-rot-geoffnet/" class="minimal-price-link font-bold">
<span x-data="" x-id="['4428']" class="price-container price-final_price tax weee" x-defer="intersect" x-ignore="">
<span class="price-label">Ab</span>
<span :id="$id('4428')" data-price-amount="18.25" data-price-type="" class="price-wrapper ">CHF 18.25</span>
</span>
</a>
</div>
</div>
<div class="mt-auto pt-0 flex flex-wrap justify-center items-center">
<button class="absolute right-3 w-auto btn btn-card justify-center text-sm transition
mr-auto" aria-label="In den Warenkorb Sicherheitspackband 5051R 50 mm rot &#039;geöffnet&#039;">
<img width="30" src="https://swisspackag.test.mediadivision.ch/static/version1722344383/frontend/MediaDivision/swisspack-hyva-theme/de_CH/images/header/warenkorb_light.svg">
<span class="ml-2 inline md:ml-0 md:hidden lg:ml-2 lg:inline">
</span>
</button>
<div class="absolute top-2 -left-10 flex flex-col gap-2 addto-icons">
<button x-data="initWishlist()" @click.prevent="addToWishlist(4428)" aria-label="Zur Merkliste hinzufügen Sicherheitspackband 5051R 50 mm rot &#039;geöffnet&#039;" type="button"
class="px-4 rounded-r-full h-7 bg-primary-lighter p-0 border-0 inline-flex shrink-0 items-center text-gray-500 hover:text-red-600 ml-2" x-defer="intersect" x-ignore="">
<img width="13" src="https://swisspackag.test.mediadivision.ch/static/version1722344383/frontend/MediaDivision/swisspack-hyva-theme/de_CH/images/header/merkliste.svg">
<span class="text-xs ml-2 max-md:hidden">Merken</span>
</button>
<button x-data="initCompareOnProductList()" @click.prevent="addToCompare(4428)" aria-label="Zur Vergleichsliste hinzufügen Sicherheitspackband 5051R 50 mm rot &#039;geöffnet&#039;" type="button"
class="px-4 rounded-r-full h-7 bg-primary-lighter p-0 border-0 inline-flex shrink-0 items-center text-gray-500 hover:text-red-600 ml-2" x-defer="intersect" x-ignore="">
<img width="13" src="https://swisspackag.test.mediadivision.ch/static/version1722344383/frontend/MediaDivision/swisspack-hyva-theme/de_CH/images/header/vergleichen.svg">
<span class="text-xs ml-2 max-md:hidden">Vergleichen</span>
</button>
</div>
</div>
</div>
</form>
POST https://swisspackag.test.mediadivision.ch/checkout/cart/add/uenc/%25uenc%25/product/4427/
<form method="post" action="https://swisspackag.test.mediadivision.ch/checkout/cart/add/uenc/%25uenc%25/product/4427/"
class="relative item product product-item product_addtocart_form !left-0 card card-interactive flex flex-col w-full h-full glider-slide left-1 visible" data-gslide="1" style="height: auto; width: 283px;">
<input name="form_key" type="hidden" value="89Mcr1BgikEtQYvn"> <input type="hidden" name="product" value="4427">
<a href="https://swisspackag.test.mediadivision.ch/catalog/product/view/id/4427/s/packband-4591-50-mm-transparent/" class="product photo product-item-photo block mx-auto mb-3 " tabindex="-1">
<img class="hover:shadow-sm object-contain product-image-photo" x-data="" @update-gallery-4427.window="$root.src = $event.detail" src="https://swisspackag.test.mediadivision.ch/media/catalog/product/cache/6ff2493bc04edee855db9d8f5dd1d705/4/5/4591-0050-50_001.jpg" loading="lazy" width="300" height="300" alt="Packband 4591 50 mm transparent" title="Packband 4591 50 mm transparent">
</a>
<div class="product-info flex-col flex grow ">
<div class=" leading-tight mt-2 mb-1 items-center justify-center text-primary-darker font-semibold text-lg text-left ">
<a class="product-item-link" href="https://swisspackag.test.mediadivision.ch/catalog/product/view/id/4427/s/packband-4591-50-mm-transparent/" :id="`slide-desc-4427-${$id('slider-id')}`">
Packband 4591 50 mm transparent </a>
</div>
<div class="py-0 ">
<script>
'use strict';
function amNotificationProductViewComponent_4427() {
return {
isAvailable: "1",
isAvailableConfigurableSimple: true,
isOutofstockConfigurable: "1",
title: "Verfügbarkeit",
options: {},
productIndex: "4427",
hideAddToCartBtn: "",
notificationLabel: "Benachrichtigen Sie mich, wenn das Produkt wieder auf Lager ist",
productId: "4427",
/**
* Overridden method for Product Alert View Model to output url according to product id in js
*
* @param productIndex
* @param type
* @returns {*}
*/
getSubscriptionUrl(productIndex, type) {
const urlParts = ['xnotif/email/',
type, '/product_id/',
productIndex,
(parseInt(productIndex) !== parseInt(this.productId)) ? '/parent_id/' + this.productId : '', '/uenc/', 'aHR0cHM6Ly9zd2lzc3BhY2thZy50ZXN0Lm1lZGlhZGl2aXNpb24uY2gv'
];
return BASE_URL + urlParts.join('');
},
getSimpleProduct(data, el) {
let children = JSON.parse('[]');
/**
* hide addtocart button if simple for configurable product is out of stock
*/
window.addEventListener('configurable-select-changed', (event) => {
let componentElement = document.querySelector('[x-data="amNotificationProductViewComponent_' + event.detail.productId + '()"]') || document.querySelector('#stock_notification_' + event.detail.productId);
let parentElement = componentElement.closest('.product-info');
this.hideAddToCartBtn = parentElement.querySelector('.btn.btn-primary:not(.subscribe-button)');
});
//for pdp only
window.addEventListener('configurable-selection-changed', (event) => {
const addToCartButton = document.getElementById('product-addtocart-button')?.closest('div');
if (addToCartButton) {
addToCartButton.style.display = this.isAvailableConfigurableSimple ? 'flex' : 'none';
}
});
const swatchesComponent = (document.querySelector('[x-data="initConfigurableSwatchOptions_' + data.productId + '()"]') || document.querySelector('[x-data="initAmastyXnotifCatalogSwatchesMixin_' + data.productId + '()"]') || document
.querySelector('[x-data="initAmastyCustomStockStatusOptions_' + data.productId + '()"]'));
const swatchesCount = swatchesComponent?.querySelector('div')?.children?.length || 0;
for (const [key, value] of Object.entries(children[data.productIndex] || {})) {
const previousIndex = this.productIndex;
this.productIndex = data.productIndex;
if (Object.keys(data.selectedValues).length >= swatchesCount) {
this.isAvailable = Number(value);
this.isAvailableConfigurableSimple = Number(value);
}
if (this.hideAddToCartBtn) {
this.hideAddToCartBtn.style.display = !this.isAvailable ? 'none' : 'flex';
}
// plp duplicating indexes case
if (el && (previousIndex === this.productIndex) && !this.isAvailable) {
el.closest('.product-info').querySelector('.btn.btn-primary:not(.subscribe-button)').style.display = 'none';
}
}
},
getAvailable() {
return this.options = {
additionalClass: this.isAvailable ? 'bg-green-500' : 'bg-red-500',
label: this.isAvailable ? 'Auf Lager' : 'Nicht lieferbar',
categoryNotificationLabel: this.isAvailable ? '' : this.notificationLabel,
};
}
}
}
</script>
<!--
<div x-data="{
...amNotificationProductViewComponent_4427(),
...amXnotifSubscribeComponentList_4427()
}"
x-on:configurable-select-changed.window="getSimpleProduct($event.detail, $el)"
x-show="getAvailable()"
id="stock_notification_4427"
class="text-right relative">
<p class="flex items-center justify-center align-middle available gap-x-2 stock" :title="title">
<span class="w-3 h-3 rounded-full flex-shrink-0" :class="options.additionalClass"></span>
<span x-text="options.label"></span>
</p>
</div> -->
<script>
'use strict';
function amXnotifSubscribeComponentList_4427() {
return {
mutationStockSubscription: `mutation AmxnotifStockSubscribe($input: AmxnotifSubscribeInput) {
AmxnotifStockSubscribe(input: $input) {
response_message
}
}`,
isInStock: '1',
isConfigurable: '',
productIdentifier: '4427',
isValid: true,
buttonDisabled: false,
getMessages(type, message) {
return typeof window.dispatchMessages !== "undefined" && window.dispatchMessages(
[{
type: type,
text: message
}]);
},
fetchSubscribe(productId) {
let variables = {
input: {
product_uid: btoa(productId),
parent_uid: this.isConfigurable ? btoa(this.productIdentifier) : '',
}
};
this.buttonDisabled = true;
fetch(BASE_URL + 'graphql', {
method: 'POST',
headers: {
'Store': 'default',
'Content-Type': 'application/json',
},
body: JSON.stringify({
query: this.mutationStockSubscription,
variables
}),
mode: "cors",
credentials: "include"
}).then((response) => response.json()).then((result) => {
if (result?.data?.AmxnotifStockSubscribe) {
this.getMessages("success", result.data.AmxnotifStockSubscribe.response_message);
} else {
let message = result?.errors ? result.errors[0].message : "Es ist ein Fehler aufgetreten.";
this.getMessages("error", message)
}
if (this.isConfigurable) {
setTimeout(() => {
window.dispatchEvent(new Event('showAmLoader'));
window.location.reload()
}, 2000)
}
}).finally(() => {
this.buttonDisabled = false;
})
}
}
}
</script>
</div>
<script>
function initPriceBox__66af3690dde8a() {
return {
updatePrice(priceData) {
const regularPriceLabel = this.$root.querySelector('.normal-price .price-label');
const regularPriceElement = this.$root.querySelector('.normal-price [data-price-type=finalPrice].price-wrapper .price');
const basePriceElement = this.$root.querySelector('.normal-price [data-price-type=basePrice].price-wrapper .price');
if (priceData.finalPrice.amount < priceData.oldPrice.amount) {
regularPriceLabel.classList.add('hidden');
} else {
regularPriceLabel.classList.remove('hidden');
}
regularPriceElement && (regularPriceElement.innerText = hyva.formatPrice(priceData.finalPrice.amount));
basePriceElement && (basePriceElement.innerText = hyva.formatPrice(priceData.basePrice.amount));
}
}
}
</script>
<div class="pt-1 text-gray-900 flex " x-data="initPriceBox__66af3690dde8a()" @update-prices-4427.window="updatePrice($event.detail);" x-defer="intersect" x-ignore="">
<div class="price-box price-final_price" data-role="priceBox" data-product-id="4427" data-price-box="product-id-4427">
<a href="https://swisspackag.test.mediadivision.ch/catalog/product/view/id/4427/s/packband-4591-50-mm-transparent/" class="minimal-price-link font-bold">
<span x-data="" x-id="['4427']" class="price-container price-final_price tax weee" x-defer="intersect" x-ignore="">
<span class="price-label">Ab</span>
<span :id="$id('4427')" data-price-amount="11.8" data-price-type="" class="price-wrapper ">CHF 11.80</span>
</span>
</a>
</div>
</div>
<div class="mt-auto pt-0 flex flex-wrap justify-center items-center">
<button class="absolute right-3 w-auto btn btn-card justify-center text-sm transition
mr-auto" aria-label="In den Warenkorb Packband 4591 50 mm transparent">
<img width="30" src="https://swisspackag.test.mediadivision.ch/static/version1722344383/frontend/MediaDivision/swisspack-hyva-theme/de_CH/images/header/warenkorb_light.svg">
<span class="ml-2 inline md:ml-0 md:hidden lg:ml-2 lg:inline">
</span>
</button>
<div class="absolute top-2 -left-10 flex flex-col gap-2 addto-icons">
<button x-data="initWishlist()" @click.prevent="addToWishlist(4427)" aria-label="Zur Merkliste hinzufügen Packband 4591 50 mm transparent" type="button"
class="px-4 rounded-r-full h-7 bg-primary-lighter p-0 border-0 inline-flex shrink-0 items-center text-gray-500 hover:text-red-600 ml-2" x-defer="intersect" x-ignore="">
<img width="13" src="https://swisspackag.test.mediadivision.ch/static/version1722344383/frontend/MediaDivision/swisspack-hyva-theme/de_CH/images/header/merkliste.svg">
<span class="text-xs ml-2 max-md:hidden">Merken</span>
</button>
<button x-data="initCompareOnProductList()" @click.prevent="addToCompare(4427)" aria-label="Zur Vergleichsliste hinzufügen Packband 4591 50 mm transparent" type="button"
class="px-4 rounded-r-full h-7 bg-primary-lighter p-0 border-0 inline-flex shrink-0 items-center text-gray-500 hover:text-red-600 ml-2" x-defer="intersect" x-ignore="">
<img width="13" src="https://swisspackag.test.mediadivision.ch/static/version1722344383/frontend/MediaDivision/swisspack-hyva-theme/de_CH/images/header/vergleichen.svg">
<span class="text-xs ml-2 max-md:hidden">Vergleichen</span>
</button>
</div>
</div>
</div>
</form>
POST https://swisspackag.test.mediadivision.ch/checkout/cart/add/uenc/%25uenc%25/product/4426/
<form method="post" action="https://swisspackag.test.mediadivision.ch/checkout/cart/add/uenc/%25uenc%25/product/4426/"
class="relative item product product-item product_addtocart_form !left-0 card card-interactive flex flex-col w-full h-full glider-slide center visible" data-gslide="2" style="height: auto; width: 283px;">
<input name="form_key" type="hidden" value="89Mcr1BgikEtQYvn"> <input type="hidden" name="product" value="4426">
<a href="https://swisspackag.test.mediadivision.ch/catalog/product/view/id/4426/s/packband-4590-50-mm-transparent/" class="product photo product-item-photo block mx-auto mb-3 " tabindex="-1">
<img class="hover:shadow-sm object-contain product-image-photo" x-data="" @update-gallery-4426.window="$root.src = $event.detail" src="https://swisspackag.test.mediadivision.ch/media/catalog/product/cache/6ff2493bc04edee855db9d8f5dd1d705/4/5/4590-0050-50_001.jpg" loading="lazy" width="300" height="300" alt="Packband 4590 50 mm transparent" title="Packband 4590 50 mm transparent">
</a>
<div class="product-info flex-col flex grow ">
<div class=" leading-tight mt-2 mb-1 items-center justify-center text-primary-darker font-semibold text-lg text-left ">
<a class="product-item-link" href="https://swisspackag.test.mediadivision.ch/catalog/product/view/id/4426/s/packband-4590-50-mm-transparent/" :id="`slide-desc-4426-${$id('slider-id')}`">
Packband 4590 50 mm transparent </a>
</div>
<div class="py-0 ">
<script>
'use strict';
function amNotificationProductViewComponent_4426() {
return {
isAvailable: "1",
isAvailableConfigurableSimple: true,
isOutofstockConfigurable: "1",
title: "Verfügbarkeit",
options: {},
productIndex: "4426",
hideAddToCartBtn: "",
notificationLabel: "Benachrichtigen Sie mich, wenn das Produkt wieder auf Lager ist",
productId: "4426",
/**
* Overridden method for Product Alert View Model to output url according to product id in js
*
* @param productIndex
* @param type
* @returns {*}
*/
getSubscriptionUrl(productIndex, type) {
const urlParts = ['xnotif/email/',
type, '/product_id/',
productIndex,
(parseInt(productIndex) !== parseInt(this.productId)) ? '/parent_id/' + this.productId : '', '/uenc/', 'aHR0cHM6Ly9zd2lzc3BhY2thZy50ZXN0Lm1lZGlhZGl2aXNpb24uY2gv'
];
return BASE_URL + urlParts.join('');
},
getSimpleProduct(data, el) {
let children = JSON.parse('[]');
/**
* hide addtocart button if simple for configurable product is out of stock
*/
window.addEventListener('configurable-select-changed', (event) => {
let componentElement = document.querySelector('[x-data="amNotificationProductViewComponent_' + event.detail.productId + '()"]') || document.querySelector('#stock_notification_' + event.detail.productId);
let parentElement = componentElement.closest('.product-info');
this.hideAddToCartBtn = parentElement.querySelector('.btn.btn-primary:not(.subscribe-button)');
});
//for pdp only
window.addEventListener('configurable-selection-changed', (event) => {
const addToCartButton = document.getElementById('product-addtocart-button')?.closest('div');
if (addToCartButton) {
addToCartButton.style.display = this.isAvailableConfigurableSimple ? 'flex' : 'none';
}
});
const swatchesComponent = (document.querySelector('[x-data="initConfigurableSwatchOptions_' + data.productId + '()"]') || document.querySelector('[x-data="initAmastyXnotifCatalogSwatchesMixin_' + data.productId + '()"]') || document
.querySelector('[x-data="initAmastyCustomStockStatusOptions_' + data.productId + '()"]'));
const swatchesCount = swatchesComponent?.querySelector('div')?.children?.length || 0;
for (const [key, value] of Object.entries(children[data.productIndex] || {})) {
const previousIndex = this.productIndex;
this.productIndex = data.productIndex;
if (Object.keys(data.selectedValues).length >= swatchesCount) {
this.isAvailable = Number(value);
this.isAvailableConfigurableSimple = Number(value);
}
if (this.hideAddToCartBtn) {
this.hideAddToCartBtn.style.display = !this.isAvailable ? 'none' : 'flex';
}
// plp duplicating indexes case
if (el && (previousIndex === this.productIndex) && !this.isAvailable) {
el.closest('.product-info').querySelector('.btn.btn-primary:not(.subscribe-button)').style.display = 'none';
}
}
},
getAvailable() {
return this.options = {
additionalClass: this.isAvailable ? 'bg-green-500' : 'bg-red-500',
label: this.isAvailable ? 'Auf Lager' : 'Nicht lieferbar',
categoryNotificationLabel: this.isAvailable ? '' : this.notificationLabel,
};
}
}
}
</script>
<!--
<div x-data="{
...amNotificationProductViewComponent_4426(),
...amXnotifSubscribeComponentList_4426()
}"
x-on:configurable-select-changed.window="getSimpleProduct($event.detail, $el)"
x-show="getAvailable()"
id="stock_notification_4426"
class="text-right relative">
<p class="flex items-center justify-center align-middle available gap-x-2 stock" :title="title">
<span class="w-3 h-3 rounded-full flex-shrink-0" :class="options.additionalClass"></span>
<span x-text="options.label"></span>
</p>
</div> -->
<script>
'use strict';
function amXnotifSubscribeComponentList_4426() {
return {
mutationStockSubscription: `mutation AmxnotifStockSubscribe($input: AmxnotifSubscribeInput) {
AmxnotifStockSubscribe(input: $input) {
response_message
}
}`,
isInStock: '1',
isConfigurable: '',
productIdentifier: '4426',
isValid: true,
buttonDisabled: false,
getMessages(type, message) {
return typeof window.dispatchMessages !== "undefined" && window.dispatchMessages(
[{
type: type,
text: message
}]);
},
fetchSubscribe(productId) {
let variables = {
input: {
product_uid: btoa(productId),
parent_uid: this.isConfigurable ? btoa(this.productIdentifier) : '',
}
};
this.buttonDisabled = true;
fetch(BASE_URL + 'graphql', {
method: 'POST',
headers: {
'Store': 'default',
'Content-Type': 'application/json',
},
body: JSON.stringify({
query: this.mutationStockSubscription,
variables
}),
mode: "cors",
credentials: "include"
}).then((response) => response.json()).then((result) => {
if (result?.data?.AmxnotifStockSubscribe) {
this.getMessages("success", result.data.AmxnotifStockSubscribe.response_message);
} else {
let message = result?.errors ? result.errors[0].message : "Es ist ein Fehler aufgetreten.";
this.getMessages("error", message)
}
if (this.isConfigurable) {
setTimeout(() => {
window.dispatchEvent(new Event('showAmLoader'));
window.location.reload()
}, 2000)
}
}).finally(() => {
this.buttonDisabled = false;
})
}
}
}
</script>
</div>
<script>
function initPriceBox__66af3690e1369() {
return {
updatePrice(priceData) {
const regularPriceLabel = this.$root.querySelector('.normal-price .price-label');
const regularPriceElement = this.$root.querySelector('.normal-price [data-price-type=finalPrice].price-wrapper .price');
const basePriceElement = this.$root.querySelector('.normal-price [data-price-type=basePrice].price-wrapper .price');
if (priceData.finalPrice.amount < priceData.oldPrice.amount) {
regularPriceLabel.classList.add('hidden');
} else {
regularPriceLabel.classList.remove('hidden');
}
regularPriceElement && (regularPriceElement.innerText = hyva.formatPrice(priceData.finalPrice.amount));
basePriceElement && (basePriceElement.innerText = hyva.formatPrice(priceData.basePrice.amount));
}
}
}
</script>
<div class="pt-1 text-gray-900 flex " x-data="initPriceBox__66af3690e1369()" @update-prices-4426.window="updatePrice($event.detail);" x-defer="intersect" x-ignore="">
<div class="price-box price-final_price" data-role="priceBox" data-product-id="4426" data-price-box="product-id-4426">
<a href="https://swisspackag.test.mediadivision.ch/catalog/product/view/id/4426/s/packband-4590-50-mm-transparent/" class="minimal-price-link font-bold">
<span x-data="" x-id="['4426']" class="price-container price-final_price tax weee" x-defer="intersect" x-ignore="">
<span class="price-label">Ab</span>
<span :id="$id('4426')" data-price-amount="8.75" data-price-type="" class="price-wrapper ">CHF 8.75</span>
</span>
</a>
</div>
</div>
<div class="mt-auto pt-0 flex flex-wrap justify-center items-center">
<button class="absolute right-3 w-auto btn btn-card justify-center text-sm transition
mr-auto" aria-label="In den Warenkorb Packband 4590 50 mm transparent">
<img width="30" src="https://swisspackag.test.mediadivision.ch/static/version1722344383/frontend/MediaDivision/swisspack-hyva-theme/de_CH/images/header/warenkorb_light.svg">
<span class="ml-2 inline md:ml-0 md:hidden lg:ml-2 lg:inline">
</span>
</button>
<div class="absolute top-2 -left-10 flex flex-col gap-2 addto-icons">
<button x-data="initWishlist()" @click.prevent="addToWishlist(4426)" aria-label="Zur Merkliste hinzufügen Packband 4590 50 mm transparent" type="button"
class="px-4 rounded-r-full h-7 bg-primary-lighter p-0 border-0 inline-flex shrink-0 items-center text-gray-500 hover:text-red-600 ml-2" x-defer="intersect" x-ignore="">
<img width="13" src="https://swisspackag.test.mediadivision.ch/static/version1722344383/frontend/MediaDivision/swisspack-hyva-theme/de_CH/images/header/merkliste.svg">
<span class="text-xs ml-2 max-md:hidden">Merken</span>
</button>
<button x-data="initCompareOnProductList()" @click.prevent="addToCompare(4426)" aria-label="Zur Vergleichsliste hinzufügen Packband 4590 50 mm transparent" type="button"
class="px-4 rounded-r-full h-7 bg-primary-lighter p-0 border-0 inline-flex shrink-0 items-center text-gray-500 hover:text-red-600 ml-2" x-defer="intersect" x-ignore="">
<img width="13" src="https://swisspackag.test.mediadivision.ch/static/version1722344383/frontend/MediaDivision/swisspack-hyva-theme/de_CH/images/header/vergleichen.svg">
<span class="text-xs ml-2 max-md:hidden">Vergleichen</span>
</button>
</div>
</div>
</div>
</form>
POST https://swisspackag.test.mediadivision.ch/checkout/cart/add/uenc/%25uenc%25/product/4425/
<form method="post" action="https://swisspackag.test.mediadivision.ch/checkout/cart/add/uenc/%25uenc%25/product/4425/"
class="relative item product product-item product_addtocart_form !left-0 card card-interactive flex flex-col w-full h-full glider-slide center visible" data-gslide="3" style="height: auto; width: 283px;">
<input name="form_key" type="hidden" value="89Mcr1BgikEtQYvn"> <input type="hidden" name="product" value="4425">
<a href="https://swisspackag.test.mediadivision.ch/catalog/product/view/id/4425/s/packband-4590-50-mm-transparent/" class="product photo product-item-photo block mx-auto mb-3 " tabindex="-1">
<img class="hover:shadow-sm object-contain product-image-photo" x-data="" @update-gallery-4425.window="$root.src = $event.detail" src="https://swisspackag.test.mediadivision.ch/media/catalog/product/cache/6ff2493bc04edee855db9d8f5dd1d705/4/5/4590-0025-50_001.jpg" loading="lazy" width="300" height="300" alt="Packband 4590 50 mm transparent" title="Packband 4590 50 mm transparent">
</a>
<div class="product-info flex-col flex grow ">
<div class=" leading-tight mt-2 mb-1 items-center justify-center text-primary-darker font-semibold text-lg text-left ">
<a class="product-item-link" href="https://swisspackag.test.mediadivision.ch/catalog/product/view/id/4425/s/packband-4590-50-mm-transparent/" :id="`slide-desc-4425-${$id('slider-id')}`">
Packband 4590 50 mm transparent </a>
</div>
<div class="py-0 ">
<script>
'use strict';
function amNotificationProductViewComponent_4425() {
return {
isAvailable: "1",
isAvailableConfigurableSimple: true,
isOutofstockConfigurable: "1",
title: "Verfügbarkeit",
options: {},
productIndex: "4425",
hideAddToCartBtn: "",
notificationLabel: "Benachrichtigen Sie mich, wenn das Produkt wieder auf Lager ist",
productId: "4425",
/**
* Overridden method for Product Alert View Model to output url according to product id in js
*
* @param productIndex
* @param type
* @returns {*}
*/
getSubscriptionUrl(productIndex, type) {
const urlParts = ['xnotif/email/',
type, '/product_id/',
productIndex,
(parseInt(productIndex) !== parseInt(this.productId)) ? '/parent_id/' + this.productId : '', '/uenc/', 'aHR0cHM6Ly9zd2lzc3BhY2thZy50ZXN0Lm1lZGlhZGl2aXNpb24uY2gv'
];
return BASE_URL + urlParts.join('');
},
getSimpleProduct(data, el) {
let children = JSON.parse('[]');
/**
* hide addtocart button if simple for configurable product is out of stock
*/
window.addEventListener('configurable-select-changed', (event) => {
let componentElement = document.querySelector('[x-data="amNotificationProductViewComponent_' + event.detail.productId + '()"]') || document.querySelector('#stock_notification_' + event.detail.productId);
let parentElement = componentElement.closest('.product-info');
this.hideAddToCartBtn = parentElement.querySelector('.btn.btn-primary:not(.subscribe-button)');
});
//for pdp only
window.addEventListener('configurable-selection-changed', (event) => {
const addToCartButton = document.getElementById('product-addtocart-button')?.closest('div');
if (addToCartButton) {
addToCartButton.style.display = this.isAvailableConfigurableSimple ? 'flex' : 'none';
}
});
const swatchesComponent = (document.querySelector('[x-data="initConfigurableSwatchOptions_' + data.productId + '()"]') || document.querySelector('[x-data="initAmastyXnotifCatalogSwatchesMixin_' + data.productId + '()"]') || document
.querySelector('[x-data="initAmastyCustomStockStatusOptions_' + data.productId + '()"]'));
const swatchesCount = swatchesComponent?.querySelector('div')?.children?.length || 0;
for (const [key, value] of Object.entries(children[data.productIndex] || {})) {
const previousIndex = this.productIndex;
this.productIndex = data.productIndex;
if (Object.keys(data.selectedValues).length >= swatchesCount) {
this.isAvailable = Number(value);
this.isAvailableConfigurableSimple = Number(value);
}
if (this.hideAddToCartBtn) {
this.hideAddToCartBtn.style.display = !this.isAvailable ? 'none' : 'flex';
}
// plp duplicating indexes case
if (el && (previousIndex === this.productIndex) && !this.isAvailable) {
el.closest('.product-info').querySelector('.btn.btn-primary:not(.subscribe-button)').style.display = 'none';
}
}
},
getAvailable() {
return this.options = {
additionalClass: this.isAvailable ? 'bg-green-500' : 'bg-red-500',
label: this.isAvailable ? 'Auf Lager' : 'Nicht lieferbar',
categoryNotificationLabel: this.isAvailable ? '' : this.notificationLabel,
};
}
}
}
</script>
<!--
<div x-data="{
...amNotificationProductViewComponent_4425(),
...amXnotifSubscribeComponentList_4425()
}"
x-on:configurable-select-changed.window="getSimpleProduct($event.detail, $el)"
x-show="getAvailable()"
id="stock_notification_4425"
class="text-right relative">
<p class="flex items-center justify-center align-middle available gap-x-2 stock" :title="title">
<span class="w-3 h-3 rounded-full flex-shrink-0" :class="options.additionalClass"></span>
<span x-text="options.label"></span>
</p>
</div> -->
<script>
'use strict';
function amXnotifSubscribeComponentList_4425() {
return {
mutationStockSubscription: `mutation AmxnotifStockSubscribe($input: AmxnotifSubscribeInput) {
AmxnotifStockSubscribe(input: $input) {
response_message
}
}`,
isInStock: '1',
isConfigurable: '',
productIdentifier: '4425',
isValid: true,
buttonDisabled: false,
getMessages(type, message) {
return typeof window.dispatchMessages !== "undefined" && window.dispatchMessages(
[{
type: type,
text: message
}]);
},
fetchSubscribe(productId) {
let variables = {
input: {
product_uid: btoa(productId),
parent_uid: this.isConfigurable ? btoa(this.productIdentifier) : '',
}
};
this.buttonDisabled = true;
fetch(BASE_URL + 'graphql', {
method: 'POST',
headers: {
'Store': 'default',
'Content-Type': 'application/json',
},
body: JSON.stringify({
query: this.mutationStockSubscription,
variables
}),
mode: "cors",
credentials: "include"
}).then((response) => response.json()).then((result) => {
if (result?.data?.AmxnotifStockSubscribe) {
this.getMessages("success", result.data.AmxnotifStockSubscribe.response_message);
} else {
let message = result?.errors ? result.errors[0].message : "Es ist ein Fehler aufgetreten.";
this.getMessages("error", message)
}
if (this.isConfigurable) {
setTimeout(() => {
window.dispatchEvent(new Event('showAmLoader'));
window.location.reload()
}, 2000)
}
}).finally(() => {
this.buttonDisabled = false;
})
}
}
}
</script>
</div>
<script>
function initPriceBox__66af3690e45b9() {
return {
updatePrice(priceData) {
const regularPriceLabel = this.$root.querySelector('.normal-price .price-label');
const regularPriceElement = this.$root.querySelector('.normal-price [data-price-type=finalPrice].price-wrapper .price');
const basePriceElement = this.$root.querySelector('.normal-price [data-price-type=basePrice].price-wrapper .price');
if (priceData.finalPrice.amount < priceData.oldPrice.amount) {
regularPriceLabel.classList.add('hidden');
} else {
regularPriceLabel.classList.remove('hidden');
}
regularPriceElement && (regularPriceElement.innerText = hyva.formatPrice(priceData.finalPrice.amount));
basePriceElement && (basePriceElement.innerText = hyva.formatPrice(priceData.basePrice.amount));
}
}
}
</script>
<div class="pt-1 text-gray-900 flex " x-data="initPriceBox__66af3690e45b9()" @update-prices-4425.window="updatePrice($event.detail);" x-defer="intersect" x-ignore="">
<div class="price-box price-final_price" data-role="priceBox" data-product-id="4425" data-price-box="product-id-4425">
<a href="https://swisspackag.test.mediadivision.ch/catalog/product/view/id/4425/s/packband-4590-50-mm-transparent/" class="minimal-price-link font-bold">
<span x-data="" x-id="['4425']" class="price-container price-final_price tax weee" x-defer="intersect" x-ignore="">
<span class="price-label">Ab</span>
<span :id="$id('4425')" data-price-amount="4.4" data-price-type="" class="price-wrapper ">CHF 4.40</span>
</span>
</a>
</div>
</div>
<div class="mt-auto pt-0 flex flex-wrap justify-center items-center">
<button class="absolute right-3 w-auto btn btn-card justify-center text-sm transition
mr-auto" aria-label="In den Warenkorb Packband 4590 50 mm transparent">
<img width="30" src="https://swisspackag.test.mediadivision.ch/static/version1722344383/frontend/MediaDivision/swisspack-hyva-theme/de_CH/images/header/warenkorb_light.svg">
<span class="ml-2 inline md:ml-0 md:hidden lg:ml-2 lg:inline">
</span>
</button>
<div class="absolute top-2 -left-10 flex flex-col gap-2 addto-icons">
<button x-data="initWishlist()" @click.prevent="addToWishlist(4425)" aria-label="Zur Merkliste hinzufügen Packband 4590 50 mm transparent" type="button"
class="px-4 rounded-r-full h-7 bg-primary-lighter p-0 border-0 inline-flex shrink-0 items-center text-gray-500 hover:text-red-600 ml-2" x-defer="intersect" x-ignore="">
<img width="13" src="https://swisspackag.test.mediadivision.ch/static/version1722344383/frontend/MediaDivision/swisspack-hyva-theme/de_CH/images/header/merkliste.svg">
<span class="text-xs ml-2 max-md:hidden">Merken</span>
</button>
<button x-data="initCompareOnProductList()" @click.prevent="addToCompare(4425)" aria-label="Zur Vergleichsliste hinzufügen Packband 4590 50 mm transparent" type="button"
class="px-4 rounded-r-full h-7 bg-primary-lighter p-0 border-0 inline-flex shrink-0 items-center text-gray-500 hover:text-red-600 ml-2" x-defer="intersect" x-ignore="">
<img width="13" src="https://swisspackag.test.mediadivision.ch/static/version1722344383/frontend/MediaDivision/swisspack-hyva-theme/de_CH/images/header/vergleichen.svg">
<span class="text-xs ml-2 max-md:hidden">Vergleichen</span>
</button>
</div>
</div>
</div>
</form>
POST https://swisspackag.test.mediadivision.ch/checkout/cart/add/uenc/%25uenc%25/product/4424/
<form method="post" action="https://swisspackag.test.mediadivision.ch/checkout/cart/add/uenc/%25uenc%25/product/4424/"
class="relative item product product-item product_addtocart_form !left-0 card card-interactive flex flex-col w-full h-full glider-slide right-1" data-gslide="4" style="height: auto; width: 283px;">
<input name="form_key" type="hidden" value="89Mcr1BgikEtQYvn"> <input type="hidden" name="product" value="4424">
<a href="https://swisspackag.test.mediadivision.ch/catalog/product/view/id/4424/s/packband-150072-50-mm-braun/" class="product photo product-item-photo block mx-auto mb-3 " tabindex="-1">
<img class="hover:shadow-sm object-contain product-image-photo" x-data="" @update-gallery-4424.window="$root.src = $event.detail" src="https://swisspackag.test.mediadivision.ch/media/catalog/product/cache/6ff2493bc04edee855db9d8f5dd1d705/1/5/150072-0050-50_001.png" loading="lazy" width="300" height="300" alt="Packband 150072 50 mm braun" title="Packband 150072 50 mm braun">
</a>
<div class="product-info flex-col flex grow ">
<div class=" leading-tight mt-2 mb-1 items-center justify-center text-primary-darker font-semibold text-lg text-left ">
<a class="product-item-link" href="https://swisspackag.test.mediadivision.ch/catalog/product/view/id/4424/s/packband-150072-50-mm-braun/" :id="`slide-desc-4424-${$id('slider-id')}`">
Packband 150072 50 mm braun </a>
</div>
<div class="py-0 ">
<script>
'use strict';
function amNotificationProductViewComponent_4424() {
return {
isAvailable: "1",
isAvailableConfigurableSimple: true,
isOutofstockConfigurable: "1",
title: "Verfügbarkeit",
options: {},
productIndex: "4424",
hideAddToCartBtn: "",
notificationLabel: "Benachrichtigen Sie mich, wenn das Produkt wieder auf Lager ist",
productId: "4424",
/**
* Overridden method for Product Alert View Model to output url according to product id in js
*
* @param productIndex
* @param type
* @returns {*}
*/
getSubscriptionUrl(productIndex, type) {
const urlParts = ['xnotif/email/',
type, '/product_id/',
productIndex,
(parseInt(productIndex) !== parseInt(this.productId)) ? '/parent_id/' + this.productId : '', '/uenc/', 'aHR0cHM6Ly9zd2lzc3BhY2thZy50ZXN0Lm1lZGlhZGl2aXNpb24uY2gv'
];
return BASE_URL + urlParts.join('');
},
getSimpleProduct(data, el) {
let children = JSON.parse('[]');
/**
* hide addtocart button if simple for configurable product is out of stock
*/
window.addEventListener('configurable-select-changed', (event) => {
let componentElement = document.querySelector('[x-data="amNotificationProductViewComponent_' + event.detail.productId + '()"]') || document.querySelector('#stock_notification_' + event.detail.productId);
let parentElement = componentElement.closest('.product-info');
this.hideAddToCartBtn = parentElement.querySelector('.btn.btn-primary:not(.subscribe-button)');
});
//for pdp only
window.addEventListener('configurable-selection-changed', (event) => {
const addToCartButton = document.getElementById('product-addtocart-button')?.closest('div');
if (addToCartButton) {
addToCartButton.style.display = this.isAvailableConfigurableSimple ? 'flex' : 'none';
}
});
const swatchesComponent = (document.querySelector('[x-data="initConfigurableSwatchOptions_' + data.productId + '()"]') || document.querySelector('[x-data="initAmastyXnotifCatalogSwatchesMixin_' + data.productId + '()"]') || document
.querySelector('[x-data="initAmastyCustomStockStatusOptions_' + data.productId + '()"]'));
const swatchesCount = swatchesComponent?.querySelector('div')?.children?.length || 0;
for (const [key, value] of Object.entries(children[data.productIndex] || {})) {
const previousIndex = this.productIndex;
this.productIndex = data.productIndex;
if (Object.keys(data.selectedValues).length >= swatchesCount) {
this.isAvailable = Number(value);
this.isAvailableConfigurableSimple = Number(value);
}
if (this.hideAddToCartBtn) {
this.hideAddToCartBtn.style.display = !this.isAvailable ? 'none' : 'flex';
}
// plp duplicating indexes case
if (el && (previousIndex === this.productIndex) && !this.isAvailable) {
el.closest('.product-info').querySelector('.btn.btn-primary:not(.subscribe-button)').style.display = 'none';
}
}
},
getAvailable() {
return this.options = {
additionalClass: this.isAvailable ? 'bg-green-500' : 'bg-red-500',
label: this.isAvailable ? 'Auf Lager' : 'Nicht lieferbar',
categoryNotificationLabel: this.isAvailable ? '' : this.notificationLabel,
};
}
}
}
</script>
<!--
<div x-data="{
...amNotificationProductViewComponent_4424(),
...amXnotifSubscribeComponentList_4424()
}"
x-on:configurable-select-changed.window="getSimpleProduct($event.detail, $el)"
x-show="getAvailable()"
id="stock_notification_4424"
class="text-right relative">
<p class="flex items-center justify-center align-middle available gap-x-2 stock" :title="title">
<span class="w-3 h-3 rounded-full flex-shrink-0" :class="options.additionalClass"></span>
<span x-text="options.label"></span>
</p>
</div> -->
<script>
'use strict';
function amXnotifSubscribeComponentList_4424() {
return {
mutationStockSubscription: `mutation AmxnotifStockSubscribe($input: AmxnotifSubscribeInput) {
AmxnotifStockSubscribe(input: $input) {
response_message
}
}`,
isInStock: '1',
isConfigurable: '',
productIdentifier: '4424',
isValid: true,
buttonDisabled: false,
getMessages(type, message) {
return typeof window.dispatchMessages !== "undefined" && window.dispatchMessages(
[{
type: type,
text: message
}]);
},
fetchSubscribe(productId) {
let variables = {
input: {
product_uid: btoa(productId),
parent_uid: this.isConfigurable ? btoa(this.productIdentifier) : '',
}
};
this.buttonDisabled = true;
fetch(BASE_URL + 'graphql', {
method: 'POST',
headers: {
'Store': 'default',
'Content-Type': 'application/json',
},
body: JSON.stringify({
query: this.mutationStockSubscription,
variables
}),
mode: "cors",
credentials: "include"
}).then((response) => response.json()).then((result) => {
if (result?.data?.AmxnotifStockSubscribe) {
this.getMessages("success", result.data.AmxnotifStockSubscribe.response_message);
} else {
let message = result?.errors ? result.errors[0].message : "Es ist ein Fehler aufgetreten.";
this.getMessages("error", message)
}
if (this.isConfigurable) {
setTimeout(() => {
window.dispatchEvent(new Event('showAmLoader'));
window.location.reload()
}, 2000)
}
}).finally(() => {
this.buttonDisabled = false;
})
}
}
}
</script>
</div>
<script>
function initPriceBox__66af3690e7422() {
return {
updatePrice(priceData) {
const regularPriceLabel = this.$root.querySelector('.normal-price .price-label');
const regularPriceElement = this.$root.querySelector('.normal-price [data-price-type=finalPrice].price-wrapper .price');
const basePriceElement = this.$root.querySelector('.normal-price [data-price-type=basePrice].price-wrapper .price');
if (priceData.finalPrice.amount < priceData.oldPrice.amount) {
regularPriceLabel.classList.add('hidden');
} else {
regularPriceLabel.classList.remove('hidden');
}
regularPriceElement && (regularPriceElement.innerText = hyva.formatPrice(priceData.finalPrice.amount));
basePriceElement && (basePriceElement.innerText = hyva.formatPrice(priceData.basePrice.amount));
}
}
}
</script>
<div class="pt-1 text-gray-900 flex " x-data="initPriceBox__66af3690e7422()" @update-prices-4424.window="updatePrice($event.detail);" x-defer="intersect" x-ignore="">
<div class="price-box price-final_price" data-role="priceBox" data-product-id="4424" data-price-box="product-id-4424">
<a href="https://swisspackag.test.mediadivision.ch/catalog/product/view/id/4424/s/packband-150072-50-mm-braun/" class="minimal-price-link font-bold">
<span x-data="" x-id="['4424']" class="price-container price-final_price tax weee" x-defer="intersect" x-ignore="">
<span class="price-label">Ab</span>
<span :id="$id('4424')" data-price-amount="2.35" data-price-type="" class="price-wrapper ">CHF 2.35</span>
</span>
</a>
</div>
</div>
<div class="mt-auto pt-0 flex flex-wrap justify-center items-center">
<button class="absolute right-3 w-auto btn btn-card justify-center text-sm transition
mr-auto" aria-label="In den Warenkorb Packband 150072 50 mm braun">
<img width="30" src="https://swisspackag.test.mediadivision.ch/static/version1722344383/frontend/MediaDivision/swisspack-hyva-theme/de_CH/images/header/warenkorb_light.svg">
<span class="ml-2 inline md:ml-0 md:hidden lg:ml-2 lg:inline">
</span>
</button>
<div class="absolute top-2 -left-10 flex flex-col gap-2 addto-icons">
<button x-data="initWishlist()" @click.prevent="addToWishlist(4424)" aria-label="Zur Merkliste hinzufügen Packband 150072 50 mm braun" type="button"
class="px-4 rounded-r-full h-7 bg-primary-lighter p-0 border-0 inline-flex shrink-0 items-center text-gray-500 hover:text-red-600 ml-2" x-defer="intersect" x-ignore="">
<img width="13" src="https://swisspackag.test.mediadivision.ch/static/version1722344383/frontend/MediaDivision/swisspack-hyva-theme/de_CH/images/header/merkliste.svg">
<span class="text-xs ml-2 max-md:hidden">Merken</span>
</button>
<button x-data="initCompareOnProductList()" @click.prevent="addToCompare(4424)" aria-label="Zur Vergleichsliste hinzufügen Packband 150072 50 mm braun" type="button"
class="px-4 rounded-r-full h-7 bg-primary-lighter p-0 border-0 inline-flex shrink-0 items-center text-gray-500 hover:text-red-600 ml-2" x-defer="intersect" x-ignore="">
<img width="13" src="https://swisspackag.test.mediadivision.ch/static/version1722344383/frontend/MediaDivision/swisspack-hyva-theme/de_CH/images/header/vergleichen.svg">
<span class="text-xs ml-2 max-md:hidden">Vergleichen</span>
</button>
</div>
</div>
</div>
</form>
POST https://swisspackag.test.mediadivision.ch/checkout/cart/add/uenc/%25uenc%25/product/4423/
<form method="post" action="https://swisspackag.test.mediadivision.ch/checkout/cart/add/uenc/%25uenc%25/product/4423/"
class="relative item product product-item product_addtocart_form !left-0 card card-interactive flex flex-col w-full h-full glider-slide right-2" data-gslide="5" style="height: auto; width: 283px;">
<input name="form_key" type="hidden" value="89Mcr1BgikEtQYvn"> <input type="hidden" name="product" value="4423">
<a href="https://swisspackag.test.mediadivision.ch/catalog/product/view/id/4423/s/packband-4313-50-mm-braun/" class="product photo product-item-photo block mx-auto mb-3 " tabindex="-1">
<img class="hover:shadow-sm object-contain product-image-photo" x-data="" @update-gallery-4423.window="$root.src = $event.detail" src="https://swisspackag.test.mediadivision.ch/media/catalog/product/cache/6ff2493bc04edee855db9d8f5dd1d705/4/3/4313c-pv12-0050-50_001.jpg" loading="lazy" width="300" height="300" alt="Packband 4313 50 mm braun" title="Packband 4313 50 mm braun">
</a>
<div class="product-info flex-col flex grow ">
<div class=" leading-tight mt-2 mb-1 items-center justify-center text-primary-darker font-semibold text-lg text-left ">
<a class="product-item-link" href="https://swisspackag.test.mediadivision.ch/catalog/product/view/id/4423/s/packband-4313-50-mm-braun/" :id="`slide-desc-4423-${$id('slider-id')}`">
Packband 4313 50 mm braun </a>
</div>
<div class="py-0 ">
<script>
'use strict';
function amNotificationProductViewComponent_4423() {
return {
isAvailable: "1",
isAvailableConfigurableSimple: true,
isOutofstockConfigurable: "1",
title: "Verfügbarkeit",
options: {},
productIndex: "4423",
hideAddToCartBtn: "",
notificationLabel: "Benachrichtigen Sie mich, wenn das Produkt wieder auf Lager ist",
productId: "4423",
/**
* Overridden method for Product Alert View Model to output url according to product id in js
*
* @param productIndex
* @param type
* @returns {*}
*/
getSubscriptionUrl(productIndex, type) {
const urlParts = ['xnotif/email/',
type, '/product_id/',
productIndex,
(parseInt(productIndex) !== parseInt(this.productId)) ? '/parent_id/' + this.productId : '', '/uenc/', 'aHR0cHM6Ly9zd2lzc3BhY2thZy50ZXN0Lm1lZGlhZGl2aXNpb24uY2gv'
];
return BASE_URL + urlParts.join('');
},
getSimpleProduct(data, el) {
let children = JSON.parse('[]');
/**
* hide addtocart button if simple for configurable product is out of stock
*/
window.addEventListener('configurable-select-changed', (event) => {
let componentElement = document.querySelector('[x-data="amNotificationProductViewComponent_' + event.detail.productId + '()"]') || document.querySelector('#stock_notification_' + event.detail.productId);
let parentElement = componentElement.closest('.product-info');
this.hideAddToCartBtn = parentElement.querySelector('.btn.btn-primary:not(.subscribe-button)');
});
//for pdp only
window.addEventListener('configurable-selection-changed', (event) => {
const addToCartButton = document.getElementById('product-addtocart-button')?.closest('div');
if (addToCartButton) {
addToCartButton.style.display = this.isAvailableConfigurableSimple ? 'flex' : 'none';
}
});
const swatchesComponent = (document.querySelector('[x-data="initConfigurableSwatchOptions_' + data.productId + '()"]') || document.querySelector('[x-data="initAmastyXnotifCatalogSwatchesMixin_' + data.productId + '()"]') || document
.querySelector('[x-data="initAmastyCustomStockStatusOptions_' + data.productId + '()"]'));
const swatchesCount = swatchesComponent?.querySelector('div')?.children?.length || 0;
for (const [key, value] of Object.entries(children[data.productIndex] || {})) {
const previousIndex = this.productIndex;
this.productIndex = data.productIndex;
if (Object.keys(data.selectedValues).length >= swatchesCount) {
this.isAvailable = Number(value);
this.isAvailableConfigurableSimple = Number(value);
}
if (this.hideAddToCartBtn) {
this.hideAddToCartBtn.style.display = !this.isAvailable ? 'none' : 'flex';
}
// plp duplicating indexes case
if (el && (previousIndex === this.productIndex) && !this.isAvailable) {
el.closest('.product-info').querySelector('.btn.btn-primary:not(.subscribe-button)').style.display = 'none';
}
}
},
getAvailable() {
return this.options = {
additionalClass: this.isAvailable ? 'bg-green-500' : 'bg-red-500',
label: this.isAvailable ? 'Auf Lager' : 'Nicht lieferbar',
categoryNotificationLabel: this.isAvailable ? '' : this.notificationLabel,
};
}
}
}
</script>
<!--
<div x-data="{
...amNotificationProductViewComponent_4423(),
...amXnotifSubscribeComponentList_4423()
}"
x-on:configurable-select-changed.window="getSimpleProduct($event.detail, $el)"
x-show="getAvailable()"
id="stock_notification_4423"
class="text-right relative">
<p class="flex items-center justify-center align-middle available gap-x-2 stock" :title="title">
<span class="w-3 h-3 rounded-full flex-shrink-0" :class="options.additionalClass"></span>
<span x-text="options.label"></span>
</p>
</div> -->
<script>
'use strict';
function amXnotifSubscribeComponentList_4423() {
return {
mutationStockSubscription: `mutation AmxnotifStockSubscribe($input: AmxnotifSubscribeInput) {
AmxnotifStockSubscribe(input: $input) {
response_message
}
}`,
isInStock: '1',
isConfigurable: '',
productIdentifier: '4423',
isValid: true,
buttonDisabled: false,
getMessages(type, message) {
return typeof window.dispatchMessages !== "undefined" && window.dispatchMessages(
[{
type: type,
text: message
}]);
},
fetchSubscribe(productId) {
let variables = {
input: {
product_uid: btoa(productId),
parent_uid: this.isConfigurable ? btoa(this.productIdentifier) : '',
}
};
this.buttonDisabled = true;
fetch(BASE_URL + 'graphql', {
method: 'POST',
headers: {
'Store': 'default',
'Content-Type': 'application/json',
},
body: JSON.stringify({
query: this.mutationStockSubscription,
variables
}),
mode: "cors",
credentials: "include"
}).then((response) => response.json()).then((result) => {
if (result?.data?.AmxnotifStockSubscribe) {
this.getMessages("success", result.data.AmxnotifStockSubscribe.response_message);
} else {
let message = result?.errors ? result.errors[0].message : "Es ist ein Fehler aufgetreten.";
this.getMessages("error", message)
}
if (this.isConfigurable) {
setTimeout(() => {
window.dispatchEvent(new Event('showAmLoader'));
window.location.reload()
}, 2000)
}
}).finally(() => {
this.buttonDisabled = false;
})
}
}
}
</script>
</div>
<script>
function initPriceBox__66af3690eae1f() {
return {
updatePrice(priceData) {
const regularPriceLabel = this.$root.querySelector('.normal-price .price-label');
const regularPriceElement = this.$root.querySelector('.normal-price [data-price-type=finalPrice].price-wrapper .price');
const basePriceElement = this.$root.querySelector('.normal-price [data-price-type=basePrice].price-wrapper .price');
if (priceData.finalPrice.amount < priceData.oldPrice.amount) {
regularPriceLabel.classList.add('hidden');
} else {
regularPriceLabel.classList.remove('hidden');
}
regularPriceElement && (regularPriceElement.innerText = hyva.formatPrice(priceData.finalPrice.amount));
basePriceElement && (basePriceElement.innerText = hyva.formatPrice(priceData.basePrice.amount));
}
}
}
</script>
<div class="pt-1 text-gray-900 flex " x-data="initPriceBox__66af3690eae1f()" @update-prices-4423.window="updatePrice($event.detail);" x-defer="intersect" x-ignore="">
<div class="price-box price-final_price" data-role="priceBox" data-product-id="4423" data-price-box="product-id-4423">
<a href="https://swisspackag.test.mediadivision.ch/catalog/product/view/id/4423/s/packband-4313-50-mm-braun/" class="minimal-price-link font-bold">
<span x-data="" x-id="['4423']" class="price-container price-final_price tax weee" x-defer="intersect" x-ignore="">
<span class="price-label">Ab</span>
<span :id="$id('4423')" data-price-amount="6.4" data-price-type="" class="price-wrapper ">CHF 6.40</span>
</span>
</a>
</div>
</div>
<div class="mt-auto pt-0 flex flex-wrap justify-center items-center">
<button class="absolute right-3 w-auto btn btn-card justify-center text-sm transition
mr-auto" aria-label="In den Warenkorb Packband 4313 50 mm braun">
<img width="30" src="https://swisspackag.test.mediadivision.ch/static/version1722344383/frontend/MediaDivision/swisspack-hyva-theme/de_CH/images/header/warenkorb_light.svg">
<span class="ml-2 inline md:ml-0 md:hidden lg:ml-2 lg:inline">
</span>
</button>
<div class="absolute top-2 -left-10 flex flex-col gap-2 addto-icons">
<button x-data="initWishlist()" @click.prevent="addToWishlist(4423)" aria-label="Zur Merkliste hinzufügen Packband 4313 50 mm braun" type="button"
class="px-4 rounded-r-full h-7 bg-primary-lighter p-0 border-0 inline-flex shrink-0 items-center text-gray-500 hover:text-red-600 ml-2" x-defer="intersect" x-ignore="">
<img width="13" src="https://swisspackag.test.mediadivision.ch/static/version1722344383/frontend/MediaDivision/swisspack-hyva-theme/de_CH/images/header/merkliste.svg">
<span class="text-xs ml-2 max-md:hidden">Merken</span>
</button>
<button x-data="initCompareOnProductList()" @click.prevent="addToCompare(4423)" aria-label="Zur Vergleichsliste hinzufügen Packband 4313 50 mm braun" type="button"
class="px-4 rounded-r-full h-7 bg-primary-lighter p-0 border-0 inline-flex shrink-0 items-center text-gray-500 hover:text-red-600 ml-2" x-defer="intersect" x-ignore="">
<img width="13" src="https://swisspackag.test.mediadivision.ch/static/version1722344383/frontend/MediaDivision/swisspack-hyva-theme/de_CH/images/header/vergleichen.svg">
<span class="text-xs ml-2 max-md:hidden">Vergleichen</span>
</button>
</div>
</div>
</div>
</form>
POST https://swisspackag.test.mediadivision.ch/checkout/cart/add/uenc/%25uenc%25/product/4422/
<form method="post" action="https://swisspackag.test.mediadivision.ch/checkout/cart/add/uenc/%25uenc%25/product/4422/"
class="relative item product product-item product_addtocart_form !left-0 card card-interactive flex flex-col w-full h-full glider-slide right-3" data-gslide="6" style="height: auto; width: 283px;">
<input name="form_key" type="hidden" value="89Mcr1BgikEtQYvn"> <input type="hidden" name="product" value="4422">
<a href="https://swisspackag.test.mediadivision.ch/catalog/product/view/id/4422/s/packband-4313-50-mm-braun/" class="product photo product-item-photo block mx-auto mb-3 " tabindex="-1">
<img class="hover:shadow-sm object-contain product-image-photo" x-data="" @update-gallery-4422.window="$root.src = $event.detail" src="https://swisspackag.test.mediadivision.ch/media/catalog/product/cache/6ff2493bc04edee855db9d8f5dd1d705/4/3/4313c-pv10-0050-50_001.jpg" loading="lazy" width="300" height="300" alt="Packband 4313 50 mm braun" title="Packband 4313 50 mm braun">
</a>
<div class="product-info flex-col flex grow ">
<div class=" leading-tight mt-2 mb-1 items-center justify-center text-primary-darker font-semibold text-lg text-left ">
<a class="product-item-link" href="https://swisspackag.test.mediadivision.ch/catalog/product/view/id/4422/s/packband-4313-50-mm-braun/" :id="`slide-desc-4422-${$id('slider-id')}`">
Packband 4313 50 mm braun </a>
</div>
<div class="py-0 ">
<script>
'use strict';
function amNotificationProductViewComponent_4422() {
return {
isAvailable: "1",
isAvailableConfigurableSimple: true,
isOutofstockConfigurable: "1",
title: "Verfügbarkeit",
options: {},
productIndex: "4422",
hideAddToCartBtn: "",
notificationLabel: "Benachrichtigen Sie mich, wenn das Produkt wieder auf Lager ist",
productId: "4422",
/**
* Overridden method for Product Alert View Model to output url according to product id in js
*
* @param productIndex
* @param type
* @returns {*}
*/
getSubscriptionUrl(productIndex, type) {
const urlParts = ['xnotif/email/',
type, '/product_id/',
productIndex,
(parseInt(productIndex) !== parseInt(this.productId)) ? '/parent_id/' + this.productId : '', '/uenc/', 'aHR0cHM6Ly9zd2lzc3BhY2thZy50ZXN0Lm1lZGlhZGl2aXNpb24uY2gv'
];
return BASE_URL + urlParts.join('');
},
getSimpleProduct(data, el) {
let children = JSON.parse('[]');
/**
* hide addtocart button if simple for configurable product is out of stock
*/
window.addEventListener('configurable-select-changed', (event) => {
let componentElement = document.querySelector('[x-data="amNotificationProductViewComponent_' + event.detail.productId + '()"]') || document.querySelector('#stock_notification_' + event.detail.productId);
let parentElement = componentElement.closest('.product-info');
this.hideAddToCartBtn = parentElement.querySelector('.btn.btn-primary:not(.subscribe-button)');
});
//for pdp only
window.addEventListener('configurable-selection-changed', (event) => {
const addToCartButton = document.getElementById('product-addtocart-button')?.closest('div');
if (addToCartButton) {
addToCartButton.style.display = this.isAvailableConfigurableSimple ? 'flex' : 'none';
}
});
const swatchesComponent = (document.querySelector('[x-data="initConfigurableSwatchOptions_' + data.productId + '()"]') || document.querySelector('[x-data="initAmastyXnotifCatalogSwatchesMixin_' + data.productId + '()"]') || document
.querySelector('[x-data="initAmastyCustomStockStatusOptions_' + data.productId + '()"]'));
const swatchesCount = swatchesComponent?.querySelector('div')?.children?.length || 0;
for (const [key, value] of Object.entries(children[data.productIndex] || {})) {
const previousIndex = this.productIndex;
this.productIndex = data.productIndex;
if (Object.keys(data.selectedValues).length >= swatchesCount) {
this.isAvailable = Number(value);
this.isAvailableConfigurableSimple = Number(value);
}
if (this.hideAddToCartBtn) {
this.hideAddToCartBtn.style.display = !this.isAvailable ? 'none' : 'flex';
}
// plp duplicating indexes case
if (el && (previousIndex === this.productIndex) && !this.isAvailable) {
el.closest('.product-info').querySelector('.btn.btn-primary:not(.subscribe-button)').style.display = 'none';
}
}
},
getAvailable() {
return this.options = {
additionalClass: this.isAvailable ? 'bg-green-500' : 'bg-red-500',
label: this.isAvailable ? 'Auf Lager' : 'Nicht lieferbar',
categoryNotificationLabel: this.isAvailable ? '' : this.notificationLabel,
};
}
}
}
</script>
<!--
<div x-data="{
...amNotificationProductViewComponent_4422(),
...amXnotifSubscribeComponentList_4422()
}"
x-on:configurable-select-changed.window="getSimpleProduct($event.detail, $el)"
x-show="getAvailable()"
id="stock_notification_4422"
class="text-right relative">
<p class="flex items-center justify-center align-middle available gap-x-2 stock" :title="title">
<span class="w-3 h-3 rounded-full flex-shrink-0" :class="options.additionalClass"></span>
<span x-text="options.label"></span>
</p>
</div> -->
<script>
'use strict';
function amXnotifSubscribeComponentList_4422() {
return {
mutationStockSubscription: `mutation AmxnotifStockSubscribe($input: AmxnotifSubscribeInput) {
AmxnotifStockSubscribe(input: $input) {
response_message
}
}`,
isInStock: '1',
isConfigurable: '',
productIdentifier: '4422',
isValid: true,
buttonDisabled: false,
getMessages(type, message) {
return typeof window.dispatchMessages !== "undefined" && window.dispatchMessages(
[{
type: type,
text: message
}]);
},
fetchSubscribe(productId) {
let variables = {
input: {
product_uid: btoa(productId),
parent_uid: this.isConfigurable ? btoa(this.productIdentifier) : '',
}
};
this.buttonDisabled = true;
fetch(BASE_URL + 'graphql', {
method: 'POST',
headers: {
'Store': 'default',
'Content-Type': 'application/json',
},
body: JSON.stringify({
query: this.mutationStockSubscription,
variables
}),
mode: "cors",
credentials: "include"
}).then((response) => response.json()).then((result) => {
if (result?.data?.AmxnotifStockSubscribe) {
this.getMessages("success", result.data.AmxnotifStockSubscribe.response_message);
} else {
let message = result?.errors ? result.errors[0].message : "Es ist ein Fehler aufgetreten.";
this.getMessages("error", message)
}
if (this.isConfigurable) {
setTimeout(() => {
window.dispatchEvent(new Event('showAmLoader'));
window.location.reload()
}, 2000)
}
}).finally(() => {
this.buttonDisabled = false;
})
}
}
}
</script>
</div>
<script>
function initPriceBox__66af3690ee3fc() {
return {
updatePrice(priceData) {
const regularPriceLabel = this.$root.querySelector('.normal-price .price-label');
const regularPriceElement = this.$root.querySelector('.normal-price [data-price-type=finalPrice].price-wrapper .price');
const basePriceElement = this.$root.querySelector('.normal-price [data-price-type=basePrice].price-wrapper .price');
if (priceData.finalPrice.amount < priceData.oldPrice.amount) {
regularPriceLabel.classList.add('hidden');
} else {
regularPriceLabel.classList.remove('hidden');
}
regularPriceElement && (regularPriceElement.innerText = hyva.formatPrice(priceData.finalPrice.amount));
basePriceElement && (basePriceElement.innerText = hyva.formatPrice(priceData.basePrice.amount));
}
}
}
</script>
<div class="pt-1 text-gray-900 flex " x-data="initPriceBox__66af3690ee3fc()" @update-prices-4422.window="updatePrice($event.detail);" x-defer="intersect" x-ignore="">
<div class="price-box price-final_price" data-role="priceBox" data-product-id="4422" data-price-box="product-id-4422">
<a href="https://swisspackag.test.mediadivision.ch/catalog/product/view/id/4422/s/packband-4313-50-mm-braun/" class="minimal-price-link font-bold">
<span x-data="" x-id="['4422']" class="price-container price-final_price tax weee" x-defer="intersect" x-ignore="">
<span class="price-label">Ab</span>
<span :id="$id('4422')" data-price-amount="6" data-price-type="" class="price-wrapper ">CHF 6.00</span>
</span>
</a>
</div>
</div>
<div class="mt-auto pt-0 flex flex-wrap justify-center items-center">
<button class="absolute right-3 w-auto btn btn-card justify-center text-sm transition
mr-auto" aria-label="In den Warenkorb Packband 4313 50 mm braun">
<img width="30" src="https://swisspackag.test.mediadivision.ch/static/version1722344383/frontend/MediaDivision/swisspack-hyva-theme/de_CH/images/header/warenkorb_light.svg">
<span class="ml-2 inline md:ml-0 md:hidden lg:ml-2 lg:inline">
</span>
</button>
<div class="absolute top-2 -left-10 flex flex-col gap-2 addto-icons">
<button x-data="initWishlist()" @click.prevent="addToWishlist(4422)" aria-label="Zur Merkliste hinzufügen Packband 4313 50 mm braun" type="button"
class="px-4 rounded-r-full h-7 bg-primary-lighter p-0 border-0 inline-flex shrink-0 items-center text-gray-500 hover:text-red-600 ml-2" x-defer="intersect" x-ignore="">
<img width="13" src="https://swisspackag.test.mediadivision.ch/static/version1722344383/frontend/MediaDivision/swisspack-hyva-theme/de_CH/images/header/merkliste.svg">
<span class="text-xs ml-2 max-md:hidden">Merken</span>
</button>
<button x-data="initCompareOnProductList()" @click.prevent="addToCompare(4422)" aria-label="Zur Vergleichsliste hinzufügen Packband 4313 50 mm braun" type="button"
class="px-4 rounded-r-full h-7 bg-primary-lighter p-0 border-0 inline-flex shrink-0 items-center text-gray-500 hover:text-red-600 ml-2" x-defer="intersect" x-ignore="">
<img width="13" src="https://swisspackag.test.mediadivision.ch/static/version1722344383/frontend/MediaDivision/swisspack-hyva-theme/de_CH/images/header/vergleichen.svg">
<span class="text-xs ml-2 max-md:hidden">Vergleichen</span>
</button>
</div>
</div>
</div>
</form>
POST https://swisspackag.test.mediadivision.ch/checkout/cart/add/uenc/%25uenc%25/product/4421/
<form method="post" action="https://swisspackag.test.mediadivision.ch/checkout/cart/add/uenc/%25uenc%25/product/4421/"
class="relative item product product-item product_addtocart_form !left-0 card card-interactive flex flex-col w-full h-full glider-slide right-4" data-gslide="7" style="height: auto; width: 283px;">
<input name="form_key" type="hidden" value="89Mcr1BgikEtQYvn"> <input type="hidden" name="product" value="4421">
<a href="https://swisspackag.test.mediadivision.ch/catalog/product/view/id/4421/s/packband-4713-50-mm-weiss/" class="product photo product-item-photo block mx-auto mb-3 " tabindex="-1">
<img class="hover:shadow-sm object-contain product-image-photo" x-data="" @update-gallery-4421.window="$root.src = $event.detail" src="https://swisspackag.test.mediadivision.ch/media/catalog/product/cache/6ff2493bc04edee855db9d8f5dd1d705/4/7/4713w-0050-50_001.jpg" loading="lazy" width="300" height="300" alt="Packband 4713 50 mm weiss" title="Packband 4713 50 mm weiss">
</a>
<div class="product-info flex-col flex grow ">
<div class=" leading-tight mt-2 mb-1 items-center justify-center text-primary-darker font-semibold text-lg text-left ">
<a class="product-item-link" href="https://swisspackag.test.mediadivision.ch/catalog/product/view/id/4421/s/packband-4713-50-mm-weiss/" :id="`slide-desc-4421-${$id('slider-id')}`">
Packband 4713 50 mm weiss </a>
</div>
<div class="py-0 ">
<script>
'use strict';
function amNotificationProductViewComponent_4421() {
return {
isAvailable: "1",
isAvailableConfigurableSimple: true,
isOutofstockConfigurable: "1",
title: "Verfügbarkeit",
options: {},
productIndex: "4421",
hideAddToCartBtn: "",
notificationLabel: "Benachrichtigen Sie mich, wenn das Produkt wieder auf Lager ist",
productId: "4421",
/**
* Overridden method for Product Alert View Model to output url according to product id in js
*
* @param productIndex
* @param type
* @returns {*}
*/
getSubscriptionUrl(productIndex, type) {
const urlParts = ['xnotif/email/',
type, '/product_id/',
productIndex,
(parseInt(productIndex) !== parseInt(this.productId)) ? '/parent_id/' + this.productId : '', '/uenc/', 'aHR0cHM6Ly9zd2lzc3BhY2thZy50ZXN0Lm1lZGlhZGl2aXNpb24uY2gv'
];
return BASE_URL + urlParts.join('');
},
getSimpleProduct(data, el) {
let children = JSON.parse('[]');
/**
* hide addtocart button if simple for configurable product is out of stock
*/
window.addEventListener('configurable-select-changed', (event) => {
let componentElement = document.querySelector('[x-data="amNotificationProductViewComponent_' + event.detail.productId + '()"]') || document.querySelector('#stock_notification_' + event.detail.productId);
let parentElement = componentElement.closest('.product-info');
this.hideAddToCartBtn = parentElement.querySelector('.btn.btn-primary:not(.subscribe-button)');
});
//for pdp only
window.addEventListener('configurable-selection-changed', (event) => {
const addToCartButton = document.getElementById('product-addtocart-button')?.closest('div');
if (addToCartButton) {
addToCartButton.style.display = this.isAvailableConfigurableSimple ? 'flex' : 'none';
}
});
const swatchesComponent = (document.querySelector('[x-data="initConfigurableSwatchOptions_' + data.productId + '()"]') || document.querySelector('[x-data="initAmastyXnotifCatalogSwatchesMixin_' + data.productId + '()"]') || document
.querySelector('[x-data="initAmastyCustomStockStatusOptions_' + data.productId + '()"]'));
const swatchesCount = swatchesComponent?.querySelector('div')?.children?.length || 0;
for (const [key, value] of Object.entries(children[data.productIndex] || {})) {
const previousIndex = this.productIndex;
this.productIndex = data.productIndex;
if (Object.keys(data.selectedValues).length >= swatchesCount) {
this.isAvailable = Number(value);
this.isAvailableConfigurableSimple = Number(value);
}
if (this.hideAddToCartBtn) {
this.hideAddToCartBtn.style.display = !this.isAvailable ? 'none' : 'flex';
}
// plp duplicating indexes case
if (el && (previousIndex === this.productIndex) && !this.isAvailable) {
el.closest('.product-info').querySelector('.btn.btn-primary:not(.subscribe-button)').style.display = 'none';
}
}
},
getAvailable() {
return this.options = {
additionalClass: this.isAvailable ? 'bg-green-500' : 'bg-red-500',
label: this.isAvailable ? 'Auf Lager' : 'Nicht lieferbar',
categoryNotificationLabel: this.isAvailable ? '' : this.notificationLabel,
};
}
}
}
</script>
<!--
<div x-data="{
...amNotificationProductViewComponent_4421(),
...amXnotifSubscribeComponentList_4421()
}"
x-on:configurable-select-changed.window="getSimpleProduct($event.detail, $el)"
x-show="getAvailable()"
id="stock_notification_4421"
class="text-right relative">
<p class="flex items-center justify-center align-middle available gap-x-2 stock" :title="title">
<span class="w-3 h-3 rounded-full flex-shrink-0" :class="options.additionalClass"></span>
<span x-text="options.label"></span>
</p>
</div> -->
<script>
'use strict';
function amXnotifSubscribeComponentList_4421() {
return {
mutationStockSubscription: `mutation AmxnotifStockSubscribe($input: AmxnotifSubscribeInput) {
AmxnotifStockSubscribe(input: $input) {
response_message
}
}`,
isInStock: '1',
isConfigurable: '',
productIdentifier: '4421',
isValid: true,
buttonDisabled: false,
getMessages(type, message) {
return typeof window.dispatchMessages !== "undefined" && window.dispatchMessages(
[{
type: type,
text: message
}]);
},
fetchSubscribe(productId) {
let variables = {
input: {
product_uid: btoa(productId),
parent_uid: this.isConfigurable ? btoa(this.productIdentifier) : '',
}
};
this.buttonDisabled = true;
fetch(BASE_URL + 'graphql', {
method: 'POST',
headers: {
'Store': 'default',
'Content-Type': 'application/json',
},
body: JSON.stringify({
query: this.mutationStockSubscription,
variables
}),
mode: "cors",
credentials: "include"
}).then((response) => response.json()).then((result) => {
if (result?.data?.AmxnotifStockSubscribe) {
this.getMessages("success", result.data.AmxnotifStockSubscribe.response_message);
} else {
let message = result?.errors ? result.errors[0].message : "Es ist ein Fehler aufgetreten.";
this.getMessages("error", message)
}
if (this.isConfigurable) {
setTimeout(() => {
window.dispatchEvent(new Event('showAmLoader'));
window.location.reload()
}, 2000)
}
}).finally(() => {
this.buttonDisabled = false;
})
}
}
}
</script>
</div>
<script>
function initPriceBox__66af3690f1ab4() {
return {
updatePrice(priceData) {
const regularPriceLabel = this.$root.querySelector('.normal-price .price-label');
const regularPriceElement = this.$root.querySelector('.normal-price [data-price-type=finalPrice].price-wrapper .price');
const basePriceElement = this.$root.querySelector('.normal-price [data-price-type=basePrice].price-wrapper .price');
if (priceData.finalPrice.amount < priceData.oldPrice.amount) {
regularPriceLabel.classList.add('hidden');
} else {
regularPriceLabel.classList.remove('hidden');
}
regularPriceElement && (regularPriceElement.innerText = hyva.formatPrice(priceData.finalPrice.amount));
basePriceElement && (basePriceElement.innerText = hyva.formatPrice(priceData.basePrice.amount));
}
}
}
</script>
<div class="pt-1 text-gray-900 flex " x-data="initPriceBox__66af3690f1ab4()" @update-prices-4421.window="updatePrice($event.detail);" x-defer="intersect" x-ignore="">
<div class="price-box price-final_price" data-role="priceBox" data-product-id="4421" data-price-box="product-id-4421">
<a href="https://swisspackag.test.mediadivision.ch/catalog/product/view/id/4421/s/packband-4713-50-mm-weiss/" class="minimal-price-link font-bold">
<span x-data="" x-id="['4421']" class="price-container price-final_price tax weee" x-defer="intersect" x-ignore="">
<span class="price-label">Ab</span>
<span :id="$id('4421')" data-price-amount="2.55" data-price-type="" class="price-wrapper ">CHF 2.55</span>
</span>
</a>
</div>
</div>
<div class="mt-auto pt-0 flex flex-wrap justify-center items-center">
<button class="absolute right-3 w-auto btn btn-card justify-center text-sm transition
mr-auto" aria-label="In den Warenkorb Packband 4713 50 mm weiss">
<img width="30" src="https://swisspackag.test.mediadivision.ch/static/version1722344383/frontend/MediaDivision/swisspack-hyva-theme/de_CH/images/header/warenkorb_light.svg">
<span class="ml-2 inline md:ml-0 md:hidden lg:ml-2 lg:inline">
</span>
</button>
<div class="absolute top-2 -left-10 flex flex-col gap-2 addto-icons">
<button x-data="initWishlist()" @click.prevent="addToWishlist(4421)" aria-label="Zur Merkliste hinzufügen Packband 4713 50 mm weiss" type="button"
class="px-4 rounded-r-full h-7 bg-primary-lighter p-0 border-0 inline-flex shrink-0 items-center text-gray-500 hover:text-red-600 ml-2" x-defer="intersect" x-ignore="">
<img width="13" src="https://swisspackag.test.mediadivision.ch/static/version1722344383/frontend/MediaDivision/swisspack-hyva-theme/de_CH/images/header/merkliste.svg">
<span class="text-xs ml-2 max-md:hidden">Merken</span>
</button>
<button x-data="initCompareOnProductList()" @click.prevent="addToCompare(4421)" aria-label="Zur Vergleichsliste hinzufügen Packband 4713 50 mm weiss" type="button"
class="px-4 rounded-r-full h-7 bg-primary-lighter p-0 border-0 inline-flex shrink-0 items-center text-gray-500 hover:text-red-600 ml-2" x-defer="intersect" x-ignore="">
<img width="13" src="https://swisspackag.test.mediadivision.ch/static/version1722344383/frontend/MediaDivision/swisspack-hyva-theme/de_CH/images/header/vergleichen.svg">
<span class="text-xs ml-2 max-md:hidden">Vergleichen</span>
</button>
</div>
</div>
</div>
</form>
POST https://swisspackag.test.mediadivision.ch/checkout/cart/add/uenc/%25uenc%25/product/4420/
<form method="post" action="https://swisspackag.test.mediadivision.ch/checkout/cart/add/uenc/%25uenc%25/product/4420/"
class="relative item product product-item product_addtocart_form !left-0 card card-interactive flex flex-col w-full h-full glider-slide right-5" data-gslide="8" style="height: auto; width: 283px;">
<input name="form_key" type="hidden" value="89Mcr1BgikEtQYvn"> <input type="hidden" name="product" value="4420">
<a href="https://swisspackag.test.mediadivision.ch/catalog/product/view/id/4420/s/packband-4713-50-mm-braun/" class="product photo product-item-photo block mx-auto mb-3 " tabindex="-1">
<img class="hover:shadow-sm object-contain product-image-photo" x-data="" @update-gallery-4420.window="$root.src = $event.detail" src="https://swisspackag.test.mediadivision.ch/media/catalog/product/cache/6ff2493bc04edee855db9d8f5dd1d705/4/7/4713c-0050-50_001.jpg" loading="lazy" width="300" height="300" alt="Packband 4713 50 mm braun" title="Packband 4713 50 mm braun">
</a>
<div class="product-info flex-col flex grow ">
<div class=" leading-tight mt-2 mb-1 items-center justify-center text-primary-darker font-semibold text-lg text-left ">
<a class="product-item-link" href="https://swisspackag.test.mediadivision.ch/catalog/product/view/id/4420/s/packband-4713-50-mm-braun/" :id="`slide-desc-4420-${$id('slider-id')}`">
Packband 4713 50 mm braun </a>
</div>
<div class="py-0 ">
<script>
'use strict';
function amNotificationProductViewComponent_4420() {
return {
isAvailable: "1",
isAvailableConfigurableSimple: true,
isOutofstockConfigurable: "1",
title: "Verfügbarkeit",
options: {},
productIndex: "4420",
hideAddToCartBtn: "",
notificationLabel: "Benachrichtigen Sie mich, wenn das Produkt wieder auf Lager ist",
productId: "4420",
/**
* Overridden method for Product Alert View Model to output url according to product id in js
*
* @param productIndex
* @param type
* @returns {*}
*/
getSubscriptionUrl(productIndex, type) {
const urlParts = ['xnotif/email/',
type, '/product_id/',
productIndex,
(parseInt(productIndex) !== parseInt(this.productId)) ? '/parent_id/' + this.productId : '', '/uenc/', 'aHR0cHM6Ly9zd2lzc3BhY2thZy50ZXN0Lm1lZGlhZGl2aXNpb24uY2gv'
];
return BASE_URL + urlParts.join('');
},
getSimpleProduct(data, el) {
let children = JSON.parse('[]');
/**
* hide addtocart button if simple for configurable product is out of stock
*/
window.addEventListener('configurable-select-changed', (event) => {
let componentElement = document.querySelector('[x-data="amNotificationProductViewComponent_' + event.detail.productId + '()"]') || document.querySelector('#stock_notification_' + event.detail.productId);
let parentElement = componentElement.closest('.product-info');
this.hideAddToCartBtn = parentElement.querySelector('.btn.btn-primary:not(.subscribe-button)');
});
//for pdp only
window.addEventListener('configurable-selection-changed', (event) => {
const addToCartButton = document.getElementById('product-addtocart-button')?.closest('div');
if (addToCartButton) {
addToCartButton.style.display = this.isAvailableConfigurableSimple ? 'flex' : 'none';
}
});
const swatchesComponent = (document.querySelector('[x-data="initConfigurableSwatchOptions_' + data.productId + '()"]') || document.querySelector('[x-data="initAmastyXnotifCatalogSwatchesMixin_' + data.productId + '()"]') || document
.querySelector('[x-data="initAmastyCustomStockStatusOptions_' + data.productId + '()"]'));
const swatchesCount = swatchesComponent?.querySelector('div')?.children?.length || 0;
for (const [key, value] of Object.entries(children[data.productIndex] || {})) {
const previousIndex = this.productIndex;
this.productIndex = data.productIndex;
if (Object.keys(data.selectedValues).length >= swatchesCount) {
this.isAvailable = Number(value);
this.isAvailableConfigurableSimple = Number(value);
}
if (this.hideAddToCartBtn) {
this.hideAddToCartBtn.style.display = !this.isAvailable ? 'none' : 'flex';
}
// plp duplicating indexes case
if (el && (previousIndex === this.productIndex) && !this.isAvailable) {
el.closest('.product-info').querySelector('.btn.btn-primary:not(.subscribe-button)').style.display = 'none';
}
}
},
getAvailable() {
return this.options = {
additionalClass: this.isAvailable ? 'bg-green-500' : 'bg-red-500',
label: this.isAvailable ? 'Auf Lager' : 'Nicht lieferbar',
categoryNotificationLabel: this.isAvailable ? '' : this.notificationLabel,
};
}
}
}
</script>
<!--
<div x-data="{
...amNotificationProductViewComponent_4420(),
...amXnotifSubscribeComponentList_4420()
}"
x-on:configurable-select-changed.window="getSimpleProduct($event.detail, $el)"
x-show="getAvailable()"
id="stock_notification_4420"
class="text-right relative">
<p class="flex items-center justify-center align-middle available gap-x-2 stock" :title="title">
<span class="w-3 h-3 rounded-full flex-shrink-0" :class="options.additionalClass"></span>
<span x-text="options.label"></span>
</p>
</div> -->
<script>
'use strict';
function amXnotifSubscribeComponentList_4420() {
return {
mutationStockSubscription: `mutation AmxnotifStockSubscribe($input: AmxnotifSubscribeInput) {
AmxnotifStockSubscribe(input: $input) {
response_message
}
}`,
isInStock: '1',
isConfigurable: '',
productIdentifier: '4420',
isValid: true,
buttonDisabled: false,
getMessages(type, message) {
return typeof window.dispatchMessages !== "undefined" && window.dispatchMessages(
[{
type: type,
text: message
}]);
},
fetchSubscribe(productId) {
let variables = {
input: {
product_uid: btoa(productId),
parent_uid: this.isConfigurable ? btoa(this.productIdentifier) : '',
}
};
this.buttonDisabled = true;
fetch(BASE_URL + 'graphql', {
method: 'POST',
headers: {
'Store': 'default',
'Content-Type': 'application/json',
},
body: JSON.stringify({
query: this.mutationStockSubscription,
variables
}),
mode: "cors",
credentials: "include"
}).then((response) => response.json()).then((result) => {
if (result?.data?.AmxnotifStockSubscribe) {
this.getMessages("success", result.data.AmxnotifStockSubscribe.response_message);
} else {
let message = result?.errors ? result.errors[0].message : "Es ist ein Fehler aufgetreten.";
this.getMessages("error", message)
}
if (this.isConfigurable) {
setTimeout(() => {
window.dispatchEvent(new Event('showAmLoader'));
window.location.reload()
}, 2000)
}
}).finally(() => {
this.buttonDisabled = false;
})
}
}
}
</script>
</div>
<script>
function initPriceBox__66af369100982() {
return {
updatePrice(priceData) {
const regularPriceLabel = this.$root.querySelector('.normal-price .price-label');
const regularPriceElement = this.$root.querySelector('.normal-price [data-price-type=finalPrice].price-wrapper .price');
const basePriceElement = this.$root.querySelector('.normal-price [data-price-type=basePrice].price-wrapper .price');
if (priceData.finalPrice.amount < priceData.oldPrice.amount) {
regularPriceLabel.classList.add('hidden');
} else {
regularPriceLabel.classList.remove('hidden');
}
regularPriceElement && (regularPriceElement.innerText = hyva.formatPrice(priceData.finalPrice.amount));
basePriceElement && (basePriceElement.innerText = hyva.formatPrice(priceData.basePrice.amount));
}
}
}
</script>
<div class="pt-1 text-gray-900 flex " x-data="initPriceBox__66af369100982()" @update-prices-4420.window="updatePrice($event.detail);" x-defer="intersect" x-ignore="">
<div class="price-box price-final_price" data-role="priceBox" data-product-id="4420" data-price-box="product-id-4420">
<a href="https://swisspackag.test.mediadivision.ch/catalog/product/view/id/4420/s/packband-4713-50-mm-braun/" class="minimal-price-link font-bold">
<span x-data="" x-id="['4420']" class="price-container price-final_price tax weee" x-defer="intersect" x-ignore="">
<span class="price-label">Ab</span>
<span :id="$id('4420')" data-price-amount="2.55" data-price-type="" class="price-wrapper ">CHF 2.55</span>
</span>
</a>
</div>
</div>
<div class="mt-auto pt-0 flex flex-wrap justify-center items-center">
<button class="absolute right-3 w-auto btn btn-card justify-center text-sm transition
mr-auto" aria-label="In den Warenkorb Packband 4713 50 mm braun">
<img width="30" src="https://swisspackag.test.mediadivision.ch/static/version1722344383/frontend/MediaDivision/swisspack-hyva-theme/de_CH/images/header/warenkorb_light.svg">
<span class="ml-2 inline md:ml-0 md:hidden lg:ml-2 lg:inline">
</span>
</button>
<div class="absolute top-2 -left-10 flex flex-col gap-2 addto-icons">
<button x-data="initWishlist()" @click.prevent="addToWishlist(4420)" aria-label="Zur Merkliste hinzufügen Packband 4713 50 mm braun" type="button"
class="px-4 rounded-r-full h-7 bg-primary-lighter p-0 border-0 inline-flex shrink-0 items-center text-gray-500 hover:text-red-600 ml-2" x-defer="intersect" x-ignore="">
<img width="13" src="https://swisspackag.test.mediadivision.ch/static/version1722344383/frontend/MediaDivision/swisspack-hyva-theme/de_CH/images/header/merkliste.svg">
<span class="text-xs ml-2 max-md:hidden">Merken</span>
</button>
<button x-data="initCompareOnProductList()" @click.prevent="addToCompare(4420)" aria-label="Zur Vergleichsliste hinzufügen Packband 4713 50 mm braun" type="button"
class="px-4 rounded-r-full h-7 bg-primary-lighter p-0 border-0 inline-flex shrink-0 items-center text-gray-500 hover:text-red-600 ml-2" x-defer="intersect" x-ignore="">
<img width="13" src="https://swisspackag.test.mediadivision.ch/static/version1722344383/frontend/MediaDivision/swisspack-hyva-theme/de_CH/images/header/vergleichen.svg">
<span class="text-xs ml-2 max-md:hidden">Vergleichen</span>
</button>
</div>
</div>
</div>
</form>
POST https://swisspackag.test.mediadivision.ch/checkout/cart/add/uenc/%25uenc%25/product/4419/
<form method="post" action="https://swisspackag.test.mediadivision.ch/checkout/cart/add/uenc/%25uenc%25/product/4419/"
class="relative item product product-item product_addtocart_form !left-0 card card-interactive flex flex-col w-full h-full glider-slide right-6" data-gslide="9" style="height: auto; width: 283px;">
<input name="form_key" type="hidden" value="89Mcr1BgikEtQYvn"> <input type="hidden" name="product" value="4419">
<a href="https://swisspackag.test.mediadivision.ch/catalog/product/view/id/4419/s/packband-60408-50-mm-braun/" class="product photo product-item-photo block mx-auto mb-3 " tabindex="-1">
<img class="hover:shadow-sm object-contain product-image-photo" x-data="" @update-gallery-4419.window="$root.src = $event.detail" src="https://swisspackag.test.mediadivision.ch/media/catalog/product/cache/6ff2493bc04edee855db9d8f5dd1d705/6/0/60408-0050-50_001.jpg" loading="lazy" width="300" height="300" alt="Packband 60408 50 mm braun" title="Packband 60408 50 mm braun">
</a>
<div class="product-info flex-col flex grow ">
<div class=" leading-tight mt-2 mb-1 items-center justify-center text-primary-darker font-semibold text-lg text-left ">
<a class="product-item-link" href="https://swisspackag.test.mediadivision.ch/catalog/product/view/id/4419/s/packband-60408-50-mm-braun/" :id="`slide-desc-4419-${$id('slider-id')}`">
Packband 60408 50 mm braun </a>
</div>
<div class="py-0 ">
<script>
'use strict';
function amNotificationProductViewComponent_4419() {
return {
isAvailable: "1",
isAvailableConfigurableSimple: true,
isOutofstockConfigurable: "1",
title: "Verfügbarkeit",
options: {},
productIndex: "4419",
hideAddToCartBtn: "",
notificationLabel: "Benachrichtigen Sie mich, wenn das Produkt wieder auf Lager ist",
productId: "4419",
/**
* Overridden method for Product Alert View Model to output url according to product id in js
*
* @param productIndex
* @param type
* @returns {*}
*/
getSubscriptionUrl(productIndex, type) {
const urlParts = ['xnotif/email/',
type, '/product_id/',
productIndex,
(parseInt(productIndex) !== parseInt(this.productId)) ? '/parent_id/' + this.productId : '', '/uenc/', 'aHR0cHM6Ly9zd2lzc3BhY2thZy50ZXN0Lm1lZGlhZGl2aXNpb24uY2gv'
];
return BASE_URL + urlParts.join('');
},
getSimpleProduct(data, el) {
let children = JSON.parse('[]');
/**
* hide addtocart button if simple for configurable product is out of stock
*/
window.addEventListener('configurable-select-changed', (event) => {
let componentElement = document.querySelector('[x-data="amNotificationProductViewComponent_' + event.detail.productId + '()"]') || document.querySelector('#stock_notification_' + event.detail.productId);
let parentElement = componentElement.closest('.product-info');
this.hideAddToCartBtn = parentElement.querySelector('.btn.btn-primary:not(.subscribe-button)');
});
//for pdp only
window.addEventListener('configurable-selection-changed', (event) => {
const addToCartButton = document.getElementById('product-addtocart-button')?.closest('div');
if (addToCartButton) {
addToCartButton.style.display = this.isAvailableConfigurableSimple ? 'flex' : 'none';
}
});
const swatchesComponent = (document.querySelector('[x-data="initConfigurableSwatchOptions_' + data.productId + '()"]') || document.querySelector('[x-data="initAmastyXnotifCatalogSwatchesMixin_' + data.productId + '()"]') || document
.querySelector('[x-data="initAmastyCustomStockStatusOptions_' + data.productId + '()"]'));
const swatchesCount = swatchesComponent?.querySelector('div')?.children?.length || 0;
for (const [key, value] of Object.entries(children[data.productIndex] || {})) {
const previousIndex = this.productIndex;
this.productIndex = data.productIndex;
if (Object.keys(data.selectedValues).length >= swatchesCount) {
this.isAvailable = Number(value);
this.isAvailableConfigurableSimple = Number(value);
}
if (this.hideAddToCartBtn) {
this.hideAddToCartBtn.style.display = !this.isAvailable ? 'none' : 'flex';
}
// plp duplicating indexes case
if (el && (previousIndex === this.productIndex) && !this.isAvailable) {
el.closest('.product-info').querySelector('.btn.btn-primary:not(.subscribe-button)').style.display = 'none';
}
}
},
getAvailable() {
return this.options = {
additionalClass: this.isAvailable ? 'bg-green-500' : 'bg-red-500',
label: this.isAvailable ? 'Auf Lager' : 'Nicht lieferbar',
categoryNotificationLabel: this.isAvailable ? '' : this.notificationLabel,
};
}
}
}
</script>
<!--
<div x-data="{
...amNotificationProductViewComponent_4419(),
...amXnotifSubscribeComponentList_4419()
}"
x-on:configurable-select-changed.window="getSimpleProduct($event.detail, $el)"
x-show="getAvailable()"
id="stock_notification_4419"
class="text-right relative">
<p class="flex items-center justify-center align-middle available gap-x-2 stock" :title="title">
<span class="w-3 h-3 rounded-full flex-shrink-0" :class="options.additionalClass"></span>
<span x-text="options.label"></span>
</p>
</div> -->
<script>
'use strict';
function amXnotifSubscribeComponentList_4419() {
return {
mutationStockSubscription: `mutation AmxnotifStockSubscribe($input: AmxnotifSubscribeInput) {
AmxnotifStockSubscribe(input: $input) {
response_message
}
}`,
isInStock: '1',
isConfigurable: '',
productIdentifier: '4419',
isValid: true,
buttonDisabled: false,
getMessages(type, message) {
return typeof window.dispatchMessages !== "undefined" && window.dispatchMessages(
[{
type: type,
text: message
}]);
},
fetchSubscribe(productId) {
let variables = {
input: {
product_uid: btoa(productId),
parent_uid: this.isConfigurable ? btoa(this.productIdentifier) : '',
}
};
this.buttonDisabled = true;
fetch(BASE_URL + 'graphql', {
method: 'POST',
headers: {
'Store': 'default',
'Content-Type': 'application/json',
},
body: JSON.stringify({
query: this.mutationStockSubscription,
variables
}),
mode: "cors",
credentials: "include"
}).then((response) => response.json()).then((result) => {
if (result?.data?.AmxnotifStockSubscribe) {
this.getMessages("success", result.data.AmxnotifStockSubscribe.response_message);
} else {
let message = result?.errors ? result.errors[0].message : "Es ist ein Fehler aufgetreten.";
this.getMessages("error", message)
}
if (this.isConfigurable) {
setTimeout(() => {
window.dispatchEvent(new Event('showAmLoader'));
window.location.reload()
}, 2000)
}
}).finally(() => {
this.buttonDisabled = false;
})
}
}
}
</script>
</div>
<script>
function initPriceBox__66af369103e95() {
return {
updatePrice(priceData) {
const regularPriceLabel = this.$root.querySelector('.normal-price .price-label');
const regularPriceElement = this.$root.querySelector('.normal-price [data-price-type=finalPrice].price-wrapper .price');
const basePriceElement = this.$root.querySelector('.normal-price [data-price-type=basePrice].price-wrapper .price');
if (priceData.finalPrice.amount < priceData.oldPrice.amount) {
regularPriceLabel.classList.add('hidden');
} else {
regularPriceLabel.classList.remove('hidden');
}
regularPriceElement && (regularPriceElement.innerText = hyva.formatPrice(priceData.finalPrice.amount));
basePriceElement && (basePriceElement.innerText = hyva.formatPrice(priceData.basePrice.amount));
}
}
}
</script>
<div class="pt-1 text-gray-900 flex " x-data="initPriceBox__66af369103e95()" @update-prices-4419.window="updatePrice($event.detail);" x-defer="intersect" x-ignore="">
<div class="price-box price-final_price" data-role="priceBox" data-product-id="4419" data-price-box="product-id-4419">
<a href="https://swisspackag.test.mediadivision.ch/catalog/product/view/id/4419/s/packband-60408-50-mm-braun/" class="minimal-price-link font-bold">
<span x-data="" x-id="['4419']" class="price-container price-final_price tax weee" x-defer="intersect" x-ignore="">
<span class="price-label">Ab</span>
<span :id="$id('4419')" data-price-amount="4.55" data-price-type="" class="price-wrapper ">CHF 4.55</span>
</span>
</a>
</div>
</div>
<div class="mt-auto pt-0 flex flex-wrap justify-center items-center">
<button class="absolute right-3 w-auto btn btn-card justify-center text-sm transition
mr-auto" aria-label="In den Warenkorb Packband 60408 50 mm braun">
<img width="30" src="https://swisspackag.test.mediadivision.ch/static/version1722344383/frontend/MediaDivision/swisspack-hyva-theme/de_CH/images/header/warenkorb_light.svg">
<span class="ml-2 inline md:ml-0 md:hidden lg:ml-2 lg:inline">
</span>
</button>
<div class="absolute top-2 -left-10 flex flex-col gap-2 addto-icons">
<button x-data="initWishlist()" @click.prevent="addToWishlist(4419)" aria-label="Zur Merkliste hinzufügen Packband 60408 50 mm braun" type="button"
class="px-4 rounded-r-full h-7 bg-primary-lighter p-0 border-0 inline-flex shrink-0 items-center text-gray-500 hover:text-red-600 ml-2" x-defer="intersect" x-ignore="">
<img width="13" src="https://swisspackag.test.mediadivision.ch/static/version1722344383/frontend/MediaDivision/swisspack-hyva-theme/de_CH/images/header/merkliste.svg">
<span class="text-xs ml-2 max-md:hidden">Merken</span>
</button>
<button x-data="initCompareOnProductList()" @click.prevent="addToCompare(4419)" aria-label="Zur Vergleichsliste hinzufügen Packband 60408 50 mm braun" type="button"
class="px-4 rounded-r-full h-7 bg-primary-lighter p-0 border-0 inline-flex shrink-0 items-center text-gray-500 hover:text-red-600 ml-2" x-defer="intersect" x-ignore="">
<img width="13" src="https://swisspackag.test.mediadivision.ch/static/version1722344383/frontend/MediaDivision/swisspack-hyva-theme/de_CH/images/header/vergleichen.svg">
<span class="text-xs ml-2 max-md:hidden">Vergleichen</span>
</button>
</div>
</div>
</div>
</form>
POST https://swisspackag.test.mediadivision.ch/checkout/cart/add/uenc/%25uenc%25/product/1661/
<form method="post" action="https://swisspackag.test.mediadivision.ch/checkout/cart/add/uenc/%25uenc%25/product/1661/"
class="relative item product product-item product_addtocart_form !left-0 card card-interactive flex flex-col w-full h-full glider-slide right-7" data-gslide="10" style="height: auto; width: 283px;">
<input name="form_key" type="hidden" value="89Mcr1BgikEtQYvn"> <input type="hidden" name="product" value="1661">
<a href="https://swisspackag.test.mediadivision.ch/catalog/product/view/id/1661/s/packband-4024-transparent/" class="product photo product-item-photo block mx-auto mb-3 " tabindex="-1">
<img class="hover:shadow-sm object-contain product-image-photo" x-data="" @update-gallery-1661.window="$root.src = $event.detail" src="https://swisspackag.test.mediadivision.ch/media/catalog/product/cache/6ff2493bc04edee855db9d8f5dd1d705/4/0/4024t-0050-66_001.jpg" loading="lazy" width="300" height="300" alt="Packband 4024 50 mm transparent" title="Packband 4024 50 mm transparent">
</a>
<div class="product-info flex-col flex grow ">
<div class=" leading-tight mt-2 mb-1 items-center justify-center text-primary-darker font-semibold text-lg text-left ">
<a class="product-item-link" href="https://swisspackag.test.mediadivision.ch/catalog/product/view/id/1661/s/packband-4024-transparent/" :id="`slide-desc-1661-${$id('slider-id')}`">
Packband 4024 50 mm transparent </a>
</div>
<div class="py-0 ">
<script>
'use strict';
function amNotificationProductViewComponent_1661() {
return {
isAvailable: "1",
isAvailableConfigurableSimple: true,
isOutofstockConfigurable: "1",
title: "Verfügbarkeit",
options: {},
productIndex: "1661",
hideAddToCartBtn: "",
notificationLabel: "Benachrichtigen Sie mich, wenn das Produkt wieder auf Lager ist",
productId: "1661",
/**
* Overridden method for Product Alert View Model to output url according to product id in js
*
* @param productIndex
* @param type
* @returns {*}
*/
getSubscriptionUrl(productIndex, type) {
const urlParts = ['xnotif/email/',
type, '/product_id/',
productIndex,
(parseInt(productIndex) !== parseInt(this.productId)) ? '/parent_id/' + this.productId : '', '/uenc/', 'aHR0cHM6Ly9zd2lzc3BhY2thZy50ZXN0Lm1lZGlhZGl2aXNpb24uY2gv'
];
return BASE_URL + urlParts.join('');
},
getSimpleProduct(data, el) {
let children = JSON.parse('[]');
/**
* hide addtocart button if simple for configurable product is out of stock
*/
window.addEventListener('configurable-select-changed', (event) => {
let componentElement = document.querySelector('[x-data="amNotificationProductViewComponent_' + event.detail.productId + '()"]') || document.querySelector('#stock_notification_' + event.detail.productId);
let parentElement = componentElement.closest('.product-info');
this.hideAddToCartBtn = parentElement.querySelector('.btn.btn-primary:not(.subscribe-button)');
});
//for pdp only
window.addEventListener('configurable-selection-changed', (event) => {
const addToCartButton = document.getElementById('product-addtocart-button')?.closest('div');
if (addToCartButton) {
addToCartButton.style.display = this.isAvailableConfigurableSimple ? 'flex' : 'none';
}
});
const swatchesComponent = (document.querySelector('[x-data="initConfigurableSwatchOptions_' + data.productId + '()"]') || document.querySelector('[x-data="initAmastyXnotifCatalogSwatchesMixin_' + data.productId + '()"]') || document
.querySelector('[x-data="initAmastyCustomStockStatusOptions_' + data.productId + '()"]'));
const swatchesCount = swatchesComponent?.querySelector('div')?.children?.length || 0;
for (const [key, value] of Object.entries(children[data.productIndex] || {})) {
const previousIndex = this.productIndex;
this.productIndex = data.productIndex;
if (Object.keys(data.selectedValues).length >= swatchesCount) {
this.isAvailable = Number(value);
this.isAvailableConfigurableSimple = Number(value);
}
if (this.hideAddToCartBtn) {
this.hideAddToCartBtn.style.display = !this.isAvailable ? 'none' : 'flex';
}
// plp duplicating indexes case
if (el && (previousIndex === this.productIndex) && !this.isAvailable) {
el.closest('.product-info').querySelector('.btn.btn-primary:not(.subscribe-button)').style.display = 'none';
}
}
},
getAvailable() {
return this.options = {
additionalClass: this.isAvailable ? 'bg-green-500' : 'bg-red-500',
label: this.isAvailable ? 'Auf Lager' : 'Nicht lieferbar',
categoryNotificationLabel: this.isAvailable ? '' : this.notificationLabel,
};
}
}
}
</script>
<!--
<div x-data="{
...amNotificationProductViewComponent_1661(),
...amXnotifSubscribeComponentList_1661()
}"
x-on:configurable-select-changed.window="getSimpleProduct($event.detail, $el)"
x-show="getAvailable()"
id="stock_notification_1661"
class="text-right relative">
<p class="flex items-center justify-center align-middle available gap-x-2 stock" :title="title">
<span class="w-3 h-3 rounded-full flex-shrink-0" :class="options.additionalClass"></span>
<span x-text="options.label"></span>
</p>
</div> -->
<script>
'use strict';
function amXnotifSubscribeComponentList_1661() {
return {
mutationStockSubscription: `mutation AmxnotifStockSubscribe($input: AmxnotifSubscribeInput) {
AmxnotifStockSubscribe(input: $input) {
response_message
}
}`,
isInStock: '1',
isConfigurable: '',
productIdentifier: '1661',
isValid: true,
buttonDisabled: false,
getMessages(type, message) {
return typeof window.dispatchMessages !== "undefined" && window.dispatchMessages(
[{
type: type,
text: message
}]);
},
fetchSubscribe(productId) {
let variables = {
input: {
product_uid: btoa(productId),
parent_uid: this.isConfigurable ? btoa(this.productIdentifier) : '',
}
};
this.buttonDisabled = true;
fetch(BASE_URL + 'graphql', {
method: 'POST',
headers: {
'Store': 'default',
'Content-Type': 'application/json',
},
body: JSON.stringify({
query: this.mutationStockSubscription,
variables
}),
mode: "cors",
credentials: "include"
}).then((response) => response.json()).then((result) => {
if (result?.data?.AmxnotifStockSubscribe) {
this.getMessages("success", result.data.AmxnotifStockSubscribe.response_message);
} else {
let message = result?.errors ? result.errors[0].message : "Es ist ein Fehler aufgetreten.";
this.getMessages("error", message)
}
if (this.isConfigurable) {
setTimeout(() => {
window.dispatchEvent(new Event('showAmLoader'));
window.location.reload()
}, 2000)
}
}).finally(() => {
this.buttonDisabled = false;
})
}
}
}
</script>
</div>
<script>
function initPriceBox__66af36910727d() {
return {
updatePrice(priceData) {
const regularPriceLabel = this.$root.querySelector('.normal-price .price-label');
const regularPriceElement = this.$root.querySelector('.normal-price [data-price-type=finalPrice].price-wrapper .price');
const basePriceElement = this.$root.querySelector('.normal-price [data-price-type=basePrice].price-wrapper .price');
if (priceData.finalPrice.amount < priceData.oldPrice.amount) {
regularPriceLabel.classList.add('hidden');
} else {
regularPriceLabel.classList.remove('hidden');
}
regularPriceElement && (regularPriceElement.innerText = hyva.formatPrice(priceData.finalPrice.amount));
basePriceElement && (basePriceElement.innerText = hyva.formatPrice(priceData.basePrice.amount));
}
}
}
</script>
<div class="pt-1 text-gray-900 flex " x-data="initPriceBox__66af36910727d()" @update-prices-1661.window="updatePrice($event.detail);" x-defer="intersect" x-ignore="">
<div class="price-box price-final_price" data-role="priceBox" data-product-id="1661" data-price-box="product-id-1661">
<a href="https://swisspackag.test.mediadivision.ch/catalog/product/view/id/1661/s/packband-4024-transparent/" class="minimal-price-link font-bold">
<span x-data="" x-id="['1661']" class="price-container price-final_price tax weee" x-defer="intersect" x-ignore="">
<span class="price-label">Ab</span>
<span :id="$id('1661')" data-price-amount="3.15" data-price-type="" class="price-wrapper ">CHF 3.15</span>
</span>
</a>
</div>
</div>
<div class="mt-auto pt-0 flex flex-wrap justify-center items-center">
<button class="absolute right-3 w-auto btn btn-card justify-center text-sm transition
mr-auto" aria-label="In den Warenkorb Packband 4024 50 mm transparent">
<img width="30" src="https://swisspackag.test.mediadivision.ch/static/version1722344383/frontend/MediaDivision/swisspack-hyva-theme/de_CH/images/header/warenkorb_light.svg">
<span class="ml-2 inline md:ml-0 md:hidden lg:ml-2 lg:inline">
</span>
</button>
<div class="absolute top-2 -left-10 flex flex-col gap-2 addto-icons">
<button x-data="initWishlist()" @click.prevent="addToWishlist(1661)" aria-label="Zur Merkliste hinzufügen Packband 4024 50 mm transparent" type="button"
class="px-4 rounded-r-full h-7 bg-primary-lighter p-0 border-0 inline-flex shrink-0 items-center text-gray-500 hover:text-red-600 ml-2" x-defer="intersect" x-ignore="">
<img width="13" src="https://swisspackag.test.mediadivision.ch/static/version1722344383/frontend/MediaDivision/swisspack-hyva-theme/de_CH/images/header/merkliste.svg">
<span class="text-xs ml-2 max-md:hidden">Merken</span>
</button>
<button x-data="initCompareOnProductList()" @click.prevent="addToCompare(1661)" aria-label="Zur Vergleichsliste hinzufügen Packband 4024 50 mm transparent" type="button"
class="px-4 rounded-r-full h-7 bg-primary-lighter p-0 border-0 inline-flex shrink-0 items-center text-gray-500 hover:text-red-600 ml-2" x-defer="intersect" x-ignore="">
<img width="13" src="https://swisspackag.test.mediadivision.ch/static/version1722344383/frontend/MediaDivision/swisspack-hyva-theme/de_CH/images/header/vergleichen.svg">
<span class="text-xs ml-2 max-md:hidden">Vergleichen</span>
</button>
</div>
</div>
</div>
</form>
POST https://swisspackag.test.mediadivision.ch/checkout/cart/add/uenc/%25uenc%25/product/1660/
<form method="post" action="https://swisspackag.test.mediadivision.ch/checkout/cart/add/uenc/%25uenc%25/product/1660/"
class="relative item product product-item product_addtocart_form !left-0 card card-interactive flex flex-col w-full h-full glider-slide right-8" data-gslide="11" style="height: auto; width: 283px;">
<input name="form_key" type="hidden" value="89Mcr1BgikEtQYvn"> <input type="hidden" name="product" value="1660">
<a href="https://swisspackag.test.mediadivision.ch/catalog/product/view/id/1660/s/packband-4024-braun/" class="product photo product-item-photo block mx-auto mb-3 " tabindex="-1">
<img class="hover:shadow-sm object-contain product-image-photo" x-data="" @update-gallery-1660.window="$root.src = $event.detail" src="https://swisspackag.test.mediadivision.ch/media/catalog/product/cache/6ff2493bc04edee855db9d8f5dd1d705/4/0/4024c-0050-66_001.jpg" loading="lazy" width="300" height="300" alt="Packband 4024 50 mm braun" title="Packband 4024 50 mm braun">
</a>
<div class="product-info flex-col flex grow ">
<div class=" leading-tight mt-2 mb-1 items-center justify-center text-primary-darker font-semibold text-lg text-left ">
<a class="product-item-link" href="https://swisspackag.test.mediadivision.ch/catalog/product/view/id/1660/s/packband-4024-braun/" :id="`slide-desc-1660-${$id('slider-id')}`">
Packband 4024 50 mm braun </a>
</div>
<div class="py-0 ">
<script>
'use strict';
function amNotificationProductViewComponent_1660() {
return {
isAvailable: "1",
isAvailableConfigurableSimple: true,
isOutofstockConfigurable: "1",
title: "Verfügbarkeit",
options: {},
productIndex: "1660",
hideAddToCartBtn: "",
notificationLabel: "Benachrichtigen Sie mich, wenn das Produkt wieder auf Lager ist",
productId: "1660",
/**
* Overridden method for Product Alert View Model to output url according to product id in js
*
* @param productIndex
* @param type
* @returns {*}
*/
getSubscriptionUrl(productIndex, type) {
const urlParts = ['xnotif/email/',
type, '/product_id/',
productIndex,
(parseInt(productIndex) !== parseInt(this.productId)) ? '/parent_id/' + this.productId : '', '/uenc/', 'aHR0cHM6Ly9zd2lzc3BhY2thZy50ZXN0Lm1lZGlhZGl2aXNpb24uY2gv'
];
return BASE_URL + urlParts.join('');
},
getSimpleProduct(data, el) {
let children = JSON.parse('[]');
/**
* hide addtocart button if simple for configurable product is out of stock
*/
window.addEventListener('configurable-select-changed', (event) => {
let componentElement = document.querySelector('[x-data="amNotificationProductViewComponent_' + event.detail.productId + '()"]') || document.querySelector('#stock_notification_' + event.detail.productId);
let parentElement = componentElement.closest('.product-info');
this.hideAddToCartBtn = parentElement.querySelector('.btn.btn-primary:not(.subscribe-button)');
});
//for pdp only
window.addEventListener('configurable-selection-changed', (event) => {
const addToCartButton = document.getElementById('product-addtocart-button')?.closest('div');
if (addToCartButton) {
addToCartButton.style.display = this.isAvailableConfigurableSimple ? 'flex' : 'none';
}
});
const swatchesComponent = (document.querySelector('[x-data="initConfigurableSwatchOptions_' + data.productId + '()"]') || document.querySelector('[x-data="initAmastyXnotifCatalogSwatchesMixin_' + data.productId + '()"]') || document
.querySelector('[x-data="initAmastyCustomStockStatusOptions_' + data.productId + '()"]'));
const swatchesCount = swatchesComponent?.querySelector('div')?.children?.length || 0;
for (const [key, value] of Object.entries(children[data.productIndex] || {})) {
const previousIndex = this.productIndex;
this.productIndex = data.productIndex;
if (Object.keys(data.selectedValues).length >= swatchesCount) {
this.isAvailable = Number(value);
this.isAvailableConfigurableSimple = Number(value);
}
if (this.hideAddToCartBtn) {
this.hideAddToCartBtn.style.display = !this.isAvailable ? 'none' : 'flex';
}
// plp duplicating indexes case
if (el && (previousIndex === this.productIndex) && !this.isAvailable) {
el.closest('.product-info').querySelector('.btn.btn-primary:not(.subscribe-button)').style.display = 'none';
}
}
},
getAvailable() {
return this.options = {
additionalClass: this.isAvailable ? 'bg-green-500' : 'bg-red-500',
label: this.isAvailable ? 'Auf Lager' : 'Nicht lieferbar',
categoryNotificationLabel: this.isAvailable ? '' : this.notificationLabel,
};
}
}
}
</script>
<!--
<div x-data="{
...amNotificationProductViewComponent_1660(),
...amXnotifSubscribeComponentList_1660()
}"
x-on:configurable-select-changed.window="getSimpleProduct($event.detail, $el)"
x-show="getAvailable()"
id="stock_notification_1660"
class="text-right relative">
<p class="flex items-center justify-center align-middle available gap-x-2 stock" :title="title">
<span class="w-3 h-3 rounded-full flex-shrink-0" :class="options.additionalClass"></span>
<span x-text="options.label"></span>
</p>
</div> -->
<script>
'use strict';
function amXnotifSubscribeComponentList_1660() {
return {
mutationStockSubscription: `mutation AmxnotifStockSubscribe($input: AmxnotifSubscribeInput) {
AmxnotifStockSubscribe(input: $input) {
response_message
}
}`,
isInStock: '1',
isConfigurable: '',
productIdentifier: '1660',
isValid: true,
buttonDisabled: false,
getMessages(type, message) {
return typeof window.dispatchMessages !== "undefined" && window.dispatchMessages(
[{
type: type,
text: message
}]);
},
fetchSubscribe(productId) {
let variables = {
input: {
product_uid: btoa(productId),
parent_uid: this.isConfigurable ? btoa(this.productIdentifier) : '',
}
};
this.buttonDisabled = true;
fetch(BASE_URL + 'graphql', {
method: 'POST',
headers: {
'Store': 'default',
'Content-Type': 'application/json',
},
body: JSON.stringify({
query: this.mutationStockSubscription,
variables
}),
mode: "cors",
credentials: "include"
}).then((response) => response.json()).then((result) => {
if (result?.data?.AmxnotifStockSubscribe) {
this.getMessages("success", result.data.AmxnotifStockSubscribe.response_message);
} else {
let message = result?.errors ? result.errors[0].message : "Es ist ein Fehler aufgetreten.";
this.getMessages("error", message)
}
if (this.isConfigurable) {
setTimeout(() => {
window.dispatchEvent(new Event('showAmLoader'));
window.location.reload()
}, 2000)
}
}).finally(() => {
this.buttonDisabled = false;
})
}
}
}
</script>
</div>
<script>
function initPriceBox__66af36910a95b() {
return {
updatePrice(priceData) {
const regularPriceLabel = this.$root.querySelector('.normal-price .price-label');
const regularPriceElement = this.$root.querySelector('.normal-price [data-price-type=finalPrice].price-wrapper .price');
const basePriceElement = this.$root.querySelector('.normal-price [data-price-type=basePrice].price-wrapper .price');
if (priceData.finalPrice.amount < priceData.oldPrice.amount) {
regularPriceLabel.classList.add('hidden');
} else {
regularPriceLabel.classList.remove('hidden');
}
regularPriceElement && (regularPriceElement.innerText = hyva.formatPrice(priceData.finalPrice.amount));
basePriceElement && (basePriceElement.innerText = hyva.formatPrice(priceData.basePrice.amount));
}
}
}
</script>
<div class="pt-1 text-gray-900 flex " x-data="initPriceBox__66af36910a95b()" @update-prices-1660.window="updatePrice($event.detail);" x-defer="intersect" x-ignore="">
<div class="price-box price-final_price" data-role="priceBox" data-product-id="1660" data-price-box="product-id-1660">
<a href="https://swisspackag.test.mediadivision.ch/catalog/product/view/id/1660/s/packband-4024-braun/" class="minimal-price-link font-bold">
<span x-data="" x-id="['1660']" class="price-container price-final_price tax weee" x-defer="intersect" x-ignore="">
<span class="price-label">Ab</span>
<span :id="$id('1660')" data-price-amount="3.15" data-price-type="" class="price-wrapper ">CHF 3.15</span>
</span>
</a>
</div>
</div>
<div class="mt-auto pt-0 flex flex-wrap justify-center items-center">
<button class="absolute right-3 w-auto btn btn-card justify-center text-sm transition
mr-auto" aria-label="In den Warenkorb Packband 4024 50 mm braun">
<img width="30" src="https://swisspackag.test.mediadivision.ch/static/version1722344383/frontend/MediaDivision/swisspack-hyva-theme/de_CH/images/header/warenkorb_light.svg">
<span class="ml-2 inline md:ml-0 md:hidden lg:ml-2 lg:inline">
</span>
</button>
<div class="absolute top-2 -left-10 flex flex-col gap-2 addto-icons">
<button x-data="initWishlist()" @click.prevent="addToWishlist(1660)" aria-label="Zur Merkliste hinzufügen Packband 4024 50 mm braun" type="button"
class="px-4 rounded-r-full h-7 bg-primary-lighter p-0 border-0 inline-flex shrink-0 items-center text-gray-500 hover:text-red-600 ml-2" x-defer="intersect" x-ignore="">
<img width="13" src="https://swisspackag.test.mediadivision.ch/static/version1722344383/frontend/MediaDivision/swisspack-hyva-theme/de_CH/images/header/merkliste.svg">
<span class="text-xs ml-2 max-md:hidden">Merken</span>
</button>
<button x-data="initCompareOnProductList()" @click.prevent="addToCompare(1660)" aria-label="Zur Vergleichsliste hinzufügen Packband 4024 50 mm braun" type="button"
class="px-4 rounded-r-full h-7 bg-primary-lighter p-0 border-0 inline-flex shrink-0 items-center text-gray-500 hover:text-red-600 ml-2" x-defer="intersect" x-ignore="">
<img width="13" src="https://swisspackag.test.mediadivision.ch/static/version1722344383/frontend/MediaDivision/swisspack-hyva-theme/de_CH/images/header/vergleichen.svg">
<span class="text-xs ml-2 max-md:hidden">Vergleichen</span>
</button>
</div>
</div>
</div>
</form>
POST https://swisspackag.test.mediadivision.ch/checkout/cart/add/uenc/%25uenc%25/product/1659/
<form method="post" action="https://swisspackag.test.mediadivision.ch/checkout/cart/add/uenc/%25uenc%25/product/1659/"
class="relative item product product-item product_addtocart_form !left-0 card card-interactive flex flex-col w-full h-full glider-slide right-9" data-gslide="12" style="height: auto; width: 283px;">
<input name="form_key" type="hidden" value="89Mcr1BgikEtQYvn"> <input type="hidden" name="product" value="1659">
<a href="https://swisspackag.test.mediadivision.ch/catalog/product/view/id/1659/s/packband-5044-transparent/" class="product photo product-item-photo block mx-auto mb-3 " tabindex="-1">
<img class="hover:shadow-sm object-contain product-image-photo" x-data="" @update-gallery-1659.window="$root.src = $event.detail" src="https://swisspackag.test.mediadivision.ch/media/catalog/product/cache/6ff2493bc04edee855db9d8f5dd1d705/5/0/5044t-0050-66_001.jpeg" loading="lazy" width="300" height="300" alt="Packband 5044 50 mm transparent" title="Packband 5044 50 mm transparent">
</a>
<div class="product-info flex-col flex grow ">
<div class=" leading-tight mt-2 mb-1 items-center justify-center text-primary-darker font-semibold text-lg text-left ">
<a class="product-item-link" href="https://swisspackag.test.mediadivision.ch/catalog/product/view/id/1659/s/packband-5044-transparent/" :id="`slide-desc-1659-${$id('slider-id')}`">
Packband 5044 50 mm transparent </a>
</div>
<div class="py-0 ">
<script>
'use strict';
function amNotificationProductViewComponent_1659() {
return {
isAvailable: "1",
isAvailableConfigurableSimple: true,
isOutofstockConfigurable: "1",
title: "Verfügbarkeit",
options: {},
productIndex: "1659",
hideAddToCartBtn: "",
notificationLabel: "Benachrichtigen Sie mich, wenn das Produkt wieder auf Lager ist",
productId: "1659",
/**
* Overridden method for Product Alert View Model to output url according to product id in js
*
* @param productIndex
* @param type
* @returns {*}
*/
getSubscriptionUrl(productIndex, type) {
const urlParts = ['xnotif/email/',
type, '/product_id/',
productIndex,
(parseInt(productIndex) !== parseInt(this.productId)) ? '/parent_id/' + this.productId : '', '/uenc/', 'aHR0cHM6Ly9zd2lzc3BhY2thZy50ZXN0Lm1lZGlhZGl2aXNpb24uY2gv'
];
return BASE_URL + urlParts.join('');
},
getSimpleProduct(data, el) {
let children = JSON.parse('[]');
/**
* hide addtocart button if simple for configurable product is out of stock
*/
window.addEventListener('configurable-select-changed', (event) => {
let componentElement = document.querySelector('[x-data="amNotificationProductViewComponent_' + event.detail.productId + '()"]') || document.querySelector('#stock_notification_' + event.detail.productId);
let parentElement = componentElement.closest('.product-info');
this.hideAddToCartBtn = parentElement.querySelector('.btn.btn-primary:not(.subscribe-button)');
});
//for pdp only
window.addEventListener('configurable-selection-changed', (event) => {
const addToCartButton = document.getElementById('product-addtocart-button')?.closest('div');
if (addToCartButton) {
addToCartButton.style.display = this.isAvailableConfigurableSimple ? 'flex' : 'none';
}
});
const swatchesComponent = (document.querySelector('[x-data="initConfigurableSwatchOptions_' + data.productId + '()"]') || document.querySelector('[x-data="initAmastyXnotifCatalogSwatchesMixin_' + data.productId + '()"]') || document
.querySelector('[x-data="initAmastyCustomStockStatusOptions_' + data.productId + '()"]'));
const swatchesCount = swatchesComponent?.querySelector('div')?.children?.length || 0;
for (const [key, value] of Object.entries(children[data.productIndex] || {})) {
const previousIndex = this.productIndex;
this.productIndex = data.productIndex;
if (Object.keys(data.selectedValues).length >= swatchesCount) {
this.isAvailable = Number(value);
this.isAvailableConfigurableSimple = Number(value);
}
if (this.hideAddToCartBtn) {
this.hideAddToCartBtn.style.display = !this.isAvailable ? 'none' : 'flex';
}
// plp duplicating indexes case
if (el && (previousIndex === this.productIndex) && !this.isAvailable) {
el.closest('.product-info').querySelector('.btn.btn-primary:not(.subscribe-button)').style.display = 'none';
}
}
},
getAvailable() {
return this.options = {
additionalClass: this.isAvailable ? 'bg-green-500' : 'bg-red-500',
label: this.isAvailable ? 'Auf Lager' : 'Nicht lieferbar',
categoryNotificationLabel: this.isAvailable ? '' : this.notificationLabel,
};
}
}
}
</script>
<!--
<div x-data="{
...amNotificationProductViewComponent_1659(),
...amXnotifSubscribeComponentList_1659()
}"
x-on:configurable-select-changed.window="getSimpleProduct($event.detail, $el)"
x-show="getAvailable()"
id="stock_notification_1659"
class="text-right relative">
<p class="flex items-center justify-center align-middle available gap-x-2 stock" :title="title">
<span class="w-3 h-3 rounded-full flex-shrink-0" :class="options.additionalClass"></span>
<span x-text="options.label"></span>
</p>
</div> -->
<script>
'use strict';
function amXnotifSubscribeComponentList_1659() {
return {
mutationStockSubscription: `mutation AmxnotifStockSubscribe($input: AmxnotifSubscribeInput) {
AmxnotifStockSubscribe(input: $input) {
response_message
}
}`,
isInStock: '1',
isConfigurable: '',
productIdentifier: '1659',
isValid: true,
buttonDisabled: false,
getMessages(type, message) {
return typeof window.dispatchMessages !== "undefined" && window.dispatchMessages(
[{
type: type,
text: message
}]);
},
fetchSubscribe(productId) {
let variables = {
input: {
product_uid: btoa(productId),
parent_uid: this.isConfigurable ? btoa(this.productIdentifier) : '',
}
};
this.buttonDisabled = true;
fetch(BASE_URL + 'graphql', {
method: 'POST',
headers: {
'Store': 'default',
'Content-Type': 'application/json',
},
body: JSON.stringify({
query: this.mutationStockSubscription,
variables
}),
mode: "cors",
credentials: "include"
}).then((response) => response.json()).then((result) => {
if (result?.data?.AmxnotifStockSubscribe) {
this.getMessages("success", result.data.AmxnotifStockSubscribe.response_message);
} else {
let message = result?.errors ? result.errors[0].message : "Es ist ein Fehler aufgetreten.";
this.getMessages("error", message)
}
if (this.isConfigurable) {
setTimeout(() => {
window.dispatchEvent(new Event('showAmLoader'));
window.location.reload()
}, 2000)
}
}).finally(() => {
this.buttonDisabled = false;
})
}
}
}
</script>
</div>
<script>
function initPriceBox__66af36910e228() {
return {
updatePrice(priceData) {
const regularPriceLabel = this.$root.querySelector('.normal-price .price-label');
const regularPriceElement = this.$root.querySelector('.normal-price [data-price-type=finalPrice].price-wrapper .price');
const basePriceElement = this.$root.querySelector('.normal-price [data-price-type=basePrice].price-wrapper .price');
if (priceData.finalPrice.amount < priceData.oldPrice.amount) {
regularPriceLabel.classList.add('hidden');
} else {
regularPriceLabel.classList.remove('hidden');
}
regularPriceElement && (regularPriceElement.innerText = hyva.formatPrice(priceData.finalPrice.amount));
basePriceElement && (basePriceElement.innerText = hyva.formatPrice(priceData.basePrice.amount));
}
}
}
</script>
<div class="pt-1 text-gray-900 flex " x-data="initPriceBox__66af36910e228()" @update-prices-1659.window="updatePrice($event.detail);" x-defer="intersect" x-ignore="">
<div class="price-box price-final_price" data-role="priceBox" data-product-id="1659" data-price-box="product-id-1659">
<a href="https://swisspackag.test.mediadivision.ch/catalog/product/view/id/1659/s/packband-5044-transparent/" class="minimal-price-link font-bold">
<span x-data="" x-id="['1659']" class="price-container price-final_price tax weee" x-defer="intersect" x-ignore="">
<span class="price-label">Ab</span>
<span :id="$id('1659')" data-price-amount="4" data-price-type="" class="price-wrapper ">CHF 4.00</span>
</span>
</a>
</div>
</div>
<div class="mt-auto pt-0 flex flex-wrap justify-center items-center">
<button class="absolute right-3 w-auto btn btn-card justify-center text-sm transition
mr-auto" aria-label="In den Warenkorb Packband 5044 50 mm transparent">
<img width="30" src="https://swisspackag.test.mediadivision.ch/static/version1722344383/frontend/MediaDivision/swisspack-hyva-theme/de_CH/images/header/warenkorb_light.svg">
<span class="ml-2 inline md:ml-0 md:hidden lg:ml-2 lg:inline">
</span>
</button>
<div class="absolute top-2 -left-10 flex flex-col gap-2 addto-icons">
<button x-data="initWishlist()" @click.prevent="addToWishlist(1659)" aria-label="Zur Merkliste hinzufügen Packband 5044 50 mm transparent" type="button"
class="px-4 rounded-r-full h-7 bg-primary-lighter p-0 border-0 inline-flex shrink-0 items-center text-gray-500 hover:text-red-600 ml-2" x-defer="intersect" x-ignore="">
<img width="13" src="https://swisspackag.test.mediadivision.ch/static/version1722344383/frontend/MediaDivision/swisspack-hyva-theme/de_CH/images/header/merkliste.svg">
<span class="text-xs ml-2 max-md:hidden">Merken</span>
</button>
<button x-data="initCompareOnProductList()" @click.prevent="addToCompare(1659)" aria-label="Zur Vergleichsliste hinzufügen Packband 5044 50 mm transparent" type="button"
class="px-4 rounded-r-full h-7 bg-primary-lighter p-0 border-0 inline-flex shrink-0 items-center text-gray-500 hover:text-red-600 ml-2" x-defer="intersect" x-ignore="">
<img width="13" src="https://swisspackag.test.mediadivision.ch/static/version1722344383/frontend/MediaDivision/swisspack-hyva-theme/de_CH/images/header/vergleichen.svg">
<span class="text-xs ml-2 max-md:hidden">Vergleichen</span>
</button>
</div>
</div>
</div>
</form>
POST https://swisspackag.test.mediadivision.ch/checkout/cart/add/uenc/%25uenc%25/product/1658/
<form method="post" action="https://swisspackag.test.mediadivision.ch/checkout/cart/add/uenc/%25uenc%25/product/1658/"
class="relative item product product-item product_addtocart_form !left-0 card card-interactive flex flex-col w-full h-full glider-slide right-10" data-gslide="13" style="height: auto; width: 283px;">
<input name="form_key" type="hidden" value="89Mcr1BgikEtQYvn"> <input type="hidden" name="product" value="1658">
<a href="https://swisspackag.test.mediadivision.ch/catalog/product/view/id/1658/s/packband-5044-braun/" class="product photo product-item-photo block mx-auto mb-3 " tabindex="-1">
<img class="hover:shadow-sm object-contain product-image-photo" x-data="" @update-gallery-1658.window="$root.src = $event.detail" src="https://swisspackag.test.mediadivision.ch/media/catalog/product/cache/6ff2493bc04edee855db9d8f5dd1d705/5/0/5044c-0050-66_001.jpeg" loading="lazy" width="300" height="300" alt="Packband 5044 50 mm braun" title="Packband 5044 50 mm braun">
</a>
<div class="product-info flex-col flex grow ">
<div class=" leading-tight mt-2 mb-1 items-center justify-center text-primary-darker font-semibold text-lg text-left ">
<a class="product-item-link" href="https://swisspackag.test.mediadivision.ch/catalog/product/view/id/1658/s/packband-5044-braun/" :id="`slide-desc-1658-${$id('slider-id')}`">
Packband 5044 50 mm braun </a>
</div>
<div class="py-0 ">
<script>
'use strict';
function amNotificationProductViewComponent_1658() {
return {
isAvailable: "1",
isAvailableConfigurableSimple: true,
isOutofstockConfigurable: "1",
title: "Verfügbarkeit",
options: {},
productIndex: "1658",
hideAddToCartBtn: "",
notificationLabel: "Benachrichtigen Sie mich, wenn das Produkt wieder auf Lager ist",
productId: "1658",
/**
* Overridden method for Product Alert View Model to output url according to product id in js
*
* @param productIndex
* @param type
* @returns {*}
*/
getSubscriptionUrl(productIndex, type) {
const urlParts = ['xnotif/email/',
type, '/product_id/',
productIndex,
(parseInt(productIndex) !== parseInt(this.productId)) ? '/parent_id/' + this.productId : '', '/uenc/', 'aHR0cHM6Ly9zd2lzc3BhY2thZy50ZXN0Lm1lZGlhZGl2aXNpb24uY2gv'
];
return BASE_URL + urlParts.join('');
},
getSimpleProduct(data, el) {
let children = JSON.parse('[]');
/**
* hide addtocart button if simple for configurable product is out of stock
*/
window.addEventListener('configurable-select-changed', (event) => {
let componentElement = document.querySelector('[x-data="amNotificationProductViewComponent_' + event.detail.productId + '()"]') || document.querySelector('#stock_notification_' + event.detail.productId);
let parentElement = componentElement.closest('.product-info');
this.hideAddToCartBtn = parentElement.querySelector('.btn.btn-primary:not(.subscribe-button)');
});
//for pdp only
window.addEventListener('configurable-selection-changed', (event) => {
const addToCartButton = document.getElementById('product-addtocart-button')?.closest('div');
if (addToCartButton) {
addToCartButton.style.display = this.isAvailableConfigurableSimple ? 'flex' : 'none';
}
});
const swatchesComponent = (document.querySelector('[x-data="initConfigurableSwatchOptions_' + data.productId + '()"]') || document.querySelector('[x-data="initAmastyXnotifCatalogSwatchesMixin_' + data.productId + '()"]') || document
.querySelector('[x-data="initAmastyCustomStockStatusOptions_' + data.productId + '()"]'));
const swatchesCount = swatchesComponent?.querySelector('div')?.children?.length || 0;
for (const [key, value] of Object.entries(children[data.productIndex] || {})) {
const previousIndex = this.productIndex;
this.productIndex = data.productIndex;
if (Object.keys(data.selectedValues).length >= swatchesCount) {
this.isAvailable = Number(value);
this.isAvailableConfigurableSimple = Number(value);
}
if (this.hideAddToCartBtn) {
this.hideAddToCartBtn.style.display = !this.isAvailable ? 'none' : 'flex';
}
// plp duplicating indexes case
if (el && (previousIndex === this.productIndex) && !this.isAvailable) {
el.closest('.product-info').querySelector('.btn.btn-primary:not(.subscribe-button)').style.display = 'none';
}
}
},
getAvailable() {
return this.options = {
additionalClass: this.isAvailable ? 'bg-green-500' : 'bg-red-500',
label: this.isAvailable ? 'Auf Lager' : 'Nicht lieferbar',
categoryNotificationLabel: this.isAvailable ? '' : this.notificationLabel,
};
}
}
}
</script>
<!--
<div x-data="{
...amNotificationProductViewComponent_1658(),
...amXnotifSubscribeComponentList_1658()
}"
x-on:configurable-select-changed.window="getSimpleProduct($event.detail, $el)"
x-show="getAvailable()"
id="stock_notification_1658"
class="text-right relative">
<p class="flex items-center justify-center align-middle available gap-x-2 stock" :title="title">
<span class="w-3 h-3 rounded-full flex-shrink-0" :class="options.additionalClass"></span>
<span x-text="options.label"></span>
</p>
</div> -->
<script>
'use strict';
function amXnotifSubscribeComponentList_1658() {
return {
mutationStockSubscription: `mutation AmxnotifStockSubscribe($input: AmxnotifSubscribeInput) {
AmxnotifStockSubscribe(input: $input) {
response_message
}
}`,
isInStock: '1',
isConfigurable: '',
productIdentifier: '1658',
isValid: true,
buttonDisabled: false,
getMessages(type, message) {
return typeof window.dispatchMessages !== "undefined" && window.dispatchMessages(
[{
type: type,
text: message
}]);
},
fetchSubscribe(productId) {
let variables = {
input: {
product_uid: btoa(productId),
parent_uid: this.isConfigurable ? btoa(this.productIdentifier) : '',
}
};
this.buttonDisabled = true;
fetch(BASE_URL + 'graphql', {
method: 'POST',
headers: {
'Store': 'default',
'Content-Type': 'application/json',
},
body: JSON.stringify({
query: this.mutationStockSubscription,
variables
}),
mode: "cors",
credentials: "include"
}).then((response) => response.json()).then((result) => {
if (result?.data?.AmxnotifStockSubscribe) {
this.getMessages("success", result.data.AmxnotifStockSubscribe.response_message);
} else {
let message = result?.errors ? result.errors[0].message : "Es ist ein Fehler aufgetreten.";
this.getMessages("error", message)
}
if (this.isConfigurable) {
setTimeout(() => {
window.dispatchEvent(new Event('showAmLoader'));
window.location.reload()
}, 2000)
}
}).finally(() => {
this.buttonDisabled = false;
})
}
}
}
</script>
</div>
<script>
function initPriceBox__66af3691113f0() {
return {
updatePrice(priceData) {
const regularPriceLabel = this.$root.querySelector('.normal-price .price-label');
const regularPriceElement = this.$root.querySelector('.normal-price [data-price-type=finalPrice].price-wrapper .price');
const basePriceElement = this.$root.querySelector('.normal-price [data-price-type=basePrice].price-wrapper .price');
if (priceData.finalPrice.amount < priceData.oldPrice.amount) {
regularPriceLabel.classList.add('hidden');
} else {
regularPriceLabel.classList.remove('hidden');
}
regularPriceElement && (regularPriceElement.innerText = hyva.formatPrice(priceData.finalPrice.amount));
basePriceElement && (basePriceElement.innerText = hyva.formatPrice(priceData.basePrice.amount));
}
}
}
</script>
<div class="pt-1 text-gray-900 flex " x-data="initPriceBox__66af3691113f0()" @update-prices-1658.window="updatePrice($event.detail);" x-defer="intersect" x-ignore="">
<div class="price-box price-final_price" data-role="priceBox" data-product-id="1658" data-price-box="product-id-1658">
<a href="https://swisspackag.test.mediadivision.ch/catalog/product/view/id/1658/s/packband-5044-braun/" class="minimal-price-link font-bold">
<span x-data="" x-id="['1658']" class="price-container price-final_price tax weee" x-defer="intersect" x-ignore="">
<span class="price-label">Ab</span>
<span :id="$id('1658')" data-price-amount="4" data-price-type="" class="price-wrapper ">CHF 4.00</span>
</span>
</a>
</div>
</div>
<div class="mt-auto pt-0 flex flex-wrap justify-center items-center">
<button class="absolute right-3 w-auto btn btn-card justify-center text-sm transition
mr-auto" aria-label="In den Warenkorb Packband 5044 50 mm braun">
<img width="30" src="https://swisspackag.test.mediadivision.ch/static/version1722344383/frontend/MediaDivision/swisspack-hyva-theme/de_CH/images/header/warenkorb_light.svg">
<span class="ml-2 inline md:ml-0 md:hidden lg:ml-2 lg:inline">
</span>
</button>
<div class="absolute top-2 -left-10 flex flex-col gap-2 addto-icons">
<button x-data="initWishlist()" @click.prevent="addToWishlist(1658)" aria-label="Zur Merkliste hinzufügen Packband 5044 50 mm braun" type="button"
class="px-4 rounded-r-full h-7 bg-primary-lighter p-0 border-0 inline-flex shrink-0 items-center text-gray-500 hover:text-red-600 ml-2" x-defer="intersect" x-ignore="">
<img width="13" src="https://swisspackag.test.mediadivision.ch/static/version1722344383/frontend/MediaDivision/swisspack-hyva-theme/de_CH/images/header/merkliste.svg">
<span class="text-xs ml-2 max-md:hidden">Merken</span>
</button>
<button x-data="initCompareOnProductList()" @click.prevent="addToCompare(1658)" aria-label="Zur Vergleichsliste hinzufügen Packband 5044 50 mm braun" type="button"
class="px-4 rounded-r-full h-7 bg-primary-lighter p-0 border-0 inline-flex shrink-0 items-center text-gray-500 hover:text-red-600 ml-2" x-defer="intersect" x-ignore="">
<img width="13" src="https://swisspackag.test.mediadivision.ch/static/version1722344383/frontend/MediaDivision/swisspack-hyva-theme/de_CH/images/header/vergleichen.svg">
<span class="text-xs ml-2 max-md:hidden">Vergleichen</span>
</button>
</div>
</div>
</div>
</form>
POST https://swisspackag.test.mediadivision.ch/checkout/cart/add/uenc/%25uenc%25/product/1657/
<form method="post" action="https://swisspackag.test.mediadivision.ch/checkout/cart/add/uenc/%25uenc%25/product/1657/"
class="relative item product product-item product_addtocart_form !left-0 card card-interactive flex flex-col w-full h-full glider-slide right-11" data-gslide="14" style="height: auto; width: 283px;">
<input name="form_key" type="hidden" value="89Mcr1BgikEtQYvn"> <input type="hidden" name="product" value="1657">
<a href="https://swisspackag.test.mediadivision.ch/catalog/product/view/id/1657/s/packband-5040-braun/" class="product photo product-item-photo block mx-auto mb-3 " tabindex="-1">
<img class="hover:shadow-sm object-contain product-image-photo" x-data="" @update-gallery-1657.window="$root.src = $event.detail" src="https://swisspackag.test.mediadivision.ch/media/catalog/product/cache/6ff2493bc04edee855db9d8f5dd1d705/5/0/5040c-0050-66_001.jpeg" loading="lazy" width="300" height="300" alt="Packband 5040 50 mm braun" title="Packband 5040 50 mm braun">
</a>
<div class="product-info flex-col flex grow ">
<div class=" leading-tight mt-2 mb-1 items-center justify-center text-primary-darker font-semibold text-lg text-left ">
<a class="product-item-link" href="https://swisspackag.test.mediadivision.ch/catalog/product/view/id/1657/s/packband-5040-braun/" :id="`slide-desc-1657-${$id('slider-id')}`">
Packband 5040 50 mm braun </a>
</div>
<div class="py-0 ">
<script>
'use strict';
function amNotificationProductViewComponent_1657() {
return {
isAvailable: "1",
isAvailableConfigurableSimple: true,
isOutofstockConfigurable: "1",
title: "Verfügbarkeit",
options: {},
productIndex: "1657",
hideAddToCartBtn: "",
notificationLabel: "Benachrichtigen Sie mich, wenn das Produkt wieder auf Lager ist",
productId: "1657",
/**
* Overridden method for Product Alert View Model to output url according to product id in js
*
* @param productIndex
* @param type
* @returns {*}
*/
getSubscriptionUrl(productIndex, type) {
const urlParts = ['xnotif/email/',
type, '/product_id/',
productIndex,
(parseInt(productIndex) !== parseInt(this.productId)) ? '/parent_id/' + this.productId : '', '/uenc/', 'aHR0cHM6Ly9zd2lzc3BhY2thZy50ZXN0Lm1lZGlhZGl2aXNpb24uY2gv'
];
return BASE_URL + urlParts.join('');
},
getSimpleProduct(data, el) {
let children = JSON.parse('[]');
/**
* hide addtocart button if simple for configurable product is out of stock
*/
window.addEventListener('configurable-select-changed', (event) => {
let componentElement = document.querySelector('[x-data="amNotificationProductViewComponent_' + event.detail.productId + '()"]') || document.querySelector('#stock_notification_' + event.detail.productId);
let parentElement = componentElement.closest('.product-info');
this.hideAddToCartBtn = parentElement.querySelector('.btn.btn-primary:not(.subscribe-button)');
});
//for pdp only
window.addEventListener('configurable-selection-changed', (event) => {
const addToCartButton = document.getElementById('product-addtocart-button')?.closest('div');
if (addToCartButton) {
addToCartButton.style.display = this.isAvailableConfigurableSimple ? 'flex' : 'none';
}
});
const swatchesComponent = (document.querySelector('[x-data="initConfigurableSwatchOptions_' + data.productId + '()"]') || document.querySelector('[x-data="initAmastyXnotifCatalogSwatchesMixin_' + data.productId + '()"]') || document
.querySelector('[x-data="initAmastyCustomStockStatusOptions_' + data.productId + '()"]'));
const swatchesCount = swatchesComponent?.querySelector('div')?.children?.length || 0;
for (const [key, value] of Object.entries(children[data.productIndex] || {})) {
const previousIndex = this.productIndex;
this.productIndex = data.productIndex;
if (Object.keys(data.selectedValues).length >= swatchesCount) {
this.isAvailable = Number(value);
this.isAvailableConfigurableSimple = Number(value);
}
if (this.hideAddToCartBtn) {
this.hideAddToCartBtn.style.display = !this.isAvailable ? 'none' : 'flex';
}
// plp duplicating indexes case
if (el && (previousIndex === this.productIndex) && !this.isAvailable) {
el.closest('.product-info').querySelector('.btn.btn-primary:not(.subscribe-button)').style.display = 'none';
}
}
},
getAvailable() {
return this.options = {
additionalClass: this.isAvailable ? 'bg-green-500' : 'bg-red-500',
label: this.isAvailable ? 'Auf Lager' : 'Nicht lieferbar',
categoryNotificationLabel: this.isAvailable ? '' : this.notificationLabel,
};
}
}
}
</script>
<!--
<div x-data="{
...amNotificationProductViewComponent_1657(),
...amXnotifSubscribeComponentList_1657()
}"
x-on:configurable-select-changed.window="getSimpleProduct($event.detail, $el)"
x-show="getAvailable()"
id="stock_notification_1657"
class="text-right relative">
<p class="flex items-center justify-center align-middle available gap-x-2 stock" :title="title">
<span class="w-3 h-3 rounded-full flex-shrink-0" :class="options.additionalClass"></span>
<span x-text="options.label"></span>
</p>
</div> -->
<script>
'use strict';
function amXnotifSubscribeComponentList_1657() {
return {
mutationStockSubscription: `mutation AmxnotifStockSubscribe($input: AmxnotifSubscribeInput) {
AmxnotifStockSubscribe(input: $input) {
response_message
}
}`,
isInStock: '1',
isConfigurable: '',
productIdentifier: '1657',
isValid: true,
buttonDisabled: false,
getMessages(type, message) {
return typeof window.dispatchMessages !== "undefined" && window.dispatchMessages(
[{
type: type,
text: message
}]);
},
fetchSubscribe(productId) {
let variables = {
input: {
product_uid: btoa(productId),
parent_uid: this.isConfigurable ? btoa(this.productIdentifier) : '',
}
};
this.buttonDisabled = true;
fetch(BASE_URL + 'graphql', {
method: 'POST',
headers: {
'Store': 'default',
'Content-Type': 'application/json',
},
body: JSON.stringify({
query: this.mutationStockSubscription,
variables
}),
mode: "cors",
credentials: "include"
}).then((response) => response.json()).then((result) => {
if (result?.data?.AmxnotifStockSubscribe) {
this.getMessages("success", result.data.AmxnotifStockSubscribe.response_message);
} else {
let message = result?.errors ? result.errors[0].message : "Es ist ein Fehler aufgetreten.";
this.getMessages("error", message)
}
if (this.isConfigurable) {
setTimeout(() => {
window.dispatchEvent(new Event('showAmLoader'));
window.location.reload()
}, 2000)
}
}).finally(() => {
this.buttonDisabled = false;
})
}
}
}
</script>
</div>
<script>
function initPriceBox__66af369114539() {
return {
updatePrice(priceData) {
const regularPriceLabel = this.$root.querySelector('.normal-price .price-label');
const regularPriceElement = this.$root.querySelector('.normal-price [data-price-type=finalPrice].price-wrapper .price');
const basePriceElement = this.$root.querySelector('.normal-price [data-price-type=basePrice].price-wrapper .price');
if (priceData.finalPrice.amount < priceData.oldPrice.amount) {
regularPriceLabel.classList.add('hidden');
} else {
regularPriceLabel.classList.remove('hidden');
}
regularPriceElement && (regularPriceElement.innerText = hyva.formatPrice(priceData.finalPrice.amount));
basePriceElement && (basePriceElement.innerText = hyva.formatPrice(priceData.basePrice.amount));
}
}
}
</script>
<div class="pt-1 text-gray-900 flex " x-data="initPriceBox__66af369114539()" @update-prices-1657.window="updatePrice($event.detail);" x-defer="intersect" x-ignore="">
<div class="price-box price-final_price" data-role="priceBox" data-product-id="1657" data-price-box="product-id-1657">
<a href="https://swisspackag.test.mediadivision.ch/catalog/product/view/id/1657/s/packband-5040-braun/" class="minimal-price-link font-bold">
<span x-data="" x-id="['1657']" class="price-container price-final_price tax weee" x-defer="intersect" x-ignore="">
<span class="price-label">Ab</span>
<span :id="$id('1657')" data-price-amount="2.5" data-price-type="" class="price-wrapper ">CHF 2.50</span>
</span>
</a>
</div>
</div>
<div class="mt-auto pt-0 flex flex-wrap justify-center items-center">
<button class="absolute right-3 w-auto btn btn-card justify-center text-sm transition
mr-auto" aria-label="In den Warenkorb Packband 5040 50 mm braun">
<img width="30" src="https://swisspackag.test.mediadivision.ch/static/version1722344383/frontend/MediaDivision/swisspack-hyva-theme/de_CH/images/header/warenkorb_light.svg">
<span class="ml-2 inline md:ml-0 md:hidden lg:ml-2 lg:inline">
</span>
</button>
<div class="absolute top-2 -left-10 flex flex-col gap-2 addto-icons">
<button x-data="initWishlist()" @click.prevent="addToWishlist(1657)" aria-label="Zur Merkliste hinzufügen Packband 5040 50 mm braun" type="button"
class="px-4 rounded-r-full h-7 bg-primary-lighter p-0 border-0 inline-flex shrink-0 items-center text-gray-500 hover:text-red-600 ml-2" x-defer="intersect" x-ignore="">
<img width="13" src="https://swisspackag.test.mediadivision.ch/static/version1722344383/frontend/MediaDivision/swisspack-hyva-theme/de_CH/images/header/merkliste.svg">
<span class="text-xs ml-2 max-md:hidden">Merken</span>
</button>
<button x-data="initCompareOnProductList()" @click.prevent="addToCompare(1657)" aria-label="Zur Vergleichsliste hinzufügen Packband 5040 50 mm braun" type="button"
class="px-4 rounded-r-full h-7 bg-primary-lighter p-0 border-0 inline-flex shrink-0 items-center text-gray-500 hover:text-red-600 ml-2" x-defer="intersect" x-ignore="">
<img width="13" src="https://swisspackag.test.mediadivision.ch/static/version1722344383/frontend/MediaDivision/swisspack-hyva-theme/de_CH/images/header/vergleichen.svg">
<span class="text-xs ml-2 max-md:hidden">Vergleichen</span>
</button>
</div>
</div>
</div>
</form>
POST https://swisspackag.test.mediadivision.ch/checkout/cart/add/uenc/%25uenc%25/product/1656/
<form method="post" action="https://swisspackag.test.mediadivision.ch/checkout/cart/add/uenc/%25uenc%25/product/1656/"
class="relative item product product-item product_addtocart_form !left-0 card card-interactive flex flex-col w-full h-full glider-slide right-12" data-gslide="15" style="height: auto; width: 283px;">
<input name="form_key" type="hidden" value="89Mcr1BgikEtQYvn"> <input type="hidden" name="product" value="1656">
<a href="https://swisspackag.test.mediadivision.ch/catalog/product/view/id/1656/s/packband-5040-transparent/" class="product photo product-item-photo block mx-auto mb-3 " tabindex="-1">
<img class="hover:shadow-sm object-contain product-image-photo" x-data="" @update-gallery-1656.window="$root.src = $event.detail" src="https://swisspackag.test.mediadivision.ch/media/catalog/product/cache/6ff2493bc04edee855db9d8f5dd1d705/5/0/5040t-0050-66_001.jpeg" loading="lazy" width="300" height="300" alt="Packband 5040 50 mm transparent" title="Packband 5040 50 mm transparent">
</a>
<div class="product-info flex-col flex grow ">
<div class=" leading-tight mt-2 mb-1 items-center justify-center text-primary-darker font-semibold text-lg text-left ">
<a class="product-item-link" href="https://swisspackag.test.mediadivision.ch/catalog/product/view/id/1656/s/packband-5040-transparent/" :id="`slide-desc-1656-${$id('slider-id')}`">
Packband 5040 50 mm transparent </a>
</div>
<div class="py-0 ">
<script>
'use strict';
function amNotificationProductViewComponent_1656() {
return {
isAvailable: "1",
isAvailableConfigurableSimple: true,
isOutofstockConfigurable: "1",
title: "Verfügbarkeit",
options: {},
productIndex: "1656",
hideAddToCartBtn: "",
notificationLabel: "Benachrichtigen Sie mich, wenn das Produkt wieder auf Lager ist",
productId: "1656",
/**
* Overridden method for Product Alert View Model to output url according to product id in js
*
* @param productIndex
* @param type
* @returns {*}
*/
getSubscriptionUrl(productIndex, type) {
const urlParts = ['xnotif/email/',
type, '/product_id/',
productIndex,
(parseInt(productIndex) !== parseInt(this.productId)) ? '/parent_id/' + this.productId : '', '/uenc/', 'aHR0cHM6Ly9zd2lzc3BhY2thZy50ZXN0Lm1lZGlhZGl2aXNpb24uY2gv'
];
return BASE_URL + urlParts.join('');
},
getSimpleProduct(data, el) {
let children = JSON.parse('[]');
/**
* hide addtocart button if simple for configurable product is out of stock
*/
window.addEventListener('configurable-select-changed', (event) => {
let componentElement = document.querySelector('[x-data="amNotificationProductViewComponent_' + event.detail.productId + '()"]') || document.querySelector('#stock_notification_' + event.detail.productId);
let parentElement = componentElement.closest('.product-info');
this.hideAddToCartBtn = parentElement.querySelector('.btn.btn-primary:not(.subscribe-button)');
});
//for pdp only
window.addEventListener('configurable-selection-changed', (event) => {
const addToCartButton = document.getElementById('product-addtocart-button')?.closest('div');
if (addToCartButton) {
addToCartButton.style.display = this.isAvailableConfigurableSimple ? 'flex' : 'none';
}
});
const swatchesComponent = (document.querySelector('[x-data="initConfigurableSwatchOptions_' + data.productId + '()"]') || document.querySelector('[x-data="initAmastyXnotifCatalogSwatchesMixin_' + data.productId + '()"]') || document
.querySelector('[x-data="initAmastyCustomStockStatusOptions_' + data.productId + '()"]'));
const swatchesCount = swatchesComponent?.querySelector('div')?.children?.length || 0;
for (const [key, value] of Object.entries(children[data.productIndex] || {})) {
const previousIndex = this.productIndex;
this.productIndex = data.productIndex;
if (Object.keys(data.selectedValues).length >= swatchesCount) {
this.isAvailable = Number(value);
this.isAvailableConfigurableSimple = Number(value);
}
if (this.hideAddToCartBtn) {
this.hideAddToCartBtn.style.display = !this.isAvailable ? 'none' : 'flex';
}
// plp duplicating indexes case
if (el && (previousIndex === this.productIndex) && !this.isAvailable) {
el.closest('.product-info').querySelector('.btn.btn-primary:not(.subscribe-button)').style.display = 'none';
}
}
},
getAvailable() {
return this.options = {
additionalClass: this.isAvailable ? 'bg-green-500' : 'bg-red-500',
label: this.isAvailable ? 'Auf Lager' : 'Nicht lieferbar',
categoryNotificationLabel: this.isAvailable ? '' : this.notificationLabel,
};
}
}
}
</script>
<!--
<div x-data="{
...amNotificationProductViewComponent_1656(),
...amXnotifSubscribeComponentList_1656()
}"
x-on:configurable-select-changed.window="getSimpleProduct($event.detail, $el)"
x-show="getAvailable()"
id="stock_notification_1656"
class="text-right relative">
<p class="flex items-center justify-center align-middle available gap-x-2 stock" :title="title">
<span class="w-3 h-3 rounded-full flex-shrink-0" :class="options.additionalClass"></span>
<span x-text="options.label"></span>
</p>
</div> -->
<script>
'use strict';
function amXnotifSubscribeComponentList_1656() {
return {
mutationStockSubscription: `mutation AmxnotifStockSubscribe($input: AmxnotifSubscribeInput) {
AmxnotifStockSubscribe(input: $input) {
response_message
}
}`,
isInStock: '1',
isConfigurable: '',
productIdentifier: '1656',
isValid: true,
buttonDisabled: false,
getMessages(type, message) {
return typeof window.dispatchMessages !== "undefined" && window.dispatchMessages(
[{
type: type,
text: message
}]);
},
fetchSubscribe(productId) {
let variables = {
input: {
product_uid: btoa(productId),
parent_uid: this.isConfigurable ? btoa(this.productIdentifier) : '',
}
};
this.buttonDisabled = true;
fetch(BASE_URL + 'graphql', {
method: 'POST',
headers: {
'Store': 'default',
'Content-Type': 'application/json',
},
body: JSON.stringify({
query: this.mutationStockSubscription,
variables
}),
mode: "cors",
credentials: "include"
}).then((response) => response.json()).then((result) => {
if (result?.data?.AmxnotifStockSubscribe) {
this.getMessages("success", result.data.AmxnotifStockSubscribe.response_message);
} else {
let message = result?.errors ? result.errors[0].message : "Es ist ein Fehler aufgetreten.";
this.getMessages("error", message)
}
if (this.isConfigurable) {
setTimeout(() => {
window.dispatchEvent(new Event('showAmLoader'));
window.location.reload()
}, 2000)
}
}).finally(() => {
this.buttonDisabled = false;
})
}
}
}
</script>
</div>
<script>
function initPriceBox__66af369117518() {
return {
updatePrice(priceData) {
const regularPriceLabel = this.$root.querySelector('.normal-price .price-label');
const regularPriceElement = this.$root.querySelector('.normal-price [data-price-type=finalPrice].price-wrapper .price');
const basePriceElement = this.$root.querySelector('.normal-price [data-price-type=basePrice].price-wrapper .price');
if (priceData.finalPrice.amount < priceData.oldPrice.amount) {
regularPriceLabel.classList.add('hidden');
} else {
regularPriceLabel.classList.remove('hidden');
}
regularPriceElement && (regularPriceElement.innerText = hyva.formatPrice(priceData.finalPrice.amount));
basePriceElement && (basePriceElement.innerText = hyva.formatPrice(priceData.basePrice.amount));
}
}
}
</script>
<div class="pt-1 text-gray-900 flex " x-data="initPriceBox__66af369117518()" @update-prices-1656.window="updatePrice($event.detail);" x-defer="intersect" x-ignore="">
<div class="price-box price-final_price" data-role="priceBox" data-product-id="1656" data-price-box="product-id-1656">
<a href="https://swisspackag.test.mediadivision.ch/catalog/product/view/id/1656/s/packband-5040-transparent/" class="minimal-price-link font-bold">
<span x-data="" x-id="['1656']" class="price-container price-final_price tax weee" x-defer="intersect" x-ignore="">
<span class="price-label">Ab</span>
<span :id="$id('1656')" data-price-amount="2.5" data-price-type="" class="price-wrapper ">CHF 2.50</span>
</span>
</a>
</div>
</div>
<div class="mt-auto pt-0 flex flex-wrap justify-center items-center">
<button class="absolute right-3 w-auto btn btn-card justify-center text-sm transition
mr-auto" aria-label="In den Warenkorb Packband 5040 50 mm transparent">
<img width="30" src="https://swisspackag.test.mediadivision.ch/static/version1722344383/frontend/MediaDivision/swisspack-hyva-theme/de_CH/images/header/warenkorb_light.svg">
<span class="ml-2 inline md:ml-0 md:hidden lg:ml-2 lg:inline">
</span>
</button>
<div class="absolute top-2 -left-10 flex flex-col gap-2 addto-icons">
<button x-data="initWishlist()" @click.prevent="addToWishlist(1656)" aria-label="Zur Merkliste hinzufügen Packband 5040 50 mm transparent" type="button"
class="px-4 rounded-r-full h-7 bg-primary-lighter p-0 border-0 inline-flex shrink-0 items-center text-gray-500 hover:text-red-600 ml-2" x-defer="intersect" x-ignore="">
<img width="13" src="https://swisspackag.test.mediadivision.ch/static/version1722344383/frontend/MediaDivision/swisspack-hyva-theme/de_CH/images/header/merkliste.svg">
<span class="text-xs ml-2 max-md:hidden">Merken</span>
</button>
<button x-data="initCompareOnProductList()" @click.prevent="addToCompare(1656)" aria-label="Zur Vergleichsliste hinzufügen Packband 5040 50 mm transparent" type="button"
class="px-4 rounded-r-full h-7 bg-primary-lighter p-0 border-0 inline-flex shrink-0 items-center text-gray-500 hover:text-red-600 ml-2" x-defer="intersect" x-ignore="">
<img width="13" src="https://swisspackag.test.mediadivision.ch/static/version1722344383/frontend/MediaDivision/swisspack-hyva-theme/de_CH/images/header/vergleichen.svg">
<span class="text-xs ml-2 max-md:hidden">Vergleichen</span>
</button>
</div>
</div>
</div>
</form>
POST https://swisspackag.test.mediadivision.ch/checkout/cart/add/uenc/%25uenc%25/product/1655/
<form method="post" action="https://swisspackag.test.mediadivision.ch/checkout/cart/add/uenc/%25uenc%25/product/1655/"
class="relative item product product-item product_addtocart_form !left-0 card card-interactive flex flex-col w-full h-full glider-slide right-13" data-gslide="16" style="height: auto; width: 283px;">
<input name="form_key" type="hidden" value="89Mcr1BgikEtQYvn"> <input type="hidden" name="product" value="1655">
<a href="https://swisspackag.test.mediadivision.ch/catalog/product/view/id/1655/s/packband-tesa-60404-rot/" class="product photo product-item-photo block mx-auto mb-3 " tabindex="-1">
<img class="hover:shadow-sm object-contain product-image-photo" x-data="" @update-gallery-1655.window="$root.src = $event.detail" src="https://swisspackag.test.mediadivision.ch/media/catalog/product/cache/6ff2493bc04edee855db9d8f5dd1d705/6/0/60404r-0050-66_001.jpg" loading="lazy" width="300" height="300" alt="Packband tesa 60404 50 mm rot" title="Packband tesa 60404 50 mm rot">
</a>
<div class="product-info flex-col flex grow ">
<div class=" leading-tight mt-2 mb-1 items-center justify-center text-primary-darker font-semibold text-lg text-left ">
<a class="product-item-link" href="https://swisspackag.test.mediadivision.ch/catalog/product/view/id/1655/s/packband-tesa-60404-rot/" :id="`slide-desc-1655-${$id('slider-id')}`">
Packband tesa 60404 50 mm rot </a>
</div>
<div class="py-0 ">
<script>
'use strict';
function amNotificationProductViewComponent_1655() {
return {
isAvailable: "1",
isAvailableConfigurableSimple: true,
isOutofstockConfigurable: "1",
title: "Verfügbarkeit",
options: {},
productIndex: "1655",
hideAddToCartBtn: "",
notificationLabel: "Benachrichtigen Sie mich, wenn das Produkt wieder auf Lager ist",
productId: "1655",
/**
* Overridden method for Product Alert View Model to output url according to product id in js
*
* @param productIndex
* @param type
* @returns {*}
*/
getSubscriptionUrl(productIndex, type) {
const urlParts = ['xnotif/email/',
type, '/product_id/',
productIndex,
(parseInt(productIndex) !== parseInt(this.productId)) ? '/parent_id/' + this.productId : '', '/uenc/', 'aHR0cHM6Ly9zd2lzc3BhY2thZy50ZXN0Lm1lZGlhZGl2aXNpb24uY2gv'
];
return BASE_URL + urlParts.join('');
},
getSimpleProduct(data, el) {
let children = JSON.parse('[]');
/**
* hide addtocart button if simple for configurable product is out of stock
*/
window.addEventListener('configurable-select-changed', (event) => {
let componentElement = document.querySelector('[x-data="amNotificationProductViewComponent_' + event.detail.productId + '()"]') || document.querySelector('#stock_notification_' + event.detail.productId);
let parentElement = componentElement.closest('.product-info');
this.hideAddToCartBtn = parentElement.querySelector('.btn.btn-primary:not(.subscribe-button)');
});
//for pdp only
window.addEventListener('configurable-selection-changed', (event) => {
const addToCartButton = document.getElementById('product-addtocart-button')?.closest('div');
if (addToCartButton) {
addToCartButton.style.display = this.isAvailableConfigurableSimple ? 'flex' : 'none';
}
});
const swatchesComponent = (document.querySelector('[x-data="initConfigurableSwatchOptions_' + data.productId + '()"]') || document.querySelector('[x-data="initAmastyXnotifCatalogSwatchesMixin_' + data.productId + '()"]') || document
.querySelector('[x-data="initAmastyCustomStockStatusOptions_' + data.productId + '()"]'));
const swatchesCount = swatchesComponent?.querySelector('div')?.children?.length || 0;
for (const [key, value] of Object.entries(children[data.productIndex] || {})) {
const previousIndex = this.productIndex;
this.productIndex = data.productIndex;
if (Object.keys(data.selectedValues).length >= swatchesCount) {
this.isAvailable = Number(value);
this.isAvailableConfigurableSimple = Number(value);
}
if (this.hideAddToCartBtn) {
this.hideAddToCartBtn.style.display = !this.isAvailable ? 'none' : 'flex';
}
// plp duplicating indexes case
if (el && (previousIndex === this.productIndex) && !this.isAvailable) {
el.closest('.product-info').querySelector('.btn.btn-primary:not(.subscribe-button)').style.display = 'none';
}
}
},
getAvailable() {
return this.options = {
additionalClass: this.isAvailable ? 'bg-green-500' : 'bg-red-500',
label: this.isAvailable ? 'Auf Lager' : 'Nicht lieferbar',
categoryNotificationLabel: this.isAvailable ? '' : this.notificationLabel,
};
}
}
}
</script>
<!--
<div x-data="{
...amNotificationProductViewComponent_1655(),
...amXnotifSubscribeComponentList_1655()
}"
x-on:configurable-select-changed.window="getSimpleProduct($event.detail, $el)"
x-show="getAvailable()"
id="stock_notification_1655"
class="text-right relative">
<p class="flex items-center justify-center align-middle available gap-x-2 stock" :title="title">
<span class="w-3 h-3 rounded-full flex-shrink-0" :class="options.additionalClass"></span>
<span x-text="options.label"></span>
</p>
</div> -->
<script>
'use strict';
function amXnotifSubscribeComponentList_1655() {
return {
mutationStockSubscription: `mutation AmxnotifStockSubscribe($input: AmxnotifSubscribeInput) {
AmxnotifStockSubscribe(input: $input) {
response_message
}
}`,
isInStock: '1',
isConfigurable: '',
productIdentifier: '1655',
isValid: true,
buttonDisabled: false,
getMessages(type, message) {
return typeof window.dispatchMessages !== "undefined" && window.dispatchMessages(
[{
type: type,
text: message
}]);
},
fetchSubscribe(productId) {
let variables = {
input: {
product_uid: btoa(productId),
parent_uid: this.isConfigurable ? btoa(this.productIdentifier) : '',
}
};
this.buttonDisabled = true;
fetch(BASE_URL + 'graphql', {
method: 'POST',
headers: {
'Store': 'default',
'Content-Type': 'application/json',
},
body: JSON.stringify({
query: this.mutationStockSubscription,
variables
}),
mode: "cors",
credentials: "include"
}).then((response) => response.json()).then((result) => {
if (result?.data?.AmxnotifStockSubscribe) {
this.getMessages("success", result.data.AmxnotifStockSubscribe.response_message);
} else {
let message = result?.errors ? result.errors[0].message : "Es ist ein Fehler aufgetreten.";
this.getMessages("error", message)
}
if (this.isConfigurable) {
setTimeout(() => {
window.dispatchEvent(new Event('showAmLoader'));
window.location.reload()
}, 2000)
}
}).finally(() => {
this.buttonDisabled = false;
})
}
}
}
</script>
</div>
<script>
function initPriceBox__66af36911b27d() {
return {
updatePrice(priceData) {
const regularPriceLabel = this.$root.querySelector('.normal-price .price-label');
const regularPriceElement = this.$root.querySelector('.normal-price [data-price-type=finalPrice].price-wrapper .price');
const basePriceElement = this.$root.querySelector('.normal-price [data-price-type=basePrice].price-wrapper .price');
if (priceData.finalPrice.amount < priceData.oldPrice.amount) {
regularPriceLabel.classList.add('hidden');
} else {
regularPriceLabel.classList.remove('hidden');
}
regularPriceElement && (regularPriceElement.innerText = hyva.formatPrice(priceData.finalPrice.amount));
basePriceElement && (basePriceElement.innerText = hyva.formatPrice(priceData.basePrice.amount));
}
}
}
</script>
<div class="pt-1 text-gray-900 flex " x-data="initPriceBox__66af36911b27d()" @update-prices-1655.window="updatePrice($event.detail);" x-defer="intersect" x-ignore="">
<div class="price-box price-final_price" data-role="priceBox" data-product-id="1655" data-price-box="product-id-1655">
<a href="https://swisspackag.test.mediadivision.ch/catalog/product/view/id/1655/s/packband-tesa-60404-rot/" class="minimal-price-link font-bold">
<span x-data="" x-id="['1655']" class="price-container price-final_price tax weee" x-defer="intersect" x-ignore="">
<span class="price-label">Ab</span>
<span :id="$id('1655')" data-price-amount="27.7" data-price-type="" class="price-wrapper ">CHF 27.70</span>
</span>
</a>
</div>
</div>
<div class="mt-auto pt-0 flex flex-wrap justify-center items-center">
<button class="absolute right-3 w-auto btn btn-card justify-center text-sm transition
mr-auto" aria-label="In den Warenkorb Packband tesa 60404 50 mm rot">
<img width="30" src="https://swisspackag.test.mediadivision.ch/static/version1722344383/frontend/MediaDivision/swisspack-hyva-theme/de_CH/images/header/warenkorb_light.svg">
<span class="ml-2 inline md:ml-0 md:hidden lg:ml-2 lg:inline">
</span>
</button>
<div class="absolute top-2 -left-10 flex flex-col gap-2 addto-icons">
<button x-data="initWishlist()" @click.prevent="addToWishlist(1655)" aria-label="Zur Merkliste hinzufügen Packband tesa 60404 50 mm rot" type="button"
class="px-4 rounded-r-full h-7 bg-primary-lighter p-0 border-0 inline-flex shrink-0 items-center text-gray-500 hover:text-red-600 ml-2" x-defer="intersect" x-ignore="">
<img width="13" src="https://swisspackag.test.mediadivision.ch/static/version1722344383/frontend/MediaDivision/swisspack-hyva-theme/de_CH/images/header/merkliste.svg">
<span class="text-xs ml-2 max-md:hidden">Merken</span>
</button>
<button x-data="initCompareOnProductList()" @click.prevent="addToCompare(1655)" aria-label="Zur Vergleichsliste hinzufügen Packband tesa 60404 50 mm rot" type="button"
class="px-4 rounded-r-full h-7 bg-primary-lighter p-0 border-0 inline-flex shrink-0 items-center text-gray-500 hover:text-red-600 ml-2" x-defer="intersect" x-ignore="">
<img width="13" src="https://swisspackag.test.mediadivision.ch/static/version1722344383/frontend/MediaDivision/swisspack-hyva-theme/de_CH/images/header/vergleichen.svg">
<span class="text-xs ml-2 max-md:hidden">Vergleichen</span>
</button>
</div>
</div>
</div>
</form>
POST https://swisspackag.test.mediadivision.ch/checkout/cart/add/uenc/%25uenc%25/product/1654/
<form method="post" action="https://swisspackag.test.mediadivision.ch/checkout/cart/add/uenc/%25uenc%25/product/1654/"
class="relative item product product-item product_addtocart_form !left-0 card card-interactive flex flex-col w-full h-full glider-slide right-14" data-gslide="17" style="height: auto; width: 283px;">
<input name="form_key" type="hidden" value="89Mcr1BgikEtQYvn"> <input type="hidden" name="product" value="1654">
<a href="https://swisspackag.test.mediadivision.ch/catalog/product/view/id/1654/s/packband-tesa-60404-gelb/" class="product photo product-item-photo block mx-auto mb-3 " tabindex="-1">
<img class="hover:shadow-sm object-contain product-image-photo" x-data="" @update-gallery-1654.window="$root.src = $event.detail" src="https://swisspackag.test.mediadivision.ch/media/catalog/product/cache/6ff2493bc04edee855db9d8f5dd1d705/6/0/60404y-0050-66_001.jpg" loading="lazy" width="300" height="300" alt="Packband tesa 60404 50 mm gelb" title="Packband tesa 60404 50 mm gelb">
</a>
<div class="product-info flex-col flex grow ">
<div class=" leading-tight mt-2 mb-1 items-center justify-center text-primary-darker font-semibold text-lg text-left ">
<a class="product-item-link" href="https://swisspackag.test.mediadivision.ch/catalog/product/view/id/1654/s/packband-tesa-60404-gelb/" :id="`slide-desc-1654-${$id('slider-id')}`">
Packband tesa 60404 50 mm gelb </a>
</div>
<div class="py-0 ">
<script>
'use strict';
function amNotificationProductViewComponent_1654() {
return {
isAvailable: "1",
isAvailableConfigurableSimple: true,
isOutofstockConfigurable: "1",
title: "Verfügbarkeit",
options: {},
productIndex: "1654",
hideAddToCartBtn: "",
notificationLabel: "Benachrichtigen Sie mich, wenn das Produkt wieder auf Lager ist",
productId: "1654",
/**
* Overridden method for Product Alert View Model to output url according to product id in js
*
* @param productIndex
* @param type
* @returns {*}
*/
getSubscriptionUrl(productIndex, type) {
const urlParts = ['xnotif/email/',
type, '/product_id/',
productIndex,
(parseInt(productIndex) !== parseInt(this.productId)) ? '/parent_id/' + this.productId : '', '/uenc/', 'aHR0cHM6Ly9zd2lzc3BhY2thZy50ZXN0Lm1lZGlhZGl2aXNpb24uY2gv'
];
return BASE_URL + urlParts.join('');
},
getSimpleProduct(data, el) {
let children = JSON.parse('[]');
/**
* hide addtocart button if simple for configurable product is out of stock
*/
window.addEventListener('configurable-select-changed', (event) => {
let componentElement = document.querySelector('[x-data="amNotificationProductViewComponent_' + event.detail.productId + '()"]') || document.querySelector('#stock_notification_' + event.detail.productId);
let parentElement = componentElement.closest('.product-info');
this.hideAddToCartBtn = parentElement.querySelector('.btn.btn-primary:not(.subscribe-button)');
});
//for pdp only
window.addEventListener('configurable-selection-changed', (event) => {
const addToCartButton = document.getElementById('product-addtocart-button')?.closest('div');
if (addToCartButton) {
addToCartButton.style.display = this.isAvailableConfigurableSimple ? 'flex' : 'none';
}
});
const swatchesComponent = (document.querySelector('[x-data="initConfigurableSwatchOptions_' + data.productId + '()"]') || document.querySelector('[x-data="initAmastyXnotifCatalogSwatchesMixin_' + data.productId + '()"]') || document
.querySelector('[x-data="initAmastyCustomStockStatusOptions_' + data.productId + '()"]'));
const swatchesCount = swatchesComponent?.querySelector('div')?.children?.length || 0;
for (const [key, value] of Object.entries(children[data.productIndex] || {})) {
const previousIndex = this.productIndex;
this.productIndex = data.productIndex;
if (Object.keys(data.selectedValues).length >= swatchesCount) {
this.isAvailable = Number(value);
this.isAvailableConfigurableSimple = Number(value);
}
if (this.hideAddToCartBtn) {
this.hideAddToCartBtn.style.display = !this.isAvailable ? 'none' : 'flex';
}
// plp duplicating indexes case
if (el && (previousIndex === this.productIndex) && !this.isAvailable) {
el.closest('.product-info').querySelector('.btn.btn-primary:not(.subscribe-button)').style.display = 'none';
}
}
},
getAvailable() {
return this.options = {
additionalClass: this.isAvailable ? 'bg-green-500' : 'bg-red-500',
label: this.isAvailable ? 'Auf Lager' : 'Nicht lieferbar',
categoryNotificationLabel: this.isAvailable ? '' : this.notificationLabel,
};
}
}
}
</script>
<!--
<div x-data="{
...amNotificationProductViewComponent_1654(),
...amXnotifSubscribeComponentList_1654()
}"
x-on:configurable-select-changed.window="getSimpleProduct($event.detail, $el)"
x-show="getAvailable()"
id="stock_notification_1654"
class="text-right relative">
<p class="flex items-center justify-center align-middle available gap-x-2 stock" :title="title">
<span class="w-3 h-3 rounded-full flex-shrink-0" :class="options.additionalClass"></span>
<span x-text="options.label"></span>
</p>
</div> -->
<script>
'use strict';
function amXnotifSubscribeComponentList_1654() {
return {
mutationStockSubscription: `mutation AmxnotifStockSubscribe($input: AmxnotifSubscribeInput) {
AmxnotifStockSubscribe(input: $input) {
response_message
}
}`,
isInStock: '1',
isConfigurable: '',
productIdentifier: '1654',
isValid: true,
buttonDisabled: false,
getMessages(type, message) {
return typeof window.dispatchMessages !== "undefined" && window.dispatchMessages(
[{
type: type,
text: message
}]);
},
fetchSubscribe(productId) {
let variables = {
input: {
product_uid: btoa(productId),
parent_uid: this.isConfigurable ? btoa(this.productIdentifier) : '',
}
};
this.buttonDisabled = true;
fetch(BASE_URL + 'graphql', {
method: 'POST',
headers: {
'Store': 'default',
'Content-Type': 'application/json',
},
body: JSON.stringify({
query: this.mutationStockSubscription,
variables
}),
mode: "cors",
credentials: "include"
}).then((response) => response.json()).then((result) => {
if (result?.data?.AmxnotifStockSubscribe) {
this.getMessages("success", result.data.AmxnotifStockSubscribe.response_message);
} else {
let message = result?.errors ? result.errors[0].message : "Es ist ein Fehler aufgetreten.";
this.getMessages("error", message)
}
if (this.isConfigurable) {
setTimeout(() => {
window.dispatchEvent(new Event('showAmLoader'));
window.location.reload()
}, 2000)
}
}).finally(() => {
this.buttonDisabled = false;
})
}
}
}
</script>
</div>
<script>
function initPriceBox__66af36911edb8() {
return {
updatePrice(priceData) {
const regularPriceLabel = this.$root.querySelector('.normal-price .price-label');
const regularPriceElement = this.$root.querySelector('.normal-price [data-price-type=finalPrice].price-wrapper .price');
const basePriceElement = this.$root.querySelector('.normal-price [data-price-type=basePrice].price-wrapper .price');
if (priceData.finalPrice.amount < priceData.oldPrice.amount) {
regularPriceLabel.classList.add('hidden');
} else {
regularPriceLabel.classList.remove('hidden');
}
regularPriceElement && (regularPriceElement.innerText = hyva.formatPrice(priceData.finalPrice.amount));
basePriceElement && (basePriceElement.innerText = hyva.formatPrice(priceData.basePrice.amount));
}
}
}
</script>
<div class="pt-1 text-gray-900 flex " x-data="initPriceBox__66af36911edb8()" @update-prices-1654.window="updatePrice($event.detail);" x-defer="intersect" x-ignore="">
<div class="price-box price-final_price" data-role="priceBox" data-product-id="1654" data-price-box="product-id-1654">
<a href="https://swisspackag.test.mediadivision.ch/catalog/product/view/id/1654/s/packband-tesa-60404-gelb/" class="minimal-price-link font-bold">
<span x-data="" x-id="['1654']" class="price-container price-final_price tax weee" x-defer="intersect" x-ignore="">
<span class="price-label">Ab</span>
<span :id="$id('1654')" data-price-amount="27.7" data-price-type="" class="price-wrapper ">CHF 27.70</span>
</span>
</a>
</div>
</div>
<div class="mt-auto pt-0 flex flex-wrap justify-center items-center">
<button class="absolute right-3 w-auto btn btn-card justify-center text-sm transition
mr-auto" aria-label="In den Warenkorb Packband tesa 60404 50 mm gelb">
<img width="30" src="https://swisspackag.test.mediadivision.ch/static/version1722344383/frontend/MediaDivision/swisspack-hyva-theme/de_CH/images/header/warenkorb_light.svg">
<span class="ml-2 inline md:ml-0 md:hidden lg:ml-2 lg:inline">
</span>
</button>
<div class="absolute top-2 -left-10 flex flex-col gap-2 addto-icons">
<button x-data="initWishlist()" @click.prevent="addToWishlist(1654)" aria-label="Zur Merkliste hinzufügen Packband tesa 60404 50 mm gelb" type="button"
class="px-4 rounded-r-full h-7 bg-primary-lighter p-0 border-0 inline-flex shrink-0 items-center text-gray-500 hover:text-red-600 ml-2" x-defer="intersect" x-ignore="">
<img width="13" src="https://swisspackag.test.mediadivision.ch/static/version1722344383/frontend/MediaDivision/swisspack-hyva-theme/de_CH/images/header/merkliste.svg">
<span class="text-xs ml-2 max-md:hidden">Merken</span>
</button>
<button x-data="initCompareOnProductList()" @click.prevent="addToCompare(1654)" aria-label="Zur Vergleichsliste hinzufügen Packband tesa 60404 50 mm gelb" type="button"
class="px-4 rounded-r-full h-7 bg-primary-lighter p-0 border-0 inline-flex shrink-0 items-center text-gray-500 hover:text-red-600 ml-2" x-defer="intersect" x-ignore="">
<img width="13" src="https://swisspackag.test.mediadivision.ch/static/version1722344383/frontend/MediaDivision/swisspack-hyva-theme/de_CH/images/header/vergleichen.svg">
<span class="text-xs ml-2 max-md:hidden">Vergleichen</span>
</button>
</div>
</div>
</div>
</form>
POST https://swisspackag.test.mediadivision.ch/checkout/cart/add/uenc/%25uenc%25/product/1653/
<form method="post" action="https://swisspackag.test.mediadivision.ch/checkout/cart/add/uenc/%25uenc%25/product/1653/"
class="relative item product product-item product_addtocart_form !left-0 card card-interactive flex flex-col w-full h-full glider-slide right-15" data-gslide="18" style="height: auto; width: 283px;">
<input name="form_key" type="hidden" value="89Mcr1BgikEtQYvn"> <input type="hidden" name="product" value="1653">
<a href="https://swisspackag.test.mediadivision.ch/catalog/product/view/id/1653/s/packband-tesa-60404-blau/" class="product photo product-item-photo block mx-auto mb-3 " tabindex="-1">
<img class="hover:shadow-sm object-contain product-image-photo" x-data="" @update-gallery-1653.window="$root.src = $event.detail" src="https://swisspackag.test.mediadivision.ch/media/catalog/product/cache/6ff2493bc04edee855db9d8f5dd1d705/6/0/60404b-0050-66_001.jpg" loading="lazy" width="300" height="300" alt="Packband tesa 60404 50 mm blau" title="Packband tesa 60404 50 mm blau">
</a>
<div class="product-info flex-col flex grow ">
<div class=" leading-tight mt-2 mb-1 items-center justify-center text-primary-darker font-semibold text-lg text-left ">
<a class="product-item-link" href="https://swisspackag.test.mediadivision.ch/catalog/product/view/id/1653/s/packband-tesa-60404-blau/" :id="`slide-desc-1653-${$id('slider-id')}`">
Packband tesa 60404 50 mm blau </a>
</div>
<div class="py-0 ">
<script>
'use strict';
function amNotificationProductViewComponent_1653() {
return {
isAvailable: "1",
isAvailableConfigurableSimple: true,
isOutofstockConfigurable: "1",
title: "Verfügbarkeit",
options: {},
productIndex: "1653",
hideAddToCartBtn: "",
notificationLabel: "Benachrichtigen Sie mich, wenn das Produkt wieder auf Lager ist",
productId: "1653",
/**
* Overridden method for Product Alert View Model to output url according to product id in js
*
* @param productIndex
* @param type
* @returns {*}
*/
getSubscriptionUrl(productIndex, type) {
const urlParts = ['xnotif/email/',
type, '/product_id/',
productIndex,
(parseInt(productIndex) !== parseInt(this.productId)) ? '/parent_id/' + this.productId : '', '/uenc/', 'aHR0cHM6Ly9zd2lzc3BhY2thZy50ZXN0Lm1lZGlhZGl2aXNpb24uY2gv'
];
return BASE_URL + urlParts.join('');
},
getSimpleProduct(data, el) {
let children = JSON.parse('[]');
/**
* hide addtocart button if simple for configurable product is out of stock
*/
window.addEventListener('configurable-select-changed', (event) => {
let componentElement = document.querySelector('[x-data="amNotificationProductViewComponent_' + event.detail.productId + '()"]') || document.querySelector('#stock_notification_' + event.detail.productId);
let parentElement = componentElement.closest('.product-info');
this.hideAddToCartBtn = parentElement.querySelector('.btn.btn-primary:not(.subscribe-button)');
});
//for pdp only
window.addEventListener('configurable-selection-changed', (event) => {
const addToCartButton = document.getElementById('product-addtocart-button')?.closest('div');
if (addToCartButton) {
addToCartButton.style.display = this.isAvailableConfigurableSimple ? 'flex' : 'none';
}
});
const swatchesComponent = (document.querySelector('[x-data="initConfigurableSwatchOptions_' + data.productId + '()"]') || document.querySelector('[x-data="initAmastyXnotifCatalogSwatchesMixin_' + data.productId + '()"]') || document
.querySelector('[x-data="initAmastyCustomStockStatusOptions_' + data.productId + '()"]'));
const swatchesCount = swatchesComponent?.querySelector('div')?.children?.length || 0;
for (const [key, value] of Object.entries(children[data.productIndex] || {})) {
const previousIndex = this.productIndex;
this.productIndex = data.productIndex;
if (Object.keys(data.selectedValues).length >= swatchesCount) {
this.isAvailable = Number(value);
this.isAvailableConfigurableSimple = Number(value);
}
if (this.hideAddToCartBtn) {
this.hideAddToCartBtn.style.display = !this.isAvailable ? 'none' : 'flex';
}
// plp duplicating indexes case
if (el && (previousIndex === this.productIndex) && !this.isAvailable) {
el.closest('.product-info').querySelector('.btn.btn-primary:not(.subscribe-button)').style.display = 'none';
}
}
},
getAvailable() {
return this.options = {
additionalClass: this.isAvailable ? 'bg-green-500' : 'bg-red-500',
label: this.isAvailable ? 'Auf Lager' : 'Nicht lieferbar',
categoryNotificationLabel: this.isAvailable ? '' : this.notificationLabel,
};
}
}
}
</script>
<!--
<div x-data="{
...amNotificationProductViewComponent_1653(),
...amXnotifSubscribeComponentList_1653()
}"
x-on:configurable-select-changed.window="getSimpleProduct($event.detail, $el)"
x-show="getAvailable()"
id="stock_notification_1653"
class="text-right relative">
<p class="flex items-center justify-center align-middle available gap-x-2 stock" :title="title">
<span class="w-3 h-3 rounded-full flex-shrink-0" :class="options.additionalClass"></span>
<span x-text="options.label"></span>
</p>
</div> -->
<script>
'use strict';
function amXnotifSubscribeComponentList_1653() {
return {
mutationStockSubscription: `mutation AmxnotifStockSubscribe($input: AmxnotifSubscribeInput) {
AmxnotifStockSubscribe(input: $input) {
response_message
}
}`,
isInStock: '1',
isConfigurable: '',
productIdentifier: '1653',
isValid: true,
buttonDisabled: false,
getMessages(type, message) {
return typeof window.dispatchMessages !== "undefined" && window.dispatchMessages(
[{
type: type,
text: message
}]);
},
fetchSubscribe(productId) {
let variables = {
input: {
product_uid: btoa(productId),
parent_uid: this.isConfigurable ? btoa(this.productIdentifier) : '',
}
};
this.buttonDisabled = true;
fetch(BASE_URL + 'graphql', {
method: 'POST',
headers: {
'Store': 'default',
'Content-Type': 'application/json',
},
body: JSON.stringify({
query: this.mutationStockSubscription,
variables
}),
mode: "cors",
credentials: "include"
}).then((response) => response.json()).then((result) => {
if (result?.data?.AmxnotifStockSubscribe) {
this.getMessages("success", result.data.AmxnotifStockSubscribe.response_message);
} else {
let message = result?.errors ? result.errors[0].message : "Es ist ein Fehler aufgetreten.";
this.getMessages("error", message)
}
if (this.isConfigurable) {
setTimeout(() => {
window.dispatchEvent(new Event('showAmLoader'));
window.location.reload()
}, 2000)
}
}).finally(() => {
this.buttonDisabled = false;
})
}
}
}
</script>
</div>
<script>
function initPriceBox__66af3691227ae() {
return {
updatePrice(priceData) {
const regularPriceLabel = this.$root.querySelector('.normal-price .price-label');
const regularPriceElement = this.$root.querySelector('.normal-price [data-price-type=finalPrice].price-wrapper .price');
const basePriceElement = this.$root.querySelector('.normal-price [data-price-type=basePrice].price-wrapper .price');
if (priceData.finalPrice.amount < priceData.oldPrice.amount) {
regularPriceLabel.classList.add('hidden');
} else {
regularPriceLabel.classList.remove('hidden');
}
regularPriceElement && (regularPriceElement.innerText = hyva.formatPrice(priceData.finalPrice.amount));
basePriceElement && (basePriceElement.innerText = hyva.formatPrice(priceData.basePrice.amount));
}
}
}
</script>
<div class="pt-1 text-gray-900 flex " x-data="initPriceBox__66af3691227ae()" @update-prices-1653.window="updatePrice($event.detail);" x-defer="intersect" x-ignore="">
<div class="price-box price-final_price" data-role="priceBox" data-product-id="1653" data-price-box="product-id-1653">
<a href="https://swisspackag.test.mediadivision.ch/catalog/product/view/id/1653/s/packband-tesa-60404-blau/" class="minimal-price-link font-bold">
<span x-data="" x-id="['1653']" class="price-container price-final_price tax weee" x-defer="intersect" x-ignore="">
<span class="price-label">Ab</span>
<span :id="$id('1653')" data-price-amount="27.7" data-price-type="" class="price-wrapper ">CHF 27.70</span>
</span>
</a>
</div>
</div>
<div class="mt-auto pt-0 flex flex-wrap justify-center items-center">
<button class="absolute right-3 w-auto btn btn-card justify-center text-sm transition
mr-auto" aria-label="In den Warenkorb Packband tesa 60404 50 mm blau">
<img width="30" src="https://swisspackag.test.mediadivision.ch/static/version1722344383/frontend/MediaDivision/swisspack-hyva-theme/de_CH/images/header/warenkorb_light.svg">
<span class="ml-2 inline md:ml-0 md:hidden lg:ml-2 lg:inline">
</span>
</button>
<div class="absolute top-2 -left-10 flex flex-col gap-2 addto-icons">
<button x-data="initWishlist()" @click.prevent="addToWishlist(1653)" aria-label="Zur Merkliste hinzufügen Packband tesa 60404 50 mm blau" type="button"
class="px-4 rounded-r-full h-7 bg-primary-lighter p-0 border-0 inline-flex shrink-0 items-center text-gray-500 hover:text-red-600 ml-2" x-defer="intersect" x-ignore="">
<img width="13" src="https://swisspackag.test.mediadivision.ch/static/version1722344383/frontend/MediaDivision/swisspack-hyva-theme/de_CH/images/header/merkliste.svg">
<span class="text-xs ml-2 max-md:hidden">Merken</span>
</button>
<button x-data="initCompareOnProductList()" @click.prevent="addToCompare(1653)" aria-label="Zur Vergleichsliste hinzufügen Packband tesa 60404 50 mm blau" type="button"
class="px-4 rounded-r-full h-7 bg-primary-lighter p-0 border-0 inline-flex shrink-0 items-center text-gray-500 hover:text-red-600 ml-2" x-defer="intersect" x-ignore="">
<img width="13" src="https://swisspackag.test.mediadivision.ch/static/version1722344383/frontend/MediaDivision/swisspack-hyva-theme/de_CH/images/header/vergleichen.svg">
<span class="text-xs ml-2 max-md:hidden">Vergleichen</span>
</button>
</div>
</div>
</div>
</form>
POST https://swisspackag.test.mediadivision.ch/checkout/cart/add/uenc/%25uenc%25/product/1652/
<form method="post" action="https://swisspackag.test.mediadivision.ch/checkout/cart/add/uenc/%25uenc%25/product/1652/"
class="relative item product product-item product_addtocart_form !left-0 card card-interactive flex flex-col w-full h-full glider-slide right-16" data-gslide="19" style="height: auto; width: 283px;">
<input name="form_key" type="hidden" value="89Mcr1BgikEtQYvn"> <input type="hidden" name="product" value="1652">
<a href="https://swisspackag.test.mediadivision.ch/catalog/product/view/id/1652/s/packband-tesa-4124-transparent/" class="product photo product-item-photo block mx-auto mb-3 " tabindex="-1">
<img class="hover:shadow-sm object-contain product-image-photo" x-data="" @update-gallery-1652.window="$root.src = $event.detail" src="https://swisspackag.test.mediadivision.ch/media/catalog/product/cache/6ff2493bc04edee855db9d8f5dd1d705/4/1/4124t-0050-66_001.jpg" loading="lazy" width="300" height="300" alt="Packband tesa 4124 50 mm transparent" title="Packband tesa 4124 50 mm transparent">
</a>
<div class="product-info flex-col flex grow ">
<div class=" leading-tight mt-2 mb-1 items-center justify-center text-primary-darker font-semibold text-lg text-left ">
<a class="product-item-link" href="https://swisspackag.test.mediadivision.ch/catalog/product/view/id/1652/s/packband-tesa-4124-transparent/" :id="`slide-desc-1652-${$id('slider-id')}`">
Packband tesa 4124 50 mm transparent </a>
</div>
<div class="py-0 ">
<script>
'use strict';
function amNotificationProductViewComponent_1652() {
return {
isAvailable: "1",
isAvailableConfigurableSimple: true,
isOutofstockConfigurable: "1",
title: "Verfügbarkeit",
options: {},
productIndex: "1652",
hideAddToCartBtn: "",
notificationLabel: "Benachrichtigen Sie mich, wenn das Produkt wieder auf Lager ist",
productId: "1652",
/**
* Overridden method for Product Alert View Model to output url according to product id in js
*
* @param productIndex
* @param type
* @returns {*}
*/
getSubscriptionUrl(productIndex, type) {
const urlParts = ['xnotif/email/',
type, '/product_id/',
productIndex,
(parseInt(productIndex) !== parseInt(this.productId)) ? '/parent_id/' + this.productId : '', '/uenc/', 'aHR0cHM6Ly9zd2lzc3BhY2thZy50ZXN0Lm1lZGlhZGl2aXNpb24uY2gv'
];
return BASE_URL + urlParts.join('');
},
getSimpleProduct(data, el) {
let children = JSON.parse('[]');
/**
* hide addtocart button if simple for configurable product is out of stock
*/
window.addEventListener('configurable-select-changed', (event) => {
let componentElement = document.querySelector('[x-data="amNotificationProductViewComponent_' + event.detail.productId + '()"]') || document.querySelector('#stock_notification_' + event.detail.productId);
let parentElement = componentElement.closest('.product-info');
this.hideAddToCartBtn = parentElement.querySelector('.btn.btn-primary:not(.subscribe-button)');
});
//for pdp only
window.addEventListener('configurable-selection-changed', (event) => {
const addToCartButton = document.getElementById('product-addtocart-button')?.closest('div');
if (addToCartButton) {
addToCartButton.style.display = this.isAvailableConfigurableSimple ? 'flex' : 'none';
}
});
const swatchesComponent = (document.querySelector('[x-data="initConfigurableSwatchOptions_' + data.productId + '()"]') || document.querySelector('[x-data="initAmastyXnotifCatalogSwatchesMixin_' + data.productId + '()"]') || document
.querySelector('[x-data="initAmastyCustomStockStatusOptions_' + data.productId + '()"]'));
const swatchesCount = swatchesComponent?.querySelector('div')?.children?.length || 0;
for (const [key, value] of Object.entries(children[data.productIndex] || {})) {
const previousIndex = this.productIndex;
this.productIndex = data.productIndex;
if (Object.keys(data.selectedValues).length >= swatchesCount) {
this.isAvailable = Number(value);
this.isAvailableConfigurableSimple = Number(value);
}
if (this.hideAddToCartBtn) {
this.hideAddToCartBtn.style.display = !this.isAvailable ? 'none' : 'flex';
}
// plp duplicating indexes case
if (el && (previousIndex === this.productIndex) && !this.isAvailable) {
el.closest('.product-info').querySelector('.btn.btn-primary:not(.subscribe-button)').style.display = 'none';
}
}
},
getAvailable() {
return this.options = {
additionalClass: this.isAvailable ? 'bg-green-500' : 'bg-red-500',
label: this.isAvailable ? 'Auf Lager' : 'Nicht lieferbar',
categoryNotificationLabel: this.isAvailable ? '' : this.notificationLabel,
};
}
}
}
</script>
<!--
<div x-data="{
...amNotificationProductViewComponent_1652(),
...amXnotifSubscribeComponentList_1652()
}"
x-on:configurable-select-changed.window="getSimpleProduct($event.detail, $el)"
x-show="getAvailable()"
id="stock_notification_1652"
class="text-right relative">
<p class="flex items-center justify-center align-middle available gap-x-2 stock" :title="title">
<span class="w-3 h-3 rounded-full flex-shrink-0" :class="options.additionalClass"></span>
<span x-text="options.label"></span>
</p>
</div> -->
<script>
'use strict';
function amXnotifSubscribeComponentList_1652() {
return {
mutationStockSubscription: `mutation AmxnotifStockSubscribe($input: AmxnotifSubscribeInput) {
AmxnotifStockSubscribe(input: $input) {
response_message
}
}`,
isInStock: '1',
isConfigurable: '',
productIdentifier: '1652',
isValid: true,
buttonDisabled: false,
getMessages(type, message) {
return typeof window.dispatchMessages !== "undefined" && window.dispatchMessages(
[{
type: type,
text: message
}]);
},
fetchSubscribe(productId) {
let variables = {
input: {
product_uid: btoa(productId),
parent_uid: this.isConfigurable ? btoa(this.productIdentifier) : '',
}
};
this.buttonDisabled = true;
fetch(BASE_URL + 'graphql', {
method: 'POST',
headers: {
'Store': 'default',
'Content-Type': 'application/json',
},
body: JSON.stringify({
query: this.mutationStockSubscription,
variables
}),
mode: "cors",
credentials: "include"
}).then((response) => response.json()).then((result) => {
if (result?.data?.AmxnotifStockSubscribe) {
this.getMessages("success", result.data.AmxnotifStockSubscribe.response_message);
} else {
let message = result?.errors ? result.errors[0].message : "Es ist ein Fehler aufgetreten.";
this.getMessages("error", message)
}
if (this.isConfigurable) {
setTimeout(() => {
window.dispatchEvent(new Event('showAmLoader'));
window.location.reload()
}, 2000)
}
}).finally(() => {
this.buttonDisabled = false;
})
}
}
}
</script>
</div>
<script>
function initPriceBox__66af369126679() {
return {
updatePrice(priceData) {
const regularPriceLabel = this.$root.querySelector('.normal-price .price-label');
const regularPriceElement = this.$root.querySelector('.normal-price [data-price-type=finalPrice].price-wrapper .price');
const basePriceElement = this.$root.querySelector('.normal-price [data-price-type=basePrice].price-wrapper .price');
if (priceData.finalPrice.amount < priceData.oldPrice.amount) {
regularPriceLabel.classList.add('hidden');
} else {
regularPriceLabel.classList.remove('hidden');
}
regularPriceElement && (regularPriceElement.innerText = hyva.formatPrice(priceData.finalPrice.amount));
basePriceElement && (basePriceElement.innerText = hyva.formatPrice(priceData.basePrice.amount));
}
}
}
</script>
<div class="pt-1 text-gray-900 flex " x-data="initPriceBox__66af369126679()" @update-prices-1652.window="updatePrice($event.detail);" x-defer="intersect" x-ignore="">
<div class="price-box price-final_price" data-role="priceBox" data-product-id="1652" data-price-box="product-id-1652">
<a href="https://swisspackag.test.mediadivision.ch/catalog/product/view/id/1652/s/packband-tesa-4124-transparent/" class="minimal-price-link font-bold">
<span x-data="" x-id="['1652']" class="price-container price-final_price tax weee" x-defer="intersect" x-ignore="">
<span class="price-label">Ab</span>
<span :id="$id('1652')" data-price-amount="6.6" data-price-type="" class="price-wrapper ">CHF 6.60</span>
</span>
</a>
</div>
</div>
<div class="mt-auto pt-0 flex flex-wrap justify-center items-center">
<button class="absolute right-3 w-auto btn btn-card justify-center text-sm transition
mr-auto" aria-label="In den Warenkorb Packband tesa 4124 50 mm transparent">
<img width="30" src="https://swisspackag.test.mediadivision.ch/static/version1722344383/frontend/MediaDivision/swisspack-hyva-theme/de_CH/images/header/warenkorb_light.svg">
<span class="ml-2 inline md:ml-0 md:hidden lg:ml-2 lg:inline">
</span>
</button>
<div class="absolute top-2 -left-10 flex flex-col gap-2 addto-icons">
<button x-data="initWishlist()" @click.prevent="addToWishlist(1652)" aria-label="Zur Merkliste hinzufügen Packband tesa 4124 50 mm transparent" type="button"
class="px-4 rounded-r-full h-7 bg-primary-lighter p-0 border-0 inline-flex shrink-0 items-center text-gray-500 hover:text-red-600 ml-2" x-defer="intersect" x-ignore="">
<img width="13" src="https://swisspackag.test.mediadivision.ch/static/version1722344383/frontend/MediaDivision/swisspack-hyva-theme/de_CH/images/header/merkliste.svg">
<span class="text-xs ml-2 max-md:hidden">Merken</span>
</button>
<button x-data="initCompareOnProductList()" @click.prevent="addToCompare(1652)" aria-label="Zur Vergleichsliste hinzufügen Packband tesa 4124 50 mm transparent" type="button"
class="px-4 rounded-r-full h-7 bg-primary-lighter p-0 border-0 inline-flex shrink-0 items-center text-gray-500 hover:text-red-600 ml-2" x-defer="intersect" x-ignore="">
<img width="13" src="https://swisspackag.test.mediadivision.ch/static/version1722344383/frontend/MediaDivision/swisspack-hyva-theme/de_CH/images/header/vergleichen.svg">
<span class="text-xs ml-2 max-md:hidden">Vergleichen</span>
</button>
</div>
</div>
</div>
</form>
POST https://swisspackag.test.mediadivision.ch/newsletter/subscriber/new/
<form class="form subscribe" action="https://swisspackag.test.mediadivision.ch/newsletter/subscriber/new/" method="post" x-data="initNewsletterForm()" @submit.prevent="submitForm()" id="newsletter-validate-detail" aria-label="Newsletter abonnieren">
<h2 class="mb-3 text-sm font-medium tracking-widest text-gray-900 uppercase title-font" id="footer-newsletter-heading">
</h2>
<div class="flex justify-center md:justify-start">
<label for="newsletter-subscribe" class="sr-only"> E-Mailadresse </label>
<input name="email" type="email" required="" id="newsletter-subscribe" class="form-input-newsletter inline-flex w-full text-primary text-bold" placeholder="E-Mailadresse" aria-describedby="footer-newsletter-heading">
<input name="form_key" type="hidden" value="89Mcr1BgikEtQYvn"> <button class="inline-flex shrink-0 ml-auto xl:mt-0 btn btn-third"> Abonnieren </button>
</div>
<div>
<template x-if="displayErrorMessage">
<p class="flex items-center text-red">
<span class="inline-block w-8 h-8 mr-3">
<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" width="24" height="24" role="img">
<path stroke-linecap="round" stroke-linejoin="round" d="M12 8v4m0 4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z"></path>
<title>exclamation-circle</title>
</svg>
</span>
<template x-for="errorMessage in errorMessages">
<span x-html="errorMessage"></span>
</template>
</p>
</template>
</div>
</form>
POST https://swisspackag.test.mediadivision.ch/customer/account/loginPost/
<form class="form form-login" action="https://swisspackag.test.mediadivision.ch/customer/account/loginPost/" method="post" x-data="initCustomerLoginForm()" @submit.prevent="submitForm()" id="customer-login-form">
<input name="form_key" type="hidden" value="9DupMAkhp9WOUCzA">
<fieldset class="fieldset login">
<legend class="mb-3">
<h2 class="text-xl font-medium title-font text-primary"> Anmelden </h2>
</legend>
<div class="text-secondary-darker mb-8"> Wenn Sie ein Konto haben, melden Sie sich mit Ihrer e-Mail-Adresse. </div>
<div class="field email required">
<label class="label" for="email"><span>E-Mail</span></label>
<div class="control">
<input name="login[username]" class="form-input" required="" value="" autocomplete="off" id="email" type="email" title="E-Mail">
</div>
</div>
<div class="field password required">
<label for="am-pass" class="label">
<span> Passwort </span>
</label>
<div class="control flex items-center">
<div class="sr-only" aria-live="polite">
<template x-if="!customer_form_login_popup_showPassword">
<span> Password hidden </span>
</template>
<template x-if="customer_form_login_popup_showPassword">
<span> Password shown </span>
</template>
</div>
<input name="login[password]" class="form-input" required="" :type="customer_form_login_popup_showPassword ? 'text' : 'password'" autocomplete="off" id="am-pass" title="Passwort">
<button type="button" x-on:click="customer_form_login_popup_showPassword = !customer_form_login_popup_showPassword" :aria-pressed="customer_form_login_popup_showPassword ? 'true' : 'false'" class="px-4 py-3"
:aria-label="customer_form_login_popup_showPassword ? 'Hide\u0020Password' : 'Passwort\u0020anzeigen'">
<template x-if="!customer_form_login_popup_showPassword">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" fill="currentColor" class="w-5 h-5" width="24" height="24" role="img">
<path d="M10 12a2 2 0 100-4 2 2 0 000 4z"></path>
<path fill-rule="evenodd" d="M.458 10C1.732 5.943 5.522 3 10 3s8.268 2.943 9.542 7c-1.274 4.057-5.064 7-9.542 7S1.732 14.057.458 10zM14 10a4 4 0 11-8 0 4 4 0 018 0z" clip-rule="evenodd"></path>
<title>eye</title>
</svg>
</template>
<template x-if="customer_form_login_popup_showPassword">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" fill="currentColor" class="w-5 h-5" width="24" height="24" role="img">
<path fill-rule="evenodd"
d="M3.707 2.293a1 1 0 00-1.414 1.414l14 14a1 1 0 001.414-1.414l-1.473-1.473A10.014 10.014 0 0019.542 10C18.268 5.943 14.478 3 10 3a9.958 9.958 0 00-4.512 1.074l-1.78-1.781zm4.261 4.26l1.514 1.515a2.003 2.003 0 012.45 2.45l1.514 1.514a4 4 0 00-5.478-5.478z"
clip-rule="evenodd"></path>
<path d="M12.454 16.697L9.75 13.992a4 4 0 01-3.742-3.741L2.335 6.578A9.98 9.98 0 00.458 10c1.274 4.057 5.065 7 9.542 7 .847 0 1.669-.105 2.454-.303z"></path>
<title>eye-off</title>
</svg>
</template>
</button>
</div>
</div>
<div class="control">
<input type="hidden" value="" name="g-recaptcha-response">
</div>
<div class="actions-toolbar flex justify-between pt-6 pb-2 items-center">
<button type="button" @click="submitForm()" class="btn btn-primary disabled:opacity-75" name="send" disabled="disabled" data-recaptcha-btn="">
<span>Anmelden</span></button>
<a class="underline text-secondary" href="https://swisspackag.test.mediadivision.ch/customer/account/forgotpassword/"><span>Passwort vergessen?</span>
</a>
</div>
<div>
<template x-if="displayErrorMessage">
<p class="text-red flex items-center">
<span class="inline-block w-8 h-8 mr-3">
<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" width="24" height="24" role="img">
<path stroke-linecap="round" stroke-linejoin="round" d="M12 8v4m0 4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z"></path>
<title>exclamation-circle</title>
</svg>
</span>
<template x-for="errorMessage in errorMessages">
<span x-html="errorMessage"></span>
</template>
</p>
</template>
</div>
</fieldset>
</form>
POST https://swisspackag.test.mediadivision.ch/customer/account/loginPost/
<form class="form form-login" action="https://swisspackag.test.mediadivision.ch/customer/account/loginPost/" method="post" x-data="initCustomerLoginForm()" @submit.prevent="submitForm()" id="customer-login-form">
<input name="form_key" type="hidden" value="89Mcr1BgikEtQYvn">
<fieldset class="fieldset login">
<legend class="mb-3">
<h2 class="text-xl font-medium title-font text-primary"> Anmelden </h2>
</legend>
<div class="text-secondary-darker mb-8"> Wenn Sie ein Konto haben, melden Sie sich mit Ihrer e-Mail-Adresse. </div>
<div class="field email required">
<label class="label" for="email"><span>E-Mail</span></label>
<div class="control">
<input name="login[username]" class="form-input" required="" value="" autocomplete="off" id="email" type="email" title="E-Mail">
</div>
</div>
<div class="field password required">
<label for="am-pass" class="label">
<span> Passwort </span>
</label>
<div class="control flex items-center">
<div class="sr-only" aria-live="polite">
<template x-if="!customer_form_login_popup_showPassword">
<span> Password hidden </span>
</template><span> Password hidden </span>
<template x-if="customer_form_login_popup_showPassword">
<span> Password shown </span>
</template>
</div>
<input name="login[password]" class="form-input" required="" :type="customer_form_login_popup_showPassword ? 'text' : 'password'" autocomplete="off" id="am-pass" title="Passwort" type="password">
<button type="button" x-on:click="customer_form_login_popup_showPassword = !customer_form_login_popup_showPassword" :aria-pressed="customer_form_login_popup_showPassword ? 'true' : 'false'" class="px-4 py-3"
:aria-label="customer_form_login_popup_showPassword ? 'Hide\u0020Password' : 'Passwort\u0020anzeigen'" aria-pressed="false" aria-label="Passwort anzeigen">
<template x-if="!customer_form_login_popup_showPassword">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" fill="currentColor" class="w-5 h-5" width="24" height="24" role="img">
<path d="M10 12a2 2 0 100-4 2 2 0 000 4z"></path>
<path fill-rule="evenodd" d="M.458 10C1.732 5.943 5.522 3 10 3s8.268 2.943 9.542 7c-1.274 4.057-5.064 7-9.542 7S1.732 14.057.458 10zM14 10a4 4 0 11-8 0 4 4 0 018 0z" clip-rule="evenodd"></path>
<title>eye</title>
</svg>
</template><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" fill="currentColor" class="w-5 h-5" width="24" height="24" role="img">
<path d="M10 12a2 2 0 100-4 2 2 0 000 4z"></path>
<path fill-rule="evenodd" d="M.458 10C1.732 5.943 5.522 3 10 3s8.268 2.943 9.542 7c-1.274 4.057-5.064 7-9.542 7S1.732 14.057.458 10zM14 10a4 4 0 11-8 0 4 4 0 018 0z" clip-rule="evenodd"></path>
<title>eye</title>
</svg>
<template x-if="customer_form_login_popup_showPassword">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" fill="currentColor" class="w-5 h-5" width="24" height="24" role="img">
<path fill-rule="evenodd"
d="M3.707 2.293a1 1 0 00-1.414 1.414l14 14a1 1 0 001.414-1.414l-1.473-1.473A10.014 10.014 0 0019.542 10C18.268 5.943 14.478 3 10 3a9.958 9.958 0 00-4.512 1.074l-1.78-1.781zm4.261 4.26l1.514 1.515a2.003 2.003 0 012.45 2.45l1.514 1.514a4 4 0 00-5.478-5.478z"
clip-rule="evenodd"></path>
<path d="M12.454 16.697L9.75 13.992a4 4 0 01-3.742-3.741L2.335 6.578A9.98 9.98 0 00.458 10c1.274 4.057 5.065 7 9.542 7 .847 0 1.669-.105 2.454-.303z"></path>
<title>eye-off</title>
</svg>
</template>
</button>
</div>
</div>
<div class="control">
<input type="hidden" value="" name="g-recaptcha-response">
</div>
<div class="actions-toolbar flex justify-between pt-6 pb-2 items-center">
<button type="button" @click="submitForm()" class="btn btn-primary disabled:opacity-75" name="send" disabled="disabled" data-recaptcha-btn="">
<span>Anmelden</span></button>
<a class="underline text-secondary" href="https://swisspackag.test.mediadivision.ch/customer/account/forgotpassword/"><span>Passwort vergessen?</span>
</a>
</div>
<div>
<template x-if="displayErrorMessage">
<p class="text-red flex items-center">
<span class="inline-block w-8 h-8 mr-3">
<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" width="24" height="24" role="img">
<path stroke-linecap="round" stroke-linejoin="round" d="M12 8v4m0 4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z"></path>
<title>exclamation-circle</title>
</svg>
</span>
<template x-for="errorMessage in errorMessages">
<span x-html="errorMessage"></span>
</template>
</p>
</template>
</div>
</fieldset>
</form>
POST https://swisspackag.test.mediadivision.ch/customer/account/createpost/
<form class="form create account form-create-account" action="https://swisspackag.test.mediadivision.ch/customer/account/createpost/" x-data="Object.assign(hyva.formValidation($el), initForm())" id="accountcreate" @submit.prevent="submitForm()"
method="post" enctype="multipart/form-data" autocomplete="off">
<input name="form_key" type="hidden" value="9DupMAkhp9WOUCzA">
<div class="control">
<input type="hidden" value="" name="g-recaptcha-response">
</div>
<div class="md:grid grid-cols-2 gap-4">
<fieldset class="my-8 card">
<legend class="contents">
<span> Persönliche Daten </span>
</legend>
<input type="hidden" name="success_url" value="">
<input type="hidden" name="error_url" value="">
<div class="field field-reserved w-full field-name-prefix">
<label class="label" for="prefix">
<span> Anrede </span>
</label>
<div class="control">
<select id="prefix" name="prefix" title="Anrede" class="">
<option value=" ">
</option>
<option value="Herr"> Herr </option>
<option value="Frau"> Frau </option>
</select>
</div>
</div>
<div class="field field-reserved w-full field-name-firstname required">
<label class="label" for="firstname">
<span> Vorname </span>
</label>
<div class="control">
<input type="text" id="firstname" name="firstname" value="" required="" title="Vorname" class="form-input required-entry" @input.debounce="onChange">
</div>
</div>
<div class="field field-reserved w-full field-name-lastname required">
<label class="label" for="lastname">
<span> Nachname </span>
</label>
<div class="control">
<input type="text" id="lastname" name="lastname" required="" value="" title="Nachname" class="form-input required-entry" @input.debounce="onChange">
</div>
</div>
<div class="field choice newsletter">
<input type="checkbox" name="is_subscribed" title="Abonnieren Sie den Newsletter" value="1" id="is_subscribed" class="checkbox">
<label for="is_subscribed" class="label">
<span> Abonnieren Sie den Newsletter </span>
</label>
</div>
</fieldset>
<fieldset class="my-8 card">
<legend class="contents">
<span> Anmeldeinformationen</span>
</legend>
<div class="field field-reserved required">
<label for="am-email-address" class="label">
<span> E-Mail </span>
</label>
<div class="control">
<input type="email" name="email" autocomplete="email" id="am-email-address" required="" value="" title="E-Mail" class="form-input" @input.debounce="onChange">
</div>
</div>
<div class="field field-reserved">
<label for="password" class="label">
<span> Passwort </span>
</label>
<div class="control flex items-center">
<div class="sr-only" aria-live="polite">
<template x-if="!customer_form_register_popup_showPassword">
<span> Password hidden </span>
</template>
<template x-if="customer_form_register_popup_showPassword">
<span> Password shown </span>
</template>
</div>
<input :type="customer_form_register_popup_showPassword ? 'text' : 'password'" type="password" id="password" name="password" title="Passwort" minlength="8" class="form-input" required=""
data-validate="{"password-strength": {"minCharacterSets": 3}}" @input.debounce="onChange" autocomplete="off">
<button type="button" :aria-pressed="customer_form_register_popup_showPassword ? true : false" x-on:click="customer_form_register_popup_showPassword = !customer_form_register_popup_showPassword" class="px-4 py-3"
:aria-label="customer_form_register_popup_showPassword ? 'Hide\u0020Password' : 'Passwort\u0020anzeigen'">
<template x-if="!customer_form_register_popup_showPassword">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" fill="currentColor" class="w-5 h-5" width="24" height="24" role="img">
<path d="M10 12a2 2 0 100-4 2 2 0 000 4z"></path>
<path fill-rule="evenodd" d="M.458 10C1.732 5.943 5.522 3 10 3s8.268 2.943 9.542 7c-1.274 4.057-5.064 7-9.542 7S1.732 14.057.458 10zM14 10a4 4 0 11-8 0 4 4 0 018 0z" clip-rule="evenodd"></path>
<title>eye</title>
</svg>
</template>
<template x-if="customer_form_register_popup_showPassword">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" fill="currentColor" class="w-5 h-5" width="24" height="24" role="img">
<path fill-rule="evenodd"
d="M3.707 2.293a1 1 0 00-1.414 1.414l14 14a1 1 0 001.414-1.414l-1.473-1.473A10.014 10.014 0 0019.542 10C18.268 5.943 14.478 3 10 3a9.958 9.958 0 00-4.512 1.074l-1.78-1.781zm4.261 4.26l1.514 1.515a2.003 2.003 0 012.45 2.45l1.514 1.514a4 4 0 00-5.478-5.478z"
clip-rule="evenodd"></path>
<path d="M12.454 16.697L9.75 13.992a4 4 0 01-3.742-3.741L2.335 6.578A9.98 9.98 0 00.458 10c1.274 4.057 5.065 7 9.542 7 .847 0 1.669-.105 2.454-.303z"></path>
<title>eye-off</title>
</svg>
</template>
</button>
<div id="password-strength-meter-container" data-role="password-strength-meter" aria-live="polite">
<div id="password-strength-meter" class="password-strength-meter"> Passwortstärke: <span id="password-strength-meter-label" data-role="password-strength-meter-label"> Kein Passwort </span>
</div>
</div>
</div>
</div>
<div class="field field-reserved">
<label for="password-confirmation" class="label">
<span> Passwort bestätigen </span>
</label>
<div class="control flex items-center">
<div class="sr-only" aria-live="polite">
<template x-if="!customer_form_register_popup_showPasswordConfirm">
<span> Confirm password hidden </span>
</template>
<template x-if="customer_form_register_popup_showPasswordConfirm">
<span> confirm password shown </span>
</template>
</div>
<input :type="customer_form_register_popup_showPasswordConfirm ? 'text' : 'password'" type="password" name="password_confirmation" title="Passwort bestätigen" id="password-confirmation"
data-validate="{"equalTo": "password"}" @input.debounce="onChange" required="" class="form-input" autocomplete="off">
<button type="button" x-on:click="customer_form_register_popup_showPasswordConfirm = !customer_form_register_popup_showPasswordConfirm" :aria-pressed="customer_form_register_popup_showPasswordConfirm ? true : false" class="px-4 py-3"
:aria-label="
customer_form_register_popup_showPasswordConfirm ? 'Hide\u0020Password' : 'Passwort\u0020anzeigen'
">
<template x-if="!customer_form_register_popup_showPasswordConfirm">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" fill="currentColor" class="w-5 h-5" width="24" height="24" role="img">
<path d="M10 12a2 2 0 100-4 2 2 0 000 4z"></path>
<path fill-rule="evenodd" d="M.458 10C1.732 5.943 5.522 3 10 3s8.268 2.943 9.542 7c-1.274 4.057-5.064 7-9.542 7S1.732 14.057.458 10zM14 10a4 4 0 11-8 0 4 4 0 018 0z" clip-rule="evenodd"></path>
<title>eye</title>
</svg>
</template>
<template x-if="customer_form_register_popup_showPasswordConfirm">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" fill="currentColor" class="w-5 h-5" width="24" height="24" role="img">
<path fill-rule="evenodd"
d="M3.707 2.293a1 1 0 00-1.414 1.414l14 14a1 1 0 001.414-1.414l-1.473-1.473A10.014 10.014 0 0019.542 10C18.268 5.943 14.478 3 10 3a9.958 9.958 0 00-4.512 1.074l-1.78-1.781zm4.261 4.26l1.514 1.515a2.003 2.003 0 012.45 2.45l1.514 1.514a4 4 0 00-5.478-5.478z"
clip-rule="evenodd"></path>
<path d="M12.454 16.697L9.75 13.992a4 4 0 01-3.742-3.741L2.335 6.578A9.98 9.98 0 00.458 10c1.274 4.057 5.065 7 9.542 7 .847 0 1.669-.105 2.454-.303z"></path>
<title>eye-off</title>
</svg>
</template>
</button>
</div>
</div>
<p class="my-4 text-sm text-gray-900"> Dieses Formular ist durch reCAPTCHA geschützt - Es gelten die <a class="underline" href="https://policies.google.com/privacy" target="_blank" rel="noopener">Google Datenschutzbestimmungen</a> und
<a class="underline" href="https://policies.google.com/terms" target="_blank" rel="noopener">Nutzungsbedingungen</a>.</p>
</fieldset>
</div>
<div class="actions-toolbar flex">
<div class="primary">
<button type="submit" class="action submit primary btn btn-primary disabled:opacity-75" title="Konto erstellen" disabled="disabled" data-recaptcha-btn="">
<span>Konto erstellen</span>
</button>
</div>
<div class="secondary ml-4 self-center">
<a class="action back" href="https://swisspackag.test.mediadivision.ch/customer/account/login/referer/aHR0cHM6Ly9zd2lzc3BhY2thZy50ZXN0Lm1lZGlhZGl2aXNpb24uY2gv/">
<span>
Zurück </span>
</a>
</div>
</div>
</form>
POST https://swisspackag.test.mediadivision.ch/customer/account/createpost/
<form class="form create account form-create-account" action="https://swisspackag.test.mediadivision.ch/customer/account/createpost/" x-data="Object.assign(hyva.formValidation($el), initForm())" id="accountcreate" @submit.prevent="submitForm()"
method="post" enctype="multipart/form-data" autocomplete="off" novalidate="">
<input name="form_key" type="hidden" value="89Mcr1BgikEtQYvn">
<div class="control">
<input type="hidden" value="" name="g-recaptcha-response">
</div>
<div class="md:grid grid-cols-2 gap-4">
<fieldset class="my-8 card">
<legend class="contents">
<span> Persönliche Daten </span>
</legend>
<input type="hidden" name="success_url" value="">
<input type="hidden" name="error_url" value="">
<div class="field field-reserved w-full field-name-prefix">
<label class="label" for="prefix">
<span> Anrede </span>
</label>
<div class="control">
<select id="prefix" name="prefix" title="Anrede" class="">
<option value=" ">
</option>
<option value="Herr"> Herr </option>
<option value="Frau"> Frau </option>
</select>
</div>
</div>
<div class="field field-reserved w-full field-name-firstname required">
<label class="label" for="firstname">
<span> Vorname </span>
</label>
<div class="control">
<input type="text" id="firstname" name="firstname" value="" required="" title="Vorname" class="form-input required-entry" @input.debounce="onChange">
</div>
</div>
<div class="field field-reserved w-full field-name-lastname required">
<label class="label" for="lastname">
<span> Nachname </span>
</label>
<div class="control">
<input type="text" id="lastname" name="lastname" required="" value="" title="Nachname" class="form-input required-entry" @input.debounce="onChange">
</div>
</div>
<div class="field choice newsletter">
<input type="checkbox" name="is_subscribed" title="Abonnieren Sie den Newsletter" value="1" id="is_subscribed" class="checkbox">
<label for="is_subscribed" class="label">
<span> Abonnieren Sie den Newsletter </span>
</label>
</div>
</fieldset>
<fieldset class="my-8 card">
<legend class="contents">
<span> Anmeldeinformationen</span>
</legend>
<div class="field field-reserved required">
<label for="am-email-address" class="label">
<span> E-Mail </span>
</label>
<div class="control">
<input type="email" name="email" autocomplete="email" id="am-email-address" required="" value="" title="E-Mail" class="form-input" @input.debounce="onChange">
</div>
</div>
<div class="field field-reserved">
<label for="password" class="label">
<span> Passwort </span>
</label>
<div class="control flex items-center">
<div class="sr-only" aria-live="polite">
<template x-if="!customer_form_register_popup_showPassword">
<span> Password hidden </span>
</template><span> Password hidden </span>
<template x-if="customer_form_register_popup_showPassword">
<span> Password shown </span>
</template>
</div>
<input :type="customer_form_register_popup_showPassword ? 'text' : 'password'" type="password" id="password" name="password" title="Passwort" minlength="8" class="form-input" required=""
data-validate="{"password-strength": {"minCharacterSets": 3}}" @input.debounce="onChange" autocomplete="off">
<button type="button" :aria-pressed="customer_form_register_popup_showPassword ? true : false" x-on:click="customer_form_register_popup_showPassword = !customer_form_register_popup_showPassword" class="px-4 py-3"
:aria-label="customer_form_register_popup_showPassword ? 'Hide\u0020Password' : 'Passwort\u0020anzeigen'" aria-pressed="false" aria-label="Passwort anzeigen">
<template x-if="!customer_form_register_popup_showPassword">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" fill="currentColor" class="w-5 h-5" width="24" height="24" role="img">
<path d="M10 12a2 2 0 100-4 2 2 0 000 4z"></path>
<path fill-rule="evenodd" d="M.458 10C1.732 5.943 5.522 3 10 3s8.268 2.943 9.542 7c-1.274 4.057-5.064 7-9.542 7S1.732 14.057.458 10zM14 10a4 4 0 11-8 0 4 4 0 018 0z" clip-rule="evenodd"></path>
<title>eye</title>
</svg>
</template><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" fill="currentColor" class="w-5 h-5" width="24" height="24" role="img">
<path d="M10 12a2 2 0 100-4 2 2 0 000 4z"></path>
<path fill-rule="evenodd" d="M.458 10C1.732 5.943 5.522 3 10 3s8.268 2.943 9.542 7c-1.274 4.057-5.064 7-9.542 7S1.732 14.057.458 10zM14 10a4 4 0 11-8 0 4 4 0 018 0z" clip-rule="evenodd"></path>
<title>eye</title>
</svg>
<template x-if="customer_form_register_popup_showPassword">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" fill="currentColor" class="w-5 h-5" width="24" height="24" role="img">
<path fill-rule="evenodd"
d="M3.707 2.293a1 1 0 00-1.414 1.414l14 14a1 1 0 001.414-1.414l-1.473-1.473A10.014 10.014 0 0019.542 10C18.268 5.943 14.478 3 10 3a9.958 9.958 0 00-4.512 1.074l-1.78-1.781zm4.261 4.26l1.514 1.515a2.003 2.003 0 012.45 2.45l1.514 1.514a4 4 0 00-5.478-5.478z"
clip-rule="evenodd"></path>
<path d="M12.454 16.697L9.75 13.992a4 4 0 01-3.742-3.741L2.335 6.578A9.98 9.98 0 00.458 10c1.274 4.057 5.065 7 9.542 7 .847 0 1.669-.105 2.454-.303z"></path>
<title>eye-off</title>
</svg>
</template>
</button>
<div id="password-strength-meter-container" data-role="password-strength-meter" aria-live="polite">
<div id="password-strength-meter" class="password-strength-meter"> Passwortstärke: <span id="password-strength-meter-label" data-role="password-strength-meter-label"> Kein Passwort </span>
</div>
</div>
</div>
</div>
<div class="field field-reserved">
<label for="password-confirmation" class="label">
<span> Passwort bestätigen </span>
</label>
<div class="control flex items-center">
<div class="sr-only" aria-live="polite">
<template x-if="!customer_form_register_popup_showPasswordConfirm">
<span> Confirm password hidden </span>
</template><span> Confirm password hidden </span>
<template x-if="customer_form_register_popup_showPasswordConfirm">
<span> confirm password shown </span>
</template>
</div>
<input :type="customer_form_register_popup_showPasswordConfirm ? 'text' : 'password'" type="password" name="password_confirmation" title="Passwort bestätigen" id="password-confirmation"
data-validate="{"equalTo": "password"}" @input.debounce="onChange" required="" class="form-input" autocomplete="off">
<button type="button" x-on:click="customer_form_register_popup_showPasswordConfirm = !customer_form_register_popup_showPasswordConfirm" :aria-pressed="customer_form_register_popup_showPasswordConfirm ? true : false" class="px-4 py-3"
:aria-label="
customer_form_register_popup_showPasswordConfirm ? 'Hide\u0020Password' : 'Passwort\u0020anzeigen'
" aria-pressed="false" aria-label="Passwort anzeigen">
<template x-if="!customer_form_register_popup_showPasswordConfirm">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" fill="currentColor" class="w-5 h-5" width="24" height="24" role="img">
<path d="M10 12a2 2 0 100-4 2 2 0 000 4z"></path>
<path fill-rule="evenodd" d="M.458 10C1.732 5.943 5.522 3 10 3s8.268 2.943 9.542 7c-1.274 4.057-5.064 7-9.542 7S1.732 14.057.458 10zM14 10a4 4 0 11-8 0 4 4 0 018 0z" clip-rule="evenodd"></path>
<title>eye</title>
</svg>
</template><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" fill="currentColor" class="w-5 h-5" width="24" height="24" role="img">
<path d="M10 12a2 2 0 100-4 2 2 0 000 4z"></path>
<path fill-rule="evenodd" d="M.458 10C1.732 5.943 5.522 3 10 3s8.268 2.943 9.542 7c-1.274 4.057-5.064 7-9.542 7S1.732 14.057.458 10zM14 10a4 4 0 11-8 0 4 4 0 018 0z" clip-rule="evenodd"></path>
<title>eye</title>
</svg>
<template x-if="customer_form_register_popup_showPasswordConfirm">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" fill="currentColor" class="w-5 h-5" width="24" height="24" role="img">
<path fill-rule="evenodd"
d="M3.707 2.293a1 1 0 00-1.414 1.414l14 14a1 1 0 001.414-1.414l-1.473-1.473A10.014 10.014 0 0019.542 10C18.268 5.943 14.478 3 10 3a9.958 9.958 0 00-4.512 1.074l-1.78-1.781zm4.261 4.26l1.514 1.515a2.003 2.003 0 012.45 2.45l1.514 1.514a4 4 0 00-5.478-5.478z"
clip-rule="evenodd"></path>
<path d="M12.454 16.697L9.75 13.992a4 4 0 01-3.742-3.741L2.335 6.578A9.98 9.98 0 00.458 10c1.274 4.057 5.065 7 9.542 7 .847 0 1.669-.105 2.454-.303z"></path>
<title>eye-off</title>
</svg>
</template>
</button>
</div>
</div>
<p class="my-4 text-sm text-gray-900"> Dieses Formular ist durch reCAPTCHA geschützt - Es gelten die <a class="underline" href="https://policies.google.com/privacy" target="_blank" rel="noopener">Google Datenschutzbestimmungen</a> und
<a class="underline" href="https://policies.google.com/terms" target="_blank" rel="noopener">Nutzungsbedingungen</a>.</p>
</fieldset>
</div>
<div class="actions-toolbar flex">
<div class="primary">
<button type="submit" class="action submit primary btn btn-primary disabled:opacity-75" title="Konto erstellen" disabled="disabled" data-recaptcha-btn="">
<span>Konto erstellen</span>
</button>
</div>
<div class="secondary ml-4 self-center">
<a class="action back" href="https://swisspackag.test.mediadivision.ch/customer/account/login/referer/aHR0cHM6Ly9zd2lzc3BhY2thZy50ZXN0Lm1lZGlhZGl2aXNpb24uY2gv/">
<span>
Zurück </span>
</a>
</div>
</div>
</form>
POST https://swisspackag.test.mediadivision.ch/customer/account/forgotpasswordpost/
<form action="https://swisspackag.test.mediadivision.ch/customer/account/forgotpasswordpost/" method="post" id="user_forgotpassword" x-data="initPasswordForm()" @submit.prevent="submitForm();">
<input name="form_key" type="hidden" value="9DupMAkhp9WOUCzA"> <input type="hidden" name="formId" value="user_forgotpassword">
<div class="control">
<input type="hidden" value="" name="g-recaptcha-response">
</div>
<fieldset class="fieldset">
<div class="text-secondary-darker mb-8">Bitte geben Sie Ihre e-Mail-Adresse ein um einen Kennwort zurücksetzen-Link zu erhalten.</div>
<div class="field email required">
<label for="email_address" class="label"><span>E-Mail</span></label>
<div class="control">
<input type="email" name="email" alt="email" id="email_address" class="form-input" required="" value="">
</div>
</div>
<p class="my-4 text-sm text-gray-900"> Dieses Formular ist durch reCAPTCHA geschützt - Es gelten die <a class="underline" href="https://policies.google.com/privacy" target="_blank" rel="noopener">Google Datenschutzbestimmungen</a> und
<a class="underline" href="https://policies.google.com/terms" target="_blank" rel="noopener">Nutzungsbedingungen</a>.</p>
</fieldset>
<div class="actions-toolbar">
<div class="primary">
<button type="submit" class="action submit primary disabled:opacity-75" disabled="disabled" data-recaptcha-btn="">
<span>Mein Passwort zurücksetzen</span>
</button>
</div>
<div class="secondary">
<a class="action back" href="https://swisspackag.test.mediadivision.ch/customer/account/login/referer/aHR0cHM6Ly9zd2lzc3BhY2thZy50ZXN0Lm1lZGlhZGl2aXNpb24uY2gv/"><span>Zurück</span></a>
</div>
</div>
</form>
POST https://swisspackag.test.mediadivision.ch/customer/account/forgotpasswordpost/
<form action="https://swisspackag.test.mediadivision.ch/customer/account/forgotpasswordpost/" method="post" id="user_forgotpassword" x-data="initPasswordForm()" @submit.prevent="submitForm();">
<input name="form_key" type="hidden" value="89Mcr1BgikEtQYvn"> <input type="hidden" name="formId" value="user_forgotpassword">
<div class="control">
<input type="hidden" value="" name="g-recaptcha-response">
</div>
<fieldset class="fieldset">
<div class="text-secondary-darker mb-8">Bitte geben Sie Ihre e-Mail-Adresse ein um einen Kennwort zurücksetzen-Link zu erhalten.</div>
<div class="field email required">
<label for="email_address" class="label"><span>E-Mail</span></label>
<div class="control">
<input type="email" name="email" alt="email" id="email_address" class="form-input" required="" value="">
</div>
</div>
<p class="my-4 text-sm text-gray-900"> Dieses Formular ist durch reCAPTCHA geschützt - Es gelten die <a class="underline" href="https://policies.google.com/privacy" target="_blank" rel="noopener">Google Datenschutzbestimmungen</a> und
<a class="underline" href="https://policies.google.com/terms" target="_blank" rel="noopener">Nutzungsbedingungen</a>.</p>
</fieldset>
<div class="actions-toolbar">
<div class="primary">
<button type="submit" class="action submit primary disabled:opacity-75" disabled="disabled" data-recaptcha-btn="">
<span>Mein Passwort zurücksetzen</span>
</button>
</div>
<div class="secondary">
<a class="action back" href="https://swisspackag.test.mediadivision.ch/customer/account/login/referer/aHR0cHM6Ly9zd2lzc3BhY2thZy50ZXN0Lm1lZGlhZGl2aXNpb24uY2gv/"><span>Zurück</span></a>
</div>
</div>
</form>
Text Content
Zum Inhalt springen Beratung Pack-Finder Quick-Order Merkliste Vergleichen Artikel Artikel Ratgeber Anmelden Anmelden Konto erstellen Toggle minicart, Keine Artikel im Warenkorb Warenkorb Produkte * Betriebsbedarf * Betriebsbedarf * Alle anzeigen * Hygieneartikel * Impulsschweissgeräte * Handabroller * Stretchfolienabroller * Bürobedarf * Beutel und Folien * Beutel und Folien * Alle anzeigen * Abdeckfolien / Baufolien * Adhäsionsverschlussbeutel * Druckverschlussbeutel * Flachbeutel * Harassenbeutel * Schlauchfolien * Schrumpfhauben * Vakuumbeutel * Kordelzugbeutel * Ziehverschlussbeutel * Blockbodenbeutel * Kreuzbodenbeutel * Standbodenbeutel * Tragetaschen * Lieferschein- und Dokumententasche * Kantenschutz * Kantenschutz * Alle anzeigen * Kantenschutzwinkel aus Vollkarton * Wasserfeste Kantenschutzwinkel * Kantenschutzwinkel aus Kunststoff * Schutzecken * Stapelecken * Kartonschachteln * Kartonschachteln * Alle anzeigen * Buchverpackung Varifix * Faltschachteln * Kartonkuvert * Kartonschachteln mit Grifflöcher * Kartonschachteln mit Automatikboden * Palettenkarton * Variboxen * Versandhüllen * Wellkarton auf Rolle * Zügelkarton * Klebebänder * Klebebänder * Alle anzeigen * Abdeckbänder * Bedruckte Klebebänder * Bodenmarkierungsbänder * Doppelseitige Klebebänder * Gewebebänder * Klebeband Abroller * Packbänder * Strappingbänder * Paletten und Rahmen * Paletten und Rahmen * Alle anzeigen * Kunststoffpaletten * Einwegpaletten * Palettendeckel * Holzrahmen klappbar * Europaletten * Holzrahmen EPAL * INKA Paletten * Karton-Palettenrahmen * Eurotainer * Palettenboxen * Polstermaterial * Polstermaterial * Alle anzeigen * Luftpolstertaschen * Packpapier * Schaumfolien * Staupolster Turboflow * Luftkissensysteme * Luftpolsterfolie * Verpackungschips * Stretchfolie * Stretchfolie * Alle anzeigen * Bündelstretchfolie * Handstretchfolie * Handabrollgeräte * Maschinenstretchfolie * Sanstrap Dehnbänder * Umreifungsbänder * Umreifungsbänder * Alle anzeigen * PET-Umreifungsbänder * PP-Umreifungsbänder * Betriebsbedarf * * * * * * * * * * * * Beutel / Folien * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Kantenschutz * * * * * * * * * * * * * * * * * Kartonschachteln * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Klebebänder * * * * * * * * * * * * * * * * * * * * * Paletten / Rahmen * * * * * * * * * * * Polstermaterial * * * * * * * * * * * * * * * Stretchfolie * * * * * * Umreifungsbänder * * Mehr Mehr Mein Warenkorb 10 of %1 products in cart displayed Keine Artikel im Warenkorb Keine Artikel im Warenkorb x / Stk. Zwischensumme: Kasse oder Warenkorb loader Wird geladen … x Mit Ihrem Konto bestellen E-Mailadresse Passwort Anmelden Passwort vergessen? Dieses Formular ist durch reCAPTCHA geschützt - Es gelten die Google Datenschutzbestimmungen und Nutzungsbedingungen. Als neuer Kunde bestellen Das Erstellen eines Kontos hat viele Vorteile: * Bestell- und Versandstatus ansehen * Bestellverlauf verfolgen * Schneller bestellen Konto erstellen DER SCHWEIZER ONLINE-SHOP FÜR VERPACKUNGSLÖSUNGEN HELDEN DES ALLTAGS BEUTEL FÜR JEDEN BEDARF. Jetzt bestellen SCHWEIZER QUALITÄT IN JEDER SCHACHTEL. MEHR ALS NUR VERPACKUNG. Jetzt bestellen PALETTEN MIT GRÜNEM GEWISSEN RECYCELT, BELASTBAR, ZUKUNFTSORIENTIERT. Jetzt bestellen VERPACKUNG NEU GEDACHT NATÜRLICH, SICHER, BIOLOGISCH ABBAUBAR. Jetzt bestellen DIE PERFEKTE LÖSUNG FÜR IHRE PRODUKTE PERFEKT FÜR LEBENSMITTEL. Jetzt bestellen chevron-left chevron-right GROSSE AUSWAHL an Kantenschutz PALETTEN für jeden Einsatz DER SCHNELLE WEG... * Kartonfinder * Beutelfinder * Palettenfinder * Kantenschutzfinder … ZU IHREM IDEALEN KARTON Innenmasse in mm eingeben (Länge x Breite x Höhe) L in mm B in mm H in mm … ZU IHREM IDEALEN DRUCKVERSCHLUSSBEUTEL Innenmasse in mm eingeben (Breite x Länge) B in mm L in mm … ZU IHRER IDEALEN PALETTE Masse in mm eingeben (Breite x Länge) B in mm L in mm … ZU IHREM KANTENSCHUTZWINKEL Mass in mm eingeben (Länge) L in mm SICHER VERSCHLOSSEN, EINFACH GEÖFFNET Druckverschlussbeutel 250 x 350 mm, 90 mµ, mit Beschriftungsfeld, lebensmittelecht Ab CHF 186.70 Merken Vergleichen Druckverschlussbeutel 50 x 75 mm, 75 mµ, transparent und lebensmittelecht Ab CHF 16.30 /1000 Stk. Merken Vergleichen Druckverschlussbeutel 180 x 250 mm, 50 mµ, mit Beschriftungsfeld, lebensmittelecht Ab CHF 61.50 /1000 Stk. Merken Vergleichen Druckverschlussbeutel 115 x 155 mm, 50 mµ, mit Beschriftungsfeld, lebensmittelecht Ab CHF 27.70 /1000 Stk. Merken Vergleichen Druckverschlussbeutel 80 x 120 mm, 50 mµ, mit Beschriftungsfeld, lebensmittelecht Ab CHF 19.75 /1000 Stk. Merken Vergleichen Druckverschlussbeutel 400 x 600 mm, 90 mµ, transparent und lebensmittelecht Ab CHF 442.50 /1000 Stk. Merken Vergleichen Druckverschlussbeutel 300 x 400 mm, 50 mµ, Biologisch abbaubar, lebensmittelecht Ab CHF 331.90 /1000 Stk. Merken Vergleichen Druckverschlussbeutel 300 x 420 mm, 50 mµ, transparent und lebensmittelecht Ab CHF 123.00 /1000 Stk. Merken Vergleichen Druckverschlussbeutel 150 x 180 mm, 75 mµ, transparent und lebensmittelecht Ab CHF 56.00 /1000 Stk. Merken Vergleichen Druckverschlussbeutel 60 x 80 mm, 50 mµ, Biologisch abbaubar, lebensmittelecht Ab CHF 21.40 /1000 Stk. Merken Vergleichen Druckverschlussbeutel 240 x 310 mm, 50 mµ, transparent und lebensmittelecht Ab CHF 74.25 /1000 Stk. Merken Vergleichen Druckverschlussbeutel 100 x 220 mm, 50 mµ, transparent und lebensmittelecht Ab CHF 31.85 /1000 Stk. Merken Vergleichen Druckverschlussbeutel 180 x 250 mm, 90 mµ, mit Eurolochung, lebensmittelecht Ab CHF 124.90 /1000 Stk. Merken Vergleichen Druckverschlussbeutel 80 x 250 mm, 50 mµ, transparent und lebensmittelecht Ab CHF 30.45 /1000 Stk. Merken Vergleichen Druckverschlussbeutel 90 x 110 mm, 50 mµ, mit Eurolochung, lebensmittelecht Ab CHF 19.90 /1000 Stk. Merken Vergleichen Druckverschlussbeutel 60 x 230 mm, 50 mµ, transparent und lebensmittelecht Ab CHF 25.95 /1000 Stk. Merken Vergleichen Druckverschlussbeutel 70 x 100 mm, 90 mµ, mit Rezyklatanteil, transparent Ab CHF 29.20 /1000 Stk. Merken Vergleichen Druckverschlussbeutel 200 x 300 mm, 50 mµ, mit Rezyklatanteil, transparent Ab CHF 69.30 /1000 Stk. Merken Vergleichen Druckverschlussbeutel 160 x 220 mm, 50 mµ, mit Rundloch, lebensmittelecht Ab CHF 71.35 Merken Vergleichen Druckverschlussbeutel 100 x 150 mm, 50 mµ, mit Beschriftungsfeld, lebensmittelecht Ab CHF 27.30 /1000 Stk. Merken Vergleichen chevron-left chevron-right UNSERE KATEGORIEN Beutel & Folien Kartonschachteln Kantenschutz Klebebänder Paletten & Rahmen Polstermaterial Stretchfolie Umreifungsbänder Betriebsbedarf KLEBEBÄNDER, DIE HALTEN, WAS SIE VERSPRECHEN Sicherheitspackband 5051R 50 mm rot 'geöffnet' Ab CHF 18.25 Merken Vergleichen Packband 4591 50 mm transparent Ab CHF 11.80 Merken Vergleichen Packband 4590 50 mm transparent Ab CHF 8.75 Merken Vergleichen Packband 4590 50 mm transparent Ab CHF 4.40 Merken Vergleichen Packband 150072 50 mm braun Ab CHF 2.35 Merken Vergleichen Packband 4313 50 mm braun Ab CHF 6.40 Merken Vergleichen Packband 4313 50 mm braun Ab CHF 6.00 Merken Vergleichen Packband 4713 50 mm weiss Ab CHF 2.55 Merken Vergleichen Packband 4713 50 mm braun Ab CHF 2.55 Merken Vergleichen Packband 60408 50 mm braun Ab CHF 4.55 Merken Vergleichen Packband 4024 50 mm transparent Ab CHF 3.15 Merken Vergleichen Packband 4024 50 mm braun Ab CHF 3.15 Merken Vergleichen Packband 5044 50 mm transparent Ab CHF 4.00 Merken Vergleichen Packband 5044 50 mm braun Ab CHF 4.00 Merken Vergleichen Packband 5040 50 mm braun Ab CHF 2.50 Merken Vergleichen Packband 5040 50 mm transparent Ab CHF 2.50 Merken Vergleichen Packband tesa 60404 50 mm rot Ab CHF 27.70 Merken Vergleichen Packband tesa 60404 50 mm gelb Ab CHF 27.70 Merken Vergleichen Packband tesa 60404 50 mm blau Ab CHF 27.70 Merken Vergleichen Packband tesa 4124 50 mm transparent Ab CHF 6.60 Merken Vergleichen chevron-left chevron-right FÜR SIE IM EINSATZ Sina Schmid Für allgemeine Fragen Jetzt kontaktieren Dominik Lüchinger Für individualisierte Produkte Jetzt kontaktieren Patrik Schirinzi Für Partner & Wiederverkäufer Jetzt kontaktieren -------------------------------------------------------------------------------- Sie erreichen uns auch unter: Tel: +41 71 722 85 85 Mail: info@swisspackag.ch NEWS CHEVRON-DOWN BRIEGER Kartonagen jetzt bei Swisspack Wir freuen uns, Ihnen mitteilen zu können, dass wir ab sofort ein umfangreiches Sortiment an BRIEGER Kartonagen bei Swisspack... Mehr erfahren Swisspack verabschiedet sich vom Matterhorn Mit dem neuen Logo verabschieden wir uns bewusst vom Matterhorn, um Platz für ein modernes Design zu schaffen... Mehr erfahren Swisspack verlängert Sponsoring-Vertrag mit FC Widnau Swisspack freut sich, die Verlängerung des Sponsoring-Vertrags mit dem FC Widnau bekanntzugeben. Diese Partnerschaft... Mehr erfahren Alle News anzeigen - EINFACH PACKEND GUT. SWISSNESS Wir sind ein traditionsreiches Unternehmen mit tiefen Wurzeln in der Schweiz. Wir identifizieren uns stark mit der Schweizer Mentalität und setzen unser Tagesgeschäft nach Schweizer Standards um. ZUVERLÄSSIG Zuverlässigkeit wird bei uns grossgeschrieben. Wir erwarten dies nicht nur von unseren Partnern und Lieferanten, sondern auch von uns selbst. SCHNELL & AGIL Unsere flache Hierarchie ermöglicht es, Entscheidungen schnell zu treffen. Es gibt keine langen Entscheidungswege, was uns erlaubt, flexibel auf Bedürfnisse und Anforderungen zu reagieren. QUALITÄT Wir setzen alles daran, Ihnen Qualität nach Swisspack-Standard zu liefern. Von der Kundenbetreuung über das Stammdatenmanagement bis hin zu unseren Produkten – wir garantieren höchste Qualitätsansprüche. NACHHALTIGKEIT Nachhaltigkeit geht bei uns über nachhaltige Produkte hinaus. Wir legen nicht nur Wert auf umweltfreundliche Produkte, sondern auch auf nachhaltige Lösungen und Prozesse in allen Bereichen unseres Handelns. KUNDE IM FOKUS Ohne unsere Kunden gäbe es Swisspack nicht. Deshalb stehen unsere Kunden im Zentrum unseres Handelns. Ihre Zufriedenheit ist unser grösster Motivator und ihr Erfolg ist unser Erfolg. Ihre Lieblingsmarken unter einem Dach NEWSLETTER ABONNIEREN & PROFITIEREN Verpassen Sie keine Neuigkeiten mehr und sichern Sie sich exklusive Angebote! E-Mailadresse Abonnieren exclamation-circle ÜBER SWISSPACK * Über uns * Kontakt * Ratgeber * FAQs EINKAUFEN/BESTELLEN * Shop * Versand * Zahlung * Retoure * Pack-Finder SERVICES & B2B * Beratung * Individualisierung * Just in Time * Partneranfrage RECHTLICHES * AGB * Impressum * Cookie-Richtlinien * Datenschutz * Nutzungsbedingungen UNSER ENGAGEMENT FOLGEN SIE UNS SICHER BEZAHLEN MIT VERSANDPARTNER © 2024 Swisspack AG - alle Rechte vorbehalten Details NOTWENDIG Notwendige Cookies ermöglichen die Grundfunktionen der Website. Ohne diese Cookies kann die Website nicht richtig funktionieren. Sie helfen dabei, eine Website nutzbar zu machen, indem sie grundlegende Funktionen ermöglichen. Details MARKETING Marketing-Cookies werden verwendet, um die Aktionen der Besucher auf der Website zu verfolgen und zu erfassen. Cookies speichern Nutzerdaten und Verhaltensinformationen, die es Werbediensten ermöglichen, mehr Zielgruppen anzusprechen. Außerdem kann das Nutzererlebnis anhand der gesammelten Informationen individueller gestaltet werden. Details ANALYTIK Eine Reihe von Cookies zur Erfassung von Informationen und zur Erstellung von Berichten über die Nutzung der Website, ohne dass einzelne Besucher von Google persönlich identifiziert werden. Details Cookie-Name Cookie-Anbieter Cookie-Beschreibung Cookie-Lebensdauer Cookie-Typ Fertig Wir verwenden Cookies, um unsere Dienste zu verbessern, persönliche Angebote zu machen und Ihre Erfahrung zu erweitern. Wenn Sie die unten aufgeführten optionalen Cookies nicht akzeptieren, kann Ihr Erlebnis beeinträchtigt werden. Wenn Sie mehr wissen möchten, lesen Sie bitte die Cookie Richtlinien Akzeptieren Alle erlauben LOGIN AND REGISTRATION FORM * Anmelden * Konto erstellen Herzlich Willkommen in unserem neuen Shop! Aus Sicherheitsgründen mussten wir alle Passwörter zurücksetzen. Um Ihren Account weiterhin wie gewohnt zu nutzen, verwenden Sie bitte die "Passwort vergessen?" Funktion und wir senden Ihnen einen Link zum zurücksetzen Ihres Passworts zu. Vielen Dank. ANMELDEN Wenn Sie ein Konto haben, melden Sie sich mit Ihrer e-Mail-Adresse. E-Mail Passwort Password hidden Password shown eye eye-off Anmelden Passwort vergessen? exclamation-circle Dieses Formular ist durch reCAPTCHA geschützt - Es gelten die Google Datenschutzbestimmungen und Nutzungsbedingungen. Herzlich Willkommen in unserem neuen Shop! Aus Sicherheitsgründen mussten wir alle Passwörter zurücksetzen. Um Ihren Account weiterhin wie gewohnt zu nutzen, verwenden Sie bitte die "Passwort vergessen?" Funktion und wir senden Ihnen einen Link zum zurücksetzen Ihres Passworts zu. Vielen Dank. ANMELDEN Wenn Sie ein Konto haben, melden Sie sich mit Ihrer e-Mail-Adresse. E-Mail Passwort Password hidden Password hidden Password shown eye eye eye-off Anmelden Passwort vergessen? exclamation-circle Dieses Formular ist durch reCAPTCHA geschützt - Es gelten die Google Datenschutzbestimmungen und Nutzungsbedingungen. Persönliche Daten Anrede Herr Frau Vorname Nachname Abonnieren Sie den Newsletter Anmeldeinformationen E-Mail Passwort Password hidden Password shown eye eye-off Passwortstärke: Kein Passwort Passwort bestätigen Confirm password hidden confirm password shown eye eye-off Dieses Formular ist durch reCAPTCHA geschützt - Es gelten die Google Datenschutzbestimmungen und Nutzungsbedingungen. Konto erstellen Zurück Persönliche Daten Anrede Herr Frau Vorname Nachname Abonnieren Sie den Newsletter Anmeldeinformationen E-Mail Passwort Password hidden Password hidden Password shown eye eye eye-off Passwortstärke: Kein Passwort Passwort bestätigen Confirm password hidden Confirm password hidden confirm password shown eye eye eye-off Dieses Formular ist durch reCAPTCHA geschützt - Es gelten die Google Datenschutzbestimmungen und Nutzungsbedingungen. Konto erstellen Zurück * Passwort vergessen? Bitte geben Sie Ihre e-Mail-Adresse ein um einen Kennwort zurücksetzen-Link zu erhalten. E-Mail Dieses Formular ist durch reCAPTCHA geschützt - Es gelten die Google Datenschutzbestimmungen und Nutzungsbedingungen. Mein Passwort zurücksetzen Zurück Bitte geben Sie Ihre e-Mail-Adresse ein um einen Kennwort zurücksetzen-Link zu erhalten. E-Mail Dieses Formular ist durch reCAPTCHA geschützt - Es gelten die Google Datenschutzbestimmungen und Nutzungsbedingungen. Mein Passwort zurücksetzen Zurück x