Odpowiedzi:
próbować { { $ product = $ productRepository-> get ($ sku);= $productRepository->get($sku); } catch (\ Magento \ Framework \ Exception \ NoSuchEntityException $ e) {} catch (\Magento\Framework\Exception\NoSuchEntityException $e){ $ produkt = fałsz;= false; }}
Spróbuj tego:
$objectManager = \Magento\Framework\App\ObjectManager::getInstance();
$product = $objectManager->get('Magento\Catalog\Model\Product');
if($product->getIdBySku($sku)) {
echo 'exit';
}
LUB
protected $product;
public function __construct(
\Magento\Catalog\Model\Product $product
) {
$this->_product = $product;
}
i po sprawdzeniu
if($this->_product->getIdBySku($sku)) {
echo 'exit';
}
Zobacz odpowiedź @bpoiss, moja odpowiedź zawiera więcej informacji na temat uzyskiwania produktu za pomocą SKU.
Aby to zrobić, możesz skorzystać z Magento\Catalog\Model\ProductRepositoryklasy.
Najpierw wstrzyknij go do swojego konstruktora:
protected $_productRepository;
public function __construct(/* your original parameters here */, \Magento\Catalog\Model\ProductRepository $productRepository)
{
/* your original code here */
$this->_productRepository = $productRepository;
/* end of your original code */
}
Następnie w swojej funkcji możesz wykonać:
$this->_productRepository->get($sku);
Właśnie dowiedziałem się, że getIdBySkumetoda nadal istnieje \Magento\Catalog\Model\Product. Wstrzyknij to za pomocą
public function __construct(
\Magento\Catalog\Model\Product $productModel
) {
$this->productModel = $productModel;
}
i możesz to sprawdzić za pomocą
$this->productModel->getIdBySku($sku)
Myślę że możesz:
$checkProduct = $this->objectManager->create(
'Magento\Catalog\Model\Product'
);
if($checkProduct->getIdBySku()){
echo 'exist';
}
Ale to nie jest standardowa funkcja.