Tenmusu

Tenmusu

November 30, 2021

If you like sushi, you're absolutely going to love tenmusu, also commonly known as shrimp tempura rice balls. Warning: these beauties can be addictive!

Continue Reading

Freak Shake

Freak Shake

October 27, 2021

This mega milkshake caused a stir when it gained popularity back in 2016. The Freak Shake boasts the best of all worlds – ice cream, biscuits, caramel, & milk!

Continue Reading

Tagliatelle Bolognese

Tagliatelle Bolognese

October 20, 2021

Tagliatelle Bolognese – A staple family-favourite Italian recipe that everyone at home is guaranteed to love. Psst, it's also a great way to sneak some veggies into your little ones' tummies!

Continue Reading


Levain Style Cookies

Levain Style Cookies

September 26, 2021

Whether you're someone with a sweet tooth, or a person who just prefers salad over dessert – you haven't tried cookies until you've tried them Levain style.

Continue Reading

Coconut Milk Chia Pudding

Coconut Milk Chia Pudding

September 13, 2021

A tempting amalgamation of coconut and chia. Give this super easy to prepare but indescribably healthy and tasty recipe a go and you'll find yourself wishing you had tried this earlier.

Continue Reading

Vegan Pasta Salad

Vegan Pasta Salad

August 22, 2021

Here's a big, nutritious bowl of sunshine to light up your week. This flavourful salad is so yummy, your guests won't believe it's 100% vegan!

Continue Reading


Pistachio Macarons

Pistachio Macarons

August 08, 2021

With a creamy pistachio filling, these light, bite-sized French cookies may look small, but pack large amounts of flavour.

Continue Reading

Cajun Shrimp Salad

Cajun Shrimp Salad

July 28, 2021

There's no better time to try a shrimp recipe than summer! This Cajun shrimp salad is the perfect weeknight dinner recipe thanks to its refreshing, crunchy, cool, and spicy flavour.

Continue Reading

Sous Vide Short Ribs

Sous Vide Short Ribs

July 18, 2021

Using this hands-off cooking technique, you'll enjoy perfectly juicy and tender short ribs that guarantee to take your taste buds on a heavenly ride.

Continue Reading


Pear and Gorgonzola Pizza

Pear and Gorgonzola Pizza

June 16, 2021

Pizza: is there a more delicious, versatile and much-loved dish in the culinary world? Super easy to make at home and offering the perfect opportunity to get creative and express yourself, the Italian staple can be adapted to suit all tastes. But, few topping combinations get our stomachs rumbling as much as pear and Gorgonzola.

Continue Reading

Manchego Mac and Cheese

Manchego Mac and Cheese

June 10, 2021

There are few things in life more comforting than a piping-hot bowl of luxuriously creamy, incredibly cheesy and super satisfying mac and cheese. Quick and easy to make, it’s perfect for cosy nights in with a movie.

Continue Reading

Tarte au Citron

Tarte au Citron

May 05, 2021

You can't go wrong with this flawless combination of creamy lemon custard and crumbly sweet pastry – enter Tarte au Citron, aka, Lemon Meringue Tart!

Continue Reading



/** * Module to ajaxify all add to cart forms on the page. * * Copyright (c) 2015 Caroline Schnapp (11heavens.com) * Dual licensed under the MIT and GPL licenses: * http://www.opensource.org/licenses/mit-license.php * http://www.gnu.org/licenses/gpl.html * */ Shopify.AjaxifyCart = (function($) { // Some configuration options. // I have separated what you will never need to change from what // you might change. var _config = { // What you might want to change addToCartBtnLabel: 'Add to cart', addedToCartBtnLabel: 'Added to cart!', addingToCartBtnLabel: 'Adding...', soldOutBtnLabel: 'Sold Out', howLongTillBtnReturnsToNormal: 1000, // in milliseconds. cartCountSelector: '.cart-count, #cart-count a:first, #gocart p a, #cart .checkout em, .item-count', cartTotalSelector: '#cart-price', // 'aboveForm' for top of add to cart form, // 'belowForm' for below the add to cart form, and // 'nextButton' for next to add to cart button. feedbackPosition: 'nextButton', // What you will never need to change addToCartBtnSelector: '[type="submit"]', addToCartFormSelector: 'form[action="/cart/add"]', shopifyAjaxAddURL: '/cart/add.js', shopifyAjaxCartURL: '/cart.js' }; // We need some feedback when adding an item to the cart. // Here it is. var _showFeedback = function(success, html, $addToCartForm) { $('.ajaxified-cart-feedback').remove(); var feedback = '

' + html + '

'; switch (_config.feedbackPosition) { case 'aboveForm': $addToCartForm.before(feedback); break; case 'belowForm': $addToCartForm.after(feedback); break; case 'nextButton': default: $addToCartForm.find(_config.addToCartBtnSelector).after(feedback); break; } // If you use animate.css // $('.ajaxified-cart-feedback').addClass('animated bounceInDown'); $('.ajaxified-cart-feedback').slideDown(); }; var _setText = function($button, label) { if ($button.children().length) { $button.children().each(function() { if ($.trim($(this).text()) !== '') { $(this).text(label); } }); } else { $button.val(label).text(label); } }; var _init = function() { $(document).ready(function() { $(_config.addToCartFormSelector).submit(function(e) { e.preventDefault(); var $addToCartForm = $(this); var $addToCartBtn = $addToCartForm.find(_config.addToCartBtnSelector); _setText($addToCartBtn, _config.addingToCartBtnLabel); $addToCartBtn.addClass('disabled').prop('disabled', true); // Add to cart. $.ajax({ url: _config.shopifyAjaxAddURL, dataType: 'json', type: 'post', data: $addToCartForm.serialize(), success: function(itemData) { // Re-enable add to cart button. $addToCartBtn.addClass('inverted'); _setText($addToCartBtn, _config.addedToCartBtnLabel); // _showFeedback('success',' Added to cart!',$addToCartForm); window.setTimeout(function(){ $addToCartBtn.prop('disabled', false).removeClass('disabled').removeClass('inverted'); _setText($addToCartBtn,_config.addToCartBtnLabel); }, _config.howLongTillBtnReturnsToNormal); // Update cart count and show cart link. $.getJSON(_config.shopifyAjaxCartURL, function(cart) { if (_config.cartCountSelector && $(_config.cartCountSelector).length) { var value = $(_config.cartCountSelector).html() || '0'; $(_config.cartCountSelector).html(value.replace(/[0-9]+/,cart.item_count)).removeClass('hidden-count'); } if (_config.cartTotalSelector && $(_config.cartTotalSelector).length) { if (typeof Currency !== 'undefined' && typeof Currency.moneyFormats !== 'undefined') { var newCurrency = ''; if ($('[name="currencies"]').length) { newCurrency = $('[name="currencies"]').val(); } else if ($('#currencies span.selected').length) { newCurrency = $('#currencies span.selected').attr('data-currency'); } if (newCurrency) { $(_config.cartTotalSelector).html('' + Shopify.formatMoney(Currency.convert(cart.total_price, "AED", newCurrency), Currency.money_format[newCurrency]) + ''); } else { $(_config.cartTotalSelector).html(Shopify.formatMoney(cart.total_price, "")); } } else { $(_config.cartTotalSelector).html(Shopify.formatMoney(cart.total_price, "")); } }; }); }, error: function(XMLHttpRequest) { var response = eval('(' + XMLHttpRequest.responseText + ')'); response = response.description; if (response.slice(0,4) === 'All ') { _showFeedback('error', response.replace('All 1 ', 'All '), $addToCartForm); $addToCartBtn.prop('disabled', false); _setText($addToCartBtn, _config.soldOutBtnLabel); $addToCartBtn.prop('disabled',true); } else { _showFeedback('error', ' ' + response, $addToCartForm); $addToCartBtn.prop('disabled', false).removeClass('disabled'); _setText($addToCartBtn, _config.addToCartBtnLabel); } } }); return false; }); }); }; return { init: function(params) { // Configuration params = params || {}; // Merging with defaults. $.extend(_config, params); // Action $(function() { _init(); }); }, getConfig: function() { return _config; } } })(jQuery); Shopify.AjaxifyCart.init();