Veuillez patienter...
Planche à découper moyenne-PLATI +
Ref : GP-228670
Planche à découper moyenne-PLATI +
À partir de
1,00 € HT
1,20 € TTC
Planche à découper moyenne en acier inoxydable.Planche à découper moyenne en acier inoxydable. Voir la description détaillée
Le produit suivant a bien été ajouté
Qté :
Avec personnalisation
Sans personnalisation
Prix unitaire
Total
open = false, 5000)"
x-show="$store.variants.showAll || index < ($store.breakpoints.isMobile() || $store.breakpoints.isTablet() ? 5 : 7)"
x-init="if (index === 0) { $nextTick(() => { if (!$store.variants.hasSelectedVariants()) { $store.variants.selectVariant(item, true); } }) }"
>
Quantités
{
const card = $event.currentTarget;
const input = card?.querySelector('input[data-qty-input-id], input[type="number"], input[type="text"]');
if (input) { input.focus({ preventScroll: true }); if (input.select) { input.select(); } }
});
return;
}
const wasCollapsed = !$store.variants.isCardCollapsed(index);
$store.variants.toggleCard(index, false);
if (wasCollapsed) {
$nextTick(() => {
const card = $event.currentTarget;
const input = card?.querySelector('input[data-qty-input-id], input[type="number"], input[type="text"]');
if (input) { input.focus({ preventScroll: true }); if (input.select) { input.select(); } }
});
}
">
{ $store.variants.suppressTierDisplay[k] = (k === tierKey) ? false : true; }); }
if (window && window.VARIANTS_QTY_DEBUG) { console.log('[variants] qty focus', { tierKey, rowKey, variantItemId: variant.itemId, productId: (product ? product.product_id : null), itemId: (product ? product.item_id : null), before: $store.variants.suppressTierDisplay ? $store.variants.suppressTierDisplay[tierKey] : undefined }); }
if (tierKey) { $store.variants.suppressTierDisplay[tierKey] = false; }
if (window && window.VARIANTS_QTY_DEBUG) { console.log('[variants] qty focus after', { tierKey, after: $store.variants.suppressTierDisplay ? $store.variants.suppressTierDisplay[tierKey] : undefined }); }
isFocused = true;
"
@click="
$store.variants.suppressTierDisplay ??= {};
if (tierKey) { Object.keys($store.variants.suppressTierDisplay).forEach(k => { $store.variants.suppressTierDisplay[k] = (k === tierKey) ? false : true; }); }
if (window && window.VARIANTS_QTY_DEBUG) { console.log('[variants] qty click', { tierKey, rowKey, variantItemId: variant.itemId, productId: (product ? product.product_id : null), itemId: (product ? product.item_id : null), before: $store.variants.suppressTierDisplay ? $store.variants.suppressTierDisplay[tierKey] : undefined }); }
if (tierKey) { $store.variants.suppressTierDisplay[tierKey] = false; }
if (window && window.VARIANTS_QTY_DEBUG) { console.log('[variants] qty click after', { tierKey, after: $store.variants.suppressTierDisplay ? $store.variants.suppressTierDisplay[tierKey] : undefined }); }
isFocused = true;
"
@beforeinput="if ($event.data && /\\D/.test($event.data)) { $event.preventDefault(); }"
@keydown="
if ($event.ctrlKey || $event.metaKey || $event.altKey) { return; }
if ($event.key === 'Enter') {
$event.preventDefault();
validateCurrentQty();
return;
}
const allowed = ['Backspace','Delete','ArrowLeft','ArrowRight','ArrowUp','ArrowDown','Home','End','Tab'];
if (allowed.includes($event.key)) { return; }
if (!/^[0-9]$/.test($event.key)) { $event.preventDefault(); }
"
@blur="
setTimeout(() => {
const isSmallViewport = !!(window.matchMedia && window.matchMedia('(max-width: 768px)').matches);
const tiersOpen = !($store.variants.suppressTierDisplay && $store.variants.suppressTierDisplay[tierKey]);
const storeTierPointerDown = !!($store.variants.suppressQtyBlurValidation && $store.variants.suppressQtyBlurValidation[tierKey]);
if (isSmallViewport && isFocused && tiersOpen && !isTierPointerDown && !storeTierPointerDown) { validateCurrentQty(); }
isTierPointerDown = false;
if ($store.variants.suppressQtyBlurValidation && tierKey) {
setTimeout(() => { $store.variants.suppressQtyBlurValidation[tierKey] = false; }, 250);
}
}, 0);
"
@input="
if (!product) return;
const cleaned = String($event.target.value || '').replace(/\\D+/g, '');
if (cleaned !== $event.target.value) { $event.target.value = cleaned; }
$store.variants.suppressTierDisplay ??= {};
if (tierKey) { $store.variants.suppressTierDisplay[tierKey] = false; }
$store.variants.customQuantities[product.product_id] = cleaned;
isLoading = true;
$store.variants.suppressQtyError = true;
if (cleaned === '') {
$store.variants.customQtyError = '';
$store.variants.customQtyErrorProductId = null;
$store.variants.deleteSelectedRowQuantity(product);
if (tierKey) { $store.variants.suppressTierDisplay[tierKey] = true; }
isLoading = false;
return;
} else {
$store.variants.validateAllQties(cleaned, product.product_id);
let errorMessage = $store.variants.customQtyError;
if (!errorMessage) { errorMessage = $store.variants.validateSizeQty(cleaned, product); }
if (errorMessage) {
$store.variants.customQtyErrorProductId = String(product.product_id);
$store.variants.suppressQtyError = false;
window.dispatchEvent(new CustomEvent('display-error', { detail: errorMessage }));
}
}
"
@input.debounce.400ms="
if (!product) return;
const qty = $store.variants.customQuantities[product.product_id];
if (qty === '' || qty === null || typeof qty === 'undefined') { $store.variants.customQtyErrorProductId = null; isLoading = false; return; }
const sizeError = $store.variants.validateSizeQty(qty, product);
if (sizeError) {
$store.variants.customQtyErrorProductId = String(product.product_id);
$store.variants.suppressQtyError = false;
window.dispatchEvent(new CustomEvent('display-error', { detail: $store.variants.customQtyError }));
isLoading = false;
return;
}
$store.variants.addRowCustomQuantity(product, qty, rowKey, false);
isLoading = false;
"
>
Actuellement en rupture de stock
{
if (String(k).startsWith(prefix)) { $store.variants.suppressTierDisplay[k] = true; }
});
$store.variants.suppressTierDisplay[pid] = false;
isFocused = true;
"
@click.stop="
$store.variants.suppressTierDisplay ??= {};
const prefix = String(variant.itemId || '') + '_';
Object.keys($store.variants.suppressTierDisplay || {}).forEach(k => {
if (String(k).startsWith(prefix)) { $store.variants.suppressTierDisplay[k] = true; }
});
$store.variants.suppressTierDisplay[pid] = false;
isFocused = true;
"
:class="{
'is-error': isInvalid(product),
'is-valid': isAccepted(product)
}"
@beforeinput="
if ($event.data && /\\D/.test($event.data)) { $event.preventDefault(); }
"
@keydown="
if ($event.ctrlKey || $event.metaKey || $event.altKey) { return; }
if ($event.key === 'Enter') {
$event.preventDefault();
validateCurrentQty(product);
return;
}
const allowed = ['Backspace','Delete','ArrowLeft','ArrowRight','ArrowUp','ArrowDown','Home','End','Tab'];
if (allowed.includes($event.key)) { return; }
if (!/^[0-9]$/.test($event.key)) { $event.preventDefault(); }
"
@blur="
setTimeout(() => {
const tiersOpen = !($store.variants.suppressTierDisplay && $store.variants.suppressTierDisplay[pid] === true);
const storeTierPointerDown = !!($store.variants.suppressQtyBlurValidation && $store.variants.suppressQtyBlurValidation[pid]);
if (isFocused && tiersOpen && !isTierPointerDown && !storeTierPointerDown) { validateCurrentQty(product); }
isTierPointerDown = false;
if ($store.variants.suppressQtyBlurValidation) {
setTimeout(() => { $store.variants.suppressQtyBlurValidation[pid] = false; }, 250);
}
}, 0);
"
@paste.prevent="
const text = ($event.clipboardData || window.clipboardData).getData('text') || '';
const cleaned = text.replace(/\\D+/g, '');
$event.target.value = cleaned;
$store.variants.customQuantities[product.product_id] = cleaned;
isLoading = true;
$store.variants.suppressQtyError = true;
if (cleaned === '') {
$store.variants.customQtyError = '';
$store.variants.customQtyErrorProductId = null;
$store.variants.deleteSelectedRowQuantity(product);
$store.variants.suppressTierDisplay ??= {};
$store.variants.suppressTierDisplay[pid] = true;
isLoading = false;
return;
} else {
$store.variants.validateAllQties(cleaned, product.product_id);
let errorMessage = $store.variants.customQtyError;
if (!errorMessage) {
errorMessage = $store.variants.validateSizeQty(cleaned, product);
}
if (errorMessage) {
$store.variants.customQtyErrorProductId = String(product.product_id);
$store.variants.suppressQtyError = false;
window.dispatchEvent(new CustomEvent('display-error', { detail: errorMessage }));
}
}
"
@input="
const cleaned = String($event.target.value || '').replace(/\\D+/g, '');
if (cleaned !== $event.target.value) {
$event.target.value = cleaned;
}
$store.variants.suppressTierDisplay ??= {};
$store.variants.suppressTierDisplay[pid] = false;
$nextTick(() => {
const container = $event.target.closest('.fake-select--list');
if (container) {
const rect = (container && container.getBoundingClientRect) ? container.getBoundingClientRect() : null;
if (rect) {
const card = container.closest('[data-variant-card-id]');
const cardRect = (card && card.getBoundingClientRect) ? card.getBoundingClientRect() : null;
const anchorRect = cardRect || rect;
const margin = Math.round(Math.min(120, Math.max(16, window.innerHeight * 0.08)));
const y = Math.max(0, window.scrollY + anchorRect.top - margin);
window.scrollTo({ top: y, left: 0, behavior: 'smooth' });
} else {
container.scrollIntoView({ block: 'start', inline: 'nearest', behavior: 'smooth' });
}
container.scrollTo({ top: 0, behavior: 'smooth' });
}
});
$store.variants.customQuantities[product.product_id] = cleaned;
isLoading = true;
$store.variants.suppressQtyError = true;
if (cleaned === '') {
$store.variants.customQtyError = '';
$store.variants.customQtyErrorProductId = null;
$store.variants.deleteSelectedRowQuantity(product);
$store.variants.suppressTierDisplay ??= {};
$store.variants.suppressTierDisplay[pid] = true;
isLoading = false;
return;
} else {
$store.variants.validateAllQties(cleaned, product.product_id);
let errorMessage = $store.variants.customQtyError;
if (!errorMessage) {
errorMessage = $store.variants.validateSizeQty(cleaned, product);
}
if (errorMessage) {
$store.variants.customQtyErrorProductId = String(product.product_id);
$store.variants.suppressQtyError = false;
window.dispatchEvent(new CustomEvent('display-error', { detail: errorMessage }));
}
}
"
@input.debounce.400ms="
const qty = $store.variants.customQuantities[product.product_id];
if (qty === '' || qty === null || typeof qty === 'undefined') {
$store.variants.customQtyError = '';
$store.variants.customQtyErrorProductId = null;
isLoading = false;
return;
}
const sizeError = $store.variants.validateSizeQty(qty, product);
if (sizeError) {
$store.variants.customQtyErrorProductId = String(product.product_id);
$store.variants.suppressQtyError = false;
window.dispatchEvent(new CustomEvent('display-error', { detail: $store.variants.customQtyError }));
isLoading = false;
return;
}
$store.variants.addRowCustomQuantity(
product,
qty,
product.item_id + '_' + product.product_id,
false
);
const selected = parseInt($store.variants.getSelectedRowQuantity(product) || 0, 10);
if (parseInt(qty, 10) === selected) {
$store.variants.customQtyError = '';
$store.variants.validateAllQties();
window.dispatchEvent(new CustomEvent('display-error', { detail: '' }));
$store.variants.suppressQtyError = true;
}
isLoading = false;
"
min="1"
>
*
0) { errorMessage = '' }"
x-effect="if ((($store.selectedCustomizations?.getCustomizations?.() || []).length > 0)) { errorMessage = '' }"
>
0 && $store.variants.validateAllQties(0, null, true, true) === '') { enabled = !enabled; toggleCustomizer() } else { showErrorMessage() }"
@customizer:stopped.window="enabled = false">
Personnalisez vos produits
Ajouter un logo, un texte ou un ClipArt
0) { errorMessage = '' }"
x-effect="if (!$store.customizer?.ready || (($store.selectedCustomizations?.getCustomizations?.() || []).length > 0)) { errorMessage = '' }"
>
Personnalisation
Mes personnalisations
Livraison estimée
Après la validation du BAT
On s'occupe de tout !!!
Après passage de votre commande, nous vérifions votre personnalisation et vous envoyons un BAT sous 24/48h avant le lancement en production.
Après la validation du BAT
Description
Planche à découper moyenne en acier inoxydable.
Nos caractéristiques
Détails du produit
| Référence | GP-228670 |
|---|---|
| Matière | Aluminium |
Spécification du produit
| Numéro du tarif douanier | 8205 5100 |
|---|---|
| Emballage Individuel | Non |
Dimension - Logistique
| Dimension du carton | (H x L x l): H: 9 cm x L: 35.5 cm x l: 25 cm |
|---|---|
| Poids du carton | 11.500 |
| Quantité par carton | 20 |
Tarifs dégressifs
| Quantités | 1 |
|---|---|
|
Prix unitaire
|
1,00 € HT
1,20 € TTC |
Veuillez patienter...
Aucun résultat trouvé
| Quantités | |
|---|---|
|
|
|