Ссылка добавления в корзину minishop2

Всем привет.
Подскажите, как сделать ссылку, чтобы при переходе по ней, товар добавлялся в корзину.
Для турбо-страниц нужно, чтобы было примерно так: example.com/cart?id=272, где 272 это id товара
Виталий
20 сентября 2018, 12:21
modx.pro
1
2 137
0

Комментарии: 5

Aleksandr Huz
20 сентября 2018, 20:07
+2
Почитайте.
Логика такая:
1. Создаем плагин, например на событие OnMODXInit или OnHandleRequest
2. Обрабатываем url и получаем id
3. Добавляем товар в корзину по id
$miniShop2->cart->add($id)
    Станислав
    27 января 2019, 19:44
    0
    А можно пример такого решения?
      Альберт
      27 февраля 2019, 02:01
      +1
      <?php
      if ($modx->event->name == 'OnHandleRequest' && $_REQUEST['q'] == 'addtocart')
      {
          if (!isset($_REQUEST['id']) || !is_numeric($_REQUEST['id'])) exit('Укажите ID товара для добавления');
          
          $quantity = 1;
          $itemId = (int)$_REQUEST['id'];
          
          $miniShop2 = $modx->getService('minishop2');
          if (!($miniShop2 instanceof miniShop2)){
              exit('error');
          }
          
          $miniShop2->initialize($modx->context->key);
          $miniShop2->cart->clean();
          
          $result = $miniShop2->cart->add($itemId, $quantity);
          
          if ($result['success']) $location = '/cart';
          else $location = '/';
          
          header('HTTP/1.1 301 Moved Permanently');
          header('Location: ' . $location);
          exit ;
      }
      Адрес для яндекса будет в настройках турбо-страниц: site.ru/addtocart?id={offer_id}
        Станислав
        27 февраля 2019, 11:31
        0
        по какой то причине не срабатывает, выводит сообщение «Укажите ID товара для добавления»
          Станислав
          27 февраля 2019, 15:16
          +1
          Разобрался, если допустим на сайте присутствует .html, тогда ссылка примет вид site.ru/addtocart.html?id={offer_id} или в моем случает site.ru/cart.html?id={offer_id}
      Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
      5