Ответить Новая тема Новый опрос 
 Закрыть товар на сайте
akres
Cпециалист
Сообщений: 145
Регистрация: 01-10-2012


20-08-2014 17:25
Добр день!
Скажите пожалуйста наверняка владельцы магазинов сталкивались с проблемой что страница товара проиндексировано, а поставщик перестал его поставлять.
Т.е. показывать этот товара посетителям сайта при фильтрации, поиске или в категориях смысла нет, а удалять или закрывать страницу не очень хорошо (поисковики обидеться, да и +1 шанс что зайдет клиент по поиску и позвонит спросит).
Как решали эту задачу? Кто может помочь?
 
Вне форума
ПМ Отправить эл.сообщение 
Щелкните, и это сообщение будет добавлено в ваш ответ как цитата Цитировать этот ответ
pav31


Профессионал
Сообщений: 418
Откуда: Киев
Регистрация: 28-09-2011


20-08-2014 19:41
Установить количество в 0 - нет на складе.
Товара нет, страница есть, все довольны. Можно даже уведомление сделать когда товар появится.
 
Вне форума
ПМ 
Щелкните, и это сообщение будет добавлено в ваш ответ как цитата Цитировать этот ответ
akres
Cпециалист
Сообщений: 145
Регистрация: 01-10-2012


20-08-2014 20:17
1.Товар есть. Он будет присутствовать при выдаче по запросам(Фильтры и поиск на сайте) и будет раздражать
2.у меня количество 0 уже занято! Использую эту фишку,как товар "под заказ".
 
Вне форума
ПМ Отправить эл.сообщение 
Щелкните, и это сообщение будет добавлено в ваш ответ как цитата Цитировать этот ответ
Алекс


Администратор
Сообщений: 4516
Откуда: Красноярск
Регистрация: 29-05-2009


22-08-2014 14:36
Если включен модуль фильтрации:
Открыть /modules/blocklayered/blocklayered.php
перед:
Код:
AND p.id_product IN ('.implode(',', $product_id_list).')

добавить:
Код:
AND stock.quantity > 0

иначе открыть файл /classes/Category.php и после:
Код:
AND cp.`id_category` = '.(int)$this->id

добавить:
Код:
.' AND stock.quantity > 0'


Поиск:
открыть /classes/poisk.html и после:
Код:
WHERE p.`id_product` '.$product_pool.'

добавить:
Код:
AND stock.quantity > 0

и ниже:
Код:
$sql = 'SELECT COUNT(*)
                FROM '._DB_PREFIX_.'product p
                '.Shop::addSqlAssociation('product', 'p').'
                INNER JOIN `'._DB_PREFIX_.'product_lang` pl ON (
                    p.`id_product` = pl.`id_product`
                    AND pl.`id_lang` = '.(int)$id_lang.Shop::addSqlRestrictionOnLang('pl').'
                )
                LEFT JOIN `'._DB_PREFIX_.'manufacturer` m ON m.`id_manufacturer` = p.`id_manufacturer`
                WHERE p.`id_product` '.$product_pool;


заменить на:
Код:
$sql = 'SELECT COUNT(*)
                FROM '._DB_PREFIX_.'product p
                '.Shop::addSqlAssociation('product', 'p').'
                INNER JOIN `'._DB_PREFIX_.'product_lang` pl ON (
                    p.`id_product` = pl.`id_product`
                    AND pl.`id_lang` = '.(int)$id_lang.Shop::addSqlRestrictionOnLang('pl').'
                )
LEFT JOIN `'._DB_PREFIX_.'manufacturer` m ON m.`id_manufacturer` = p.`id_manufacturer`
LEFT JOIN `'._DB_PREFIX_.'product_attribute` pa    ON (p.`id_product` = pa.`id_product`)
'.Shop::addSqlAssociation('product_attribute', 'pa', false, 'product_attribute_shop.`default_on` = 1').'
'.Product::sqlStock('p', 'product_attribute_shop', false, $context->shop).'
                WHERE p.`id_product` '.$product_pool.'
AND stock.quantity > 0';
 
Вне форума
ПМ Отправить эл.сообщение 
Щелкните, и это сообщение будет добавлено в ваш ответ как цитата Цитировать этот ответ
Ответить Новая тема Новый опрос