Демо-версия и история доработки модуля обмена заказами БУС и МС
25 мая 2020
Автор: Денис Спиридонов
![Фото 1: «Демо-версия и история доработки модуля обмена заказами БУС и МС»](https://i.ibb.co/CKjG1QC/1.jpg)
Сегодняшний пост будет о двух новостях: одна приятная, другая полезная.
Начнем с приятной
У нашего модуля обмена заказами появилась демо-версия, теперь можете протестировать работу модуля и задать вопросы в форму обратной связи. Не стесняйтесь задавать вопросы, связанные доработками модуля, если они будут универсальные (будут полезны всем) и менее 2-х часов работы, то обсудим их внедрение в модуль совершенно бесплатно.
Ссылка на модуль
Полезная новость скорее будет историей одной доработки. На эту историю следует смотреть ,с одной стороны, вдруг вам необходимо подобное, а с другой посмотреть, что модуль позволяет с помощью доработок и автономной работы по API решать практические любые задачи, связанные с обменом заказов.
Начинаем рассказ.
Пару месяцев назад поступила интересная задача по доработке нашего модуля обмена заказами между БУС и МС (МойСклад).
Звучит она так: нужно научить сайт на БУС синхронизировать заказы со множеством аккаунтов МС. Т.е. для каждого города будет заводится отдельный аккаунт МС и необходимо каждый заказ распределять в свой город (в свой аккаунт МС).
На момент постановки задачи модуль еще не умел обмениваться по API в автономном режиме, нужно было еще тестировать этот функционал, записать видео-инструкцию и т.д.
Однако, эта задача очень хорошо мотивировала доделать автономный обмен заказами и проверить его в деле! В предыдущем посте как раз говорилось о том, что такой обмен дает простор для доработок и снимаются практически любые ограничения CommerceML обмена.
Какие вопросы возникают на первый взгляд?
1) Возможно ли полностью сохранить функционал модуля и разделить настройки для каждого города отдельно?
2) Как будут обмениваться товары?
3) Как не потерять обновления?
4) Сколько понадобится времени?
Забегая вперед, сразу отвечу на четвертый вопрос:
Времени было потрачено пару недель с учетом тестирования. Основное из этого времени ,конечно, заняло продумывание механизма новой работы модуля в режиме многоаккаунтности.
Теперь подробнее о доработке и самой задаче.
Необходимо сделать возможность для выбранного местоположения задавать свои настройки модуля (минимум - это логин и пароль,а максимум — все настройки) и тем самым выгружать и синхронизировать заказы в зависимости от его местоположения.
Далее встает вопрос, а что мы будем дорабатывать сам модуль или сделаем отдельный, внеся при этом в текущий модуль минимальные правки? Ответ был очевиден — делаем отдельный модуль расширенного управления аккаунтами, это дает следующие преимущества:
1) Минимальные правки в текущий модуль.
2) Возможность масштабирования такой доработки на другие проекты.
3) Сохранение возможности редактировать все настройки отдельно для каждого местоположения.
Тут пришли ответы на первый и третий вопросы (про настройки и обновления) — обновления будут, но с некоторыми статичными правками в текущий модуль (меняем 2-3 фала не более 10 строк кода в каждом), настройки можно гибко менять под каждое местоположение.
С товарами дело обстояло достаточно просто (но не быстро, т.к. тестировались разные варианты реализации), обмен нужен был только из БУС в МС при создании заказа. Там были свои нюансы с комплектами на стороне БУС, однако из-за одинаковых внешних кодов каждого товара в БУС и каждом аккаунте МС это стало возможным.
В итоге был создан отдельный модуль, который копировал все настройки основного модуля, и при этом настройки разделялись для выбранного местоположения. Вот как это выглядит:
1) Выбираем местоположения, для которых будет разделять настройки:
![Фото 2: «Демо-версия и история доработки модуля обмена заказами БУС и МС»](https://i.ibb.co/d6M1QZs/2020-05-25-16-06-17.png)
2) Нажимаем на конкретное местположение и вводим свои настройки модуля
![Фото 3: «Демо-версия и история доработки модуля обмена заказами БУС и МС»](https://i.ibb.co/cthrrcH/2020-05-25-16-06-54.png)
—
При такой схеме работы настройки основного модуля служили настройками по-умолчанию, при этом по-умолчанию можно вообще отключить обмен и, к примеру, включить его для конкретных местоположений.
Далее мы просто определяли местоположение изменяемого заказа на стороне БУС и подгружали для него свои настройки модуля. Со стороны МС мы просто явно задаем в веб-хуке местоположение и тем самым также подставляем нужные настройки модуля.
В итоге мы получили:
1) Возможность гибко подстраивать обмен для каждого города.
2) Убедились, что автономный обмен заказами дает широкие возможности для доработок.
3) Получили готовое решение конкретно по этой задаче (отдельный модуль). Если это понадобится вашему проекту, то можете написать в форму тех. поддержки модуля (Обратная связь по модулю) и мы обсудим внедрение доработки для вас. Сама доработка будет делаться уже не с нуля, что ускорит время ее реализации.
4) В процессе была сделана еще одна доработка по обмену остатков и цен, что вылилось еще в один модуль, который находится на модерации.
Сейчас действует скидка до 31 мая на наш модуль обмена заказами. Загляните в карточку и узнайте о ней.
Статья полезна для