Câu trả lời:
thử { $ sản phẩm = $ sản phẩm Lưu trữ -> get ( $ sku ); } Catch ( \ Magento \ Framework \ Exception \ NoSuchEntityException $ e ) { $ sản phẩm = false ; }
Thử đi:
$objectManager = \Magento\Framework\App\ObjectManager::getInstance();
$product = $objectManager->get('Magento\Catalog\Model\Product');
if($product->getIdBySku($sku)) {
echo 'exit';
}
HOẶC LÀ
protected $product;
public function __construct(
\Magento\Catalog\Model\Product $product
) {
$this->_product = $product;
}
và sau khi kiểm tra
if($this->_product->getIdBySku($sku)) {
echo 'exit';
}
Xem câu trả lời @bpoiss, câu trả lời của tôi là về cách lấy sản phẩm bằng sku.
Để làm như vậy bạn có thể sử dụng Magento\Catalog\Model\ProductRepository
lớp.
Đầu tiên tiêm nó vào constructor của bạn:
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 */
}
Sau đó, trong chức năng của bạn, bạn có thể làm:
$this->_productRepository->get($sku);
Chỉ cần phát hiện ra rằng getIdBySku
phương pháp vẫn tồn tại \Magento\Catalog\Model\Product
. Tiêm nó với
public function __construct(
\Magento\Catalog\Model\Product $productModel
) {
$this->productModel = $productModel;
}
và hơn bạn có thể kiểm tra với
$this->productModel->getIdBySku($sku)
Tôi nghĩ bạn có thể:
$checkProduct = $this->objectManager->create(
'Magento\Catalog\Model\Product'
);
if($checkProduct->getIdBySku()){
echo 'exist';
}
Nhưng nó không phải là chức năng tiêu chuẩn.