Wodoodporna nylonowa torba na ramię o dużej pojemności z wieloma kieszeniami
${function() {
const variantData = data.variant || {"id":"3bce0ef5-64b2-4f0c-a244-aa7671058cd3","product_id":"94a8959a-df70-45c6-b261-dcec91083e46","title":"Niebieski","weight_unit":"kg","inventory_quantity":1000,"sku":"kw67-Blue","barcode":"","position":1,"option1":"Niebieski","option2":"","option3":"","note":"","image":{"src":"\/\/img.staticdj.com\/47b9947a1ac1d68f286a777898592147.jpeg","path":"47b9947a1ac1d68f286a777898592147.jpeg","width":800,"height":800,"alt":"","aspect_ratio":1},"wholesale_price":[{"price":115,"min_quantity":1}],"weight":"0","compare_at_price":"0","price":"115","retail_price":"0","available":true,"url":"\/products\/wodoodporna-nylonowa-torba-na-ramie-o-duzej-pojemnosci-z-wieloma-kieszeniami?variant=3bce0ef5-64b2-4f0c-a244-aa7671058cd3","available_quantity":999999999,"options":[{"name":"Kolor","value":"Niebieski"}],"off_ratio":0,"flashsale_info":[],"sales":13};
const saveType = "amount";
const productLabelDiscountOn = true;
return `
-
${saveType == 'percentage'
? `-${variantData.off_ratio}%`
: `-`
}
`;
}()}
${function(){
const tipText = "Wybierz {{ name }}".replace(/\{\{\s+name\s+\}\}/g, data);
return `${tipText}
`
}()}
Produkt był niedostępny.
Produkt niedostępny.
${function(){
const variantData = data.variant || {"id":"3bce0ef5-64b2-4f0c-a244-aa7671058cd3","product_id":"94a8959a-df70-45c6-b261-dcec91083e46","title":"Niebieski","weight_unit":"kg","inventory_quantity":1000,"sku":"kw67-Blue","barcode":"","position":1,"option1":"Niebieski","option2":"","option3":"","note":"","image":{"src":"\/\/img.staticdj.com\/47b9947a1ac1d68f286a777898592147.jpeg","path":"47b9947a1ac1d68f286a777898592147.jpeg","width":800,"height":800,"alt":"","aspect_ratio":1},"wholesale_price":[{"price":115,"min_quantity":1}],"weight":"0","compare_at_price":"0","price":"115","retail_price":"0","available":true,"url":"\/products\/wodoodporna-nylonowa-torba-na-ramie-o-duzej-pojemnosci-z-wieloma-kieszeniami?variant=3bce0ef5-64b2-4f0c-a244-aa7671058cd3","available_quantity":999999999,"options":[{"name":"Kolor","value":"Niebieski"}],"off_ratio":0,"flashsale_info":[],"sales":13};
return `
`
}()}
Płatność gotówką przy odbiorze
Masz prawo zwrócić produkt w ciągu 14 dni
Zapłać online i zyskaj 10% rabatu
CECHY
-
Materiał: Wykonany z wodoodpornego nylonu klasy premium, z wytrzymałymi metalowymi elementami; solidnie wykonana ze szczegółowymi, opływowymi szwami i całkowicie podszyta tkaniną poliestrową.
-
Wiele kieszeni ułatwiających organizację: komora główna zapinana na zamek na całej długości; Wewnętrzna przegroda z organizerem zawierająca wyściełaną przegrodę na laptopa pomieści laptopy o przekątnej do 14 cali i dwie wewnętrzne kieszenie; Cztery przednie kieszenie zapinane na zamek i jedna wsuwana przegroda z tyłu zapewniają dodatkowe miejsce do przechowywania.
-
Wszechstronność: regulowany, odpinany pasek na ramię i podwójne uchwyty do noszenia umożliwiają różne opcje noszenia. Idealny do torby na laptopa, torby klinicznej, torby roboczej, teczki, torby podróżnej lub tornistra szkolnego.
SPECYFIKACJE
-
Kolor: czarny, jasnozielony, ciemnozielony, brązowy, niebieski, jasnofioletowy
-
-
Materiał: nylon
-
Rozmiar: 37*27*13 cm/14,57*10,63*5,12 cala
PAKIET
- 1 * nylonowa wodoodporna torebka
Kliknij „DODAJ DO KOSZYKA”, aby otrzymać swój już teraz!
Here are what our customers say.
Najnowsza
Najbardziej lubiany
Najwyższe oceny
Najniższe oceny
Najbardziej lubiany
Najwyższe oceny
Najniższe oceny
×
${function(){
const limit = typeof data === 'number' ? data : 0;
return `
Zdjęcia/wideo (${limit || 0}/5)
` }()}
${(function(){
const closeIcon =
'
';
if (item.type === 'image') {
return `
${closeIcon}
`
}
return `
${closeIcon}
`
})()}
class SpzCustomFileUpload extends SPZ.BaseElement {
constructor(element) {
super(element);
this.uploadCount_ = 0;
this.fileList_ = [];
}
buildCallback() {
this.action = SPZServices.actionServiceForDoc(this.element);
this.registerAction('upload', (data) => {
this.handleFileUpload_(data.event?.detail?.data || []);
});
this.registerAction('delete', (data) => {
this.handleFileDelete_(data?.args?.data);
});
this.registerAction('preview', (data) => {
this.handleFilePreview_(data?.args?.data);
});
this.registerAction('limit', (data) => {
this.handleFileLimit_();
});
this.registerAction('sizeLimit', (data) => {
this.handleFileSizeLimit_();
});
}
isLayoutSupported(layout) {
return layout == SPZCore.Layout.LOGIC;
}
setData_(count, file) {
this.uploadCount_ = count;
this.fileList_ = file;
}
handleFileUpload_(data) {
data.forEach(i => {
if(this.fileList_.some(j => j.url === i.url)) return;
this.fileList_.push(i);
})
this.uploadCount_++;
sessionStorage.setItem('fileList', JSON.stringify(this.fileList_));
this.triggerEvent_("handleFileUpload", { count: this.uploadCount_, files: this.fileList_});
if(this.fileList_.length >= 5){
document.querySelector('#review_upload').style.display = 'none';
}
if(this.fileList_.length > 0){
document.querySelector('.apps-reviews-write-anonymous-box').style.marginTop = '8px';
}
}
handleFileDelete_(index) {
this.fileList_.splice(index, 1);
this.uploadCount_--;
sessionStorage.setItem('fileList', JSON.stringify(this.fileList_));
this.triggerEvent_("handleFileDelete", { count: this.uploadCount_, files: this.fileList_});
document.querySelector('#review_upload').style.display = 'block';
if(this.fileList_?.length === 0){
document.querySelector('.apps-reviews-write-anonymous-box').style.marginTop = '132px';
}
}
handleFilePreview_(index) {
const finalPreviewData = this.fileList_[index];
const filePreviewModal = document.getElementById('filePreviewModal');
const fullScreenVideo = document.getElementById('fullScreenVideo');
const fullScreenImage = document.getElementById('fullScreenImage');
const previewModalClose = document.getElementById('previewModalClose');
const previewLoading = document.getElementById('previewLoading');
filePreviewModal.style.display = 'block';
previewLoading.style.display = 'flex';
if(finalPreviewData?.type === 'video'){
const media = this.mediaParse_(this.fileList_[index]?.url);
fullScreenVideo.addEventListener('canplaythrough', function() {
previewLoading.style.display = 'none';
});
fullScreenImage.src = '';
fullScreenImage.style.display = 'none';
fullScreenVideo.style.display = 'block';
fullScreenVideo.src = media.mp4 || '';
} else {
fullScreenImage.onload = function() {
previewLoading.style.display = 'none';
};
fullScreenVideo.src = '';
fullScreenVideo.style.display = 'none';
fullScreenImage.style.display = 'block';
fullScreenImage.src = finalPreviewData.url;
}
previewModalClose.addEventListener('click', function() {
filePreviewModal.style.display = 'none';
});
}
handleFileLimit_() {
alert(window.AppReviewsLocale.comment_file_limit || 'please do not upload files more than 5');
this.triggerEvent_("handleFileLimit");
}
handleFileSizeLimit_() {
alert(window.AppReviewsLocale.comment_file_size_limit || 'File size does not exceed 10M');
}
clear(){
this.fileList_ = [];
this.uploadCount_ = 0;
sessionStorage.setItem('fileList', JSON.stringify(this.fileList_));
this.triggerEvent_("handleClear", { count: this.uploadCount_, files: this.fileList_});
document.querySelector('#review_upload').style.display = 'block';
}
mediaParse_(url) {
var result = {};
try {
url.replace(/[?&]+([^=&]+)=([^&]*)/gi, function (str, key, value) {
try {
result[key] = decodeURIComponent(value);
} catch (e) {
result[key] = value;
}
});
result.preview_image = url.split('?')[0];
} catch (e) {};
return result;
}
triggerEvent_(name, data) {
const event = SPZUtils.Event.create(this.win, name, data);
this.action.trigger(this.element, name, event);
}
}
SPZ.defineElement('spz-custom-file-upload', SpzCustomFileUpload);
The review would not show in product details on storefront since it does not support to.