Add a more robust way of managing customisations and adding them to cart