जवाबों:
कोशिश { $ उत्पाद = $ productRepository -> get ( $ sku ); } पकड़ ( \ Magento \ Framework \ Exception \ NoSuchEntityException $ e ) { $ उत्पाद = गलत ; }
इसे इस्तेमाल करे:
$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 उत्तर देखें, मेरा उत्तर इस बारे में अधिक है कि स्कू का उपयोग करके उत्पाद कैसे प्राप्त किया जाए।
ऐसा करने के लिए आप 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);
अभी पता चला है कि getIdBySkuविधि अभी भी मौजूद है \Magento\Catalog\Model\Product। इसके साथ इंजेक्ट करें
public function __construct(
\Magento\Catalog\Model\Product $productModel
) {
$this->productModel = $productModel;
}
और आप के साथ की जाँच कर सकते हैं
$this->productModel->getIdBySku($sku)
मै सोचता हूँ तुम कर सकते हो:
$checkProduct = $this->objectManager->create(
'Magento\Catalog\Model\Product'
);
if($checkProduct->getIdBySku()){
echo 'exist';
}
लेकिन यह मानक कार्य नहीं है।