回答:
{を試す { $ product = $ productRepository-> get($ sku);= $ productRepository- > get ($ sku ); }キャッチ(\ Magento \ Framework \ Exception \ NoSuchEntityException $ e){} キャッチ(\ Magento \ Framework \ Exception \ NoSuchEntityException $ e ){ $ product = false;= false ; }}
これを試して:
$objectManager = \Magento\Framework\App\ObjectManager::getInstance();
$product = $objectManager->get('Magento\Catalog\Model\Product');
if($product->getIdBySku($sku)) {
echo 'exit';
}
または
protected $product;
public function __construct(
\Magento\Catalog\Model\Product $product
) {
$this->_product = $product;
}
そしてチェックの後
if($this->_product->getIdBySku($sku)) {
echo 'exit';
}
@bpoissの回答を参照してください。私の回答は、skuを使用して製品を入手する方法の詳細です。
そのためには、Magento\Catalog\Model\ProductRepository
クラスを使用できます。
まず、コンストラクタに注入します。
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 */
}
次に、あなたの関数であなたは行うことができます:
$this->_productRepository->get($sku);
私はできると思います:
$checkProduct = $this->objectManager->create(
'Magento\Catalog\Model\Product'
);
if($checkProduct->getIdBySku()){
echo 'exist';
}
ただし、標準機能ではありません。