Доработка модуля CommerceML

При обмене заказами по CommerceML (у меня в МойСклад) CS-Cart отправляет XML-файл со всеми имеющимися заказами, начиная с определенного номера, не анализируя, были в заказах какие-либо изменения или нет. Получается, что даже если с момента последней синхронизации ничего в заказах не изменилось, не добавились новые заказы, то МойСклад обновляет все заказы, перебивая их теми же самыми данными.

Это порождает две проблемы:

Во-первых, если при синхронизации выгружаются все заказы, то от заказа к заказу будет расти размер передаваемого XML-файла. Я примерно посмотрел по имеющимся заказам - на 2000 заказов размер составит около 12 Мб. Зачем гонять такого размера файлы, если ничего в заказах не изменилось?

Во-вторых, если используется функция резервирования товаров в МоемСкладе, то обновление неизменившихся заказов приводит к тому, что каждый раз при синхронизации на всех заказах устанавливается резерв на товары. А это не нужно делать, так как у отмененных заказов мы снимаем резерв в МоемСкладе. Текущая процедура обновления будет ставить на резерв отмененные заказы, что не соответствует здравому смыслу. Отказаться от резервирование нежелательно - тогда МойСклад будет отправлять в CS-Cart остатки без учета поступивших заказов и количество товара в наличии на сайте не будет соответствовать действительности, невозможно будет пользоваться автоматической выгрузкой остатков.

Сейчас обе проблемы решаются настройкой не выгружать заказы с двумя финальными статусами - Выполнено и Отменено, потому что завершенные заказы имеют только один из этих статусов. Выгружаются только последние заказы, которые находятся в работе - имеют другие статусы. Но при установке в CS-Cart финальных статусов заказов, приходится заходить в МойСклад и вручную менять там статусы заказов, что неудобно.

В планах стоит сделать костыль через API, но хотелось бы, чтобы стандартный модуль работал с учетом действительности.

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

8 лайков

Поддерживаю.
Довольно простая доработка, мы себе впилили и обмен начал просто летать

2 лайка

UP
Проблема актуальна. Когда периодически не меняешь вручную номер заказа, с которого нужно отправлять заказы, то увеличение количества заказов при обмене приводит к тому, что МойСклад принудительно увеличивает интервал между автоматическими загрузками заказов. Что приводит к другим проблемам. Так что предложение в первом посте остается в силе.

Можете посмотреть модуль, он решает данную проблему

1 лайк