Stokta olmayan ürünler hala ön uçta, aramada ve diğerlerinde görünüyor - Magento 2.1.0


12

Magento 2.1.0 kurulumumda bir sorun olduğunu görüyorum! Stok ve ürünleri arama ve kategori sayfalarından gizlemeyi reddediyor ! Önbelleği temizledim, yeniden indeksledim, ama şans yok!

Bana tavsiye verebilir misin?

Ürünlerim stok 0 ile, ancak önde stokta görünüyorlar ve sipariş ettiğinizde size bu hatayı veriyor:

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

Teşekkürler

Daha sonra düzenleme:

Bu bilgiyi de biliyorum:

Yönetici olarak ayarla> Mağazalar> Yapılandırma> Katalog> Envanter> Stok Seçenekleri> Stoktaki Ürünleri YOK olarak görüntüle

Bu aslında Magento'nun bir özelliğidir. Stokta olmayan ürünleri göster seçeneğini Hayır olarak ayarlamak, onları yalnızca kategori listesi sayfalarından ve arama sonuçları sayfasından gizler. Ürün sayfası aslında hala kullanılabilir. CE 1.9.1'den başlayarak, yapılandırma ayarının altında bir mesaj bile var Stokta bulunmayan ürünleri göster, Ürünler hala doğrudan ürün URL'leri tarafından gösterilecektir. Ve bu aslında iyi bir şey. Bu şekilde, arama motorları ürünleriniz tükendiğinde çok fazla 404 sayfa kaydetmez. Böyle bırakmanın zararını görmüyorum. Müşteri yine de sipariş veremez. Bir ürünün mağazanızda hiç bulunmamasını istiyorsanız, ürünü devre dışı olarak işaretlemeniz veya görünürlüğünü Tek tek görünmez olarak ayarlamanız veya yönetici ürün düzenleme sayfasındaki web siteleri sekmesinden web siteleriyle ilişkisini kaldırmanız gerekir. Kaynak:Stokta olmayan ürünler hala ön uçta görünüyor


Ben de aynı sorunla karşı karşıyayım. Arka uç yapılandırmasını değiştirdikten sonra bile, hala bununla karşı karşıyayım. Çözümü bulduysanız, lütfen bana bildirin.
sabarivenkatesankrish

Hala bu sorunu yaşıyor musunuz? Özel tema kullanıyor musunuz? Sanırım muhtemelen sorunun kökü olabilir.
Fred Orosko Dias

Yanıtlar:


7

Yönetici> Mağazalar> yapılandırma> Katalog> Envanter> Stok Seçenekleri'ne gidin

Set Stok Ürünlerinin Görüntü Çıkışı için NO

resim açıklamasını buraya girin


3
Bunu zaten yaptım! Hala değişiklik yok!
edgetwism

2

"0'ın Altındaki Miktarlara İzin Ver ve Müşteriyi Bildir" ayarlanan "Sınırlar" nedeniyle aynı sorunla (Magento v2.1.9) karşılaşıyordum

Yönetici> Mağazalar> yapılandırma> Katalog> Envanter> Stok Seçenekleri "Stokta Yok Ürünler" Göstergesini HAYIR olarak ayarla


Yönetici> Mağazalar> yapılandırma> Katalog> Envanter> Ürün Stok Seçenekleri Kenarlıkları "Sınır Yok" olarak ayarlayın

Not: Tüm kataloğun işlenmesi nedeniyle değiştirilmesi biraz zaman alabilir.

resim açıklamasını buraya girin


0

Yükseltme command.I sayılı için Evet değişen aşağıdaki seçeneğini kullanarak sıralama dışarı komutları ve sorgu çalıştırabilir ama hiçbir luck.I çalıştı sonra benim yan, bu gerçekleşti 2.2.3.On aynı sorun var Stores => Configuration => Catalog=> Catalog =>Disable Add to cart button for Guests From Yes to No.Hope Bu irade yardım birisi .Teşekkürler resim açıklamasını buraya girin


Varsayılan olarak böyle bir seçenek yoktur.
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

Çözüm bulundu!

Kataloğa filtre koy: Miktar: 0.0000 - 0.0000!

Sonra hepsini seçin, eylem> özellikleri güncelle> gelişmiş envanter> Stok Durumu (tıklama değişikliği)> Stokta yok> kaydet sonra yeniden endeksleyin ve ürünler kayboldu :)


Ve yapılandırılabilir ürünler için?
Franck Garnier

-3

ad alanı satıcısı \ modül \ Yardımcı;

sınıf Verileri \ 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;
}

}

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.