Продукція, що не є на складі, все ще з'являється у передній частині, пошуку та інших - 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

Ви все ще відчуваєте це питання? Ви використовуєте власну тему? Я думаю, що це, ймовірно, може бути корінь проблеми.
Фред Оросько Діас

Відповіді:


7

Перейдіть до адміністратора> Магазини> конфігурація> Каталог> Інвентар> Опції запасів

Встановіть дисплей з товарних товарів на НІ

введіть тут опис зображення


3
Вже зробив це! Все одно ніяких змін!
edgetwism

2

Я зіткнувся з точно такою ж проблемою (Magento v2.1.9) через "Назад", який був встановлений "Дозволити кількість нижче 0 та повідомити клієнта"

Перейдіть до адміністратора> Магазини> конфігурація> Каталог> Інвентар> Опції акцій Встановіть значення "Немає в наявності" на "НІ"


Перейдіть до адміністратора> Магазини> конфігурація> Каталог> Інвентар> Параметри товарних запасів продукту встановіть "Замовлення без"

Примітка. Зміна може зайняти деякий час через обробку всього каталогу.

введіть тут опис зображення


0

У мене така ж проблема в 2.2.3. На моїй стороні це сталося після команди оновлення. Я спробував команди та запустив запити, але не пощастило. Я розібрався, використовуючи наступний параметр з "Так" на "ні". Сподіваюся, це Stores => Configuration => Catalog=> Catalog =>Disable Add to cart button for Guests From Yes to Noдопоможе комусь .Дякую введіть тут опис зображення


За замовчуванням такої опції немає.
Приянк

-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!

Потім виберіть усе, дія> оновлення атрибутів> розширений інвентар> Наявність запасів (натисніть зміну)> Виберіть на складі> збережіть, потім повторно встановіть і продукти пішли :)


А для настроюваних продуктів?
Франк Гарньє

-3

постачальник простору імен \ модуль \ помічник;

Дані класу поширюються \ 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;
}

}

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.