365 Moral Stories
365 Moral Stories
365 Moral Stories
365 Moral Stories
365 Moral Stories

365 Moral Stories

Regular price
R 169.00
Sale price
R 169.00
Free shipping on all orders over R950
Quantity must be 1 or more

Stories with morals impart important life lessons to kids, which in turn shape their personality. ‘365 Moral Stories’ is a wonderful collection of the best stories in a simple, easy-to-understand language supported by vibrant illustrations. Each story of this fun and entertaining book will help children acquire moral values and help them handle life situations.

const button = event.target.closest('.custom-product-add-to-cart'); if (!button) return; event.preventDefault(); const variantId = button.dataset.variantId; if (!variantId) { console.error('No variant ID found.'); return; } if (button.disabled) return; const originalText = button.textContent; button.disabled = true; button.textContent = 'Adding...'; fetch(window.Shopify.routes.root + 'cart/add.js', { method: 'POST', headers: { 'Content-Type': 'application/json', 'Accept': 'application/json' }, body: JSON.stringify({ items: [ { id: Number(variantId), quantity: 1 } ] }) }) .then(function(response) { return response.json().then(function(data) { if (!response.ok) { throw new Error( data.description || 'Could not add product to cart.' ); } return data; }); }) .then(function(data) { button.textContent = 'Added ✓'; return fetch(window.Shopify.routes.root + 'cart.js'); }) .then(function(response) { return response.json(); }) .then(function(cart) { const cartCount = document.querySelector('[data-cart-count]') || document.querySelector('.cart-count-bubble'); if (cartCount) { cartCount.textContent = cart.item_count; } const cartDrawer = document.querySelector('cart-drawer'); if (cartDrawer && typeof cartDrawer.open === 'function') { cartDrawer.open(); } setTimeout(function() { button.disabled = false; button.textContent = originalText; }, 1500); }) .catch(function(error) { console.error('Add to cart error:', error); button.disabled = false; button.textContent = 'Error - try again'; setTimeout(function() { button.textContent = originalText; }, 2000); }); });