/** * @param string $sku * @param int $quantity * * @return CartItem * @throws QueryException */ private function getItemBySku(string $sku, int $quantity) : CartItem { $qb = $this->connection->createQueryBuilder(); $qb->select('*')->from('dumplie_inventory_product')->where('sku = :sku')->setParameter('sku', $sku); $itemData = $this->connection->fetchAssoc($qb->getSQL(), $qb->getParameters()); if (empty($itemData)) { throw QueryException::cartItemNotFound($sku); } return new CartItem($itemData['sku'], $quantity, $itemData['price_amount'] / $itemData['price_precision'], $itemData['price_currency'], $this->mao->getBy([Metadata::FIELD_SKU => $itemData['sku']])); }