Как сделать счётчик товаров + — в карточке товара minishop?

Чтобы добавить счетчик товаров "+" и "-" в карточке товара в MODX с использованием minishop, вам понадобится следовать ряду шагов.

Шаг 1: Создание счетчика товаров
Создайте дополнительное поле товара в вашей MODX-установке, которое будет содержать количество выбранных товаров. Вы можете использовать для этого тип поля «Целое число» или «Текст» в зависимости от предпочтений. Создайте новое дополнительное поле и присвойте ему уникальное имя, например, «counter».

Шаг 2: Редактирование шаблона вывода карточки товара
Измените шаблон вывода карточки товара в minishop, чтобы добавить счетчик товаров. Откройте соответствующий шаблон и вставьте следующий код в нужное место (например, перед кнопкой «Добавить в корзину»):

<div class="product-counter">
    <button class="counter-minus">-</button>
    <input type="text" class="counter-input" value="[+a.counter+]">
    <button class="counter-plus">+</button>
</div>

Этот код создаст элементы интерфейса счетчика товаров, включая кнопки "-" и "+", а также поле ввода, в котором будет отображаться количество выбранных товаров.

Шаг 3: Добавление скриптов для работы счетчика
Добавьте скрипты JavaScript для обработки событий «+» и «-», а также обновления значения счетчика товаров. Вам потребуется создать новый файл JavaScript, который будет содержать весь необходимый код. Обычно его называют "custom.js" или "script.js". Вставьте следующий код в ваш файл JavaScript:

$(document).ready(function() {
    $('.counter-plus').click(function() {
        var input = $(this).siblings('.counter-input');
        var oldValue = parseInt(input.val());
        input.val(oldValue + 1);
        return false;
    });

    $('.counter-minus').click(function() {
        var input = $(this).siblings('.counter-input');
        var oldValue = parseInt(input.val());
        if (oldValue > 0) {
            input.val(oldValue - 1);
        }
        return false;
    });
});

Этот код инициализирует обработчики событий для кнопок "+" и "-", которые будут изменять значение счетчика товаров.

Шаг 4: Сохранение и отображение значения счетчика
Для сохранения и отображения значения счетчика товаров вам потребуется изменить обработчик формы добавления товара в корзину. Найдите соответствующий обработчик формы (обычно это файл с названием "addtocart.processor.php") и внесите следующие изменения:

// Получение данных из формы, включая значение счетчика товаров
$product_id = $_POST['id'];
$counter_value = $_POST['counter'];

// Сохранение значения счетчика товаров в базе данных MODX
$modx->runSnippet('msSaveProductData', [
    'id' => $product_id,
    'fields' => [
        'counter' => $counter_value
    ]
]);

// Обновление сниппета minishop.add_to_cart, чтобы отобразить количество товаров в коризне
$output = $modx->runSnippet('msCallAddToCart', [
    'product_id' => $product_id
]);

return $output;

Этот код сохраняет значение счетчика товаров в базе данных MODX с использованием сниппета msSaveProductData и обновляет сниппет minishop.add_to_cart для отображения актуального количества товаров в корзине.

Шаг 5: Вывод счетчика товаров на странице корзины
Если вы хотите отобразить счетчик товаров на странице корзины, вам нужно отредактировать соответствующий шаблон. Вставьте следующий код в шаблон страницы корзины (обычно это файл с названием "cart.tpl"):

<div class="cart-counter">
    Товаров в корзине: [+!msCountItems_cart+]
</div>

Этот код выводит количество выбранных товаров на странице корзины.

В результате после выполнения всех этих шагов у вас должен появиться счетчик товаров "+" и "-", который позволит пользователям устанавливать количество выбранных товаров в карточке товара в MODX minishop.