news

Saturday, July 30, 2022

Victoria Myers

Good morning lovely knitters!  We've got a first and a BUNCH of last chances, so I'd better not ramble about the weather today!  (And really, what is to be said about it?)

This week we released Grist which is the Greater Boston Yarn Crawl 2022 pattern!

You can get kits here, or if you want you can pop in and build your own!  You can actually make this one out of any gauge yarn that you want, so if you want to be happily overwhelmed by options, come on in!

I also posted a quick video showing that Twisted I-Cord edge, just in case you get lost in the sequence.  Melting brain syndrome can get you at the best of times!  

I really loved knitting this shawl - the subtly changing drop rows were so fun to watch and it is SUPER quick!  A crochet version will be released soon too if you that's how you prefer to yarn!

This is the last day for our GORGEOUS discounted Cara Kit!  Grab one today before they disappear!

We've got just about 2 weeks left for our charity blanket KAL for Boston Medical Center!  If you have a blanket on the go - get it done and bring it in soon!  This one ends 8/15.

This is your last chance to get Flatter while it is still our featured pattern!  You can use 2 skeins of either Geshi or NEW Yukata for this lovely top and we'll send along the pattern for free when you buy them!  PLUS a bonus code for 20% off of any of our other patterns!  Flatter is exactly as named - super flattering and a breeze to make!

You can also get the pattern alone for 20% off this month with code JULYPOM.

Island Yarn 
189 Main Street
Maynard, MA  01754
Hours: Wednesday 12 - 5, Thursday 12 - 6, Friday and Saturday, 12-5

 


Leave a Comment

Please note, comments must be approved before they are published

const selectVariantByClickingImage = { // Create variant images from productJson object _createVariantImage: function (product) { const variantImageObject = {}; product.variants.forEach((variant) => { if ( typeof variant.featured_image !== 'undefined' && variant.featured_image !== null ) { const variantImage = variant.featured_image.src .split('?')[0] .replace(/http(s)?:/, ''); variantImageObject[variantImage] = variantImageObject[variantImage] || {}; product.options.forEach((option, index) => { const optionValue = variant.options[index]; const optionKey = `option-${index}`; if ( typeof variantImageObject[variantImage][optionKey] === 'undefined' ) { variantImageObject[variantImage][optionKey] = optionValue; } else { const oldValue = variantImageObject[variantImage][optionKey]; if (oldValue !== null && oldValue !== optionValue) { variantImageObject[variantImage][optionKey] = null; } } }); } }); return variantImageObject; }, _updateVariant: function (event, id, product, variantImages) { const arrImage = event.target.src .split('?')[0] .replace(/http(s)?:/, '') .split('.'); const strExtention = arrImage.pop(); const strRemaining = arrImage.pop().replace(/_[a-zA-Z0-9@]+$/, ''); const strNewImage = `${arrImage.join('.')}.${strRemaining}.${strExtention}`; if (typeof variantImages[strNewImage] !== 'undefined') { product.variants.forEach((option, index) => { const optionValue = variantImages[strNewImage][`option-${index}`]; if (optionValue !== null && optionValue !== undefined) { const selects = document.querySelectorAll('#'+ id + ' [class*=single-option-selector]'); const options = selects[index].options; for (let option, n = 0; (option = options[n]); n += 1) { if (option.value === optionValue) { selects[index].selectedIndex = n; selects[index].dispatchEvent(new Event('change')); break; } } } }); } }, _selectVariant: function() { const productJson = document.querySelectorAll('[id^=ProductJson-'); if (productJson.length > 0) { productJson.forEach((product) => { const sectionId = product.id.replace("ProductJson-", "shopify-section-"); const thumbnails = document.querySelectorAll('#'+ sectionId + ' img[src*="/products/"]'); if (thumbnails.length > 1) { const productObject = JSON.parse(product.innerHTML); const variantImages = this._createVariantImage(productObject); // need to check variants > 1 if (productObject.variants.length > 1) { thumbnails.forEach((thumbnail) => { thumbnail.addEventListener('click', (e) => this._updateVariant(e, sectionId, productObject, variantImages), ); }); } } }); } }, }; if (document.readyState !== 'loading') { selectVariantByClickingImage._selectVariant(); } else { document.addEventListener( 'DOMContentLoaded', selectVariantByClickingImage._selectVariant(), ); }