Финансовая поддержка VPS, бесплатные дополнения и docs Донаты оплачивают сервер и двигают бесплатные дополнения MODX и документацию. Поддержать

Всего 126 116 комментариев

Артур Шевченко
Артур Шевченко
$tablePrefix = $modx->getOption('table_prefix');
$sql = "SELECT Product.pagetitle AS name, Data.price AS price, Parent.pagetitle AS parent FROM {$tablePrefix}site_content Product
LEFT JOIN {$tablePrefix}ms2_products Data ON Product.id = Data.id 
LEFT JOIN {$tablePrefix}site_content Parent ON Product.parent = Parent.id
LEFT JOIN {$tablePrefix}site_content Resource ON Product.id= Resource.id
WHERE Product.class_key = 'msProduct' AND Resource.published = 1";
$statement = $modx->query($sql);
$products = $statement->fetchAll(PDO::FETCH_ASSOC);
$output = [];
foreach ($products as $product) {
    $output[$product['parent']][] = $product;
}
return $output;
Дмитрий
Дмитрий
Добрый день. Если товар снять с публикации, он все равно выводиться в прайсе, чтобы не выводился нужно товар полностью удалять. Подскажите пожалуйста, как прописать условие в сниппете чтобы не выводил снятые с публикации товары.
Николай Савин
Николай Савин
Самый простой, дешевый и быстрый вариант — разместить заявку в разделе работа на тему «Адаптация компонента под MODX3». Компонент простой — кто-нибудь обязательно возьмется.
Андрей Шевяков
Андрей Шевяков
Там единственное надо переписать функции немного по другому, вот документация

Вместо этого
miniShop2.Callbacks.Cart.add.response.success = function(response) {
    };
Будет так
miniShop2.Callbacks.add('Cart.add.response.success', 'cart_ok', function (response) {

});
Евгений Куценко
Евгений Куценко
GoogleSheetsSaveForm у кого-то работает с FetchIt и вообще работает?
С параметром &gsRange=`opros` ломается отправка формы и указание листа для сохранения по умолчанию в настройках тоже самое.

И почему-то товары выгружает, а заказы не хочет. Есть мысли куда копать?
Андрей Шевяков
Андрей Шевяков
Артур Шевченко
Артур Шевченко
Нужно переписать метод submit в обработчике заказа, так как из коробки он возвращает ответ сразу на фронт. А когда получишь ответ, там в параметре redirect будет ссылка на оплату.

Тут вместо echo нужно сделать return и убрать die(). И тогда если сделать так
$response = $miniShop2->order->submit();
$modx->sendRedirect($response['data']['redirect']);
то пользователя перекинет на оплату.