protected function addRow($id, $name, $qty, $price, array $options = array())
        {
            if(empty($id) || empty($name) || empty($qty) || empty($price)) {
                throw new Exception('Some mandatory info are missing');
            }

            if(!is_numeric($qty))  {
                throw new Exception('Quantity must be numeric.');
            }

            if( ! is_numeric($price)) {
                throw new Exception('Price must be numeric.');
            }

            $cart = $this->getContent();

            $rowId = $this->generateRowId($id, $options);

            if(Arrays::in($rowId, $cart->_fields)) {
                $row = $cart->$rowId;
                $cart = $this->updateRow($rowId, array('qty' => $row->qty + $qty));
            } else {
                $cart = $this->createRow($rowId, $id, $name, $qty, $price, $options);
            }

            return $this->updateCart($cart);
        }