Курс 2016 года “Разработка на UMI.CMS от 0 до готового сайта”
Макрос emarket basketAddLink - отсутствие ссылки купить если цена 0

Автор koroganРаздел Макросы UMI.CMS

Ответов: 3
Просмотров: 3526
Последний ответ 25 Апреля 2012, 01:19:03
от admin
Настройка шаблона письма уведомления о заказе (emarket) XSLT

Автор CanektРаздел Настройка системы и модулей

Ответов: 37
Просмотров: 9162
Последний ответ 12 Сентября 2016, 07:57:36
от admin
function onOrderDeleteCleanRelations (/classes/modules/emarket/_events.php)

Автор samРаздел Custom макросы

Ответов: 4
Просмотров: 2571
Последний ответ 03 Октября 2016, 19:49:04
от sam
Сохранение данных customer в emarket one click

Автор rasergiyРаздел Настройка системы и модулей

Ответов: 2
Просмотров: 1469
Последний ответ 01 Апреля 2016, 15:42:17
от aghigay
вопрос новичка по emarket cart

Автор slavikРаздел Настройка системы и модулей

Ответов: 6
Просмотров: 3354
Последний ответ 23 Июля 2014, 22:16:21
от slavik

0 Пользователей и 1 Гость просматривают эту тему.

*

Niall

  • *
  • 1
  • +0/-0
    • Просмотр профиля
Добрый день,

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

Я нашел данный пример.
Но как я выяснил спустя недолгое время, этот пример писался для старого umi cms.
Сейчас я использую последнюю сборку umi и php7.

Я добавил свой кастом макрос, который скопировал из (/classes/сomponents/emarket/macros.php),
путь: /classes/сomponents/emarket/customMacros.php
<?php
 public function basket_custom($mode = false, $itemType = false, $itemId = false) {
  ...
   switch ($mode) {
     case 'put' : {
$module->handleBasketPutCustom($itemType, $itemId, $order);
break;
     }
  ...
}
public function handleBasketPutCustom($itemType = false, $itemId = false, $order = false){
...
  if ($itemType == 'element') {
$orderItem->custom_field = htmlspecialchars(getRequest('custom_field'));
$orderItem = $this->module->getBasketItem($itemId, false);
...
}
?>

Так же я создал файл с permissions /classes/сomponents/emarket/permissions.custom.php
<?php
  $permissions = ['purchasing' => ['basket_custom', 'handleBasketPutCustom']];
?>

custom_field - я уже добавил в административной панели.

Чтобы протестировать, что это работает я пытался перейти по ссылке:
  http://websitename.ru/udata/emarket/basket_custom/put/element/221/?custom_field="sw03"
И у меня добавился обычный товар 221, без дополнительно поля на который я расчитывал.

В итоге основной вопрос, правильно ли я адаптировал пример для новой umi? (если да, то может кто-то сталкивался уже с подобной проблемой, почему не работает)
Или может быть, есть какие-то другие способы это реализовать. Был бы благодарен за подсказку/пример/направление.
Основная проблема - это необходимо добавить новое поле поле к товару, а заполнить этот "комментарий" нужно при нажатии на "добавить в корзину".

Заранее спасибо :)
« Последнее редактирование: 30 Января 2019, 22:28:20 от Niall »

Re: Расширение функционала метода emarket basket
« Ответ #1 : 24 Февраля 2019, 15:29:06 »
а вы в шаблоне типа данных "заказ" - это самое поле создали?