Ссылка добавления в корзину minishop2
Всем привет.
Подскажите, как сделать ссылку, чтобы при переходе по ней, товар добавлялся в корзину.
Для турбо-страниц нужно, чтобы было примерно так: example.com/cart?id=272, где 272 это id товара
Подскажите, как сделать ссылку, чтобы при переходе по ней, товар добавлялся в корзину.
Для турбо-страниц нужно, чтобы было примерно так: example.com/cart?id=272, где 272 это id товара
Комментарии: 5
Почитайте.
Логика такая:
1. Создаем плагин, например на событие OnMODXInit или OnHandleRequest
2. Обрабатываем url и получаем id
3. Добавляем товар в корзину по id
Логика такая:
1. Создаем плагин, например на событие OnMODXInit или OnHandleRequest
2. Обрабатываем url и получаем id
3. Добавляем товар в корзину по id
$miniShop2->cart->add($id)
А можно пример такого решения?
<?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}
по какой то причине не срабатывает, выводит сообщение «Укажите ID товара для добавления»
Разобрался, если допустим на сайте присутствует .html, тогда ссылка примет вид site.ru/addtocart.html?id={offer_id} или в моем случает site.ru/cart.html?id={offer_id}
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.