Новое у нас в импортах

Снова здравствуйте. Мы вернулись, как и обещали чуточку ранее.
Как известно, мы те еще импортеры — на многих проектах у нас настроены задачи автоматического импорта данных к нам. Каждый час магазины заливают к нам сотни мегабайт информации о совершенных покупках. Каждый день к нам приезжают импорты тысяч потребителей. Каждую неделю кто-то импортирует список победителей в творческом конкурсе, чтобы счастливчикам автоматически отправились подарки. Все это обязывает нас любить импорты и делать их легче, проще и быстрее.
Начнем с самого редкого нынче импорта: при импорте через админку теперь, так же, как через сервисы, все предупреждения всегда игнорируются — мы убрали галочку «Игнорировать предупреждения». В файле с результатом вы легко сможете отфильтровать все строки, которые импортировались с предупреждением и внести необходимые правки в данные. Галочку убрали, потому что ее всегда нажимали, что подтверждает правило интерфейса — если что-то можно нажать, чтоб облегчить себе жизнь, это обязательно нажмут.
В импорте YML можно указать не только ссылку на источник данных YML, но и на gzip-архив с ними — лучше меньше, да больше.  И да, мы умеем разбирать Yandex Market Language и записывать себе всю информацию о товарах и услугах наших клиентов. А потом мы на основании этих данных понимаем, что купил потребитель, где, когда, за сколько денег, и что ему надо порекомендовать в ответ, что он опять же может купить с высокой долей вероятности. Голосом Якубовича: «А — Автоматизация!».
Было много ошибок, связанных с добавлением внешней системы, например, забывали ее указывать, из-за чего в базе начинался хаос, дублирование продуктов и прочее счастье для наших клиентов и наших же программистов. Теперь наш менеджер может включить специальный рубильник «Внешняя система у продуктов и категорий обязательна» — при сохранении или редактировании сущности, у которой есть внешний идентификатор и нет внешней системы, мы вернем валидационную ошибку. Мы за логически верную чистоту хранимых данных.
Пара хороших обновлений в списке дополнительных полей.
Во-первых, мы сделали флаг «Затирать, если передано пустое значение» — при передаче пустого значения поле будет затираться независимо от того, как пришли данные: в импорте, трекере или xml-сервисах. Этот флаг можно в любой момент поменять. Но для дополнительных полей у покупок и заказов этот флаг всегда включен и сбросить его нельзя, так как при обработке заказа или покупки мы всегда перезаписываем все состояние целиком: если значение поля не придет при изменении заказа, у нового состояния заказа это поле будет пустым.
Во-вторых, способ доставки заказа — это дополнительное поле. А это значит, способы доставки можно добавлять через страницу «Дополнительные поля» в админке и ни в чем себе не отказывать: «Голубиная почта» и «Доставка дроном» ждут своего часа. Обратная совместимость сохранена.
Способы доставки
На этом пока все. В  следующий раз у нас будет сборная солянка про новое в сервисах и других местах.

Вас заинтересуют следующие материалы