');
$("head").append(
' '
);
$("head").append(
' '
);
};
this.loadStyleBoxes = () => {
$("head").append(' ');
};
this.npShortcode = () => {
var pattern = /\[npProducts[^\]]*\]/g; // Wyrażenie regularne do wyszukiwania shortcode'ów "npProducts" z zmiennymi
var html = document.documentElement.outerHTML;
var wyniki = [];
var dopasowanie;
while ((dopasowanie = pattern.exec(html)) !== null) {
var shortcode = dopasowanie[0];
var zmienne = {};
// Dodatkowe przetwarzanie, aby wyodrębnić zmienne z shortcode'a
var zmiennaPattern = /(\w+)="([^"]*)"/g;
var zmiennaDopasowanie;
while ((zmiennaDopasowanie = zmiennaPattern.exec(shortcode)) !== null) {
zmienne[zmiennaDopasowanie[1]] = zmiennaDopasowanie[2];
}
wyniki.push(zmienne);
}
return wyniki;
};
this.getProductsFromApi = () => {
this.boxes.forEach((item, index) => {
if (item?.ids !== undefined) {
item.ids = item.ids.split(",").map((item) => {
return parseInt(item, 10);
});
} else {
console.log("Nie zostało podane zadne ID do pobrania");
return false;
}
if (item?.elements !== undefined) {
item.elements = item.elements.split(",");
} else {
console.log(
"Nie zostało podane elementy do wyświetlenia w boxie #" +
item.wrapper +
". Zostanie uzyty domyslny wyglad."
);
}
if (item.content == "products") {
frontAPI.getProducts(
(response) => {
item.products = response.list;
t.renderProducts(item);
},
{
urlParams: "?limit=" + this.productsLimit,
ids: item.ids,
}
);
} else if (item.content == "categories") {
frontAPI.getProductsFromCategory(
(response) => {
item.products = response.list;
t.renderProducts(item);
},
{
urlParams: "?limit=" + this.productsLimit,
id: item.ids,
}
);
} else if (item.content == "collection") {
frontAPI.getProductsFromCollection(
(response) => {
item.products = response.list;
t.renderProducts(item);
},
{
urlParams: "?limit=" + this.productsLimit,
id: item.ids,
}
);
} else if (item.content == "loyalty_products") {
frontAPI.getLoyaltyProducts(
(response) => {
item.products = response.list;
t.renderProducts(item);
},
{
urlParams: "?limit=" + this.productsLimit,
}
);
} else if (item.content == "user_loyalty_products") {
frontAPI.getLoyaltyProductsAvailableForUser(
(response) => {
item.products = response.list;
t.renderProducts(item);
},
{
urlParams: "?limit=" + this.productsLimit,
ids: item.ids,
}
);
} else {
frontAPI.getProducts(
(response) => {
item.products = response.list;
t.renderProducts(item);
},
{
urlParams: "?limit=" + this.productsLimit,
ids: item.ids,
}
);
}
});
};
this.generateGridProductMarkup = (product, settings) => {
let productImage = true,
productName = true,
productPreview = true,
productProducer = false,
productDescription = false,
priceString = "",
price = true,
priceNetto = false,
promoTag = "",
newTag = "";
if (
settings?.elements !== undefined &&
settings.elements.indexOf("image") > -1
) {
productImage = true;
} else if (
settings?.elements !== undefined &&
settings.elements.indexOf("image") === -1
) {
productImage = false;
}
if (
settings?.elements !== undefined &&
settings.elements.indexOf("name") > -1
) {
productName = true;
} else if (
settings?.elements !== undefined &&
settings.elements.indexOf("name") === -1
) {
productName = false;
}
if (
settings?.elements !== undefined &&
settings.elements.indexOf("preview") > -1
) {
productPreview = true;
} else if (
settings?.elements !== undefined &&
settings.elements.indexOf("preview") === -1
) {
productPreview = false;
}
if (
settings?.elements !== undefined &&
settings.elements.indexOf("producer") > -1
) {
productProducer = true;
} else if (
settings?.elements !== undefined &&
settings.elements.indexOf("producer") === -1
) {
productProducer = false;
}
if (
settings?.elements !== undefined &&
settings.elements.indexOf("description") > -1
) {
productDescription = true;
} else if (
settings?.elements !== undefined &&
settings.elements.indexOf("description") === -1
) {
productDescription = false;
}
if (settings?.pricestring !== undefined) {
priceString = settings.pricestring;
} else if (settings?.elements === undefined) {
priceString = "";
}
if (
settings?.elements !== undefined &&
settings.elements.indexOf("netto") > -1
) {
priceNetto = true;
} else if (
settings?.elements !== undefined &&
settings.elements.indexOf("netto") === -1
) {
priceNetto = false;
}
if (
settings?.elements !== undefined &&
settings.elements.indexOf("price") > -1
) {
price = true;
} else if (
settings?.elements !== undefined &&
settings.elements.indexOf("price") === -1
) {
price = false;
}
if (product.newProduct) {
newTag = '
nowość ';
}
if (product.price.gross.promo_float) {
let discount =
((product.price.gross.base_float - product.price.gross.promo_float) /
product.price.gross.base_float) *
100;
discount = discount.toFixed(0);
promoTag = 'rabat -' + discount + "% ";
}
let productMarkup = $(`
${
productImage
? `
`
: ``
}
${
productName
? `
$
`
: ``
}
${
productProducer && product.producer
? `
`
: ``
}
${
productDescription && product.shortDescription
? `
`
: ``
}
${
price
? `
Cena$:
$
${
product.price?.gross.promo_float
? `
Cena regularna$:
$
Najniższa cena$:
$
`
: ``
}
${
priceNetto
? `
Cena netto$:
$
`
: ``
}
`
: ``
}
${
product?.can_buy
? `
`
: `
`
}
${newTag || promoTag ? `
` : ``}
`);
return productMarkup;
};
this.generateSliderProductMarkup = (product, settings) => {
let productImage = true,
productName = true,
productPreview = true,
productProducer = false,
priceNetto = false,
productDescription = false,
priceString = "",
price = true,
promoTag = "",
newTag = "";
if (
settings?.elements !== undefined &&
settings.elements.indexOf("image") > -1
) {
productImage = true;
} else if (
settings?.elements !== undefined &&
settings.elements.indexOf("image") === -1
) {
productImage = false;
}
if (
settings?.elements !== undefined &&
settings.elements.indexOf("name") > -1
) {
productName = true;
} else if (
settings?.elements !== undefined &&
settings.elements.indexOf("name") === -1
) {
productName = false;
}
if (
settings?.elements !== undefined &&
settings.elements.indexOf("preview") > -1
) {
productPreview = true;
} else if (
settings?.elements !== undefined &&
settings.elements.indexOf("preview") === -1
) {
productPreview = false;
}
if (
settings?.elements !== undefined &&
settings.elements.indexOf("producer") > -1
) {
productProducer = true;
} else if (
settings?.elements !== undefined &&
settings.elements.indexOf("producer") === -1
) {
productProducer = false;
}
if (
settings?.elements !== undefined &&
settings.elements.indexOf("netto") > -1
) {
priceNetto = true;
} else if (
settings?.elements !== undefined &&
settings.elements.indexOf("netto") === -1
) {
priceNetto = false;
}
if (
settings?.elements !== undefined &&
settings.elements.indexOf("price") > -1
) {
price = true;
} else if (
settings?.elements !== undefined &&
settings.elements.indexOf("price") === -1
) {
price = false;
}
if (product.newProduct) {
newTag = 'nowość ';
}
if (
settings?.elements !== undefined &&
settings.elements.indexOf("description") > -1
) {
productDescription = true;
} else if (
settings?.elements !== undefined &&
settings.elements.indexOf("description") === -1
) {
productDescription = false;
}
if (settings?.pricestring !== undefined) {
priceString = settings.pricestring;
} else if (settings?.pricestring === undefined) {
priceString = "";
}
if (product.price.gross.promo_float) {
let discount =
((product.price.gross.base_float - product.price.gross.promo_float) /
product.price.gross.base_float) *
100;
discount = discount.toFixed(0);
promoTag = 'rabat -' + discount + "% ";
}
let productMarkup = $(`
${
productImage
? `
`
: ``
}
${
productName
? `
$
`
: ``
}
${
productProducer && product.producer
? `
`
: ``
}
${
productDescription && product.shortDescription
? `
`
: ``
}
${
price
? `
$${
product.price.gross.final
}
${
product.price?.gross.promo_float
? `
Cena regularna$:
$
Najniższa cena$:
$
`
: ``
}
${
priceNetto
? `
$$
Cena regularna$:
$
Najniższa cena$:
$
`
: ``
}
`
: ``
}
${
product.can_buy
? `
`
: `
`
}
${
productPreview
? `
zobacz więcej
`
: ``
}
${
newTag || promoTag ? `
` : ``
}
`);
return productMarkup;
};
this.renderProducts = (item) => {
let wrapperItem = $("#" + item.wrapper);
wrapperItem.empty().addClass("loading").removeClass("resetcss");
if (!wrapperItem.hasClass("box")) {
wrapperItem.addClass("box");
}
if (!wrapperItem.hasClass("box_custom")) {
wrapperItem.addClass("box_custom");
}
if (item?.name !== undefined) {
const newHeader = $(`
$
`);
wrapperItem.append(newHeader);
}
if (item?.view == "grid") {
let newGridInnerbox = $(`
`);
wrapperItem.addClass("np-products").addClass("np-grid-products");
item.products.forEach((product, index) => {
newGridInnerbox.append(t.generateSliderProductMarkup(product, item));
});
wrapperItem.append(newGridInnerbox);
} else if (item?.view == "slider") {
let newSliderInnerbox = $(`
`);
let newSliderWrapper = $(`
`);
wrapperItem.addClass("np-products");
item.products.forEach((product, index) => {
newSliderWrapper.append(t.generateSliderProductMarkup(product, item));
});
newSliderInnerbox.append(newSliderWrapper);
wrapperItem.append(newSliderInnerbox);
} else {
let newGridInnerbox = $(`
`);
wrapperItem.addClass("np-products").addClass("np-grid-products");
item.products.forEach((product, index) => {
newGridInnerbox.append(t.generateSliderProductMarkup(product, item));
});
wrapperItem.append(newGridInnerbox);
}
wrapperItem.removeClass("loading");
if (item?.view == "slider") {
let responsiveSlider = {};
if ($("#" + item.wrapper).closest(".s-grid-12").length > 0) {
responsiveSlider = {
480: {
items: 2,
},
768: {
items: 3,
},
989: {
items: 4,
},
};
} else if ($("#" + item.wrapper).closest(".s-grid-9").length > 0) {
responsiveSlider = {
480: {
items: 2,
},
768: {
items: 2,
},
989: {
items: 3,
},
};
} else if ($("#" + item.wrapper).closest(".s-grid-6").length > 0) {
responsiveSlider = {
480: {
items: 2,
},
768: {
items: 2,
},
989: {
items: 2,
},
};
} else if ($("#" + item.wrapper).closest(".s-grid-3").length > 0) {
esponsiveSlider = {
480: {
items: 1,
},
768: {
items: 1,
},
989: {
items: 1,
},
};
} else {
responsiveSlider = {
480: {
items: 2,
},
768: {
items: 3,
},
989: {
items: 4,
},
};
}
if (typeof $().owlCarousel !== 'function') {
window._$npProductBoxTimeout = window._$npProductBoxTimeout ? window._$npProductBoxTimeout+1 : 1
if (window._$npProductBoxTimeout > 5) {
return;
}
setTimeout(()=>{
this.renderProducts(item)
},300)
return;
}
window._$npProductBoxTimeout = 0;
$("#" + item.wrapper + " .owl-carousel").owlCarousel({
loop: true,
items: 1,
dots: false,
nav: true,
margin: 5,
responsive: responsiveSlider,
});
}
Shop.AddToCart.include({
options: {
selectors: {
form:
"#" +
item.wrapper +
" .basket form[action], #" +
item.wrapper +
" form.basket[action]",
},
},
});
var addtobasket = new Shop.AddToCart();
var availability = new Shop.ProductAvailability();
if (item.elements == undefined || item.elements?.indexOf("preview") > -1) {
Shop.QuickView.include({
options: {
selectors: {
button: "#" + item.wrapper + " .quickview",
},
},
});
var quickview = new Shop.QuickView();
}
};
this.npFindShortcodes();
}
document.addEventListener("DOMContentLoaded", function () {
const npProductsBox = new npProductBox();
});
This site uses cookies to deliver services in accordance with the Cookie Files Policy. You can set the conditions for storage and access to cookies in your browser settings.
Shop is in view mode
View full version of the site
We care about your privacy
Cookies and related technologies allow the website to function properly and help us adjust the offer to your needs. You can choose to accept our use of all these files and go to the store, or adapt the use of files to your preferences by selecting "Customize Consents".
You can read more about cookies in our Privacy Policy.
Allow only necessary
Customize consents
Allow all
Cookies settings
Here you can define your preferences regarding the use of cookies.
Necessary for the website to function
These files are necessary for our website to function so they can't be switched off.
Functional
These files allow you to use other functions of the website (other than those necessary for its functioning). Enabling these files will give you access to the full functionality of the website.
Analytical
These files allow us to analyze our online store, which may contribute to its better functioning and adaptation to the needs of our Users.
Analytical software provider
The data used by the store software provider - Shoper S.A. - is used for analyses related to software development and to measure the effectiveness of advertising campaigns. This data is not linked with other information provided during registration and order placement. For more information, refer to Shoper cookies policy .
Marketing
With these files, we can conduct marketing activities.
Cancel
Save preferences