缺货的产品仍然出现在前端,搜索等中-Magento 2.1.0


12

我看到我的magento 2.1.0安装有问题!拒绝从搜索和类别页面隐藏缺货的产品!我清除了缓存,重新索引了,但是没有运气!

你能给我什么建议吗?

我的产品的库存为0,但在前面它们出现在库存中,当您订购它们时,会出现以下错误:

We don't have as many "Item's name" as you requested.

谢谢

以后编辑:

我也知道以下信息:

在管理>商店>配置>目录>库存>库存选项>缺货商品中显示为

这实际上是Magento的功能。将显示缺货的产品设置为否,只会将它们从类别列表页面和搜索结果页面隐藏。产品页面实际上仍然可用。从CE 1.9.1开始,甚至在配置设置下还会显示一条消息,显示缺货产品,仍然会通过直接的产品URL显示产品。这实际上是一件好事。这样,当您的产品缺货时,搜索引擎不会注册很多404页。我看不出那样留下的危害。客户仍然无法订购它们。如果您希望产品在商店中完全不可用,则必须将其标记为已禁用,或者将其可见性设置为“不可见”,或者从管理产品编辑页面上“网站”标签中删除其与网站的关联。资源:缺货的产品仍然出现在前端


我也面临着同样的问题。即使更改了后端配置,我仍然面临着这个问题。如果您找到了解决方案,请告诉我。
sabarivenkatesankrish

你们还在遇到这个问题吗?您正在使用自定义主题吗?我认为这可能是问题的根源。
Fred Orosko Dias

Answers:


7

转到管理员>商店>配置>目录>库存>库存选项

“缺货显示”设置为“ 否”

在此处输入图片说明


3
已经做到了!还是没有变化!
edgetwism

2

由于“待办订单”,我遇到了完全相同的问题(Magento v2.1.9),该问题被设置为“允许数量低于0并通知客户”

转到管理员>商店>配置>目录>库存>库存选项,将“缺货产品”显示设置为“否”


转到管理员>商店>配置>目录>库存>产品库存选项,将补货设置为“无补货”

注意:由于要处理整个目录,因此更改可能需要一些时间。

在此处输入图片说明


0

我有2.2.3.On同样的问题我的身边,它发生在升级后command.I试图命令并运行查询,但没有luck.I排序它利用是改变以下选项设置为否Stores => Configuration => Catalog=> Catalog =>Disable Add to cart button for Guests From Yes to No。希望这会帮助别人。谢谢 在此处输入图片说明


默认情况下,没有此类选项。
Priyank

-1
namespace vendor\module\Block\Product;

class ListProduct extends \Magento\Catalog\Block\Product\ListProduct{

    protected function _getProductCollection(){
        $collection = parent::_getProductCollection();
        $objectManager = \Magento\Framework\App\ObjectManager::getInstance();
        $productIds = $objectManager->create('\vendor\module\Helper\Data')->getIdsToLastStock($collection->getAllIds());
        $orderString = array('CASE e.entity_id');
        foreach($productIds as $i => $productId) {
            $orderString[] = 'WHEN '.$productId.' THEN '.$i;
        }
        $orderString[] = 'END';
        $orderString = implode(' ', $orderString);
        $collection->addAttributeToFilter('entity_id', array('in' => $productIds));
        $collection->getSelect()->order(new \Zend_Db_Expr($orderString));
        return $collection;
    }

}

-3

找到了解决方案!

在目录中放入过滤器:数量:0.0000-0.0000!

然后全选,操作>更新属性>高级库存>库存可用性(单击更改)>选择缺货>保存,然后重新索引,产品消失了:)


对于可配置产品?
Franck Garnier

-3

命名空间vendor \ module \ Helper;

类数据扩展\ Magento \ Framework \ App \ Helper \ AbstractHelper {

protected $_stockItemRepository;
protected $_scopeConfig;
protected $_storeScope;

public function __construct(\Magento\CatalogInventory\Model\Stock\StockItemRepository $_stockItemRepository, \Magento\Framework\App\Config\ScopeConfigInterface $scopeConfig)
{
    $this->_stockItemRepository = $_stockItemRepository;
    $this->_scopeConfig = $scopeConfig;
    $this->_storeScope = \Magento\Store\Model\ScopeInterface::SCOPE_STORE;
}


public function getIdsToLastStock($ids){
    if($this->_scopeConfig->getValue('module/vendor_module/active',$this->_storeScope)==1) {
        $products = array();
        $productIds = array();
        foreach ($ids as $id) {
            try {
                $stockItem = $this->_stockItemRepository->get($id);
                $products[] = array('id' => $id, 'stock' => $this->checkIfAvailableInStock($stockItem));
            } catch (\Exception $ex) {
                $products[] = array('id' => $id, 'stock' => 0);
            }
        }

        if (count($products) > 0) {
            foreach ($products as $id => $value) {
                $names[$id] = $value['stock'];
            }
            $keys = array_keys($products);
            array_multisort(
                $names, SORT_ASC, SORT_NUMERIC, $products, $keys
            );
            $result = array_combine($keys, $products);
            foreach ($result as $product) {
                $productIds[] = intval($product['id']);
            }
            return $productIds;
        } else {
            return $ids;
        }
    }
    return $ids;
}


private function checkIfAvailableInStock($item){
    if($item->getIsInStock()){
        if($item->getQty()>0)
            return 0;
    }
    return 1;
}

}

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.