Помощь Кто как реализовал Кратное добавление товара в Корзину?

vitos1401

Мой дом здесь!
Регистрация
3 Ноя 2012
Сообщения
191
Реакции
455
Всех приветствую!
Подскажите, кто как реализовал Кратное добавление товара в Корзину (для PS 1.7.4.4) ?
Задача такая: Кратность должна быть привязана к Минимальному количеству, доступному для продажи.
Т. е., если у товара минимальное количество для продажи 6 шт (столько в упаковке и она не делится), то и добавляется/удаляется в Корзину - 6 шт., если 12 шт. - то добавляется, соответственно, 12 шт.
Шаг добавления - равен минимальному количеству.

Варианты с наборами товаров и прочие полу-решения разумеется не подходят.
Интересует вариант кода в Product.js ...
Похожее решение для PS 1.6 (фрагмент), где в "val(currentVal -/+ 1)" вместо "1" добавлена единица кратности - "прикрутить" не получилось.
Что делаю не так?
Заранее благодарен.

Код:
// The button to increment the product value
$(document).on('click', '.product_quantity_up', function(e){
    e.preventDefault();
    fieldName = $(this).data('field-qty');
    var currentVal = parseInt($('input[name='+fieldName+']').val());
    if (!allowBuyWhenOutOfStock && quantityAvailable > 0)
        quantityAvailableT = quantityAvailable;
    else
        quantityAvailableT = 100000000;
    if (!isNaN(currentVal) && currentVal < quantityAvailableT)
        $('input[name='+fieldName+']').val(currentVal + 1).trigger('keyup');
    else
        $('input[name='+fieldName+']').val(quantityAvailableT);

    $('#quantity_wanted').change();
});
// The button to decrement the product value
$(document).on('click', '.product_quantity_down', function(e){
    e.preventDefault();
    fieldName = $(this).data('field-qty');
    var currentVal = parseInt($('input[name='+fieldName+']').val());
    if (!isNaN(currentVal) && currentVal > 1)
        $('input[name='+fieldName+']').val(currentVal - 1).trigger('keyup');
    else
        $('input[name='+fieldName+']').val(1);

    $('#quantity_wanted').change();
});
 
Последнее редактирование:
Т. е., если у товара минимальное количество для продажи 6 шт, то и добавляется/удаляется в Корзину - 6 шт., если 12 шт. - то добавляется, соответственно, 12 шт.
Не проще сделать единицей не штуку, а упаковку... В описании указать "В упаковке 6 штук" и ценник указывать за упаковку, а не за единицу?
 
Не проще сделать единицей не штуку, а упаковку... В описании указать "В упаковке 6 штук" и ценник указывать за упаковку, а не за единицу?

Спасибо за ваш ответ. Но, этот вариант не подходит (с него я и начинал). Дело в том, что заказчиком определена такая задача:

В Списке товаров, в Сетке товаров и в Карточке товаров обязательно должна быть единица "штука", и цена должна выводится по умолчанию за "штуку", и "штука" должна быть комбинацией по умолчанию... + должна иметь место вторая комбинация "упаковка 6 шт".

Клиент должен видеть цену за штуку и, дескать, мотивироваться к покупке. И поэтому ценник должен быть за "штуку" - во всех "видных местах".
Я пытаюсь реализовать следующее: две комбинации: "Штука" и "Упаковка 6 шт .. 12 шт .. 24 шт .. и так далее". При выборе "упаковка 6 шт" - в корзину должна добавляется 1 ед. товара. При выборе "штука" - в корзину должно складываться кратное количество (столько сколько в упаковке).

Вывести и сделать неактивной комбинацию "штука" - нельзя (она по умолчанию) - т. к. при открытой карточки товара складывается впечатление, что товара нет в наличии (кнопка "В корзину" не активна) - и не каждый покупатель станет кликать на "упаковке", чтобы увидеть активную кнопку "В корзину" + эта не активность будет видна в Списке товаров.

Товаров (комбинаций) более 100к (интеграция с 1С) - вручную ничего не добавить. Все цены, скидки, количество в упаковке для каждой комбинации беру автоматом из 1С.
На стороне Престы осталось автоматизировать кратность добавления. т. к. из 1С для штуки я это ограничение передать не могу.
 
Последнее редактирование:
Недавно делал подобно для клиента, нужно было вывести цену за литр, просто добавил кусок кода, где цена делится на объем и всего делов.

Может просто выводить цену за ед, отдельным кодом, ну а в корзину будет ложится как писали выше.
 
А сделать дополнительное поле с ценой за штуку и выводить его? Я престу не знаю, но в других движках доп поля есть...
 
А сделать дополнительное поле с ценой за штуку и выводить его? Я престу не знаю, но в других движках доп поля есть...
да, в карточке товара есть такое поле, только нужно будет вводить для каждого товара отдельно, в моем предложении выводится автоматом
 
Недавно делал подобно для клиента, нужно было вывести цену за литр, просто добавил кусок кода, где цена делится на объем и всего делов.

Может просто выводить цену за ед, отдельным кодом, ну а в корзину будет ложится как писали выше.

Благодарю за ответ. Согласен, вывести цену за штуку в шаблоне в любом месте - это не проблема... Я наверное, сам немного отошел от темы. Вопрос немного в другом:
Как реализовать кратное добавление товара в корзину? Т .е. как изменить шаг добавления товара в корзину и привязать этот шаг к минимально-разрешенному количеству товара?
Буду благодарен за разъяснение.
 
Последнее редактирование:
Всех приветствую! Кратность добавления/удаления товаров (на странице Товар и странице Корзина) - допилить получилось.
Осталась не решенной другая задача:
Никак не хочет работать Кратность для Списка товаров (и Плитки товаров). По аналогии с Товаром и Корзиной, (изменения внесенные в CartController.php, Core,js и шаблонах product-add-to-cart.tpl и cart-summary-product-line.tpl) - не работают для Категорий.
Т. е. в Категории имеется кнопка "В корзину" и поле количество товара, но не получается установить шаг добавления (min, step, max) для режима Список/Сетка товаров.
Ну, а так как Новинки, Рекомендованное и Лидеры продаж на Главной используют настройки Сетки (Плитки) , то и там, соответственно Кратность не хочет учитываться.
Буду благодарен за совет или наводку.
 
Последнее редактирование:
делала добавлением новой переменной, много чего меняла, если очень надо выставлю тестовый сайт.Что было сделано: в админке выставляется количество товаров которое можно положить в корзину мин, то есть добавляет не по одной как в стандартном функционале, а нужное количество сразу по 2, по 3 и тд - добавляет и удаляет кратно.В корзину нужное количество можно добавлять как из списка ,так и с карточки товара ,и в корзине.Но мин мах нет, только определённое количество, но для каждого товара своё.
Ой, не посмотрела, что в 1.7
 
делала добавлением новой переменной, много чего меняла, если очень надо выставлю тестовый сайт.Что было сделано: в админке выставляется количество товаров которое можно положить в корзину мин, то есть добавляет не по одной как в стандартном функционале, а нужное количество сразу по 2, по 3 и тд - добавляет и удаляет кратно.В корзину нужное количество можно добавлять как из списка ,так и с карточки товара ,и в корзине.Но мин мах нет, только определённое количество, но для каждого товара своё.
Ой, не посмотрела, что в 1.7
Всё равно стоило бы выложить, можно и на форуме ТВ, и на их гитхабе в виде feature request или чего-то в этом роде... А уж родина вас не забудет :ay::party:
 
Назад
Сверху