Magento验证产品是否存在

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Magento验证产品是否存在相关的知识,希望对你有一定的参考价值。

有一种方法可以验证产品是否存在或者是否由产品ID创建

例如

$_prodId  = $this->getProduct()->getId();

    if (function_exists($_prodId))

谢谢

答案

您可以验证如下。

$_prodId  = $this->getProduct()->getId();
$_product = Mage::getModel('catalog/product')->load($_prodId);
if($_product)

  //product exists

else

 //product doesn't exist

另一答案

发布的另一个答案是对资源非常强硬,更好的方法是对数据库进行简单查询,你可以这样做

$sku = Mage::getResourceSingleton('catalog/product')->getProductsSku(array($_prodId));
if(!empty($sku))
    //do your thang

当你有ID时,这个函数用于获取sku,但是我们可以在这里使用它,如果产品不存在,它将返回一个空数组:

array(0) 

如果它退出,它将返回一个带有id和sku的数组

array(1) 
[0]=>
    array(2) 
       ["entity_id"]=>
        string(6) "185566"
       ["sku"]=>
        string(9) "ID-136308"
    

我们甚至可以用它同时做任何产品。

如果我们看一下核心方法的定义

   public function getProductsSku(array $productIds)
   
       $select = $this->_getReadAdapter()->select()
           ->from($this->getTable('catalog/product'), array('entity_id', 'sku'))
           ->where('entity_id IN (?)', $productIds);
       return $this->_getReadAdapter()->fetchAll($select);
   

非常简单,比装载产品模型轻得多

另一答案

您可以使用此代码检查产品Sku是否存在。

在构造函数中包含此类。

\Magento\Framework\Api\SearchCriteriaBuilder $searchCriteriaBuilder;
\Magento\Catalog\Model\ProductRepository $_productRepository

在需要条件的地方添加以下逻辑。

$productSku = "*Your_Product_Sku*";
$searchCriteria = $this->searchCriteriaBuilder->addFilter("sku", $productSku,'eq')->create();
$products = $this->_productRepository->getList($searchCriteria);
$Items = $products->getItems();

if (count($Items) == 0) 
    //your message here.

以上是关于Magento验证产品是否存在的主要内容,如果未能解决你的问题,请参考以下文章

是否可以从另一个网站将产品添加到 Magento 购物车,而产品不在 magento 商店中

Magento 1.5.1:导入产品时出现“图像不存在”

Magento API:将预先存在的简单产品分配给可配置产品

Magento - 按属性分类产品

Magento 2.4.3 产品未显示在订单确认邮件中

Magento 产品出口问题 1.9.3.6