news

Friday, January 14, 2022

Victoria Myers

Good morning lovely knitters!  It occurred to me, too late, last week that the Saturday email probably reached some of you too late to take advantage of the pick up hours because my system does this batch sending thing.  So, I thought I would get it done on Friday!  The main thing to know for Saturday is that I'll be in the shop from 12 to 3ish for pickups.  Just call when you get there and I'll run out with your goodies.  (Sometimes I don't hear knocking because there is a lot of dyeing going on right now and the dye room is like a soundproof cave!)

There are NEW Mad Balls AND there will be many more, as well as a long awaited NEW Mad Ball pattern on Sunday!  I tell you, this particular Mad Ball I scooped and took home - I started and nearly finished 3 different shawls with it, and I just wasn't in love with any of the patterns.  You know why?  Because it was waiting for me to find its yarny destiny!  This new pattern is gorgeous - you are going to LOVE it!

Our Howl for Noro discount is still good!  Save 20% when you buy 3 or more kits!  This discount will be ending next week, so don't wait too much longer!

And our Friv kits are flying out!  There are a few more left, and I'll make some new colors when this batch of Mad Balls is done, but if you love the current colors, grab 1 (or 2 and get the intro discount with code FRIV) before they disappear!

And the last little thing...I had this plan to talk about our destashing service in the New Year.  I mean, I always feel a little need to purge after all the Christmas mess has finished, so I thought you might have that instinct too.  But then, we landed in the middle of covid surge and temporary closure so that took the front seat.  But then, I realized, the other day, that actually temporary closure time is the perfect time to do destashing because there's some hope that I'll get it all cleared away and cleaned up before our doors are back open again!  So, if you don't know about our destashing service - here's how it works!  (Lately, in my mind, I've been calling is Yarn Asylum - and by Asylum, I mean both refuge and loony bin, which seems like the perfect description of the shop!)

If you have yarn you no longer love (your tastes have changed, you have sale bin regrets, you have a pile of yarn that well meaning loved ones have pawned off on you, balls you don't love are loving each other and are spontaneously reproducing at the bottom of the bin), you can bring it in.  I'll weigh it, and give you a credit for $5 off $20 PER pound!  (I think I may have even figured out how to do this online so that you just have to have your code, rather than a million little destashing slips to keep track of.)  They can be leftovers, unlabeled, anything really.  The only rule is NO PESTS so check it over a bit to make sure there are no unwelcome little friends in there.  And it has to be yarn that you don't love.  Don't force yourself to get rid of something you love just for the shelf space.  Clear out the stuff that is just clogging your stash with I-should-do-something-with-that-guilt.  So, if you want to destash - just drop me an email and we'll set up a time for you to drop off during our pick-up times and then you'll have happy little credits for something you are truly lusting after!

Ok, I think that's it for today!  I hope you are all staying healthy and knitting up a storm!  Love to all of you!!

Island Yarn 
189 Main Street
Maynard, MA  01754
Hours: Closed temporarily, available on Saturday 1/8 for order pick-ups

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(), ); }