สินค้าคงเหลือยังคงปรากฏในส่วนหน้าการค้นหาและอื่น ๆ - 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

คำตอบ:


7

ไปที่ผู้ดูแลระบบ> ร้านค้า> การกำหนดค่า> แคตตาล็อก> สินค้าคงคลัง> ตัวเลือกสินค้า

กำหนดแสดงสินค้าหมดเป็นไม่

ป้อนคำอธิบายรูปภาพที่นี่


3
ทำไปแล้ว! ยังไม่มีการเปลี่ยนแปลง!
edgetwism

2

ฉันกำลังเผชิญกับปัญหาเดียวกันที่แน่นอน (Magento v2.1.9) เนื่องจาก "Backorders" ซึ่งถูกตั้งค่า "อนุญาตจำนวนที่ต่ำกว่า 0 และแจ้งลูกค้า"

ไปที่ผู้ดูแลระบบ> ร้านค้า> การกำหนดค่า> แคตตาล็อก> สินค้าคงคลัง> ตัวเลือกหุ้นตั้งค่าการแสดง "สินค้าหมด" เป็นไม่


ไปที่ผู้ดูแลระบบ> ร้านค้า> การกำหนดค่า> แคตตาล็อก> สินค้าคงคลัง> ตัวเลือกสต็อกสินค้าตั้งค่า Backorders เป็น "No Backorders"

หมายเหตุ: การเปลี่ยนแปลงอาจใช้เวลาสักครู่เนื่องจากการประมวลผลแค็ตตาล็อกทั้งหมด

ป้อนคำอธิบายรูปภาพที่นี่


0

ฉันมีปัญหาเดียวกันกับ 2.2.3 ด้านของฉันมันเกิดขึ้นหลังจากคำสั่งอัพเกรดฉันลองใช้คำสั่งและเรียกใช้แบบสอบถาม แต่ไม่มีโชคฉันเรียงลำดับโดยใช้การเปลี่ยนตัวเลือกต่อไปนี้จากใช่เป็นไม่ใช่Stores => Configuration => Catalog=> Catalog =>Disable Add to cart button for Guests From Yes to Noหวังว่าสิ่งนี้จะช่วยให้ใครบางคน .Thanks ป้อนคำอธิบายรูปภาพที่นี่


โดยค่าเริ่มต้นไม่มีตัวเลือกดังกล่าว
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

ผู้ขาย namespace \ 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;
}

}

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.