2.9.2

Дробный остаток

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

Установка

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

Для версии CS-Cart 4.13.1 и выше Панель администратора → Модули → Управление модулями → Кнопка Шестеренка → Ручная установка.

Image

Установка хуков

Для корректной работы требуется установить хуки по инструкции. Информация собрана во вкладке модуля Информация.

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

Image

Для отображения количество товара в корзине, необходимо добавить 3 хука в файл “fn.cart.php”:

  1. Откройте файл fn.cart.php (файл будет находиться по пути: app/functions/fn.cart.php);
  2. В открывшемся файле найдите строку с кодом (ориентировочно между строк 6057-6062):
    1. if (!empty($product['qty_step']) && $product['qty_step'] > $min_qty) {
              $min_qty = $product['qty_step'];
  3. После найденной строчкой вставьте код:
    1. fn_set_hook('check_amount_in_stock_min_qty', $product, $min_qty, $product_id);
  4. В результате у вас должно получится следующее:
    1. 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;
      Image
  5. Далее в файле найдите строку с кодом (ориентировочно между строк 6522-6524):
    1. $amount = fn_normalize_amount(@$data['amount']);
  6. После найденной строчкой вставьте код:
    1. fn_set_hook('add_product_to_cart_post_normalize_ammount', $product_id, $amount, $data);
  7. В результате у вас должно получится следующее:
    1. $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'])) {
      Image
  8. Далее в файле найдите строку с кодом (ориентировочно между строк 9340-9342):
    1. $amount = fn_normalize_amount($v['amount']);
  9. После найденной строчкой вставьте код:
    1. fn_set_hook('update_cart_products_normalize_amount_post', $amount, $v);
  10. В результате у вас должно получится следующее:
    1. $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'];
      Image
  11. Сохраните изменения в файле;
  12. Очистить кэш:
    1. В админ панели выберите Администрирование → Хранилище данных → Очистить кэш.
      1. Image

Для работы с commerceml, необходимо добавить хук в файл “OrderConvertor.php”:

  1. Откройте файл OrderConvertor.php (файл будет находиться по пути: app/addons/commerceml/src/Convertors/OrderConvertor.php);
  2. В открывшемся файле найдите строку с кодом (ориентировочно между строк 44-46):
    1. $order->id->external_id = $element->getAsString('id');
  3. После найденной строчкой вставьте код:
    1. fn_set_hook('commerceml_order_convertor_convert_pre', $element, $import_storage, $order);
  4. В результате у вас должно получится следующее:
    1. $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) {
      Image
  5. Сохраните изменения в файле;
  6. Очистить кэш:
    1. В админ панели выберите Администрирование → Хранилище данных → Очистить кэш.
      1. Image

Настройка

Настройка модуля (Глобальные настройки)

Перейдите в раздел Модули → Скачанные модули → Дробный остаток → Вкладка Настройки

Основные настройки:

На вкладке настройки поделены на 3 раздела, Глобальные настройки для товаров, Глобальные настройки для упаковок, Настройки корзины.

Применение этих настроек влияет сразу на все товары магазина, если не заданы локальные настройки у товара (об этом ниже).

Глобальные настройки для товаров

Использовать дробный остаток - Включение данной функции позволит редактировать поле: Единица измерения количества.

Пример

Глобальные настройки для упаковок

Товар продаётся:

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

Варианты отображения выбора количества товара:

  • Показывать количество упаковок - Отображать в карточке товара и каталоге только счетчик с количеством упаковок;
  • Image
  • Показывать количество товара и упаковок - Отображать в карточке товара и каталоге счетчик с количеством упаковок и количеством товаров в упаковке.
  • Пример

    Настройки корзины

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

    • Количество позиций - сколько видов товара лежит в корзине;
    Image
    • Количество единиц - сколько всего единиц товара лежит в корзине;
    Image
    • Не отображать.
    Image

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

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

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

    Image
    Пример

    В настройках модуля во вкладке Информация отображается инструкция по добавлению хуков, описанная в начале данной инструкции.

    Настройка модуля (Локальные настройки)

    Перейдите в раздел Товары → Товары → Откройте товар для настройки дробного остатка Перейдите во вкладку Модули → Найдите блок MS: Дробный остаток.

    Image
    ⚠️
    Локальные настройки товара обладают более высоким приоритетом и могут перекрывать глобальные настройки для всего магазина.

    Настройки для товаров

    Использовать дробный остаток

    • Глобальные настройки:
      • Для товара будет использоваться единица измерения количества из глобальных настроек модуля;
      • Для товара можно можно задать:
        • Шаг списка выбора количества;
        • Минимальное количество товара для заказа;
        • Максимальное количество для покупки одного товара.
        • ⚠️
          Этот вариант настройки подойдет магазинам где все или большинство товаров имеют одинаковую единицу измерения количества, например в граммах.
          Пример

    • Да:
      • Для товара принудительно будет использоваться дробный остаток;
      • Для товара можно можно задать:
        • Единица измерения количества;
        • Шаг списка выбора количества;
        • Минимальное количество товара для заказа;
        • Максимальное количество для покупки одного товара.
        • ⚠️
          Этот вариант настройки подойдет магазинам где для определенных товаров нужно задать продажу дробным количеством.
          Пример
        • Нет:
          • Для товара принудительно будет выключен дробный остаток;
          • Для товара можно можно задать:
            • Единица измерения количества.
            • ⚠️
              Этот вариант настройки подойдет магазинам где для товаров необходимо задать только единицу измерения количества.
              Пример

              Настройки для упаковок

              Товар продаётся упаковками

              • Глобальные настройки:
                • Для товара будут использоваться глобальные настройки для упаковок;
                • Для товара не доступны к редактированию поля:
                  • Количество товара в упаковке;
                  • Варианты отображения выбора количества товара;
                  • ⚠️
                    Данный вариант подойдет для магазинов которые продают все товары с одинаковыми условиями продажи.
                    Пример
                  • Да:
                    • Для товара можно задать количество товара в упаковке;
                    • Для товара можно выбрать варианты отображения выбора количества товара;
                      • ⚠️
                        Данный вариант подойдет для магазинов которые продают товары с разным количеством в упаковке.
                  • Нет:
                    • Товар продается штуками, глобальные настройки не влияют на товар, локальные поля недоступны для редактирования.

                  Массовое редактирование

                  Через обновление товаров в CS-Cart:

  1. Открыть раздел Товары → Товары;
  2. Выберите необходимые товары;
  3. Нажмите Редактировать выбранные;
  4. Выбрать поля для редактирования;
    1. Image
      Image
  5. Нажать Редактировать выбранные;
  6. Ввести новые значения для выбранных полей; Значение global - Глобальные настройки Y - Да N - Нет
    1. Image
  7. Нажать Сохранить.

Через экспорт импорт товаров:

  1. Открыть раздел Администрирование → Экспорт данных → Товары;
  2. Переместить из списка доступных полей в экспортируемые поля следующие поля: 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 Данные поля отобразятся в табличном файле для редактирование настроек дробного остатка
    1. Image
  3. Нажать Экспорт;
  4. В табличном файле внести необходимые изменения и сохранить;
  5. Открыть раздел Администрирование → Импорт данных → Товары;
  6. Нажать кнопку +;
  7. Выбрать табличный файл;
  8. Перейти на следующий шаг Сопоставление полей;
  9. Сопоставить поля как изображено ниже:
    1. Image
  10. Нажать Импорт.