Сам процессор корзины лежит тут, если не ошибаюсь:
Filesystem/Core/components/basket/processors/basket/mgr/orders/products/getdata.class.php
Его на финальной стадии расширяет следующий процессор:
Filesystem/Core/components/basket/processors/basket/web/orders/products/getdata.class.php
И всё это упирается в итоге в smarty-шаблоны вывода корзины. Редактировать, полагаю, надо mgr-процессор, расширяющий базовый процессор getdata. Сам с xPDO не работал, тут не помогу. Если где ошибся — гуру, поправьте = ) Но хоть направление для изысканий задам. Кстати, если еще не взято на вооружение — в редактировании очень помогает ModxSDK из репозитория Fi1osof, очень уж классный там редактор кода = )
Добрый день всем участникам клуба. Использую сборку ShopModxBox для своего проекта. Разбираюсь с нуля, очень помогли вебинары Fi1osof-а. Столкнулся с проблемой добавления нескольких товаров в корзину с 1 кнопки. Поясню: есть 1 основной товар и к нему можно выбрать опции — товары из другой категории (грубо говоря отметить галочками). Нужно чтобы при нажатии кнопки «Далее» в корзину добавился как основной товар, так и выбранные опции, и произошел бы переход в корзину для оформления. С одним товаром проблем нет. Кнопку кидаю в форму с полями:
<input type="hidden" name="product_id" value="{$object.product_id}"/> <input type="hidden" name="action" value="add_product"/>
И все отлично добавляется. А как добавить одновременно несколько товаров? Где написать цикл добавления? Или можно как-то поменять плагин корзины? Вот ссылка на форму: форма выбора опций...
А там уже можете добавить условия поиска. К примеру, хотите в условие добавить товары в ценовой вилке 100 — 5000 рублей. Добавляете условие:
$q->where(array( "Product.sm_price between 100 and 5000", ));
или
$q->where(array( "sm_price:>=" => 100, "sm_price:<" => 5000, ));
Вообще проще всего использовать процессор web/resources/getdata. Но если у вас задача перебрать большое количество товаров, то да, надо запрос делать на чистом xPDO. Но надо для этого четко понимать что есть что. ShopmodxResourceProduct — производный от modResource класс документа товара. ShopmodxProduct — дополнительный класс товара. По сути, чтобы получить только товары, надо в запросе таблицы этих объектов объединить джоином. Вот пример выборки:
$q = $modx->newQuery('modResource'); $q->innerJoin('ShopmodxProduct', 'Product'); $q->where(array( "deleted" => 0, "published" => 1, )); $q->select(array( "modResource.*", )); $s = $q->prepare(); $s->execute(); while($row = $s->fetch(PDO::FETCH_ASSOC)){ // Ваш код }
Не знаю где спросить… Не подскажите как сделать поиск по товарам чтобы выводилось через fetch, может где готовый компонент есть =)?
Да уж, как обычно-невнимательность))Спасибо за помощь!)
Все оказалось гораздо проще:) Вы выключили сайт, поэтому робокасса от себя и не могла достучаться на сайт и выполнить запрос на проверку платежа. Она же запросы шлет без всяких ваших кукисов. Включил сайт, оплатил товар (платеж нормально прошел), выключил сайт обратно.
Добрый день!
Скорее всего у вас кастомные папки MODX-а или типа того. Шаблоны тут не при чем, потому что это запрос на коннектор, который скорее всего не может проинициализировать MODX и поэтому отдает 503-ю. Кидайте доступы в личку, гляну.