function testAddArbitraryQuantityToItem() { /* Add an item to the cart */ $this->get('product-2b/add'); /* See what's in the cart */ $items = ShoppingCart::get_items(); /* There is 1 item in the cart, with a quantity of 1 */ $this->assertEquals(count($items), 1, 'There is 1 item in the cart'); $this->assertEquals($items[0]->getQuantity(), 1, 'There is a quantity of 1 for the item in the cart'); /* Let's add 7 more of the same product to the cart */ ShoppingCart::add_item($items[0]->getIDAttribute(), 7); /* See what's in the cart once more */ $items = ShoppingCart::get_items(); /* There is still 1 item in the cart, with a quantity of 8 */ $this->assertEquals(count($items), 1, 'There is 1 item in the cart'); $this->assertEquals($items[0]->getQuantity(), 8, 'There is a quantity of 1 for the item in the cart'); /* Clear the shopping cart */ ShoppingCart::clear(); }
function additem() { $itemId = $this->urlParams['ID']; if ($itemId) { ShoppingCart::add_item($itemId); if (!$this->isAjax()) { Director::redirectBack(); } } }
/** * Either increments the count or creates a new item. */ function additem($request) { if ($itemId = $request->param('ID') && ($product = $this->buyableFromURL())) { if ($item = ShoppingCart::get_item($this->urlFilter())) { ShoppingCart::add_item($item); return self::return_data("success", "Extra item added"); //TODO: i18n } else { if ($orderitem = $this->create_order_item($product, 1, self::get_clean_param_array($this->getRequest()->getVars()))) { ShoppingCart::add_new_item($orderitem); return self::return_data("success", "Item added"); //TODO: i18n } } } return self::return_data("failure", "Item could not be added"); //TODO: i18n }