news

Saturday, February 10, 2024

Victoria Myers

Good morning lovely knitters!  It looks like were going to have a gorgeous day ahead of us!  It is just the perfect day to let go of that winter funk and come delight in some NEW yarn and lots and lots of colors!!

I'm still working through all of the Cumulus and Cirrus that came in - it was A LOT!  And I'm SO happy!  Check out some of the newbies!

We also got NEW Juniper Moon Farm Cotton Merino

A lot of you might think this is familiar.  Well, after we were faced with losing this yarn, Juniper Moon saved the day and started making it for us!  And there are GORGEOUS NEW colors AND it is now in 100 gram balls - perfect for you sweater makers!  This coming week is going to be packed full of reworking a lot of of the kits listings with new colors and new yarns, so be on the lookout!  Or pop in today and build your own!

We also have an overflowing sale bin situation, which means that this weekend, while some of the world SUPER BOWLS the rest of us can SUPER BIN!  There is a new yarn in there that pushed us over the edge - super soft Ella Rae Cozy Alpaca.  And this weekend (thru Monday at midnight) you can get and EXTRA 20% off on sale bin yarns when you use code SBYARN at checkout.  

We also had some NEW Mad Balls this week, but a lot of those are gone, so if you love this Grey+ batch, don't wait much longer!  Next week, we'll be seeing a NEW Mad Ball pattern - and you are going to LOVE it!!

I hope to see you on this lovely day!

Island Yarn 

189 Main Street
Maynard, MA  01754
Hours: Wednesday through 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(), ); }