Проект

Общее

Профиль

Как обновлять ассортимент в мобильных приложениях с помощью файла xml?

Самый сложный вопрос в разработке мобильных приложений для торговых компаний - как обновлять ассортимент? За годы работы мы выработали простые решения, которые проверены опытом множества клиентов. Если компания не может по каким-либо причинам создать требуемый файл с товарами, мы рекомендуем обратить внимание на наш сервер парсинга сайтов https://xmldatafeed.com с помощью которого можно создавать требуемый файл с товарами и передавать в мобильные приложения на базе АППРОПИО. Но наиболее оптимальное решение делать так, как написано ниже.

1. Платформа работает на основе файла xml, который используется для подключения к системе yandex market (market.yandex.ru). Детальный формат файла находится по ссылке https://yandex.ru/support/partnermarket/yml/about-yml.html Мы рекомендуем внимательно прочитать эту статью https://habrahabr.ru/post/216985/

после создания выгрузку надо обязательно проверить ее в валидаторе по ссылке https://webmaster.yandex.ru/tools/xml-validator/

2. Если магазин уже размещается в системе yandex market то, как правило, никаких доработок от ваших программистов не потребуется. Если же файла данного формата нет – то его необходимо сделать согласно спецификации. Мы не поддерживаем другие форматы – работа с множеством клиентом позволила нам детально отладить механизм работы с данным форматом, что позволяет нам сократить время разработки и избежать ненужных программных ошибок.

Обратите внимание, чтобы картинки на товары идеально отображались, в выгрузке вы должны передавать ссылки (!) на изображения размера 1242x1242px (будет очень красов), подойдет так же 1125х1125px. Главное соотношение сторон 1к1.

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

4. Обратите внимание, что есть отличия данного формата файла при работе с разными категориями товаров – например для категории «одежда» вводятся дополнительные тэги (tags) описывающие цвет и размер изделия. Детальная информация об всех отличиях приведена на сайте по ссылке в п.1. выше. Стоит обратить внимание на группировку, чтобы в мобильных приложениях у вас была одна, скажем, КУРТКА но клиент мог выбрать цвет-размер-рост при оформлении заказа. Это регулируется специальным тегом https://yandex.ru/support/partnermarket/guides/clothes.html


ВАЖНО - пример выгрузки магазина с одеждой http://www.conceptclub.ru/conceptclub_notissimus.xml
пример выгрузки магазина по продаже косметики https://4fresh.ru/bitrix/catalog_export/app_397564.php
пример выгрузки магазина по продаже продуктов питания http://europa-market.ru/import/3/products.xml

Примеры выгрузки с различными параметрами.


<yml_catalog date="2014-02-04 17:21">
            <shop>
            <!-- .... -->
            <categories>
            <category id="1">Название категории</category>
            <category id="2" parentId="1" sort="1">Название категории</category> <!-- (sort - как сортируются категории в приложении) -->
            <category id="3" parentId="1" picture="http://notissimus.com/image/jpg">Название категории 2</category><!-- picture задает изображение для категории -->
            <!-- .... -->
            </categories>
            <offers>
            <offer id="24897329" group_id="56123">
            <url>http://notissimus.com/catalog/tovar/</url>
            <price>45990</price>
            <oldprice>49999</oldprice> <!-- (цена до скидки или цена в розничном магазине) -->
            <currencyId>RUR</currencyId>
            <categoryId>630</categoryId>
            <picture>http://notissimus.com/image.jpg</picture>
            <typePrefix>3D-телевизор</typePrefix>
            <vendor>SONY</vendor>
            <model>KDL 47W808A</model>
            <description>Описание товара</description>
            <manufacturer_warranty>true</manufacturer_warranty>
            <article>24897329</article>
            <barcode>4603370202027</barcode>
            <param name="Цвет" >черный</param> <!-- (параметр для выбора в корзине) -->
            <param name="Размер" type="size" unit="RU">42</param>
            <param name="Длина (см)">42</param>
            <param name="Ширина (см)">61.2</param>
            <param name="Высота (см)">81.7</param>
            <param name="BadgeImage">4</param> <!-- (наклейка на товаре, идентификатор изображения) -->
            <param name="unit">кг</param>
            <param name="RatingRate">3.43</param> <!-- (рейтинг по 5-ти бальной шкале) -->
            <param name="RatingValues">8293</param> <!-- (количество голосов в рейтинге) -->
            <param name="Sort" Type="1">960018</param> <!-- (сортировка товара по умолчанию) -->
            <comment id="189991" username="Олег" date="2014-01-28 14:53:50">Отличный товар</comment> <!-- (пример отзыва к товару) -->
            <tagIn>1</tagIn> <!-- Теги для создания списков рекомендованных товаров и др. Подробнее о тегах ниже -->
            <tagOut>2</tagOut>
            <company_shops>
            <company_shop>
            <id>02130</id>
            <quantity>3</quantity>
            </company_shop>
            <company_shop>
            <id>03138</id>
            <quantity>2</quantity>
            </company_shop>
            </company_shops>
            </offer>
            </offers>
            </shop>
</yml_catalog>

Для реализации механизма рекомендуемых товаров выгрузку необходимо в каждом товаре добавить теги, в зависимости от типа. Теги бывают 2-х типов: tagin и tagout
Например:


<offer id="29855" type="vendor.model">
  <name>Телевизор</name>
  <tagIn>1</tagIn>
</offer>
<offer id="29857" type="vendor.model">
  <name>Батарейки</name>
  <tagOut>1</tagOut>
</offer>

Тогда в карточке товара телевизора будет рекомендуемые батарейки, а в карточке батарейки рекомендуемых не будет.

Ниже фрагмент выгрузки, где так же передаются рекомендованные товары:

<offer id="906554" available="true">
<delivery>true</delivery>
<pickup>true</pickup>
<local_delivery_cost>300</local_delivery_cost>
<url>
http://www.olant-shop.ru/catalog/olant/?ID=906554&SECTION_ID=203
</url>
<price>265.00</price>
<currencyId>RUR</currencyId>
<categoryId>203</categoryId>
<picture>
http://www.olant-shop.ru/upload/iblock/76d/76d7bb4cf48ae60f17a88f5321e1c660.jpg
</picture>
<name>
Непромокашка пеленка-клеенка с тканевой основой 50*60 см
</name>
<description>
Многоразовая непромокаемая пеленка Гипоаллергенная непромокаемая пеленка имеет множество неоспоримых достоинств: - 100% непромокаемая - «дышащая» (благодаря уникальной микропористой структуре ПУ мембраны) - мягкий впитывающий верхний слой не раздражает кожу - экологически чистая:100% хлопок (махра), не содержит ПВХ - гипоаллергенная и антибактериальная пропитка ULTRAFRESH и защита от пылевых клещей - стирка при t до 90°C в бытовой стиральной машинке с использованием любых [...]
</description>
<sales_notes>минимальная сумма заказа 1000 руб.</sales_notes>
<country_of_origin>Россия</country_of_origin>
<tagIn>906555</tagIn>
<tagOut>906554</tagOut>
</offer>
<offer id="906555" available="true">
<delivery>true</delivery>
<pickup>true</pickup>
<local_delivery_cost>300</local_delivery_cost>
<url>
http://www.olant-shop.ru/catalog/olant/?ID=906555&SECTION_ID=203
</url>
<price>467.00</price>
<currencyId>RUR</currencyId>
<categoryId>203</categoryId>
<picture>
http://www.olant-shop.ru/upload/iblock/5cc/5cc26155de38e8e11053a7ac96bac837.jpg
</picture>
<name>
Непромокашка пеленка-клеенка с тканевой основой 70*100 см
</name>
<description>
Многоразовая непромокаемая пеленка Гипоаллергенная непромокаемая пеленка имеет множество неоспоримых достоинств: - 100% непромокаемая - «дышащая» (благодаря уникальной микропористой структуре ПУ мембраны) - мягкий впитывающий верхний слой не раздражает кожу - экологически чистая:100% хлопок (махра), не содержит ПВХ - гипоаллергенная и антибактериальная пропитка ULTRAFRESH и защита от пылевых клещей - стирка при t до 90°C в бытовой стиральной машинке с использованием любых [...]
</description>
<sales_notes>минимальная сумма заказа 1000 руб.</sales_notes>
<country_of_origin>Россия</country_of_origin>
<tagIn>906554</tagIn>
<tagOut>906555</tagOut>
</offer>

В файле XML можно передавать отзывы на товар. Это стандартный механизм конструктора приложений APPROPIO и повысит привлекательность товара в глазах клиента. Ниже приведен фрагмент рабочей выгрузки с передачей комментариев к товарам в специальных тегах Comment.

<offer group_id="36670" id="36670" available="false">
<url>https://4fresh.ru/products/arne0006</url>
<price>98</price>
<currencyId>RUB</currencyId>
<article>ARNE0006-0090</article>
<barcode>ARNE0006-0090</barcode>
<param name="Вес" unit="г">90</param>
<comment id="76225" username="Валентина Б." date="2016-10-17 18:28:16">
Развожу утром после завтрака. Хорошее замена кофе , даёт заряд бодрости )
</comment>
<comment id="87081" username="Ольга Микрюкова" date="2017-02-10 13:35:29">
Заказываю витаминки не первый раз. Приятный апельсиновый вкус. Эффекта вау не заметила, но бодрят по утрам действительно неплохо)
</comment>
<comment id="90948" username="Christine" date="2017-03-17 00:45:06">
Здравствуйте! Посмотрев состав данных витаминов, я обнаружила, что он совпадает с составами витаминов для беременных, вплоть до миллиграммов (возьмем одни из популярных фемибион и элевит) (у вит.Арнебия различия в мг колеблются между этими двумя витаминами для беременных и настолько незначительные, что если будет смотреть специалист, то поймет о чем я говорю) так почему же тогда в противопоказаниях указаны беременность и кормление грудью? Или в составе есть еще какие-то вещества и добавки, которые не указаны на упаковке и противопоказаны беременным? Или это только формальность, на которую можно не обращать внимания, потому что для того чтобы написать "можно беременным" нужна длительная бумажная волокита? От ответа в виде "всё индивидуально и проконсультируйтесь с врачом" прошу меня избавить, это вопрос именно к производителям (если у вас есть такая возможность) или тем, кто в этом вопросе разбирался, потому что я говорю про людей без всяких патологий, осложнений и особенностей, фемибион или элевит и т.п. выписывают абсолютно всем здоровым беременным, так в чем тогда разница. Спасибо, если поясните.
</comment>
<comment id="97665" username="Анастасия Дмитриева" date="2017-05-24 11:45:46">
Плохо растворяются в воде, на дне остается значительный осадок. И сильно крошатся, в тубе много порошка. А в целом, бодрят хорошо.
</comment>
<categoryId>1387</categoryId>
<categoryId>1399</categoryId>
<categoryId>1318</categoryId>
<picture>
https://4fresh.ru/ajax/?action=show_pic&a=ARNE0006-0090&size=extended
</picture>
<vendor>ARNEBIA</vendor>
<name>
Мультивитамин + Минералы, шипучие таблетки по 20 штук в пластиковой тубе - ARNEBIA
</name>
<description>
Обладает мощной антиоксидантной активностью, помогает поддерживать здоровье, предотвращать возможные авитаминозы и блокировать избыточную деятельность свободных радикалов, вызывающих ускоренное старение кожи и всего организма, а также приводящим к самым разным, зачастую тяжелым заболеваниям. Во время активных физических занятий, когда из организма вместе с жидкостью выводятся минеральные вещества, рекомендуется регулярный прием витаминов – для активизации обмена веществ и минералов во избежание «голода», который может привести к общему упадку сил, утомляемости при незначительных нагрузках, повышенной чувствительности к стрессу. Прием Арнебия Мультивитамин + Минералы - простой и эффективный способ восполнить возникший дефицит в витаминах и минеральных веществах, необходимых для поддержания иммунитета, особенно в периоды возможных авитаминозов и простудных заболеваний (зима, весна). Пополнение организма витаминами особенно важно при: Неправильном и несбалансированном питании, также при диетах или постах; Гиподинамии; Стрессе; Умственной и физической нагрузке; Неблагоприятных факторах окружающей среды, курении; Восстановлении организма после болезни, операции или перенесенной инфекции. А также для поддержания здоровья и хорошего самочувствия у спортсменов, активно растущих подростков и пожилых людей. Популярен как источник необходимого для сердца и сосудов магния, калия, кальция и 10 различных витаминов, участвующих в самых разных обменных процессах в организме. Рекомендуется особенно во время авитаминоза (зимой и весной).
</description>
<sales_notes>Минимальная сумма заказа 900 руб.</sales_notes>
</offer>

Тогда в карточке товара телевизора будет рекомендуемые батарейки, а в карточке товара батарейки рекомендуемых не будет.

5. После создания файла, нужно один раз получить от магазина ссылку URL на его местоположение и дальше, согласно оговоренному расписанию, платформа АППРОПИО будет его автоматически загружать в базу данных для обработки и дальнейшей визуализации в мобильных приложениях. Обратите внимание, что при загрузке старые данные стираются, а новые записываются. Поэтому в выгрузке должен быть всегда весь актуальный ассортимент!

6. Важно – если ваш бизнес представлен в нескольких регионах России и в каждом городе поддерживаются свои цены на товары, то необходимо иметь несколько файлов xml для каждого региона. На данный момент мы не поддерживаем возможность показывать для одного региона несколько типов цен на товары в разных магазинах этого региона.

7. Чтобы приложения приносили как можно больше пользы для вашего бизнеса нужен качественный контент (описания, тех. характеристики и изображения товаров). Вся эта информация передается в файле xml – мы советуем уделить вопросу контента особое внимание. Отметим, что изображения товаров мы загружаем «на лету» с сайта магазина в Интернете, по мере того как пользователь работает с приложением на своем мобильном устройстве. Такой подход позволяет резко сократить размер приложения, что важно для конечных клиентов, но накладывает на вас обязательство обеспечивать доступность вашего сайта в Интернете.

8. Если вам необходимо показывать наличие товара в конкретном магазине, то используйте в каждом региональном файле xml следующие дополнительные поля. Обратите внимание, что мы можем как показывать количество в приложениях, так и просто отмечать что товар есть и давать забронировать.

....

<offers>
    ...
    <offer>
        ....
        <company_shops>
            <company_shop>
                <id>1</id> (идентификатор магазина)
                <quantity>22</quantity> (количество товаров данного артикула в магазине)
            </company_shop>
            <company_shop>
                <id>2</id>
                <quantity>5</quantity>
            </company_shop>
        </company_shops>
    </offer>
    ....
</offers>

Пример передачи информации по контактам магазинов:

Пример передачи информации по магазинам:

Добавить изображение из буфера обмена (Максимальный размер: 195 МБ)