Skip to content

Welcome to GulsTrading

v.attrs['Colour'] === wanted && v.stock > 0) ?? this.variants.find(v => v.attrs['Colour'] === wanted) : null; start ??= this.variants.find(v => v.stock > 0) ?? this.variants[0]; this.apply(start); }, apply(variant) { this.variantId = variant.id; this.groups.forEach(g => { if (variant.attrs[g.name] !== undefined) this.sel[g.name] = variant.attrs[g.name] }); this.activeImage = 0; }, choose(group, value) { this.sel[group] = value; // Exact: a variant wearing every current selection it carries. let match = this.variants.find(v => this.groups.every(g => !this.sel[g.name] || v.attrs[g.name] === undefined || v.attrs[g.name] === this.sel[g.name]) && v.attrs[group] === value); // Loose: best-scoring variant that at least wears the value // just clicked (sparse colour × size grids are the norm here). match ??= this.variants .filter(v => v.attrs[group] === value) .sort((a, b) => (this.score(b) - this.score(a)) || (b.stock > 0) - (a.stock > 0))[0]; if (match) this.apply(match); }, score(v) { return this.groups.reduce((n, g) => n + (v.attrs[g.name] === this.sel[g.name] ? 1 : 0), 0) + (v.stock > 0 ? 0.5 : 0); }, get images() { return this.previewImages }, get price() { return this.selected ? this.selected.price : 19.99 }, get compare() { return this.selected ? this.selected.compare : null }, get stock() { return this.selected ? this.selected.stock : 4 }, get needsVariant() { return this.variants.length > 0 && !this.variantId }, get previewImages() { if (this.selected && this.selected.images.length) return this.selected.images; // Colour chosen but size pending: preview that colour's shots. for (const g of this.groups.filter(g => g.isColour)) { if (this.sel[g.name]) { const match = this.variants.find(v => v.attrs[g.name] === this.sel[g.name] && v.images.length); if (match) return match.images; // A colour is chosen and NOTHING depicts it — 138 of // 4AsGlobals' variants have no image of their own. The // product's own shots are honest here; another // colour's are not, and on screen the two are // indistinguishable. Show those, or show none. return this.productImages; } } if (this.productImages.length) return this.productImages; // Nothing chosen yet, so no colour is being claimed: open on // the first variant that has a picture (the fallback the cards // use server-side). return this.variants.find(v => v.images.length)?.images ?? []; }, qty: 1, busy: false, lightbox: false, lightboxIndex: 0, get allImages() { const seen = new Set(); return [...this.productImages, ...this.variants.flatMap(v => v.images)] .filter(img => !seen.has(img.large) && seen.add(img.large)); }, openLightbox() { if (! this.allImages.length) return; const current = this.images[this.activeImage]?.large; const at = this.allImages.findIndex(img => img.large === current); this.lightboxIndex = at >= 0 ? at : 0; this.lightbox = true; }, nextImage() { if (this.allImages.length) this.lightboxIndex = (this.lightboxIndex + 1) % this.allImages.length }, prevImage() { if (this.allImages.length) this.lightboxIndex = (this.lightboxIndex - 1 + this.allImages.length) % this.allImages.length }, pick(id) { this.variantId = this.variantId === id ? null : id; this.activeImage = 0; }, }" @cart-updated.window="busy = false" @cart-add-failed.window="busy = false">
MMA Camo Training Shorts
Combat & Grappling Shorts

MMA Camo Training Shorts

Including VAT

Only left — order soon

Size:
S
Colour:
Grey
Material:
Camoflauge

Dispatched fast from our UK warehouse — same day where possible.

Fast UK dispatch Secure checkout Easy returns SKU

Picked, packed and dispatched from our own UK warehouse.

Grey camouflage, size S, one option. That is the whole of it, and it is better said at the top than left for you to find three paragraphs down. If small is your size you are in luck. If it is not, one of the other shorts in the Combat and Grappling section will serve you better, because there is no second size to fall back on here, which is worth knowing if you usually order two and send one back. They are listed as MMA training shorts, and that is where most of them end up: mat rounds, grappling, pad work, bag work and general conditioning. Nothing about the cut or the length is recorded on this line, so take the photographs as the fair guide to shape rather than anything we might tell you about it. The material is given as camouflage, in grey. That is the pattern rather than the fibre, so there is no composition stated and no honest way for us to say how the fabric behaves in a machine. Since we would rather not guess, treat them gently. Wash cool alongside similar colours, keep the softener out of it, and dry them away from a radiator or a hot tumble. One habit does more for training shorts than anything in the wash cycle: rinse them through soon after a session instead of leaving them balled up in the bottom of a kit bag, where they stay damp until the next time you look. They are £24.99, and they sit in Combat and Grappling Shorts rather than with the gym shorts. We post to UK addresses, and if the size is wrong the return is ours to sort out with you rather than a third party's.
SKU
PRD-4E5ED9
Weight
0.5 kg
Barcode
8998434731305
Size
S
Colour
Grey
Material
Camoflauge

Orders are picked, packed and dispatched from our UK warehouse — same day where possible. Delivery options and prices are shown at checkout. Track any order any time at Track my order.

Changed your mind? You can request a return from your account within 30 days of delivery.

Reviews

No reviews yet — be the first.

Questions & Answers

No questions yet.

You may also like