viair

OC2 - Назначить единый язык формирования накладной в мультиязычном сайте

Рекомендуемые сообщения

viair    0

Ребята, свем доброго времени суток.

 

Нужна подсказка, в наличии мультиязычный сайт  (2 языка) движок OC2.

 

Проблема: Есть единый шаблон накладной, который по стандарту для всех заказов должен быть на едином языке. Но, при формировании инвойса, для каждого отдельного заказа OC подставляет язык который был выбран пользователем при работе в фронте. Что соответственно влияет на на наименования товаров и опциии а так же лэйблы почтовых услуг, ваучеров и пр. 

 

Задача: в Order контроллере админки, метод invoice, по возможности нативными средствами OC (без доп. запросов к базе) добыть информацию о продуктах и опциях по id нужного языка. Может есть возможность в индексе явно задать язык с которым необходимо работать?

Вопрос: Как реализовать?

 

Заранее благодарю :)

Изменено пользователем viair

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
AlexDW    865

так изначально инвойс в админке формируется на языке, используемом именно в админке - ему чихать на фронт

ну или я что-то не понял..

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
viair    0

так изначально инвойс в админке формируется на языке, используемом именно в админке - ему чихать на фронт

ну или я что-то не понял..

Хм, Странно.. Тогда почему у меня получается так, что в таблице order_product к определённым айдишникам заказов привязаны товары у которых записи в поле name явно на разных языках? :(

Причём видно, что в каждом заказе наименования товаров чётко на языке фронта, под которым клиент оформил заказ.

Вот:

post-677609-0-02906500-1458775626_thumb.png

post-677609-0-28716100-1458775626_thumb.png

 

Или я чего то не понимаю или они что-то намудрили в движке. Есть же поле product_id, почему не вытаскивать товар по его идентификатору и id языка из таблицы product_description?

Изменено пользователем viair

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
rb2    407

Или я чего то не понимаю или они что-то намудрили в движке. Есть же поле product_id, почему не вытаскивать товар по его идентификатору и id языка из таблицы product_description?

Потому что, скажем так, "фискальная" информация должна храниться в заказе в том виде, в каком она была на момент заказа. Название, цена и т.п. Потому что иначе возможна ситуация, когда сегодня покупатель сделал заказ на босоножки по 10, а у вас как раз была переоценка, переучёт или вообще перестройка - и вы у некоторых товаров поменяли цену, а некоторые вообще переименовали-переделали. И записав в базу только ID товаров и опций, можете получить их значения в момент заказа и в момент просмотра совсем разными.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
viair    0

Потому что, скажем так, "фискальная" информация должна храниться в заказе в том виде, в каком она была на момент заказа. Название, цена и т.п. Потому что иначе возможна ситуация, когда сегодня покупатель сделал заказ на босоножки по 10, а у вас как раз была переоценка, переучёт или вообще перестройка - и вы у некоторых товаров поменяли цену, а некоторые вообще переименовали-переделали. И записав в базу только ID товаров и опций, можете получить их значения в момент заказа и в момент просмотра совсем разными.

Пожалуй да, если смотреть с позиции целостности информации Вы правы, здесь я подумал только о прайсах и состоянии опций, вероятность переименования товара упустил.

Вижу проблема начинает размножаться :) Тогда какой выход? При оформлении заказа писать дубли на обоих языках? Т.к. для инвойса нужен всего один, и по умолчанию он не всегда присутствует(как оказалось).

Изменено пользователем viair

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
AlexDW    865

Пожалуй да, если смотреть с позиции целостности информации Вы правы, здесь я подумал только о прайсах и состоянии опций, вероятность переименования товара упустил.

Вижу проблема начинает размножаться :) Тогда какой выход? При оформлении заказа писать дубли на обоих языках? Т.к. для инвойса нужен всего один, и по умолчанию он не всегда присутствует(как оказалось).

 

видимо, разработчики считали что наличие поля model - достаточно для идентификации товара по нему

model как раз не зависит от языка

 

как вариант - можно изменить получение названия товара в инвойсе

брать его не из данных order_product, а из самой таблицы товаров на основе product_id из order_product и в зависимости от используемого в админке языка

 

из подводных камней - возможны проблемы если товар с этим product_id был удален из БД, или же был полностью изменен

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти


  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу