News

Saturday, February 12, 2022

Victoria Myers

Saturday, February 12, 2022

Good morning lovely knitters!!   What an amazing day out!  I took my knitting for a walk this morning, for the first time in months!  It is the perfect day to take a little trip to the yarn shop!  The world is warm, but still gray - but guess what, I'll provide the color once you walk through the door!  Heee!   Speaking of color - NEW colors of Noro Ito are due in today!  (If you want to get an eyeful, come a little later in the day to give UPS time to drop the boxes.) It might also be the...


Saturday, February 5, 2022

Victoria Myers

Comments 2

Saturday, February 5, 2022

Good morning lovely knitters!  I'm trying to get back to normal with Saturday blog posts, so here we go!  We opened back up this week (though the ice made a blip yesterday) and we are open today and hope for good weather and low covid numbers so that we can continue our Weds - Saturday 12-5 schedule.   Our classes are also back in person and our Beginner Stranded Knitting class tomorrow still has just one spot in it - sign up now if you want to take this fun class!  I love this one - everyone always does so great! ...


Saturday, January 22, 2022

Victoria Myers

Saturday, January 22, 2022

Good morning lovely knitters!  Boy - it is a chilly morning!  But even though January and Covid are trying to bring on the doldrums, it has been a shockingly exciting week!!  Before I overwhelm you with pretties, just want to let you know that I'll be in the shop from 12ish to 3ish today for pick-ups.  There's a glimmer of hope that we'll open back open, for real, next Saturday, but I'm not sure yet - still watching the numbers like a hawk.   Ok!  First - we have a NEW Mad Ball pattern!!  And loads of new Mad Balls -...


Friday, January 14, 2022

Victoria Myers

Friday, January 14, 2022

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...


Thursday, January 6, 2022

Victoria Myers

Thursday, January 6, 2022

Well, good morning lovely knitters!  A Thursday post?  What's this?  Well, if you read my email yesterday, you likely already know.  Yup, sadly the brick and mortar store is closed for a bit to ride out this insane surge in Covid.  You were all so amazingly supportive, thoughtful, and lovely with your emails yesterday, it made me feel much better about the decision and I want to thank you so much for being in touch!  In my head, we'll probably be closed until the new cases are less than 6000 a day in MA for a few days in row. ...

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