স্কু সহ পণ্যটি ম্যাজেন্টো 2 এ বিদ্যমান কিনা তা পরীক্ষা করুন


9

Magento 1.x এ আমি করতে পারি

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

আমি কীভাবে এটি ম্যাজেন্টো 2 এ পরীক্ষা করতে পারি?

উত্তর:


11
চেষ্টা করুন {
    $ product = $ productRepository-> get ($ sku);= $productRepository->get($sku);
} ধরা (\ ম্যাজেন্টো me ফ্রেমওয়ার্ক \ ব্যতিক্রম \ NoSuchEntityException $ e) {} catch (\Magento\Framework\Exception\NoSuchEntityException $e){
    $ পণ্য = মিথ্যা;= false;
}}

এটি আমি যেমন চেয়েছিলাম ঠিক তেমন কাজ করে।
টিএস গুহান

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
আমি ভেবেছিলাম আপনার অবজেক্ট ম্যানেজারটি সরাসরি ব্যবহার করা উচিত নয়
বিবিএস

আপডেট করা উত্তরগুলি এখনই চেক করুন
আব্দুল

অবজেক্ট ম্যানেজার ছাড়া দ্বিতীয় সংস্করণটি আরও ভাল :)
আন্না ভেলক্ল

1

@ বিপোইস উত্তর দেখুন, আমার উত্তরটি স্কু ব্যবহার করে কীভাবে পণ্য পাবেন সে সম্পর্কে আরও বেশি।

এটি করতে আপনি 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
এটি আমার পক্ষে কার্যকর হয়নি কারণ যদি স্কুটি বিদ্যমান থাকে তবে আমি প্রোডাক্টআইন্টারফেসের একটি উদাহরণ পেয়েছি এবং অন্যথায় 'পণ্যটির অস্তিত্ব নেই' যা সত্যের কাছে প্রত্যাখ্যান করে। আমাকে একটি অতিরিক্ত উদাহরণ চেক করতে হবে
বপোইস

@ বিপোইস হ্যাঁ ঠিকই আমার উত্তরটি স্কু থেকে কীভাবে পণ্য পাবেন সে সম্পর্কে আরও বেশি, আপনার উত্তর অবশ্যই সঠিক; একটি ফর্ম পূরণ করতে;)
রাফেল ডিজিটাল পিয়ানিজমে

আপনাকে এটিকে নির্দেশ করার জন্য আপনাকে ধন্যবাদ, তবে এই মুহুর্তে আমি প্রশ্নটি লিখেছিলাম আমি উত্তরটি জানি না ^^
বিপিউইস

@ বিপুইস হাহা ঠিক আছে your আপনার উত্তরটি দ্রুত হওয়ায় আমি অনুমান করেছি যে আপনি এটি জানেন। ;)
ডিজিটাল পিয়ানিজমে

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

তবে এটি স্ট্যান্ডার্ড ফাংশন নয়।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.