Вопросы по разработке и модификации CS-Cart

a_tsvetkov, в итоге, мы с коллегами дружно не советуем вам привязываться к $_SESSION['customer_loc'] :)

Чтобы использовать функции products тут нужно прописать "use Tygh\Products;"?

Подскажите пожалуйста какой то порядок и рекомендации как это правильно сделать всё.

Такого класса не существует, практически все функции по работе с продуктами хранятся в файле app/functions/fn.catalog.php и доступны в любом контроллере.

А передается опция или вариант опции?

a_tsvetkov, в итоге, мы с коллегами дружно не советуем вам привязываться к $_SESSION['customer_loc']

Не буду :grin: . Привязал к $_SESSION['cart']['user_data'] Я просто до последнего надеялся что есть специальное хранилище локализации (страны и т.п.).

Может разработчикам документацию расширить (описание основных хранилищ, функций и т.п.) многие вопросы сами отпадут?

Не буду :grin: . Привязал к $_SESSION['cart']['user_data'] Я просто до последнего надеялся что есть специальное хранилище локализации (страны и т.п.).

Может разработчикам документацию расширить (описание основных хранилищ, функций и т.п.) многие вопросы сами отпадут?

$_SESSION['cart']['user_data'] вам в помощь

Не буду :grin: . Привязал к $_SESSION['cart']['user_data'] Я просто до последнего надеялся что есть специальное хранилище локализации (страны и т.п.).

Может разработчикам документацию расширить (описание основных хранилищ, функций и т.п.) многие вопросы сами отпадут?

Возможно вам еще это видео поможет:

http://www.cs-cart.ru/index.php?dispatch=vimeo.video&video_id=146

Такой код должен срабатывать? Код функции лежит в файле выше.

Надо дебажить, так сложно сказать

Это вариант опции, а не опция. Так просто не сообразить, надо кодить

Есть шаблон с выводом данных:

{foreach from = $auto item=name}
{$name}
{/foreach}

По аякс запросу хочу обновлять данную область, сам запрос:

Tygh.$.ceAjax('request', fn_url('pages.view?page_id={$page_id}'), {
    result_ids: 'ajax-auto',
    method: 'post',
    callback: function(data) {
        // как необходимо обработать data для вставки данных в область?
    }
});

Контроллер:

if(defined('AJAX_REQUEST')) {
    $auto = fn_get_auto();
    Registry::get('ajax')->assign('auto', $auto);
}

Запрос возвращает объект с элементами, но нигде не могу найти примеров ajax вставки этих элементов в указанную область средствами стандартного функционала.

Есть шаблон с выводом данных:

{foreach from = $auto item=name}
{$name}
{/foreach}

По аякс запросу хочу обновлять данную область, сам запрос:

Tygh.$.ceAjax('request', fn_url('pages.view?page_id={$page_id}'), {
    result_ids: 'ajax-auto',
    method: 'post',
    callback: function(data) {
        // как необходимо обработать data для вставки данных в область?
    }
});

Контроллер:

if(defined('AJAX_REQUEST')) {
    $auto = fn_get_auto();
    Registry::get('ajax')->assign('auto', $auto);
}

Запрос возвращает объект с элементами, но нигде не могу найти примеров ajax вставки этих элементов в указанную область средствами стандартного функционала.

Поправьте шаблон таким образом:

{foreach from=$auto item=name}
{$name}
{/foreach}

Если у вас по запросу в контроллер отображается этот шаблон, то данные внутри дива обновятся. Если не показывается, то в контроллер нужно будет добавить такие строки:

Tygh::$app['view']->display('addons/путь/до/шаблона.tpl');
exit();

Поправьте шаблон таким образом:

{foreach from=$auto item=name}
{$name}
{/foreach}

Если у вас по запросу в контроллер отображается этот шаблон, то данные внутри дива обновятся. Если не показывается, то в контроллер нужно будет добавить такие строки:

Tygh::$app['view']->display('addons/путь/до/шаблона.tpl');
exit();

Не помогло, добавил , данные не обновляются, добавил

Registry::get('ajax')->assign('auto', $auto);
Tygh::$app['view']->display('addons/путь/до/шаблона.tpl');
exit();

все равно пусто.

В запросе возвращается объект:

{auto:[0:"Test", length:1], notifications: [length:0]}

Не помогло, добавил , данные не обновляются, добавил

Registry::get('ajax')->assign('auto', $auto);
Tygh::$app['view']->display('addons/путь/до/шаблона.tpl');
exit();

все равно пусто.

В запросе возвращается объект:

{auto:[0:"Test", length:1], notifications: [length:0]}

Такое ощущение, что у вас распечатка там где-то стоит. Надо весь код смотреть, перешлите временный ftp в личку

После двухдневного копания в ядре, и найдя такую строчку в файле app\Tygh\Ajax.php:

if (strpos($text, ' id="' . $r_id . '">') !== false) {

Истерике моей не было предела. Может быть, конечно, я и сам виноват, добавив класс дивке, и получив шаблон:

{foreach from=$auto item=name}
{$name}
{/foreach}

Но, проверять на дивку, обязательно оканчивающуюся на id... оканчивающуюся на ID! Карл!!

Может быть кому-нибудь будет полезна данная информация. А то нигде в интернете не нашел данной справки, пришлось по старинке перелопачивать ядро.

После двухдневного копания в ядре, и найдя такую строчку в файле app\Tygh\Ajax.php:

if (strpos($text, ' id="' . $r_id . '">') !== false) {

Истерике моей не было предела. Может быть, конечно, я и сам виноват, добавив класс дивке, и получив шаблон:

{foreach from=$auto item=name}
{$name}
{/foreach}

Но, проверять на дивку, обязательно оканчивающуюся на id... оканчивающуюся на ID! Карл!!

Может быть кому-нибудь будет полезна данная информация. А то нигде в интернете не нашел данной справки, пришлось по старинке перелопачивать ядро.

Мы, кстати, об этом писали недавно :)

http://forum.cs-cart.com/topic/42632-%D1%81%D0%BA%D1%80%D1%8B%D1%82%D1%8C-%D0%B8%D0%BB%D0%B8-%D0%BF%D0%BE%D0%BA%D0%B0%D0%B7%D0%B0%D1%82%D1%8C-%D0%B1%D0%BB%D0%BE%D0%BA/#entry235496

Страна покупателя определяется по IP, отсюда определяется локализация, которая настроена для этой страны. Можно добавить пользователю возможность выбирать локализацию.

Только заметил. Спасибо за ответ.

А как называется функция и где хранится страна?

Этот параметр использует функция fn_need_shipping_recalculation из файла fn.cart.php. И после обращения нему тут же удаляет. Ненадежная вещь, похоже.

Параметр в принципе используется только при расчете стоимости доставки. Он определяет именно локацию (а не локализацию) покупателя. По этой локации определяется расчет тарифов доставки для ручных способов доставки

А вот можно было бы не удалять этот массив (customer_loc), а оставить его и использовать для хранения местоположения пользователя :-) .

Здравствуйте. Возникла проблема.

В редакторе дизайна сделал преобразование в css.

Потом попытался вернуть назад в less. Возникает ошибка. Обратное преобразование не происходит

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

Делаю вывод: стили less он не воспринимает вообще. похоже есть запись в БД этой настройки? или как можно решить этот вопрос?

Прошу подскажите, почему он не видит мои .less файлы?

Все остальное неоднократно проверил, кеш чистил удалением папки cache/

Прошу подскажите, почему он не видит мои .less файлы?

Все остальное неоднократно проверил, кеш чистил удалением папки cache/

А где лежат less файлы и как они подключаются?

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

Понимаю что проблема в том что можно выбрать несколько категорий, ну тогда выпадающий древо категорий и галочки. Очень нужно. Или натолкните на релизацию или предложите свои услуги.

Чем же пикер не угодил? Ведь в итоге все опять сводится к дереву с галочками (как в пикере).

Пикер угодил. Но менеджеру очень много приходится товары туда сюда по категориям гонять.

Хочу пикер вынести в в список товаров, чтобы нажал, выбрал, сохранил и сразу в списке товаров остался.

Если тоже самое заходит в каждй товар, это ещё дополнительно пару кликов и ожиданий перегрузки страницы.

Самый просто вариант - сделать как у категории селектбокс. Но тогда придется пожертвовать функционалом доп. категорий

Пикер угодил. Но менеджеру очень много приходится товары туда сюда по категориям гонять.

Хочу пикер вынести в в список товаров, чтобы нажал, выбрал, сохранил и сразу в списке товаров остался.

Если тоже самое заходит в каждй товар, это ещё дополнительно пару кликов и ожиданий перегрузки страницы.

Сделать выпадают список категорий совсем недолго, можно взять тот, который показывается в списке товаров в боковой колонке. Код можно взять из файла design/backend/templates/views/products/components/products_search_form.tpl

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

Без модификации, боюсь, не обойтись.