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 商店中