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


#621

Добрый день, подскажите пожалуйста, как в логи записать кастомное сообщение? Нашел функцию fn_log_event(), но с её помощью получается записать только id сущности и экшэн (

Спасибо )

Там на сущности все и завязано. Вы что хотите хранить?


#622

Там на сущности все и завязано. Вы что хотите хранить?

Я пишу аддон для подписки регулярных платежей через систему Stripe, и мне нужно записывать в логи сообщения которые возвращает Stripe API. На данный момент я пишу их как тип 'general' с экшином 'runtime' по средствам fn_log_event(). Есть ли более правильный способ? Так же, скажите пожалуйста, есть ли возможность разделять, при записи, логи по типу: "debug", "notice", "warning", "error", к примеру?

Спасибо!


#623

Я пишу аддон для подписки регулярных платежей через систему Stripe, и мне нужно записывать в логи сообщения которые возвращает Stripe API. На данный момент я пишу их как тип 'general' с экшином 'runtime' по средствам fn_log_event(). Есть ли более правильный способ? Так же, скажите пожалуйста, есть ли возможность разделять, при записи, логи по типу: "debug", "notice", "warning", "error", к примеру?

Спасибо!

У вас же каждая транзакция привязана к заказу? Вот его и используйте. Под ваши нужды можно расширить функцию, там имеется хук (app/functions/fn.logs.php)


#624

design/themes/ТЕМА/templates/blocks/topmenu_dropdown.tpl

тут есть хук, который позволяет переписать все меню. с него и начинайте

$items - полный массив с меню

$item1.$childs - подменю 1 уровня

$item2.$childs - подменю 2 уровня

Спасибо большое, все нашел, менюшку перебрал.


#625

Здравствуйте.

Подскажите, как можно организовать автоматический пересчёт цены в корзине в зависимост от выбранных опций?


#626

Используйте бесплатный модуль

http://marketplace.cs-cart.com/add-ons/customer-experience/cs-cart-automatic-cart-recalculate-add-on.html?sl=ru


#627

Всем привет!

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

Я правильно понимаю что достаточно сделать копию аддона с небольшой кастомизацией?


#628

Задача добавить много однотипных страниц. Через прямые запросы в БД cscart_pages и cscart_page_descriptions добавил странички по аналогии с существующими.

После загрузки, в админке вижу странички, но при попытке редактировать их вылезает балун "Предупреждение Этот объект (Страница ТЕСТ) недоступен для выбранного магазина."

Как я понимаю, нужно еще что то сделать, вопрос, что?

Разобрался :) cscart_ult_objects_sharing там еще нужно добавить с атрибутом pages.


#629

Добрый день, подскажите пожалуйста, как в рамках нового модуля реализовать webhook для стороннего сайта, (нужно мониторить события в платежной системе stripe). В качестве адреса к webhook (в настройках аккаунта на сайте stripe.com) я указал http://example.net/admin.php?dispatch=module_name.webhook

В контроллере модуля написал следующее

if ($mode == 'webhook') {

\Stripe\Stripe::setApiKey($stripe[‘secret_key’]);

// Retrieve the request’s body and parse it as JSON
$input = @file_get_contents(“php://input”);
$event_json = json_decode($input);

// Verify the event by fetching it from Stripe
$event = \Stripe\Event::retrieve($event_json->id);

// Do something with $event

http_response_code(200);

}

Код внутри контроллера использует библиотеку stripe и написан согласно документации. При тестировании получаю ошибку Test webhook error: 302

Подскажите пожалуйста, как правильно реализовать такой webhook? Спасибо!


#630

А контроллер админский или витринный? Если админский, то проблема в авторизации


#631

А контроллер админский или витринный? Если админский, то проблема в авторизации

Спасибо, разобрался )

Подскажите еще пожалуйста, сделал кастомную страницу для админки по средствам модуля, администратору она досупна, а как сделать доступ к ней через vendor.php? Сейчас выдает 403 access denied.

Спасибо!


#632

Спасибо, разобрался )

Подскажите еще пожалуйста, сделал кастомную страницу для админки по средствам модуля, администратору она досупна, а как сделать доступ к ней через vendor.php? Сейчас выдает 403 access denied.

Спасибо!

Нужно в модуле создать файл schemas/permissions/vendor_multivendor.post.php и записать в него:

$schema['controllers']['ВАШ_КОНТРОЛЛЕР']['modes']['ВАШ_МОД'] = array (
    'permissions' => true,
);

return $schema;


#633

Нужно в модуле создать файл schemas/permissions/vendor_multivendor.post.php и записать в него...

Спасибо! Помогло, только нужно еще выключить/включить модуль, чтоб post controller заработал )


#634

Спасибо! Помогло, только нужно еще выключить/включить модуль, чтоб post controller заработал )

Все схемы кэшируются, можно было просто очистить кэш


#635

Здравствуйте.

Сделал кнопку "в корзину" в каталоге.

Как мне правильно поменять текст кнопки с использованием языковой переменной?

Нужно в [module_id]/overrides/blocks/list_templates/grid_list.tpl присвоить значение параметру but_text, но как правильно присвоить ему значение языковой переменной?

Пробовал but_text=_("buy') - не выходит!


#636

Здравствуйте.

Сделал кнопку "в корзину" в каталоге.

Как мне правильно поменять текст кнопки с использованием языковой переменной?

Нужно в [module_id]/overrides/blocks/list_templates/grid_list.tpl присвоить значение параметру but_text, но как правильно присвоить ему значение языковой переменной?

Пробовал but_text=_("buy') - не выходит!

Извиняюсь!

Работал с файлом [module_id]/blocks/product_list_templates/product_multicolumns.tpl


#637

Извиняюсь!

Работал с файлом [module_id]/blocks/product_list_templates/product_multicolumns.tpl

Используйте but_text=__("ВАША_ПЕРЕМЕННАЯ"), а саму переменную добавьте в админке через переводы.


#638

Используйте but_text=__("ВАША_ПЕРЕМЕННАЯ"), а саму переменную добавьте в админке через переводы.

Благодарю!


#639

Здравствуйте.

Создал контроллер и два mode. Соответственно есть две страницы.

Задача, в админке при отправке формы сделать переход с первой на вторую.

Первая содержит форму


{capture name="mainbox"}

{if “ULTIMATE”|fn_allowed_for && $runtime.company_id}
{assign var=“company_id” value=$runtime.company_id}
{/if}

{include file=“pickers/products/picker.tpl” data_id=“added_products” input_name=“label_print[product_ids]” no_item_text=__(“text_no_items_defined”, ["[items]" => __(“products”)]) type=“links” company_id=$company_id placement=“right”}

{/capture}

{capture name=“buttons”}

{include file="buttons/button.tpl" but_text=__("live_preview") but_name="dispatch[label_print.update]" but_role="submit-button"}
{/capture}

{include file=“common/mainbox.tpl” title=__(“products”) content=$smarty.capture.mainbox buttons=$smarty.capture.buttons select_languages=$select_languages}

Вторая выводит результат.

И вот при выводе (адрес второй страницы задаю в атрибуте action формы), нет половины меню админки (есть только валюты, языки и пользователи)

Причем, если вызвать страницу через адресную строку, то все нормально.

В чем может быть дело?

Спасибо.


#640

Причем, если вызвать страницу через адресную строку, то все нормально.

В чем может быть дело?

Спасибо.

У вас форма постом уходит, а при запуске в браузере используется метод GET. Cкорее всего в этом проблема. Попробуйте поменять метод или делайте редирект после обработки данных формы в контроллере