Про Отправки (Shipment)

я попробую…

а какой пример есть, где?

[quote name=‘YurkaTim’ timestamp=‘1437915297’ post=‘224354’]

я попробую…

а какой пример есть, где?

[/quote]



На витрине, на странице заказа, в личном кабинете покупателя, если введён номер отслеживания, то он превратиться в ссылку на сайт ТК.



По крайней мере, в модуле “Почта РФ” не просто так нужен этот файл:

/design/themes/responsive/templates/addons/rus_russianpost/hooks/carriers/list.post.tpl

у меня нет такого модуля… не русская версия…

А на витрине, да, есть вот такой файл

\design\themes\responsive\templates\views\orders\details.tpl



в нем вроде есть нужный код… покопаюсь…

спасиб

что-то я ушел в тупичок ))



то, что мне нужно находится в массиве $shipments (там есть tracking_number)

заполняется этот массив в контроллере app\controllers\backend\orders.php

там же определяется переменная $use_shipments , которая как я понял говорит о том нужно ли использовать еще отправки, в случае если заказ не был отправлен полностью



отображение у нас тут

\design\backend\templates\views\orders\details.tpl

у меня строка 291 {if $use_shipments} …



так вот… на нужный массив волшебным образом оказывает влияние та самая настройка, о которой мы говорили выше “Allow multiple shipments for a single order” (Разрешить разделение заказа на несколько отгрузок.)



… и если она выключена, то массив $shipments в шаблоне заполнен нужными данными, а вот если она включена, то фигвам… массив пуст… и я не могу понять почему…

Если выводить его из контроллера, то там он заполнен всегда… от этой настройки не зависит…

Почему он обнуляется в шаблон я не понимаю.



I need help

нвшел… в контроллере вот такой кусок… не знаю зачем это, но проблема в нем…

по этому условию если в установках опция включена , то в шаблон $shipments не передается…

Добавил… но не знаю насколько это правильно


<br /> // Check for the shipment access<br /> // If current edition is FREE, we still need to check shipments accessibility (need to display promotion link)<br /> if (Settings::instance()->getValue(&#39;use_shipments&#39;, &#39;&#39;, $order_info[&#39;company_id&#39;]) == &#39;Y&#39;) {<br /> if (!fn_check_user_access($auth[&#39;user_id&#39;], &#39;edit_order&#39;)) {<br /> $order_info[&#39;need_shipment&#39;] = false;<br /> }<br /> $use_shipments = true;<br /> } else {<br /> Tygh::$app[&#39;view&#39;]->assign(&#39;shipments&#39;, $shipments);<br /> }<br />

а где нибудь хранится название темы или путь к ней? в смысле в какой нить глобальной переменной…

там для того чтобы получить урлы доставщиков нужен файл из фронтэнда

вот этот

design/themes/responsive/templates/common/carriers.tpl



т.е. чтобы не зависеть от смены дизайна как его правильно подгрузить?

что нить типа вот такого сделать…

<br /> {include file="design/themes/$theme_name/templates/common/carriers.tpl" carrier=$shipment.carrier tracking_number=$shipment.tracking_number shipment_id=$shipment.shipment_id}<br /> <br />

но где в таком случае взять $theme_name ?

[quote name='YurkaTim' timestamp='1437953906' post='224402']

а где нибудь хранится название темы или путь к ней? в смысле в какой нить глобальной переменной…

там для того чтобы получить урлы доставщиков нужен файл из фронтэнда

вот этот

design/themes/responsive/templates/common/carriers.tpl



т.е. чтобы не зависеть от смены дизайна как его правильно подгрузить?

что нить типа вот такого сделать…

<br /> {include file="design/themes/$theme_name/templates/common/carriers.tpl" carrier=$shipment.carrier tracking_number=$shipment.tracking_number shipment_id=$shipment.shipment_id}<br /> <br />

но где в таком случае взять $theme_name ?

[/quote]



Думаю лучше в backend не подключать шаблоны из frontend . Лучше создайте новый файл в своём модуле и подключайте его.



А так, конечно должна хранится, в $runtime или $settings , в крайнем случае можно в модуле написать функцию для получения и использовать её.

[quote name='YurkaTim' timestamp='1437953906' post='224402']

а где нибудь хранится название темы или путь к ней? в смысле в какой нить глобальной переменной…

[/quote]


<br /> {$settings.theme_name}<br />



или


<br /> Registry::get(&#39;settings.theme_name&#39;);<br />

[quote name='dbazhenov' timestamp='1437982260' post='224413']

Думаю лучше в backend не подключать шаблоны из frontend .

[/quote]

ну я тоже так думаю, вот только если создать отдельно, то придется потом обе версии поддерживать в одинаковом состоянии… Если например нужно будет добавить нового перевозчика. Тут непонятно вообще зачем эти данные хранятся в шаблоне а не в базе с управлением через админку, но это уже лирика )



eComLabs, спасибо

[quote name='YurkaTim' timestamp='1437990102' post='224447']

ну я тоже так думаю, вот только если создать отдельно, то придется потом обе версии поддерживать в одинаковом состоянии…

[/quote]



Ничего страшного.

ну, со ссылками разобрался

вышло вот так

[attachment=9966:shipback.JPG]



еще пара вопросов:

  1. как правильно (средствами движка) сделать валидацию поля для номера для отслеживания?

    формат типа EA333333333RU (длина 13 симв. две загл буквы вначале и 2 в конце )


  2. в статусах заказов есть настройка “Invoice/Credit memo” которая как я понимаю влияет, на то, что будет прикручено внизу к сообщению, инвойс там и т.п.

    К некоторым статусам я не хочу ничего цеплять… Там в списке есть Default и по умолчанию идет Инвойс.

    Вопрос - где меняется этот default и как сделать чтобы по умолчанию не было никаких документов в уведомлении?

    [attachment=9965:def.gif]



    спасибо

    def.gif

    shipback.JPG

ps: тут свои посты как-то можно править?

[quote name='YurkaTim' timestamp='1438165072' post='224740']

ps: тут свои посты как-то можно править?

[/quote]



Добавили прав.

[quote name=‘dbazhenov’ timestamp=‘1438167510’ post=‘224746’]

Добавили прав.

[/quote]

ну фсё, теперь я мембер ))) спасиб.



А что насчет вопросов ? :rolleyes:

[quote name=‘YurkaTim’ timestamp=‘1438187753’ post=‘224803’]

ну фсё, теперь я мембер ))) спасиб.



А что насчет вопросов ? :rolleyes:

[/quote]



К сожалению, пока нет времени.

[quote name='YurkaTim' timestamp='1438164871' post='224738']

  1. как правильно (средствами движка) сделать валидацию поля для номера для отслеживания?

    [/quote]



    Вдруг кому пригодится:

    Сделал валидацию международного номера для отслеживания с помощью микроформатов cs-cart и регекса следующим образом:


[CODE]


{__("tracking_number")}




[/CODE]

[quote name='YurkaTim' timestamp='1438634984' post='225471']

Вдруг кому пригодится:

Сделал валидацию международного номера для отслеживания с помощью микроформатов cs-cart и регекса следующим образом:



[/quote]



Я что то улетал, вот вернулся, остались вопросики?

Да тут чем дальше в лес, тем толще партизаны… и вопросиков все больше ))) Ковыряюсь помаленьку.

По второму пункту пока не брался…

[quote name='YurkaTim' timestamp='1438785562' post='225761']

Да тут чем дальше в лес, тем толще партизаны… и вопросиков все больше ))) Ковыряюсь помаленьку.

По второму пункту пока не брался…

[/quote]



Понял, честно говоря не знаю как просто в тексте объяснить, нужно видео снимать, я давно этого не делал, попробую на днях.

[quote name=‘dbazhenov’ timestamp=‘1438791591’ post=‘225772’]

нужно видео снимать

[/quote]

Ну так это ж любимое занятие, как я понял ;) Даже как-то неловко отговаривать ))), но я нашел то, что нужно.

Зависимости добавления к письмам инвойсов и проч от настроек в статусах заказов описаны в шаблоне

\design\themes\THEME_NAME\mail\templates\orders\order_notification.tpl