Помогите. Проблема с языками при генерации счетов в PDF-формате.

Вроде все проще, чем могло быть :)
Попробуйте такое.
В файле invoice.product_tab-tab.tpl, который мы заменили, на строчках 66 и 71 замените {$product_name} на:
PHP:
{if isset($context->employee->id_profile) && !empty($context->employee->id_profile)}
      {$product_name}
{else}
      {$order_detail.product_name}
{/if}
По идее теперь из админки должно печататься на языке пользователя админки, а из фронтофиса - как было раньше, то есть на том языке, на котором был оформлен заказ.
 
Последнее редактирование:
По идее теперь из админки должно печататься на языке пользователя админки, а из фронтофиса - как было раньше, то есть на том языке, на котором был оформлен заказ.
Похоже здесь у нас недопонимание. Уже без этих последних, Вами предложенных, корректировок кода, так и происходит. Если сотрудник открывает сгенерированный PDF-файл в админке, то он на языке профиля сотрудника, включая наименование товара. Если сотрудник переключает свой профиль на другой язык, то и PDF-файл в админке выводится ему на другом языке. Со стороны покупателя: когда покупатель заходит в свой профиль, то PDF-счёт выводится ему на языке его интерфейса. Если покупатель сменит язык, то и PDF выведется ему на новом языке. Проблема в PDF, отсылаемых покупателю по мейлу. Логично было бы, чтобы эти PDF были бы на языке, на котором покупатель делал заказ. Однако, на деле покупатель получает по мейлу PDF на языке профиля сотрудника. Возможно ли это изменить?
 
Похоже здесь у нас недопонимание. Уже без этих последних, Вами предложенных, корректировок кода, так и происходит. Если сотрудник открывает сгенерированный PDF-файл в админке, то он на языке профиля сотрудника, включая наименование товара. Если сотрудник переключает свой профиль на другой язык, то и PDF-файл в админке выводится ему на другом языке. Со стороны покупателя: когда покупатель заходит в свой профиль, то PDF-счёт выводится ему на языке его интерфейса. Если покупатель сменит язык, то и PDF выведется ему на новом языке. Проблема в PDF, отсылаемых покупателю по мейлу. Логично было бы, чтобы эти PDF были бы на языке, на котором покупатель делал заказ. Однако, на деле покупатель получает по мейлу PDF на языке профиля сотрудника. Возможно ли это изменить?
Используйте последнюю правку.
 
Используйте последнюю правку.
Использовал. Заменил на строчках 66 и 71 {$product_name} на:
PHP:
{if isset($context->employee->id_profile) && !empty($context->employee->id_profile)}
      {$product_name}
{else}
      {$order_detail.product_name}
{/if}
В результате исчезли наименования товаров в PDF-файлах всех языковых версий:

products_field_empty_ru.png products_field_empty_de.png products_field_empty_en.png

Здесь этот файл с поправками:
 

Вложения

  • invoice.product-tab_correct_2.rar
    1,9 KB · Просмотры: 1
Видимо вы что-то неправильно сделали
UPD. Забыл, виноват.
Перед
PHP:
<!-- PRODUCTS -->
    {foreach $order_details as $order_detail}
Надо вставить
PHP:
    {$context = Context::getContext()}
 

Вложения

  • invoice.product-tab.rar
    1,9 KB · Просмотры: 3
Залил на сервер Ваш самый последний файл. Всё равно не получается как задумано по логике. Сейчас результат такой:
По электронной почте покупатель теперь получает счета на языке, на котором работает сотрудник магазина. Если сотрудник магазина переключает свой профиль на немецкий и высылает повторно счёт, то покупатель получит повторный счёт на немецком и так далее. Причём, наименования товаров также совершенно корректным способом вносятся на языке счёта (если счёт на немецком, то и наименования товаров на немецком, несмотря на то, что покупатель заказ делал на русском) - то есть это очень хорошо - супер.

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

И второе несоответствие: в учётной записи покупателя PDF генерируется на языке покупателя, но наименования товаров остаются на том языке, на котором покупатель делал заказ - то есть, если покупатель меняет язык на немецкий, то PDF сгенерируется на немецком, а наименования товаров остаются на русском:

products_field_empty_customer_account_de.png
 
Залил на сервер Ваш самый последний файл. Всё равно не получается как задумано по логике. Сейчас результат такой:
По электронной почте покупатель теперь получает счета на языке, на котором работает сотрудник магазина. Если сотрудник магазина переключает свой профиль на немецкий и высылает повторно счёт, то покупатель получит повторный счёт на немецком и так далее. Причём, наименования товаров также совершенно корректным способом вносятся на языке счёта (если счёт на немецком, то и наименования товаров на немецком, несмотря на то, что покупатель заказ делал на русском) - то есть это очень хорошо - супер.

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

И второе несоответствие: в учётной записи покупателя PDF генерируется на языке покупателя, но наименования товаров остаются на том языке, на котором покупатель делал заказ - то есть, если покупатель меняет язык на немецкий, то PDF сгенерируется на немецком, а наименования товаров остаются на русском:

Посмотреть вложение 82356
Так, напишите, что вам именно нужно, а то я уже запутался :)
У сотрудника магазина качается на правильном языке?
Когда сотрудник отправляет счет, то отправляется на языке сотрудника, так? А надо, чтобы на языке покупателя, правильно?
Когда счет прикрепляется к письму автоматически при оформлении заказа, какой сейчас язык?
У пользователя магазина из фронтофиса язык правильный?
 
Вот, готово:
В файле корневой_каталог_сайта/pdf/invoice.product-tab.tpl
На строке 44 перед {foreach $order_details as $order_detail} добавляем:
Код:
{$context = Context::getContext()}
Теперь сразу после {foreach $order_details as $order_detail} добавляем:
Код:
{$product_name = Product::getProductName($order_detail.product_id, $order_detail.product_attribute_id, $context->language->id)}
Теперь на строке 66 и строке 71 заменяем {$order_detail.product_name} на
Код:
{$product_name}
Проверьте, отпишитесь.
вот готовый файл
скажите, я правильно понимаю, что если это все исправить, то русскоязычный заказчик получит счет на русском, а заказчик другого языка на своём языке??? тогда супер если так, так как у мнея похожая проблема. сайт на трех языках, мой бэк офисс на русском.заказчик заказавший товар на другом языке (не русском) получает счет на русском, а должен на своём языке его получить. Если переключаю бэкофисс на его язык, тогда счет приходит на его языке....
 
скажите, я правильно понимаю, что если это все исправить, то русскоязычный заказчик получит счет на русском, а заказчик другого языка на своём языке??? тогда супер если так, так как у мнея похожая проблема. сайт на трех языках, мой бэк офисс на русском.заказчик заказавший товар на другом языке (не русском) получает счет на русском, а должен на своём языке его получить. Если переключаю бэкофисс на его язык, тогда счет приходит на его языке....
Да, вы в админке будете получать файл на языке админки, а пользователь на том языке, на котором сейчас сайт.
Не знаю ка на счет прикрепленных файлов в письмах. Я так и не понял предыдущего оратора, на каком языке приходит чек в автоматически отправляемом письме. Но если письмо отправлять вручную из админки, то очевидно, что чек будет на языке админки. Это можно исправить.
 
Да, вы в админке будете получать файл на языке админки, а пользователь на том языке, на котором сейчас сайт.
Не знаю ка на счет прикрепленных файлов в письмах. Я так и не понял предыдущего оратора, на каком языке приходит чек в автоматически отправляемом письме. Но если письмо отправлять вручную из админки, то очевидно, что чек будет на языке админки. Это можно исправить.

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