news

Saturday, December 19th!

Victoria Myers

Good morning everyone!  Brrr!  It is one of those "lying sun" days!  You look out the window and the sun tricks you into thinking that it might be warm, but NO WAY!  Ha!  Hopefully the sun will do some work on the snow piles even if it doesn't plan on warming us up!

It's just six days until Christmas and Hanukkah is over!  So, time to weave in those ends, block everything and get it wrapped.  OR it might be time to indulge in some reward knitting if you were early with everything because you needed to ship!

Plan some well-deserved selfish knitting with a nice end of the year kindness!  Until the end of the year, we are donating 30% of pattern sales to Open Table (the food pantry in Maynard).  It is a great time to pick up some new patterns and support a VERY needed food pantry during this wretched time.

There are SO many to choose from!!  Here's just a couple new ones, but if you click the link above - you'll see over 250!

  

It is also that time of year to remind all your peeps that we have Giftcards!  Quick to order - and then print - so even if they have been slow, you can still get the awesome gift of free yarn!!  :)

If you are shopping for knitters, I still have a few delightful goodies from the new Mindful Collection that Knitter's Price put out - they are in super short supply, so I'm not going to put them online.  You can see them in store or email me if you are in love with something and can't make it in to order.

Our hours for the next week are - today, 12-4

Wednesday, December 23 - 12 - 4

Thursday, December 24 - 12 - 4 

Friday , December 25 - closed

Saturday, December 26, 12-4

Wednesday, December 30 - 12-4

Thursday, December 31st - closed

Friday, January 1 - 12-4

Saturday, January 2 - 12-4

After that we'll be back to our current hours of Weds thru Saturday, 12-4

Happy Holidays to you all!!!


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