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 : 11.99 }, get compare() { return this.selected ? this.selected.compare : null }, get stock() { return this.selected ? this.selected.stock : 39 }, 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">
Basic Rashguard Shirt
Rashguards

Basic Rashguard Shirt

Including VAT

Only left — order soon

Colour:
Black
Material:
80% Polyster - 20% Elastane

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.

This is the plain one. Black, no print, £22.99, and the rashguard most people start with. The fabric is 80% polyester and 20% elastane. That fifth of elastane is enough to let the shirt stretch with you and come back to shape rather than staying stretched, and the four fifths of polyester dry quickly, which counts for a lot if you are training two or three times a week. Black is the only colour, and the run is complete: S, M, L, XL and XXL, with every one of them stocked. A rashguard is worn next to the skin, under a gi or on its own for no-gi, wrestling and MMA classes. It puts a layer between you and the mat, which is the main reason clubs prefer one to a loose t-shirt. Away from the gym, the same shirt does duty as a swim top or as a base layer under a jersey. Nothing is recorded here about how it is cut, so take the size you wear in your other training tops, and go up if you would rather it sat easier across the chest. Since all five sizes are on the shelf, whichever way you decide, the size is there. Care is best built into the routine after training rather than left to the weekend. Rinse it through instead of leaving it at the bottom of your bag, then wash it cool with the rest of your kit. No softener. Hang it somewhere airy and keep it out of a hot dryer, and it will be dry by the time you need it again. Posted anywhere in the UK, and if it is not right, SyncShip takes it back.
SKU
PRD-6C2B2C
Weight
0.5 kg
Barcode
9644029658708
Size
S, XL, M, L, XXL
Colour
Black
Material
80% Polyster - 20% Elastane

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

Recently viewed