Magento2 查询msi每个网站下产品的可售数量情况|get msi product saleable quantity Magento


示例:

<?php
/**
 * @Author       秋枫雁飞
 * @Email        aiweline@qq.com/1714255949@qq.com
 * @Desc         文件由Aiweline(秋枫雁飞)编写,若有升级需要
 *               建议不要随意修改文件源码。
 **/
namespace Aiweline\Core\Service\Magento\Catalog;
use Magento\Framework\Exception\InputException;
use Magento\Framework\Exception\LocalizedException;
use Magento\Framework\Exception\NoSuchEntityException;
use Magento\InventorySalesApi\Api\Data\SalesChannelInterface;
class ProductService
{
    private \Magento\InventorySalesApi\Api\GetProductSalableQtyInterface $getProductSalableQtyInterface;
    private \Magento\InventorySalesApi\Api\StockResolverInterface $stockResolverInterface;
    private \Magento\Store\Model\StoreManagerInterface $storeManager;
    function __construct(
        \Magento\Store\Model\StoreManagerInterface $storeManager,
        \Magento\InventorySalesApi\Api\GetProductSalableQtyInterface $getProductSalableQtyInterface,
        \Magento\InventorySalesApi\Api\StockResolverInterface $stockResolverInterface
    )
    {
        $this->getProductSalableQtyInterface = $getProductSalableQtyInterface;
        $this->stockResolverInterface = $stockResolverInterface;
        $this->storeManager = $storeManager;
    }
    /**
     * @Desc         | 获得产品可售数
     * @param \Magento\Catalog\Model\Product $product
     * @return float
     */
    function getCurrentWebsiteStockSaleableQty(\Magento\Catalog\Model\Product $product)
    {
        try {
            return $this->getProductSalableQtyInterface->execute($product->getSku(), $this->getStockId());
        } catch (InputException $e) {
        } catch (NoSuchEntityException $e) {
        } catch (LocalizedException $e) {
        }
        return 0;
    }
    /**
     * @Desc         | 获得仓库ID
     * @return int|null
     * @throws \Magento\Framework\Exception\LocalizedException
     * @throws \Magento\Framework\Exception\NoSuchEntityException
     */
    function getStockId()
    {
        return $this->stockResolverInterface->execute(SalesChannelInterface::TYPE_WEBSITE, $this->storeManager->getWebsite()->getCode())->getStockId();
    }
}



微蓝网际编程论坛- 版权声明 1、本主题所有言论和图片纯属会员个人意见,与微蓝网际编程论坛立场无关。
2、本站所有主题由该帖子作者发表,该帖子作者admin微蓝网际编程论坛享有帖子相关版权。
3、微蓝网际编程论坛管理员和版主有权不事先通知发贴者而删除本文。
4、其他单位或个人使用、转载或引用本文时必须同时征得该帖子作者admin微蓝网际编程论坛的同意。
5、帖子作者须承担一切因本文发表而直接或间接导致的民事或刑事法律责任。
6、本帖部分内容转载自其它媒体,但并不代表本站赞同其观点和对其真实性负责。
7、如本帖侵犯到任何版权问题,请立即告知本站,本站将及时予与删除并致以最深的歉意。


上一篇:Magento2 过滤排除无库存产品集合collection|排除库存为零的产品集合|filter in stock product collection
下一篇:Magento2 排除无库存状态的产品集合collection|checkout is out of stock product collection|stock_status
快速回复
站长:秋枫雁飞 AI微蓝网管理员!有问题请发消息给我!
最新回复 (0)
只看楼主
全部楼主
    • 微蓝网际编程论坛
      2
          
返回
免责声明:本站部分内容来源于网络,若有侵权请及时通知(aiweline@qq.com),我们会及时处理。