Как я могу динамически устанавливать / снимать флаг «is_require» на опции в Magento? - PullRequest
2 голосов
/ 11 января 2012

Я работаю в магазине Magento, в котором есть возможность вышивки для одежды. Добавление вышивки не является обязательным (необязательно). ОДНАКО, если вы выберете параметр вышивания, существует ряд параметров, которые затем становятся необходимыми, например имя, шрифт и т. Д.

Я подумал, что мог бы добиться этого, используя javascript для удаления полей параметров вышивания, если флажок «Добавить вышивку» не был установлен, и затем используя этот код в перегруженном Checkout / CartController.php:

/* Options #23-40 are the embroidery details */

foreach($product->getOptions() as $_option){
    if($_option->option_id >= 23 && $_option->option_id <= 40){
        $_option->setIsRequire(false);
    }
}

Этот ПОЧТИ сделал свое дело, однако, когда я попадаю на страницу просмотра корзины, вверху появляется эта ошибка:

"Некоторые из перечисленных ниже продуктов не имеют всех необходимых параметров. Отредактируйте их и настройте все необходимые параметры."

Может кто-нибудь предложить другой подход или, по крайней мере, дать мне знать, если я на правильном пути? И я не заинтересован в покупке другого модуля для этого.

Спасибо!

1 Ответ

0 голосов
/ 13 января 2012

Простым «взломом» было бы не делать их обязательными, а добавить «обязательный» класс css в поля ввода в вашем javascript. Это заставит Magento пожаловаться, когда вы нажмете кнопку «Добавить в корзину».

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...