/** * Create the cookie for an order * @param ShopOrder $order */ private function createCookie(ShopOrder $order) { $cookieName = $this->container->getParameter('shop.shop_cart'); $cookie = array(); foreach ($order->getOrders() as $o) { $cookie[$o->getProduct()->getId()] = $o->getCount(); } $value = base64_encode(json_encode($cookie)); return new Cookie($cookieName, $value, 0, '/', null, false, false); }
/** * Update products stocks for a given order * * @param ShopOrder $order * @param boolean $deleteOrder Whether the order is deleted or not */ public function updateStock(ShopOrder $order, $orderDeleted = false) { foreach ($order->getOrders() as $o) { $product = $o->getProduct(); $stock = $product->getStock(); if ($orderDeleted) { $stock += $o->getCount(); } else { $stock -= $o->getCount(); } $product->setStock($stock); } $this->_em->flush(); }