Pasek na rzep w kształcie litery T
${function() {
const variantData = data.variant || {"id":"8a0334b5-7a86-4036-abf9-56d06bccfb90","product_id":"43ebb5a1-3e68-4940-b277-f884cda0abf7","title":"10 szt-15cm-Czarny","weight_unit":"kg","inventory_quantity":100,"sku":"by64-10-15m-Bla","barcode":"","position":1,"option1":"10 szt","option2":"15cm","option3":"Czarny","note":"","image":{"src":"\/\/img.staticdj.com\/95d2cef11f2c711124f43a264179159b.jpeg","path":"95d2cef11f2c711124f43a264179159b.jpeg","width":600,"height":600,"alt":"","aspect_ratio":1},"wholesale_price":[{"price":95,"min_quantity":1}],"weight":"0","compare_at_price":"189","price":"95","retail_price":"189","available":true,"url":"\/products\/t-type?variant=8a0334b5-7a86-4036-abf9-56d06bccfb90","available_quantity":999999999,"options":[{"name":"ILO\u015a\u0106","value":"10 szt"},{"name":"Rozmiar","value":"15cm"},{"name":"Kolor","value":"Czarny"}],"off_ratio":50,"flashsale_info":[],"sales":0};
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}
`
}()}
${function(){
const tipText = "Wybierz {{ name }}".replace(/\{\{\s+name\s+\}\}/g, data);
return `${tipText}
`
}()}
${function(){
const tipText = "Wybierz {{ name }}".replace(/\{\{\s+name\s+\}\}/g, data);
return `${tipText}
`
}()}
Produkt był niedostępny.
Produkt niedostępny.
DHL Płatność gotówką przy odbiorze
Masz prawo zwrócić produkt w ciągu 14 dni
Zapłać online i zyskaj 10% rabatu
funkcja
- Wielokrotnego użytku - zdejmij zamki błyskawiczne i załóż je tyle razy, ile chcesz, a przekonasz się, że Twoje przewody nadal będą idealnie uporządkowane!
- Wygoda – nasze opaski kablowe są bardzo łatwe w użyciu ze względu na prostą konstrukcję: haczyki i materiał rozkładają się całkowicie po bokach, dzięki czemu w najprostszy sposób można owinąć dowolny przewód dowolnego rozmiaru. Można je nawet „powiązać” tworząc bardzo długie zamki błyskawiczne.
- WYTRZYMAŁY - Zaprojektowany z mocnym uchwytem o wadze 50 funtów, aby zabezpieczyć linę dowolnego rozmiaru lub inny przedmiot, jaki możesz wymyślić.
- WIELE ZASTOSOWAŃ - Kable do ładowania, systemy multimedialne, kable komputerowe, kable zasilające, kable A/V, kable studyjne, kable gitarowe, słuchawki i wszelkie inne kable/przewody/przewody będą teraz uporządkowane!
Specyfikacja
- Materiał : nylon
- Wymiary: 15 cm/5,9 cala; 20 cm/7,9 cala
- Kolor: czerwony, zielony, niebieski, żółty, czarny (dostawa losowa)
- Opakowanie: 10/50 sztuk Samoprzylepne paski na rzepy w kształcie litery T
notatki
Proszę pozwolić na niewielkie odchylenie pomiaru spowodowane pomiarem ręcznym.
Ze względu na różnice w monitorach i efektach świetlnych rzeczywisty kolor przedmiotu może nieznacznie różnić się od koloru pokazanego na zdjęciu.
Oto, co mówią nasi klienci.
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.