/**
* @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']]));
}