Jump to content
Sign in to follow this  
shankara

Изменение названий статусов наличия у товаров

Recommended Posts

Подскажите, как можно поменять статусы у всех товаров?

Пример - http://fishekb.ru/udochka-zhibo-nest-3-5m-b-k-2343352-a10-4b/

Здесь под ценой есть поле Наличие, стоит В наличии, а хотелось бы поменять на доступно к заказу

http://fishekb.ru/udochka-stinger-rivercross-4-0m-s-k/

Здесь под ценой есть поле Наличие, стоит Нет в наличии, а хотелось бы поменять на Предзаказ

 

Логика работы должна быть такой: если у товара кол-во > 0 то статус товара "Доступно к заказу", если < 0 то "Предзаказ"

Share this post


Link to post
Share on other sites

Поставить дополнительное условие в контроллере продукта и по этому условию работать с кнопкой "предзаказ" и так далее. могу реализовать если интересно. 

Share this post


Link to post
Share on other sites

Разве нет такого функционала из коробки? Или может уже есть готовый модуль для изменения логики и статусов?

Share this post


Link to post
Share on other sites
9 минут назад, shankara сказал:

Подскажите, как можно поменять статусы у всех товаров?

 

Здесь под ценой есть поле Наличие, стоит В наличии, а хотелось бы поменять на доступно к заказу

 

Здесь под ценой есть поле Наличие, стоит Нет в наличии, а хотелось бы поменять на Предзаказ

 

Логика работы должна быть такой: если у товара кол-во > 0 то статус товара "Доступно к заказу", если < 0 то "Предзаказ"

 

Самый простой вариант - переименовать в файле локализации (catalog/language/russian/product/product.php) название статуса "В наличии" на "Доступно к заказу" и выставить всем товарам состояние при отсутствии на складе "Предзаказ".

Share this post


Link to post
Share on other sites

shankara, из коробки точно нет, модули есть, поищите "Предзаказ Opencart". Но могут не подойти под ваши требования

Share this post


Link to post
Share on other sites

SiteMix, Возможно ему нужна ещё и кнопка "предзаказ" которая будет уведомлять ИМ. Дальше может быть ему нужно будет отсылать потенциальным покупателям уведомление о том, что товар появился.

Share this post


Link to post
Share on other sites

У меня уже стоит модуль Предзаказ который идет вместе с моим шаблоном, там меняется кнопка Купить на Предзаказ, но статусы исп-ся стандартные.

 

 

Share this post


Link to post
Share on other sites

shankara, версия ? я напишу вам что исправить и где для статуса как вы хотите

Share this post


Link to post
Share on other sites
52 минуты назад, bodyau сказал:

shankara, версия ? я напишу вам что исправить и где для статуса как вы хотите

Opencart 2.1.0.2 (rs.1)

Share this post


Link to post
Share on other sites

путь catalog/controller/product/product.php находите там примерно такой кусок кода

 

if ($product_info['quantity'] <= 0) {
                $data['stock'] = $product_info['stock_status'];
            } elseif ($this->config->get('config_stock_display')) {
                $data['stock'] = $product_info['quantity'];
            } else {
                $data['stock'] = $this->language->get('text_instock');
            }

и меняете на

if ($product_info['quantity'] <= 0) {
                $data['stock'] = "Предзаказ";
            }  else {
                $data['stock'] = "Доступно к заказу";
            }

 

Share this post


Link to post
Share on other sites

Чорд! Где-то я такое видел! У одного заказчика после очередного обновления шаблона, входящий в его состав модификатор убивал страницу с товаром. Если уж давать такие рекомендации, то в виде OCMOD, дабы потом не пришлось гадать из-за чего страница не грузится.

 

shankara, а предложенный выше вариант чем не устроил?

Share this post


Link to post
Share on other sites
18 часов назад, SiteMix сказал:

Чорд! Где-то я такое видел! У одного заказчика после очередного обновления шаблона, входящий в его состав модификатор убивал страницу с товаром. Если уж давать такие рекомендации, то в виде OCMOD, дабы потом не пришлось гадать из-за чего страница не грузится.

 

shankara, а предложенный выше вариант чем не устроил?

Как раз сейчас и попробую сделать....но без ocmod придется каждый раз при обновлении шаблона добавлять этот код..

Share this post


Link to post
Share on other sites
19 часов назад, bodyau сказал:

путь catalog/controller/product/product.php находите там примерно такой кусок кода

 

if ($product_info['quantity'] <= 0) {
                $data['stock'] = $product_info['stock_status'];
            } elseif ($this->config->get('config_stock_display')) {
                $data['stock'] = $product_info['quantity'];
            } else {
                $data['stock'] = $this->language->get('text_instock');
            }

и меняете на

if ($product_info['quantity'] <= 0) {
                $data['stock'] = "Предзаказ";
            }  else {
                $data['stock'] = "Доступно к заказу";
            }

 

Поменял в коде, никаких изменений..

Share this post


Link to post
Share on other sites

В данном случае при обновлении шаблона ничего не произойдёт, если только шаблон не Shop-Store. У того есть модификатор который ищет данный код.

Но использование модификатора упростит поиск проблемы в случае чего. Достаточно отключить модификатор и понять, что проблема в нём.

 

Однако, в данной ситуации вообще не нужны никакие правки, ведь достаточно переименовать один дефолтный статус в файле локализации и заменить у всех товаров статус при отсутсвии на складе запросом sql.

Share this post


Link to post
Share on other sites
55 минут назад, SiteMix сказал:

В данном случае при обновлении шаблона ничего не произойдёт, если только шаблон не Shop-Store. У того есть модификатор который ищет данный код.

Но использование модификатора упростит поиск проблемы в случае чего. Достаточно отключить модификатор и понять, что проблема в нём.

 

Однако, в данной ситуации вообще не нужны никакие правки, ведь достаточно переименовать один дефолтный статус в файле локализации и заменить у всех товаров статус при отсутсвии на складе запросом sql.

У меня как раз шаблон Shop Store. В файле локализации менял названия статусов, с помощью модуля Автоматической обработки прайс листов изменил для всех товаров <0 статус на Предзаказ, почистил кэш шаблона и ничего не произошло)

Share this post


Link to post
Share on other sites
7 минут назад, shankara сказал:

В файле локализации менял названия статусов

Нужно было поменять только одну строку:

$_['text_instock']                            = 'На складе';

на

$_['text_instock']                            = ' Доступно к заказу ';

Возможно файлы локализации модифицируются, поэтому после правки нужно обновить кэш модификаторов. Уже после этого при наличии товара статус должен измениться. То есть, половина задачи выполнена.

 

Дальше. Если статусы были изменены модулем, на всякий случай  нужно убедиться, что они действительно изменились. Если нет, то хотя бы у одного товара с количеством 0 поменять в свойствах и проверить всё ли получилось.

 

Share this post


Link to post
Share on other sites

shankara, Обновите кэш модификаторов. другой причины не может и быть!

Share this post


Link to post
Share on other sites

В файле локализации поправил текст для статуса "в Наличии", обновил кэш модификаторов. По прежнему ничего не меняется. В админке в товаре статус отсутствия на складе стоит  - Предзаказ, но на морде все еще показывается Нет в Наличии (пример, http://fishekb.ru/spinning-norstream-kando-902mh-10-38g/)

По товарам в наличии статус поменялся, но есть одна загвоздка, если товара мало, статус - Заканчивается, а хотелось бы чтобы, не важно, сколько товаров, всегда был статус Доступно к заказу.

Share this post


Link to post
Share on other sites
17 часов назад, bodyau сказал:

shankara, Обновите кэш модификаторов. другой причины не может и быть!

помогло, но частично)

Share this post


Link to post
Share on other sites

это как понять?)

 

Share this post


Link to post
Share on other sites
4 часа назад, bodyau сказал:

это как понять?)

 

прочитайте выше мое сообщение

Share this post


Link to post
Share on other sites

Добрый день интересует такой вариант. Товар с положительным значением >0, что давал статус как есть  в наличии так и уточнить у менеджера. Сейчас только "есть в наличии" при положительном остатке

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
You are posting as a guest. If you have an account, please sign in.
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.

×

Important Information

On our site, cookies are used and personal data is processed to improve the user interface. To find out what and what personal data we are processing, please go to the link. If you click "I agree," it means that you understand and accept all the conditions specified in this Privacy Notice.