Các sản phẩm hết hàng vẫn xuất hiện ở lối vào, tìm kiếm và các sản phẩm khác - Magento 2.1.0


12

Tôi thấy rằng việc cài đặt magento 2.1.0 của tôi có vấn đề! Từ chối ẩn sản phẩm chứng khoán khỏi các trang tìm kiếm và danh mục! Tôi xóa bộ nhớ cache, tôi reindexed, nhưng không có may mắn!

Bạn có thể cho tôi lời khuyên nào không?

Các sản phẩm của tôi có cổ phiếu 0, nhưng ở phía trước chúng xuất hiện trong kho và khi bạn đặt hàng, nó sẽ báo lỗi cho bạn:

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

Cảm ơn

Chỉnh sửa sau:

Tôi cũng biết thông tin này:

Đặt trong quản trị> Cửa hàng> cấu hình> Danh mục> Khoảng không quảng cáo> Tùy chọn chứng khoán> Hiển thị hết sản phẩm thành KHÔNG

Đây thực sự là một tính năng của Magento. Cài đặt Hiển thị ngoài sản phẩm chứng khoán thành Không chỉ ẩn chúng khỏi các trang danh sách danh mục và trang kết quả tìm kiếm. Các trang sản phẩm thực sự vẫn còn có sẵn. Bắt đầu với CE 1.9.1 thậm chí còn có một thông báo trong cài đặt cấu hình Hiển thị các sản phẩm chứng khoán cho biết Sản phẩm sẽ vẫn được hiển thị bằng URL sản phẩm trực tiếp .. Và đây thực sự là một điều tốt. Bằng cách này, các công cụ tìm kiếm không đăng ký nhiều trang 404 khi sản phẩm của bạn hết hàng. Tôi không thấy tác hại của việc để nó như thế. Khách hàng không thể đặt hàng chúng nào. Nếu bạn muốn một sản phẩm hoàn toàn không có sẵn trong cửa hàng của bạn, bạn phải đánh dấu nó là bị vô hiệu hóa hoặc đặt chế độ hiển thị thành Không thể hiển thị riêng lẻ hoặc xóa liên kết của nó với các trang web từ tab trang web trên trang chỉnh sửa sản phẩm quản trị viên. Nguồn:Hết sản phẩm vẫn xuất hiện ở frontend


Tôi cũng đang phải đối mặt với cùng một vấn đề. Ngay cả sau khi thay đổi cấu hình phụ trợ, tôi vẫn phải đối mặt với điều này. Nếu bạn tìm thấy giải pháp, xin vui lòng cho tôi biết.
sabarivenkatesankrish

Các bạn vẫn gặp vấn đề này? Bạn đang sử dụng chủ đề tùy chỉnh? Tôi nghĩ rằng nó có thể là gốc rễ của vấn đề.
Fred Orosko Dias

Câu trả lời:


7

Chuyển đến quản trị viên> Cửa hàng> cấu hình> Danh mục> Hàng tồn kho> Tùy chọn chứng khoán

Đặt Hiển thị Hết sản phẩm thành KHÔNG

nhập mô tả hình ảnh ở đây


3
Đã làm điều đó! Vẫn không thay đổi!
edgetwism

2

Tôi đã phải đối mặt với cùng một vấn đề chính xác (Magento v2.1.9) do "Backences", được đặt "Cho phép số lượng dưới 0 và thông báo cho khách hàng"

Chuyển đến quản trị viên> Cửa hàng> cấu hình> Danh mục> Khoảng không quảng cáo> Tùy chọn chứng khoán Đặt Hiển thị "Hết sản phẩm" thành KHÔNG


Chuyển đến quản trị viên> Cửa hàng> cấu hình> Danh mục> Khoảng không quảng cáo> Tùy chọn cổ phiếu sản phẩm Đặt Backaries thành "Không có đường viền"

Lưu ý: Việc thay đổi có thể mất một thời gian do xử lý toàn bộ danh mục.

nhập mô tả hình ảnh ở đây


0
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;
    }

}

0

Tôi có cùng một vấn đề trên 2.2.3. Về phía tôi, nó đã xảy ra sau lệnh nâng cấp. Tôi đã thử các lệnh và chạy các truy vấn nhưng không may mắn. Tôi sắp xếp nó bằng cách sử dụng thay đổi tùy chọn sau từ Có thành Số. Stores => Configuration => Catalog=> Catalog =>Disable Add to cart button for Guests From Yes to NoHy vọng điều này sẽ giúp ai đó .Cảm ơn nhập mô tả hình ảnh ở đây


Theo mặc định không có tùy chọn như vậy.
Priyank

-2

nhà cung cấp không gian tên \ module \ Helper;

lớp Dữ liệu mở rộng \ 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;
}

}


-3

Tìm thấy giải pháp!

Đặt một bộ lọc trong danh mục: Số lượng: 0,0000 - 0,0000!

Sau đó chọn tất cả, hành động> cập nhật các thuộc tính> hàng tồn kho nâng cao> Tính khả dụng của kho (nhấp vào thay đổi)> Chọn hết hàng> lưu sau đó reindex và các sản phẩm đã biến mất :)


Và cho các sản phẩm cấu hình?
Franck Garnier
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.