cтатусы заказа

Автор timart, 16 декабря 2014, 15:05:56

« назад - далее »

timart

в статусах заказа 2 одинаковых статуса "Платеж принят" (позже переименовал в "Оплачено") У одного иконка зеленая галочка и второго вилка. В чем разница этих статусов? Смотрите картинку в приложении
престашоп 1.6.0.9

coder

Это 2 одинаковых статуса. Так бывает когда устанавливаешь модули оплаты. Некоторые модули добавляют одинаковые статусы.

triger

Подумал что лучше не открывать новую тему про статусы сразу после етой, поетому пишу сдесь. Скажите пожалуйста, хочу стереть ненужные мне статусы, но преста ругается и выдает ошибки. Ладно я понял что мне не можно ето сделать, но как убрать ети статусы из выпадающего меню в котором меняется стаус заказа - ведь ети статусы (ненужные мне) там только мешают?
И второй вопрос: пока редактировал статусы пропали все Email template, значит сейчас выходит что преста не будет посылать письма. Как мне добавить к моим статусам email темплейты? В настройках статуса падающее меню темплейтов у меня пустое...!?
Извините за плохой русский, я из Болгарии :)

triger

С вторым вопросом справился. Незнаю правильно или нет, но вроде работает: создал новую папку "ru"в root/mails/ и скопировал все в ней от root/mails/en и темплейты появились....
Извините за плохой русский, я из Болгарии :)

triger

Подскажите пожалуйста по первому вопросу: как убрать ненужные статусы. Если их невозможно стереть, то хотя бы убрать с выпадающего меню....
Извините за плохой русский, я из Болгарии :)

Adik

Удалить любой статус вы можете на той-же странице. Справа нажмите черный треугольник, выпадет меню, нажмите на Удалить.

triger

Цитата: Adik от 23 декабря 2014, 20:48:14
Удалить любой статус вы можете на той-же странице. Справа нажмите черный треугольник, выпадет меню, нажмите на Удалить.

В том то и дело что неразрешает, пишет что для безопасности у меня нет прав стереть дефолтные статусы.... (посмотрите скрийшот сверху)...
Извините за плохой русский, я из Болгарии :)

Adik

Нельзя удалить статусы действующих модулей и методов платежей. Можно удалять только те, что нигде не используются.
Если система не дает удалить статус, значит он нужен. Конечно можно удалть любой статус напрямую в базе данных, только это вызовет ошибки в работе prestashop.
Для безопасного удаления, нужно знать все связи статуса. В вашем случае, я бы не удалял ничего.

triger

А можно ли каким то образом убрать ненужные/неиспользуюмые статусы с выпадающего меню при обработке заказов?
Извините за плохой русский, я из Болгарии :)

tigran

Можно, в коде указывать исключение по ид. Только работы много, пользы мало. Статусов не так уж много, чтобы из-за 2-3 исключений код менять.   

triger

Извините за плохой русский, я из Болгарии :)

Огонек

#11
Цитата: tigran от 24 декабря 2014, 17:05:38
Только работы много
Не так уж и много.
в файле ..\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, то ошибки неизбежны.

tigran

Способ "топором" пропадет после первого обновления. При смене статусов заказа, что делают многие платежные модули, нужно снова лезть в код. Пользы от такой работы ноль.

Огонек

Цитата: tigran от 20 июня 2017, 15:19:33
Способ "топором" пропадет после первого обновления.
Это вопрос уже другого уровня, для тех, кто по вторникам и субботам обновляется и добавляет модули оплаты можно сделать override.

Миколас

Цитата: Огонек от 20 июня 2017, 15:23:23
Цитата: tigran от 20 июня 2017, 15:19:33
Способ "топором" пропадет после первого обновления.
Это вопрос уже другого уровня, для тех, кто по вторникам и субботам обновляется и добавляет модули оплаты можно сделать override.
+++
Покажу заказчику, пусть отдыхает по субботам, а то требует оверайдить  :)