Автор Тема: cтатусы заказа  (Прочитано 2453 раз)

16 Декабрь 2014, 15:05:56
  • Фрилансер
  • *
  • Сообщений: 213
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
в статусах заказа 2 одинаковых статуса "Платеж принят" (позже переименовал в "Оплачено") У одного иконка зеленая галочка и второго вилка. В чем разница этих статусов? Смотрите картинку в приложении
престашоп 1.6.0.9
16 Декабрь 2014, 15:13:24
Ответ #1
  • Модератор
  • Ветеран
  • *****
  • Сообщений: 33325
  • Репутация: +26771/-0
    • Просмотр профиля
Это 2 одинаковых статуса. Так бывает когда устанавливаешь модули оплаты. Некоторые модули добавляют одинаковые статусы.
17 Декабрь 2014, 00:58:23
Ответ #2
  • Фрилансер
  • *
  • Сообщений: 186
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Подумал что лучше не открывать новую тему про статусы сразу после етой, поетому пишу сдесь. Скажите пожалуйста, хочу стереть ненужные мне статусы, но преста ругается и выдает ошибки. Ладно я понял что мне не можно ето сделать, но как убрать ети статусы из выпадающего меню в котором меняется стаус заказа - ведь ети статусы (ненужные мне) там только мешают?
И второй вопрос: пока редактировал статусы пропали все Email template, значит сейчас выходит что преста не будет посылать письма. Как мне добавить к моим статусам email темплейты? В настройках статуса падающее меню темплейтов у меня пустое...!?
Извините за плохой русский, я из Болгарии :)
17 Декабрь 2014, 01:09:56
Ответ #3
  • Фрилансер
  • *
  • Сообщений: 186
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
С вторым вопросом справился. Незнаю правильно или нет, но вроде работает: создал новую папку "ru"в root/mails/ и скопировал все в ней от root/mails/en и темплейты появились....
Извините за плохой русский, я из Болгарии :)
23 Декабрь 2014, 20:18:51
Ответ #4
  • Фрилансер
  • *
  • Сообщений: 186
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Подскажите пожалуйста по первому вопросу: как убрать ненужные статусы. Если их невозможно стереть, то хотя бы убрать с выпадающего меню....
Извините за плохой русский, я из Болгарии :)
23 Декабрь 2014, 20:48:14
Ответ #5
  • Ветеран
  • *****
  • Сообщений: 16670
  • Репутация: +14630/-5
  • Сообщество PrestaShop
    • Просмотр профиля
Удалить любой статус вы можете на той-же странице. Справа нажмите черный треугольник, выпадет меню, нажмите на Удалить.
23 Декабрь 2014, 20:54:20
Ответ #6
  • Фрилансер
  • *
  • Сообщений: 186
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Удалить любой статус вы можете на той-же странице. Справа нажмите черный треугольник, выпадет меню, нажмите на Удалить.

В том то и дело что неразрешает, пишет что для безопасности у меня нет прав стереть дефолтные статусы.... (посмотрите скрийшот сверху)...
Извините за плохой русский, я из Болгарии :)
23 Декабрь 2014, 21:02:51
Ответ #7
  • Ветеран
  • *****
  • Сообщений: 16670
  • Репутация: +14630/-5
  • Сообщество PrestaShop
    • Просмотр профиля
Нельзя удалить статусы действующих модулей и методов платежей. Можно удалять только те, что нигде не используются.
Если система не дает удалить статус, значит он нужен. Конечно можно удалть любой статус напрямую в базе данных, только это вызовет ошибки в работе prestashop.
Для безопасного удаления, нужно знать все связи статуса. В вашем случае, я бы не удалял ничего.
24 Декабрь 2014, 16:42:05
Ответ #8
  • Фрилансер
  • *
  • Сообщений: 186
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
А можно ли каким то образом убрать ненужные/неиспользуюмые статусы с выпадающего меню при обработке заказов?
Извините за плохой русский, я из Болгарии :)
24 Декабрь 2014, 17:05:38
Ответ #9
  • Ветеран
  • *****
  • Сообщений: 1285
  • Репутация: +13/-1
  • Сообщество PrestaShop
    • Просмотр профиля
Можно, в коде указывать исключение по ид. Только работы много, пользы мало. Статусов не так уж много, чтобы из-за 2-3 исключений код менять.   
24 Декабрь 2014, 18:45:03
Ответ #10
  • Фрилансер
  • *
  • Сообщений: 186
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Понятно, спасибо!
Извините за плохой русский, я из Болгарии :)
20 Июнь 2017, 12:59:13
Ответ #11
  • Старожил
  • ****
  • Сообщений: 259
  • Репутация: +2/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Только работы много
Не так уж и много.
в файле ..\classes\order\OrderState.php
есть такая функция (у меня версия 1.6.1.12 в других наверняка похожая):
    public static function getOrderStates($id_lang)
    {
        $cache_id = 'OrderState::getOrderStates_'.(int)$id_lang;
        if (!Cache::isStored($cache_id)) {
            $result = Db::getInstance(_PS_USE_SQL_SLAVE_)->executeS('
SELECT *
FROM `'._DB_PREFIX_.'order_state` os
LEFT JOIN `'._DB_PREFIX_.'order_state_lang` osl ON (os.`id_order_state` = osl.`id_order_state` AND osl.`id_lang` = '.(int)$id_lang.')
WHERE deleted = 0
ORDER BY `name` ASC');
            Cache::store($cache_id, $result);
            return $result;
        }
        return Cache::retrieve($cache_id);
    }
строку
WHERE deleted = 0
заменить на
WHERE deleted = 0 and (os.id_order_state IN (1,2,3))
или
WHERE deleted = 0 and !(os.id_order_state IN (1,2,3))
В первом случае показывать только статусы с id 1,2 и 3. Во втором - кроме них.
id статусов можно посмотреть в таблице ps_order_state_lang
Но это способ "топором", лучше так:
В таблицу ps_order добавить свое поле, например, is_to_show (tinyint(1)), у нужных статусов проставить 1 и тогда
WHERE deleted = 0 and is_to_show = 1
Можно, по желанию, это поле добавить на страницу настроек статусов.
Вот и все.
Цитировать
пользы мало
Пользы как раз очень много - когда у менеджера перед глазами список из 20-30 статусов, из которых реально нужно только 5, то ошибки неизбежны.
20 Июнь 2017, 15:19:33
Ответ #12
  • Ветеран
  • *****
  • Сообщений: 1285
  • Репутация: +13/-1
  • Сообщество PrestaShop
    • Просмотр профиля
Способ "топором" пропадет после первого обновления. При смене статусов заказа, что делают многие платежные модули, нужно снова лезть в код. Пользы от такой работы ноль.
20 Июнь 2017, 15:23:23
Ответ #13
  • Старожил
  • ****
  • Сообщений: 259
  • Репутация: +2/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Способ "топором" пропадет после первого обновления.
Это вопрос уже другого уровня, для тех, кто по вторникам и субботам обновляется и добавляет модули оплаты можно сделать override.
20 Июнь 2017, 16:05:19
Ответ #14
  • Ветеран
  • *****
  • Сообщений: 3419
  • Репутация: +79/-6
  • Сообщество PrestaShop
    • Просмотр профиля
Способ "топором" пропадет после первого обновления.
Это вопрос уже другого уровня, для тех, кто по вторникам и субботам обновляется и добавляет модули оплаты можно сделать override.
+++
Покажу заказчику, пусть отдыхает по субботам, а то требует оверайдить  :)