Вопросы
После удаления товара через API корзине не обновляется
Добрый день.
Объясню сначала задачу:
1. При заказе товара с определенного раздела, в корзину нужно добавить товар с определенным ID (товар-доставка)
2. Также все должно корректно работать при обновлении корзины и удалении товаров из корзины (если в корзине не осталось товаров с данного раздела, то и доставку нужно убирать)
Но почему-то у меня доставка удаляется но висит в корзине до перезагрузки страницы.
Вот мой стремный код если есть решение изящнее то буду очень благодарен. По сути — нужно установить определенную сумму доставки при наличии в корзине товаров из определенного раздела (категории)
Объясню сначала задачу:
1. При заказе товара с определенного раздела, в корзину нужно добавить товар с определенным ID (товар-доставка)
2. Также все должно корректно работать при обновлении корзины и удалении товаров из корзины (если в корзине не осталось товаров с данного раздела, то и доставку нужно убирать)
Но почему-то у меня доставка удаляется но висит в корзине до перезагрузки страницы.
Вот мой стремный код если есть решение изящнее то буду очень благодарен. По сути — нужно установить определенную сумму доставки при наличии в корзине товаров из определенного раздела (категории)
<?php
switch ($modx->event->name) {
case 'msOnBeforeAddToCart':
$delivery = 0;
$parent = $product->get('parent');
if ($parent == 49 || $parent == 51 || $parent == 52 || $parent == 53 || $parent == 54 || $parent == 55 || $parent == 56) {
foreach($cart->get() as $key => $value){
if ($value['id'] == 460) {
$delivery++;
}
}
if ($delivery == 0) {
$cart->add(460);
}
}
break;
case 'msOnChangeInCart':
case 'msOnRemoveFromCart':
$delivery = 0;
$parent = 0;
foreach($cart->get() as $key => $value){
if ($value['id'] == 460) {
$delivery++;
$keys = $key;
}
if ($product = $modx->getObject('msProduct', $value['id'])) {
$pparent = $product->get('parent');
if ($pparent == 49 || $pparent == 51 || $pparent == 52 || $pparent == 53 || $pparent == 54 || $pparent == 55 || $pparent == 56) {
$parent++;
}
}
}
if ($delivery == 0 && $parent != 0) {
$cart->add(460);
}
else if ($delivery == 1 && $parent == 0) {
$cart->remove($keys);
}
break;
} PdoPage дает странные урл
Хочу сделать пагинацию и решил сделать на pdopage.
Написал по документации
и нормальная пагинация не генерируется. Как сделать что бы урл был как site.com/catalog/?page=2?
(P.S. Весь сайт на чпу)
Написал по документации
<div class="rows">
[[!pdoPage?
&parents=`[[*id]]`
&limit=`36`
&tpl=`item`
&includeTVs=`img, price, title1, discount`
&ajaxMode=`default`
&pageLinkScheme=`/[[+pageVarKey]]-[[+page]]`
]]
</div>
[[!+page.nav]]и когда нажимаю а страницу — переходит на site.com/catalog/catalog/?page=2 // Появляется лишний /catalog/ и нормальная пагинация не генерируется. Как сделать что бы урл был как site.com/catalog/?page=2?
(P.S. Весь сайт на чпу)
Каким образом можно выбрать публикации только за последние три недели?
Сделал, как было предложено — создал сниппет getDateWeekAgo
<?php
$formatDate = date('Y-m-d H:i:s');
$date = new DateTime($formatDate);
$date->modify("-21 day");
return $date->format('Y-m-d H:i:s');
в котором формируется соответствующая дата и разместил код.
[[!pdoPage?
&element=`getTickets`
&tpl=`TicketArticleOnlyRow`
&includeContent=`1`
&parents=`[[*parent]]`
&limit=`3`
&resources=`-[[*id]]`
&sortby=`RAND()`
&includeTVs=`tvimageticket`
&where=`{«publishedon:>»:"[[getDateWeekAgo]]"}`
]]
Подозреваю, что-то делаю не так.
<?php
$formatDate = date('Y-m-d H:i:s');
$date = new DateTime($formatDate);
$date->modify("-21 day");
return $date->format('Y-m-d H:i:s');
в котором формируется соответствующая дата и разместил код.
[[!pdoPage?
&element=`getTickets`
&tpl=`TicketArticleOnlyRow`
&includeContent=`1`
&parents=`[[*parent]]`
&limit=`3`
&resources=`-[[*id]]`
&sortby=`RAND()`
&includeTVs=`tvimageticket`
&where=`{«publishedon:>»:"[[getDateWeekAgo]]"}`
]]
Подозреваю, что-то делаю не так.
Как массово удалить лишние товары miniShop2?
Доброе время суток.
Как массово удалить лишние товары miniShop2?
SQL-запросом, нужно все поля перечислять, джойнить таблицы.
Как быстрее и проще?
Спасибо
Как массово удалить лишние товары miniShop2?
SQL-запросом, нужно все поля перечислять, джойнить таблицы.
Как быстрее и проще?
Спасибо
mFilter2 не скрывать товар если параметр пустой
Здравствуйте, есть задача от клиента.
Вводное
Есть сайт, продает оборудования для мясопереработки. В разделе есть разные машины, и так же некоторые детали. Есть например параметр «Производительность», это слайдер, и у машин он указан, но у деталей этого параметра пустой.
Что сейчас
Если пользователь в графе «Производительность» ставит от «1», то товары у которых ничего не указано в поле «Производительность» — исчезают со страницы.
Вводное
Есть сайт, продает оборудования для мясопереработки. В разделе есть разные машины, и так же некоторые детали. Есть например параметр «Производительность», это слайдер, и у машин он указан, но у деталей этого параметра пустой.
Что сейчас
Если пользователь в графе «Производительность» ставит от «1», то товары у которых ничего не указано в поле «Производительность» — исчезают со страницы.
Скидка в зависимости от суммы заказа
Добрый день.
Направьте, что делаю не так.
Пытаюсь сделать скидку в зависимости от суммы заказа (если более 2500, то 20% скидка)
Что-то не пашет((
Направьте, что делаю не так.
Пытаюсь сделать скидку в зависимости от суммы заказа (если более 2500, то 20% скидка)
Что-то не пашет((
<?php
switch ($modx->event->name) {
case 'msOnAddToCart':
case 'msOnChangeInCart':
case 'msOnRemoveFromCart':
$cartArray = $cart->get();
$cartStatus = $cart->status();
$totalCount = $cartStatus['total_count'];
if ($total_cost >= 2500) {
foreach ($cartArray as &$cartProduct) { // Обрабатываем все товары корзины
if ($product = $modx->getObject('msProduct', $cartProduct['id'])) {
$cartProduct['price'] = $product->get('price') * 0.8;
}
}
$cart->set($cartArray);
}
break;
} Переключение опции в зависимости от дня недели
Доброго времени суток. Может кто подскажет как решить задачку. Система: MODX и Minishop2
Имеем: например 100 товаров и 5 из них с допполем disableOrder (радиокнопка) и значением Вкл/Выкл. В определенный день недели для заказа доступен только один из этих 5 товаров (т.е. параметр стоит в положении Вкл, остальные Выкл). На текущий момент переключается это всё ручками, наступил следующий день -> захожу в предыдущий товар, отключаю -> захожу в товар, который должен быть сегодня для заказа -> включаю. При этом — в зависимости от статуса disableOrder кнопка «Заказать» меняется на «Недоступно» и отключается функционал добавления в корзину (т.е. простым условием подменяется на кнопку пустышку без функционала). При этом сами товары видны, но заказать товар нельзя. Можно ли это дело автоматизировать?
Имеем: например 100 товаров и 5 из них с допполем disableOrder (радиокнопка) и значением Вкл/Выкл. В определенный день недели для заказа доступен только один из этих 5 товаров (т.е. параметр стоит в положении Вкл, остальные Выкл). На текущий момент переключается это всё ручками, наступил следующий день -> захожу в предыдущий товар, отключаю -> захожу в товар, который должен быть сегодня для заказа -> включаю. При этом — в зависимости от статуса disableOrder кнопка «Заказать» меняется на «Недоступно» и отключается функционал добавления в корзину (т.е. простым условием подменяется на кнопку пустышку без функционала). При этом сами товары видны, но заказать товар нельзя. Можно ли это дело автоматизировать?
Отложенная оплата заказа
Ребята. привет!
Подскажите, пожалуйста, можно ли сделать следующим образом: Клиент создал ms2 заказ с выбранным методом оплаты с условным названием (Допустим «Оплата онлайн»), но его не редиректит на страницу оплаты, а просто подтверждается выполнение заказа (как при самовывозе по умолчанию). Затем, спустя какое-то время ему менеджер говорит, что заказ проверен и утвержден, оплатите. Он заходит на страницу, где можно указать номер заказа, сумму и ряд доп.полей для разных нужд.
Соответственно, нужно взять существующий заказ ms2 со статусом Новый и принудительно заставить его пройти операцию оплаты так, как он бы это сделал автоматически, если был бы по умолчанию с методом оплаты Сбербанком или любым другим платежным модулем (у меня сбербанк).
Иными словами, есть ли какой-то метод/процессор, который я могу вызвать, получив в коде объект заказа, чтобы после того, как форма с номером заказа и суммой отправилась — клиента редиректнуло на страницу оплаты сбера?
Подскажите, пожалуйста, можно ли сделать следующим образом: Клиент создал ms2 заказ с выбранным методом оплаты с условным названием (Допустим «Оплата онлайн»), но его не редиректит на страницу оплаты, а просто подтверждается выполнение заказа (как при самовывозе по умолчанию). Затем, спустя какое-то время ему менеджер говорит, что заказ проверен и утвержден, оплатите. Он заходит на страницу, где можно указать номер заказа, сумму и ряд доп.полей для разных нужд.
Соответственно, нужно взять существующий заказ ms2 со статусом Новый и принудительно заставить его пройти операцию оплаты так, как он бы это сделал автоматически, если был бы по умолчанию с методом оплаты Сбербанком или любым другим платежным модулем (у меня сбербанк).
Иными словами, есть ли какой-то метод/процессор, который я могу вызвать, получив в коде объект заказа, чтобы после того, как форма с номером заказа и суммой отправилась — клиента редиректнуло на страницу оплаты сбера?
Форум
Существуют ли плагины/виджеты/tools для создания форума на cms modx, хостинге modhost.pro??
Заранее огромное спасибо.
Заранее огромное спасибо.
Доставка товару из категории
Добрый день.
Скажите, как сделать такую вещь:
Если в корзине присутствует товар из определенной категории, то нужно выбрать определенный тип доставки, а остальные для выбора заблокировать?
Пытался так:
в msCart
Скажите, как сделать такую вещь:
Если в корзине присутствует товар из определенной категории, то нужно выбрать определенный тип доставки, а остальные для выбора заблокировать?
Пытался так:
в msCart
{foreach $products as $product}
{set $product_parent[] = $product.parent}
{/foreach}И далее в msOrder{if '18' in $product_parent} disabled{else}{/if}Но, во первых, массив $product_parent отсутствует в msOrder, а во вторых тогда он отключить все способы доставки)