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 : 12 }, get compare() { return this.selected ? this.selected.compare : null }, get stock() { return this.selected ? this.selected.stock : 80 }, 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">
Hoodies
Hoodies & Sweatshirts

Hoodies

Including VAT

Only left — order soon

Material:
80% Cotton - 20% Polyster

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.

Lead with what the record supports: "A hoodie in a cotton-rich blend, 80% cotton to 20% polyester." Same edit in the meta description. That mix means it feels and breathes like cotton against you, with just enough polyester in it to help it hold its shape wash after wash. Three colours rather than a wall of them: black, which goes with everything and shows the least; green; and blue. Sizes run S to XXL. Hoodies are normally worn with a bit of room in them, so your usual size will do the job. If you want it loose over a training top, or you like the sleeves a little long, take the next size up. Between the three colours the whole size range is covered, so you are unlikely to fall between the shade you wanted and the fit you need. This is the layer that goes on over kit on the way to a session and back on again afterwards, and it does just as well as an ordinary jumper on a cold morning. Cotton-rich fabric is warmer to sit around in than a thin technical top, and quieter to wear. Wash it inside out on a cool cycle with similar colours, which keeps the outside looking newer for longer. Cotton shrinks a little in heat, so keep it away from hot washes and hot tumble drying; a warm setting or a line dry treats it far better. Pulling the cuffs and the hem back into shape while it is still damp is worth the ten seconds it takes. We post across the UK, and if the fit is wrong the hoodie comes back to us.
SKU
PRD-EB7E2A
Weight
0.5 kg
Barcode
3838575860944
Size
M, XL, XXL, L, S
Colour
Black, Green, Blue
Material
80% Cotton - 20% Polyster

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.

Recently viewed