/** * Insert an item into the cart * * @param array $item An array of item data * * @return string A unique item identifier * @throws \InvalidArgumentException */ public function insert(array $item) { $this->checkArgs($item); $itemIdentifier = $this->createItemIdentifier($item); if ($this->has($itemIdentifier)) { $item['quantity'] = $this->item($itemIdentifier)->quantity + $item['quantity']; $this->update($itemIdentifier, $item); return $itemIdentifier; } if ($item['quantity'] < 1) { throw new \InvalidArgumentException('Quantity can not be less than 1'); } $item = $this->createItem($itemIdentifier, $item); $this->store->insertUpdate($item); return $itemIdentifier; }