Magento 2 में sku वाला उत्पाद मौजूद है या नहीं इसकी जाँच करें


9

Magento 1.x में मैं कर सकता था

if(Mage::getModel('catalog/product')->getIdBySku($sku))

मैं इसे Magento 2 में कैसे जांच सकता हूं?

जवाबों:


11
कोशिश { 
    $ उत्पाद = $ productRepository -> get ( $ sku ); } पकड़ ( \ Magento \ Framework \ Exception \ NoSuchEntityException $ e ) { 
    $ उत्पाद = गलत ; } 
   

यह ठीक वैसा ही काम करता है जैसा मैं चाहता था।
टीएस गुहान

10

इसे इस्तेमाल करे:

$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';    
}

2
मैंने सोचा था कि आप सीधे वस्तु प्रबंधक का उपयोग नहीं करना चाहिए
बपिस

अपडेट किया गया ans pls अब देखें
अब्दुल

ऑब्जेक्ट मैनेजर के बिना दूसरा संस्करण बेहतर है :)
अन्ना वोकल

1

@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);

1
यह मेरे लिए काम नहीं किया क्योंकि अगर स्क्यू मौजूद है, तो मुझे ProductInterface का एक उदाहरण मिला है और अन्यथा स्ट्रिंग 'उत्पाद मौजूद नहीं है' जो सत्य का मूल्यांकन करता है। मुझे एक अतिरिक्त उदाहरण की जाँच
करनी होगी

@bpoiss हाँ, यह सही है कि मेरा उत्तर स्कू से उत्पाद प्राप्त करने के बारे में अधिक है, आपका उत्तर निश्चित रूप से सही है;) Btw, जब आप एक नया प्रश्न बनाते हैं, तो आप 'मेरे प्रश्न का उत्तर' पर टिक कर सकते हैं; भरने के लिए एक रूप;)
डिजिटल पियानोवाद पर राफेल

इसे इंगित करने के लिए धन्यवाद, लेकिन क्षण में मैंने वह प्रश्न लिखा जिसका उत्तर मुझे नहीं पता ^ ^
bpoiss

@bpoiss haha ​​ok ^ ^ जैसा कि आपका जवाब जल्दी था मुझे लगता था कि आप इसे जानते थे। ;)
डिजिटल पियानोवाद पर राफेल 11

0

अभी पता चला है कि getIdBySkuविधि अभी भी मौजूद है \Magento\Catalog\Model\Product। इसके साथ इंजेक्ट करें

public function __construct(
    \Magento\Catalog\Model\Product $productModel
) {
    $this->productModel = $productModel;
}

और आप के साथ की जाँच कर सकते हैं

$this->productModel->getIdBySku($sku)

0

मै सोचता हूँ तुम कर सकते हो:

$checkProduct = $this->objectManager->create(
                'Magento\Catalog\Model\Product'
            );
    if($checkProduct->getIdBySku()){
    echo 'exist';
    }

लेकिन यह मानक कार्य नहीं है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.