start.exe

start.exe

С нами с 13 сентября 2014; Место в рейтинге пользователей: #367

Minishop2 количество товаров в корзине

Доброго времени дня!
Необходимо вывести в мини корзине количество товаров (кол-во строк в корзине).
Как вывести на странице разобрался:
count(($miniShop2->cart->get()));
А как сделать что бы при добавлении нового товара автоматически обновлялось не знаю.

Плейсхолдер {$total_count} видел, не подходит. Он выводит общее количество товара. В моем случае товар продается метрами.
Например: кладем в корзину 5 метров одного товара и 3 метра другого. Плейсхолдер
{$total_count} выведет 8, а надо 2 (т.к. в корзине 2 товара)

Решение:
1) Расширил класс корзины:
<?php
if(!class_exists('msCartHandler')) {
    require_once dirname(dirname(dirname(__FILE__))) . '/model/minishop2/mscarthandler.class.php';
}
class myCartHandler extends msCartHandler implements msCartInterface{

    public function status($data = array())
    {
        $status = array(
            'total_count' => 0,
            'total_cost' => 0,
            'total_weight' => 0,
            'total_num' => 0,
        );
        foreach ($this->cart as $item) {
            if (empty($item['ctx']) || $item['ctx'] == $this->ctx) {
                $status['total_count'] += $item['count'];
                $status['total_cost'] += $item['price'] * $item['count'];
                $status['total_weight'] += $item['weight'] * $item['count'];
                $status['total_num']++;
            }
        }

        return array_merge($data, $status);
    }
}
— теперь у нас появился новый плейсхолдер — total_num

2) Что бы при добавлении в корзину у нас мини корзина сразу обновлялась дописал колбеки:
/* Добавление твоаров в корзине */
miniShop2.Callbacks.Cart.add.response.success = function(response) {
    //console.log(response.data['total_num']);
    miniShop2.Cart.totalNum = '.ms2_total_num';
    $(miniShop2.Cart.totalNum).text(response.data['total_num']);
};
/* Изменение твоаров в корзине */
miniShop2.Callbacks.Cart.change.response.success = function(response) {
    miniShop2.Cart.totalNum = '.ms2_total_num';
    $(miniShop2.Cart.totalNum).text(response.data['total_num']);
};
3) Добавляем в чанк с мини корзиной плейсхолдер и класс.
<span class="ms2_total_num">{$total_num}</span>
П.с. за наводку спасибо пользователю — Алексей
Руслан Сафин
04 сентября 2017, 14:06
modx.pro
6
7 217
0

mFilter2 и редирект на другую страницу

Вечер добрый сообщество.
Есть главная страницу сайта, на которое вызван сниппет mFilter2 с параметрами

Дмитрий Середюк
14 августа 2017, 17:50
modx.pro
4
2 146
0

Как реализовать? Интернет-магазин керамики

Подскажите или намекните как правильно реализовать следующее:

11000 товаров
У каждого производителя есть свои коллекции.
в коллекции существуют множество товаров (напольная плитка, плинтуса, настенная плитка и т.д.)

как в карточке товара (какая-либо коллекция) вставить все товары которые есть в этой коллекции

Пример:
Рассмотрим коллекцию А. в ней существует 3 вида товаров (Напольная, Настенная, и плинтуса)

если
в коллекции есть:
Плинтуса -> то выводить надпись Плинтус и все товары данной колекции
иначе если есть
Напольная плитка -> то выводить Напольная плитка и товары и т.д.

Извиняюсь за такое подробное описание, но я выложил суть вопроса как можно подробнее
Дмитрий
14 августа 2017, 14:23
modx.pro
3
1 924
0

Tickets - обработка и получение полей Формы

Вначале коротко вопросы:
  1. Как осуществить кастомную обработку полей формы до отправки в БД? (частично решено)
  2. Как при выводе комментарий, обращаться к данным из «properties»? (уже узнал)
  3. Как контролировать то, что отправляется в «properties»?
Сuriosity
01 августа 2017, 16:46
modx.pro
1
1 335
0

Анонс SeoFilter - ЧПУ+SEO для mFilter2 и не только

[SeoFilter] — удобное управление ЧПУ ссылками, мета-тегами и генерация текстов.
[Купить компонент в modstore] [Демо-версия]

Добрый день! Представляю компонент, идея которого зародилась довольно таки давно, и уже было подобное решение, с которого я и начинал. Большое спасибо Дмитрию Зарубину — автору того поста, а также Василию, за прекрасные уроки по написанию компонентов.



Основные возможности:
— работа из коробки с mFilter2;
поддержка любых полей в фильтре: поля ресурса, поля товара, опций miniShop2, TV и любых своих;
— работа без двойной транслитерации (подробнее дальше);
любой формат ссылок для поля (/color-white, /white-color, /white, /belyi и т.д);
статистика переходов на страницы как по ссылкам, так и через фильтр;
— интеграция с компонентом frontendManager (добавлен контроллер для редактирования с фронта);
— возможность выбирать и прописывать в шаблоны мин/макс значения по числовым полям;
prepareSnippet для дополнительной обработки шаблонов, для большей гибкости выборок;
— SEO шаблоны с Fenom и склонения через сервис morpher (Заголовок на скриншоте:)
{$category_i} {$color_r} цвета у метро {$metro}

Подробнее под катом.
Евгений Шеронов
28 июля 2017, 12:12
modx.pro
9
12 328
+20

Доп. поля товаров MiniShop2

Здравствуйте! Подскажите пожалуйста кто имел дело с созданием плагинов товаров в карточке Minishop2, т.е. с добавлением новых полей. Я добавил нужное мне поле «Плотность». В админке все как мне нужно, а как сделать, чтобы на фронтенде значение поля выводилось как обычный текст (как Артикул например), а не как выпадающий список?
Futuris
20 июля 2017, 08:03
modx.pro
1
825
0

Вывести поля производителя на отдельную страницу?

Подскажите пожалуйста. Хочу сделать персональную страницу для каждого производителя, в настройках miniShop2 добавил производителя связал его с определенным ресурсом, но не понимаю как вывести поля производителя (название, логотип, описание и т.д и т.п.) в этом ресурсе. Какие плэйсхолдеры для этого использовать? Прописываю [[+name]], [[+logo]], но ни чего не выводит, помогите кто может.
Ринат
24 июня 2017, 11:27
modx.pro
3
1 431
0

Сортировка msProducts по опции Дата

Приветствую!
Мероприятия — это товары minishop.
Данные в мероприятиях записаны в опциях.
Есть опция Дата проведения — date_opt.

Нужно сортировать по дате date_opt, чтобы было так:
01.06.2017
02.06.2017
03.06.2017
01.07.2017
02.07.2017
03.07.2017
Rootiys
18 июня 2017, 14:02
modx.pro
1
2 631
0

mFilter2 + Fenom + filterOptions

Здравствуйте!
Был вот такой код:
[[!mFilter2?
    &parents=`0`
    &ajaxMode=`button`
    &filterOptions=`{
        "more_tpl": "<a class='btn_more'>" + mse2Config['oneMoreText'] + "</a>"
    }`
]]

Хочу его переписать на Fenom. И сталкиваюсь с такой проблемой, что не хватает ковычек для параметра «more_tpl», Т.к. в синтаксисе modx используются ковычки «` `», а в Fenom «' '»
Соответственно, с Fenom не получается в шаблоне more_tpl добавить класс для ссылки:
{'!mFilter2' | snippet : [
	'parents' => 0,
	...
	"filterOptions" => '{
        "more_tpl": "<a class= ... >...</a>",
    }'
]}
Подскажите, как решить эту проблему?
serbeh
13 июня 2017, 12:33
modx.pro
1
1 897
0

Minishop2 вывод свойств как категорий в разделе

Здравствуйте!
Есть такой вопрос. У меня есть товары, которые соотносятся с автомобилями: марка, модель, кузов.
Марку автомобиля я сделал категориями, т/к их немного (самих товаров около 6к).
У каждого товара в свойствах я прописал модель и кузов (повторюсь, что марка это категория).
Теперь я хочу чтобы в категории (т/е в марке автомобиля) не происходил сразу вывод товаров, а сначала вышли все модели, под моделями кузова.
Т/е мне нужно что-то вроде фильтра по свойствам, но внутри категории. Пока хочу просто их выводить хотя бы.
Готового ничего не нашел, поэтому стал писать сниппет:
$table = 'modx_ms2_products';

$sql = "SELECT * FROM $table GROUP BY model";
$q = $modx->prepare($sql);
$q->execute(array(0));
$arr = $q->fetchAll(PDO::FETCH_ASSOC);
Но в этой таблице нет понятия кто кого наследует по разделам. И тут еще нужно использовать modx_site_content таблицу, т/к там взаимосвязи по разделам лежат (т/к марка это раздел/категория).
Роман
12 июня 2017, 09:30
modx.pro
1
1 073
0