Настройка по умолчанию параметра товара "Действие при нулевой цене"

Всем доброго времени суток.
Вопрос: как настроить по умолчанию параметры всех товаров “Действие при нулевой цене”.
Сейчас при добавлении товара по умолчанию у него выбирается этот параметр в положение “Не разрешать добавлять товар в корзину”.
Нужно где-то в общих настройках CMS поменять это значение по умолчанию на “Разрешить добавить товар в корзину”. Сейчас для всех товаров это вручную приходится делать.

Насколько знаю, никак не задать через настройки.
Можно через модуль “Мои изменения” (не забудьте установить/включить модуль).

  1. В /design/backend/templates/addons/ создайте папку my_changes, в ней папку hooks, в которой папку products
    Должно получиться /design/backend/templates/addons/my_changes/hooks/products

  2. В папке products создайте файл update_product_zero_price_action.override.tpl

  3. В файл вставьте следующий код:

                 <div class="control-group">
                     <label class="control-label" for="elm_zero_price_action">{__("zero_price_action")}:</label>
                     <div class="controls">
                         <select class="span5" name="product_data[zero_price_action]" id="elm_zero_price_action">
                             <option value="P" {if $product_data.zero_price_action == "P"}selected="selected"{/if}>{__("zpa_permit")}</option>
                             <option value="R" {if $product_data.zero_price_action == "R"}selected="selected"{/if}>{__("zpa_refuse")}</option>
                             <option value="A" {if $product_data.zero_price_action == "A"}selected="selected"{/if}>{__("zpa_ask_price")}</option>
                         </select>
                     </div>
                 </div>
    
  4. Почистите кэш.

После всех шагов, у новых товаров по-умолчанию будет стоять “Разрешить добавить товар в корзину”.

3 лайка

Изменить массово статус уже имеющимся товарам можно через sql:

UPDATE cscart_products SET zero_price_action = ‘P’

1 лайк

Спасибо, но что-то как-то сложновато:) Можно, конечно, но хочется дождаться ещё ответов, может кто знает попроще путь.

Сомневаюсь, что дождетесь вариант проще.

Через экспорт/импортproducts_11252018.zip (260 Байт)
Это пример файла.
R - Не разрешать добавлять товар в корзину
P - Разрешить добавить товар в корзину
A - Попросить покупателя ввести цену

  • Выделяете товары
  • Нажимаете Редактировать выбранные
  • Оставляет только обязательные поля + Действие при нулевой цене
  • Нажимаете Применить значения к выделенным товарам
  • Выбираете там нужное значение
  • Нажимаете Применить
1 лайк

Сработало! Но только при создании товара вручную! При обмене через Мой склад, по прежнему запрет на добавление… Как быть?

Через phpmyadmin, в таблице cscart_products надо поменять значение по-умолчанию столбцу zero_price_action с R на P.

Можно sql-запросом:

ALTER TABLE cscart_products CHANGE zero_price_action zero_price_action CHAR(1) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT 'P'

После этого, у товаров, загруженных через CommerceML (мой склад, 1С) будет стоять атрибут “Разрешить добавить товар в корзину”.

Для уже заведенных товаров изменений не будет, поэтому нужен второй запрос:

UPDATE cscart_products SET zero_price_action = 'P'

Советую сделать бекап базы перед изменениями.

1 лайк

Прекрасно! Сработало! Большое спасибо! Это сохранится верно? Не придется после каждого обмена запрос вводить? И модуль мои изменения уже не актуален?

1 лайк

Нет, не придется.

Если вручную товары не добавляете, то не актуален.

1 лайк

Благодарю за потраченное время и полезную информацию! Вы очень помогли.

1 лайк