Magento - Как установить минимальное количество товаров в заказе для категории? - PullRequest
1 голос
/ 01 ноября 2010

Можно ли установить минимальное количество товаров, необходимое для категории на заказ в Magento. Клиент продает картины с изображением диких животных, одна из категорий магазинов - «карточки», и не очень выгодно отправлять менее 6 таких за раз.

Как бы я вынудил минимум 6 продуктов из категории карт?

Спасибо, Dan

Ответы [ 4 ]

2 голосов
/ 01 ноября 2010

Предложение B00MER, вероятно, является самым простым путем, если с точки зрения бизнеса вы можете требовать от пользователей покупать карты в определенных количествах.Недостатком будет то, что они потребуются для заказа нескольких карт одной и той же карты.

Если вам нужно разрешить несколько разных карт и по-прежнему применять ограничения, рассмотрите возможность использования минимальной суммы заказа для всей корзины.Это будет охватывать случаи других продуктов, когда отправка небольших количеств нецелесообразна.

Если это не сработает, рассмотрите возможность использования доставки по тарифным ставкам и использования в качестве платы за обработку невыгодных заказов.Или плата за обработку всех заказов.

Если это не сработает, AFAIK, вам нужно будет выполнить некоторые пользовательские проверки кода, как вы описываете.Как это будет работать с продуктами, которые находятся в нескольких подкатегориях и так далее?Определенно выполнимо, но семантика может быть странной.

Надеюсь, это поможет!

Спасибо, Джо

1 голос
/ 01 ноября 2010

Предположительно, стоимость доставки карты незначительна, если в заказе также содержится что-то гораздо большее, например, полотно.
Установите минимальный вес выбранного вами способа доставки, например, 1 фунт, а вес каждой карты -0,18 (от одной пятой до одной шестой).Таким образом, клиент должен купить как минимум 5 других или что-то тяжелое одновременно.

1 голос
/ 01 ноября 2010

В качестве альтернативного предложения рассмотрите возможность создания правила цены корзины, которое, хотя и не запрещает меньшие количества, может предложить поощрения потенциальным клиентам.

Например, правило может иметь следующие условия:

  • Комбинация атрибутов товара (если товар НАЙДЕН и т. Д.)
  • Количество в корзине равно или больше 6
  • Набор атрибутов , который вы используете исключительно для карт

, а затем предлагайте бесплатную доставку по этим картам.

0 голосов
/ 07 июня 2013

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

Используя Magento, создайте страницу продукта, как обычно. После создания перейдите на страницу и просмотрите исходный код. Захватите весь код и поместите его в редактор (например, блокнот ++). Оттуда прокрутите код до строки 560-580 в зависимости от вашего макета. Вы должны найти функцию javascript:

 productAddToCartForm.submit = function(button, url) {
        if (this.validator.validate()) {
            var form = this.form;
            var oldUrl = form.action;

            if (url) {
               form.action = url;
            }
            var e = null;
            try {
                this.form.submit();
            } catch (e) {
            }
            this.form.action = oldUrl;
            if (e) {
                throw e;
            }

            if (button && button != 'undefined') {
                button.disabled = true;
            }
        }

    }.bind(productAddToCartForm);

Отсюда вы бы отредактировали его так, чтобы он выглядел примерно так:

productAddToCartForm.submit = function(button, url) {
    var LJSM1 = parseFloat(document.getElementById('bundle-option-1-qty-input').value);
    var L2 = parseFloat(document.getElementById('bundle-option-2-qty-input').value);
    var L3 = parseFloat(document.getElementById('bundle-option-3-qty-input').value);
    var L4 = parseFloat(document.getElementById('bundle-option-4-qty-input').value);
    var L5 = parseFloat(document.getElementById('bundle-option-7-qty-input').value);
    var L6 = parseFloat(document.getElementById('bundle-option-6-qty-input').value);
        if (this.validator.validate()) {
        if((L1+L2+L3+L4+L5+L6) <= 15){
        alert("Sorry you are below the minimum order. Please increase your order to 16 or more to continue.");
        }
        else{
            var form = this.form;
            var oldUrl = form.action;

            if (url) {
               form.action = url;
            }
            var e = null;
            try {
                this.form.submit();
            } catch (e) {
            }
            this.form.action = oldUrl;
            if (e) {
                throw e;
            }

            if (button && button != 'undefined') {
                button.disabled = true;
            }
        }
        }
    }.bind(productAddToCartForm);

В моем случае я добавил простое выражение if / else, вызвал параметры на странице и присвоил их переменной, которую затем суммировал.

После того, как вы изменили этот код, вы можете сохранить его в файле .html с тем же именем, что и URL исходной страницы, а затем загрузить его в корневой каталог вашего magento. Это действует как своего рода маска для исходной страницы, поэтому при просмотре продукта вы будете перенаправлены на эту страницу вместо исходной страницы Magento. Корзина, опции и java-скрипт по-прежнему будут работать, и все будет работать нормально. Единственным недостатком является то, на что бы ни выглядела страница, когда вы взяли код, она будет выглядеть для всех остальных. Поэтому я рекомендую удалить код для вашей корзины покупок, сравнения продуктов и всего, что содержит уникальные данные, чтобы не было путаницы. Вдобавок к этому, если вы вносите какие-либо изменения в исходную страницу Magento или в свои темы, вам придется снова очень быстро выполнить процесс, чтобы обновить код.

...