2.9.2
Установка
После скачивания модуля, его установка производится штатными средствами CS-Cart на странице Панель администратора → Модули → Управление модулями → Загрузить и установить модуль (+).
Для версии CS-Cart 4.13.1 и выше Панель администратора → Модули → Управление модулями → Кнопка Шестеренка → Ручная установка.

Установка хуков
Для корректной работы требуется установить хуки по инструкции. Информация собрана во вкладке модуля Информация.
Данная операция по добавлению хуков актуальна для текущей версии модуля v.2.5.13 и более поздних, в будущих версиях возможно данная операция уже не понадобиться.

Для отображения количество товара в корзине, необходимо добавить 3 хука в файл “fn.cart.php”:
- Откройте файл fn.cart.php (файл будет находиться по пути: app/functions/fn.cart.php);
- В открывшемся файле найдите строку с кодом (ориентировочно между строк 6057-6062):
- После найденной строчкой вставьте код:
- В результате у вас должно получится следующее:
- Далее в файле найдите строку с кодом (ориентировочно между строк 6522-6524):
- После найденной строчкой вставьте код:
- В результате у вас должно получится следующее:
- Далее в файле найдите строку с кодом (ориентировочно между строк 9340-9342):
- После найденной строчкой вставьте код:
- В результате у вас должно получится следующее:
- Сохраните изменения в файле;
- Очистить кэш:
- В админ панели выберите Администрирование → Хранилище данных → Очистить кэш.
if (!empty($product['qty_step']) && $product['qty_step'] > $min_qty) {
$min_qty = $product['qty_step'];
fn_set_hook('check_amount_in_stock_min_qty', $product, $min_qty, $product_id);
if (!empty($product['qty_step']) && $product['qty_step'] > $min_qty) {
$min_qty = $product['qty_step'];
}
fn_set_hook('check_amount_in_stock_min_qty', $product, $min_qty, $product_id);
$cart_amount_changed = false;

$amount = fn_normalize_amount(@$data['amount']);
fn_set_hook('add_product_to_cart_post_normalize_ammount', $product_id, $amount, $data);
$amount = fn_normalize_amount(@$data['amount']);
fn_set_hook('add_product_to_cart_post_normalize_ammount', $product_id, $amount, $data);
if (!isset($data['extra']['exclude_from_calculate'])) {

$amount = fn_normalize_amount($v['amount']);
fn_set_hook('update_cart_products_normalize_amount_post', $amount, $v);
$amount = fn_normalize_amount($v['amount']);
fn_set_hook('update_cart_products_normalize_amount_post', $amount, $v);
$v['extra'] = empty($cart['products'][$k]['extra']) ? array() : $cart['products'][$k]['extra'];


Для работы с commerceml, необходимо добавить хук в файл “OrderConvertor.php”:
- Откройте файл OrderConvertor.php (файл будет находиться по пути: app/addons/commerceml/src/Convertors/OrderConvertor.php);
- В открывшемся файле найдите строку с кодом (ориентировочно между строк 44-46):
- После найденной строчкой вставьте код:
- В результате у вас должно получится следующее:
- Сохраните изменения в файле;
- Очистить кэш:
- В админ панели выберите Администрирование → Хранилище данных → Очистить кэш.
$order->id->external_id = $element->getAsString('id');
fn_set_hook('commerceml_order_convertor_convert_pre', $element, $import_storage, $order);
$order->id->external_id = $element->getAsString('id');
fn_set_hook('commerceml_order_convertor_convert_pre', $element, $import_storage, $order);
foreach ($element->get('products/product', []) as $item) {


Настройка
Настройка модуля (Глобальные настройки)
Перейдите в раздел Модули → Скачанные модули → Дробный остаток → Вкладка Настройки
Основные настройки:
На вкладке настройки поделены на 3 раздела, Глобальные настройки для товаров, Глобальные настройки для упаковок, Настройки корзины.
Применение этих настроек влияет сразу на все товары магазина, если не заданы локальные настройки у товара (об этом ниже).
Глобальные настройки для товаров
Использовать дробный остаток - Включение данной функции позволит редактировать поле: Единица измерения количества.
ПримерНапример в магазине продающий кабеля присутствуют товары продающейся только в метрах, в этом случае в настройках модуля можно включить использование дробного остатка и задать единицу измерения количества, метр. В результате у всех товаров (если локально у товара не выбрано другая настройка/выключено использование дробного остатка) будет отображаться единица измерения количества указанная в глобальных настройках модуля.

Глобальные настройки для упаковок
Товар продаётся:
- Поштучно - товары продаются штуками, все товары (если локально у товара не выбрано другая настройка/включено продажа упаковками) будут продаваться в штучном или аналогичном виде;
- Упаковками - товары продаются упаковками, можно задать:
- Количество товара в упаковке - Шаг изменения количества товара, который будет применяться к товарам продающимся упаковками;

Варианты отображения выбора количества товара:
- Показывать количество упаковок - Отображать в карточке товара и каталоге только счетчик с количеством упаковок;
- Показывать количество товара и упаковок - Отображать в карточке товара и каталоге счетчик с количеством упаковок и количеством товаров в упаковке. Пример
- Количество позиций - сколько видов товара лежит в корзине;
- Количество единиц - сколько всего единиц товара лежит в корзине;
- Не отображать.
- Отображать единицы измерения в предложениях продавцов
- Отображать все способы продажи на странице категорий
- Глобальные настройки:
- Для товара будет использоваться единица измерения количества из глобальных настроек модуля;
- Для товара можно можно задать:
- Шаг списка выбора количества;
- Минимальное количество товара для заказа;
- Максимальное количество для покупки одного товара.
- Да:
- Для товара принудительно будет использоваться дробный остаток;
- Для товара можно можно задать:
- Единица измерения количества;
- Шаг списка выбора количества;
- Минимальное количество товара для заказа;
- Максимальное количество для покупки одного товара.
- Нет:
- Для товара принудительно будет выключен дробный остаток;
- Для товара можно можно задать:
- Единица измерения количества.
- Глобальные настройки:
- Для товара будут использоваться глобальные настройки для упаковок;
- Для товара не доступны к редактированию поля:
- Количество товара в упаковке;
- Варианты отображения выбора количества товара;
- Да:
- Для товара можно задать количество товара в упаковке;
- Для товара можно выбрать варианты отображения выбора количества товара;
- Нет:
- Товар продается штуками, глобальные настройки не влияют на товар, локальные поля недоступны для редактирования.

Например в магазине по продаже продуктов оптом присутствует товар: ящик молока. Данный товар необходимо продавать упаковками и демонстрировать, что в 1 упаковке 12 пакетов молока. Для этого в настройках модуля необходимо выбрать: - Товар продаётся: Упаковками; - Количество товара в упаковке: 12; - Варианты отображения выбора количества товара: Показывать количество товара и упаковок.

Настройки корзины
Режим отображения количества на иконке корзины - Позволяет выбрать вариант отображения на иконке корзины:



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

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

Эта и все последующие настройки отвечают за отображение всех способ продажи на страницах и блоках по выбору.

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

Вид с выключенной настройкой Отображать все способы продажи в блоке товаров:

Вид с включенной настройкой Отображать все способы продажи на странице отложенные товары:

Вид с выключенной настройкой Отображать все способы продажи на странице отложенные товары:

В настройках модуля во вкладке Информация отображается инструкция по добавлению хуков, описанная в начале данной инструкции.
Настройка модуля (Локальные настройки)
Перейдите в раздел Товары → Товары → Откройте товар для настройки дробного остатка → Перейдите во вкладку Модули → Найдите блок MS: Дробный остаток.

Настройки для товаров
Использовать дробный остаток
В магазине по продаже кондитерских товаров необходимо продавать товар миндальные лепестки, минимальный заказ от 500 гр. шаг увеличения по 100 гр. и максимальное количество товара для заказа 2000 гр. В этом случае в настройках модуля задается Единица измерения количества и включается Использование дробного остатка:

В настройках товара заполняются следующие поля:

В результате карточка будет выглядеть так:

Например в магазине по продаже мебели есть товар саморезы, продаваемые в граммах, с шагом в 50 гр. минимальным заказом от 200 гр. и максимальным до 5000 р. В этом случае в настройках модуля Использование дробного остатка выключено:

В настройках товара заполняются следующие поля:

В результате карточка будет выглядеть так:

Например в магазине по продаже напитков можно задать единицы измерения бутылка, банка, пакет и т.п. для каждого товара:

Настройки для упаковок
Товар продаётся упаковками
Например магазин по продаже напитков оптом, предлагает клиентам только упаковки по 6 бутылок. В этом случае настройки модуля будут выглядеть так:

Локально для товаров надо выбрать:
Использовать дробный остаток: Глобальные настройки Товар продаётся упаковками: Глобальные настройки
В результате карточка будет выглядеть так:


Массовое редактирование
Через обновление товаров в CS-Cart:
- Открыть раздел Товары → Товары;
- Выберите необходимые товары;
- Нажмите Редактировать выбранные;
- Выбрать поля для редактирования;
- Нажать Редактировать выбранные;
- Ввести новые значения для выбранных полей; Значение global - Глобальные настройки Y - Да N - Нет
- Нажать Сохранить.



Через экспорт импорт товаров:
- Открыть раздел Администрирование → Экспорт данных → Товары;
- Переместить из списка доступных полей в экспортируемые поля следующие поля: MS:Allow Fractional Amount MS:Product Amount Step MS:Product minimum order quantity MS:Product maximum order quantity MS:Product Amount Postfix MS:Product Sale Type MS:Show Sale Types Данные поля отобразятся в табличном файле для редактирование настроек дробного остатка
- Нажать Экспорт;
- В табличном файле внести необходимые изменения и сохранить;
- Открыть раздел Администрирование → Импорт данных → Товары;
- Нажать кнопку +;
- Выбрать табличный файл;
- Перейти на следующий шаг Сопоставление полей;
- Сопоставить поля как изображено ниже:
- Нажать Импорт.

