ms_cml_fill_empty_amount
Описание
Модуль Нули количеству товара при обмене с CommerceML проставляет нули количеству товара на складах, которые отсутствуют при передаче данных из 1С. Это позволяет корректно обнулять остатки товаров на складах, которые не были переданы в текущем обмене.
Функциональность
- Автоматическое проставление нулей количеству товара на складах, отсутствующих в обмене
- Интеграция с модулями CommerceML и Warehouses
- Поддержка cron-задач для обнуления остатков
- Настройка секретного ключа для безопасности cron-ссылок
Принцип работы
Модуль работает через систему хуков CommerceML:
- Хук
commerceml_product_convertor_convert- обрабатывает товары при импорте:
- Получает список складов из сессии (
$_SESSION['ms_cml_warehouses']) - Для каждого склада проверяет наличие данных о количестве товара
- Если склад присутствует в системе, но отсутствует в данных обмена:
- Создаёт DTO для количества товара на складе со значением 0
- Добавляет его в коллекцию количеств товара на складах
- Если склад не найден в системе, удаляет его из сессии
- Cron-задача - обнуление остатков товаров:
- Доступна через специальную ссылку с секретным ключом
- Выполняет обнуление остатков товаров на всех складах
- Используется для периодической очистки остатков
- Интеграция с модулем Warehouses:
- Использует классы
ProductWarehouseQuantityDtoиProductWarehouseQuantityDtoCollection - Работает с системой складов CS-Cart
Расположение в админке
Настройки модуля:
- Модули → Управление модулями → Нули количеству товара при обмене с Commerceml
Настройки:
- Секретный ключ (
secret_key) - ключ для безопасности cron-ссылки (по умолчанию:ms_cml_fill_empty_amount)
Cron-ссылка:
- Отображается в настройках модуля после заполнения секретного ключа
- Используется для запуска обнуления остатков через cron
Важные замечания
- Модуль требует установленных модулей CommerceML и Warehouses
- Работает только при обмене данными через CommerceML
- Использует сессию для хранения списка складов (
$_SESSION['ms_cml_warehouses']) - Cron-задача требует настройки секретного ключа для безопасности
- Обнуляет остатки только на складах, которые присутствуют в системе, но отсутствуют в данных обмена
- English
- Русский
- 4.18.X
# Инструкция по использованию модуля ms_cml_fill_empty_amount
Установка
- Убедитесь, что установлены модули CommerceML и Warehouses
- Установите модуль через раздел Модули → Скачанные модули
- Активируйте модуль Нули количеству товара при обмене с Commerceml
Настройка
Настройка секретного ключа
- Перейдите в Модули → Скачанные модули → Нули количеству товара при обмене с Commerceml
- Заполните поле Секретный ключ (по умолчанию:
ms_cml_fill_empty_amount) - Сохраните настройки
- После сохранения в настройках модуля отобразится Ссылка для крона
Настройка cron-задачи (опционально)
- Скопируйте ссылку для крона из настроек модуля
- Добавьте задачу в cron для периодического обнуления остатков:
`
0 2 * * * curl "https://your-site.com/index.php?dispatch=ms_cml_fill_empty_amount.reset&secret_key=YOUR_SECRET_KEY"
`
- Настройте расписание выполнения задачи по необходимости
Использование
Автоматическое обнуление при обмене
После активации модуля при каждом обмене данными через CommerceML:
- Модуль автоматически проверяет наличие складов в данных обмена
- Для складов, которые присутствуют в системе, но отсутствуют в данных обмена:
- Проставляется количество товара равное 0
- Это позволяет корректно обнулять остатки на складах
- Для складов, которые не найдены в системе:
- Они удаляются из сессии
- Не обрабатываются модулем
Ручной запуск обнуления через cron
- Откройте ссылку для крона в браузере или через curl
- Модуль выполнит обнуление остатков товаров на всех складах
- Проверьте результаты в админ-панели
Импорт/Экспорт
Модуль не поддерживает импорт/экспорт данных. Работает только при обмене данными через CommerceML.
Тестирование
- Настройте модуль и заполните секретный ключ
- Выполните обмен данными через CommerceML:
- Убедитесь, что некоторые склады присутствуют в системе
- Убедитесь, что в данных обмена не все склады переданы
- Проверьте остатки товаров на складах:
- Склады, присутствующие в обмене - должны иметь актуальные остатки
- Склады, отсутствующие в обмене - должны иметь остатки равные 0
- Проверьте работу cron-ссылки:
- Откройте ссылку в браузере
- Убедитесь, что остатки обнулены
Обслуживание
Обновление модуля
Обновление модуля выполняется стандартным способом через раздел Модули → Скачанные модули.
Удаление модуля
При удалении модуля:
- Все настройки модуля удаляются
- Cron-ссылка перестаёт работать
- Автоматическое обнуление остатков при обмене прекращается
Ключевые файлы
func.php- функции установки/удаления модуляhooks.func.php- хук для обработки товаров при импорте CommerceMLcontrollers/frontend/ms_cml_fill_empty_amount.php- контроллер для cron-задачиcontrollers/frontend/commerceml.pre.php- предобработка обмена CommerceMLdesign/backend/templates/addons/ms_cml_fill_empty_amount/settings/reset_cron.tpl- шаблон настроек cronaddon.xml- конфигурация модуляvar/langs/ru/addons/ms_cml_fill_empty_amount.po- языковые файлы
**v1.0.1** [\*] Стандартизация модуля [+] Обнуление остатка товара в БД по крону **v1.0.0** (06.04.2022) [+] Первое издание ************************** [+] Добавлено [-] Удалено [*] Изменено [!] Исправлена ошибка
Здесь можно поделиться своим мнением и оценить нашу работу.
Ваши отзывы помогают нам стать лучше и предлагать вам еще более качественный сервис.