/** * @param string $concreteSku * * @throws \Spryker\Zed\Product\Business\Exception\MissingProductException * * @return \Generated\Shared\Transfer\ProductConcreteTransfer */ public function getProductConcrete($concreteSku) { $localeTransfer = $this->localeFacade->getCurrentLocale(); $productConcreteQuery = $this->productQueryContainer->queryProductWithAttributesAndProductAbstract($concreteSku, $localeTransfer->getIdLocale()); $productConcreteQuery->select([self::COL_ID_PRODUCT_CONCRETE, self::COL_ABSTRACT_SKU, self::COL_ID_PRODUCT_ABSTRACT, self::COL_NAME]); $productConcrete = $productConcreteQuery->findOne(); if (!$productConcrete) { throw new MissingProductException(sprintf('Tried to retrieve a product concrete with sku %s, but it does not exist.', $concreteSku)); } $productConcreteTransfer = new ProductConcreteTransfer(); $productConcreteTransfer->setSku($concreteSku)->setIdProductConcrete($productConcrete[self::COL_ID_PRODUCT_CONCRETE])->setProductAbstractSku($productConcrete[self::COL_ABSTRACT_SKU])->setIdProductAbstract($productConcrete[self::COL_ID_PRODUCT_ABSTRACT])->setName($productConcrete[self::COL_NAME]); return $productConcreteTransfer; }