маркет api

8

При работе по модели CPA -заказ на маркете сейчас существует ряд проблем:

1. Не передается стоимость доставки (<local_delivery_cost>) для каждого конкретного товара. В сам yml файл выгружается, берется из поля характеристики. Но по api цена едина, как в "Стоимость доставки (глобальный атрибут cost)". Т.е. сайт не отдает корректно.



2. Не передается корректная стоимость для другого региона. Яндекс запрашивает, а сайт должен отдать список вариантов доставки с ценой
Запрос:
{"cart":{"currency":"RUR","items":[{"feedId":*******,"offerId":"*****","feedCategoryId":"*******","offerName":"*******","count":1}],"delivery":{"region":{"id":54,"name":"Екатеринбург","type":"CITY","parent":{"id":121110,"name":"Муниципальное образование Екатеринбург","type":"SUBJECT_FEDERATION_DISTRICT","parent":{"id":11162,"name":"Свердловская область","type":"SUBJECT_FEDERATION","parent":{"id":52,"name":"Уральский федеральный округ","type":"COUNTRY_DISTRICT","parent":{"id":225,"name":"Россия","type":"COUNTRY"}}}}}}}}



Ответ:
{"cart":{"items":[{"feedId":*******,"offerId":"******","price":21400,"count":1,"delivery":true}],"deliveryOptions":[{"id":"courier","type":"DELIVERY","serviceName":"\u041a\u0443\u0440\u044c\u0435\u0440","price":0,"dates":{"fromDate":"01-09-2016","toDate":"03-09-2016"}},{"id":"outlet.*******","serviceName":"\u0420\u044f\u0437\u0430\u043d\u0441\u043a\u0438\u0439 \u043f\u0440\u043e\u0441\u043f\u0435\u043a\u0442 22\u043a2","type":"PICKUP","price":0,"dates":{"fromDate":"01-09-2016","toDate":"03-09-2016"},"outlets":[{"id":296741}]},{"id":"outlet.******","serviceName":"******** \u0421\u0430\u0432\u0435\u043b\u043e\u0432\u0441\u043a\u0430\u044f","type":"PICKUP","price":0,"dates":{"fromDate":"01-09-2016","toDate":"03-09-2016"},"outlets":[{"id":*****}]}],"paymentMethods":["CASH_ON_DELIVERY","YANDEX"]}}



По факту яндекс спросил конкретно про доставку в ЕКБ, а сайт шпарит курьерскую бесплатно.
Ну и до кучи шлет все варианты доставки какие у него есть.
А по хорошему нужно брать варианты и считать из реальных служб доставки на сайте. Желательно в настройках иметь возможность указать, какими доставками считать.
И с самовывозом тоже бред. Сегодня 29е а забрать по его логике можно только 1го. Какой дурак поедет за самовывозом?
И настроить отдельно дату самовывоза отдельно дату доставки нельзя.

При таком раскладе Заказ на маркете работать не может. Пойдет потеря клиентов.


Ну и не хватает полноценной реализации этого:

https://yandex.ru/support/partnermarket/elements/d...

Там нужно реализовывать все.

Например, не хватает

<h3 style="margin-top: 30px; margin-bottom: 10px; font-weight: 400; font-size: 20px; line-height: 25px; font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);">Несколько типов доставки</h3>

Обычный срок доставки — четыре дня при оформлении до 18:00, при этом стоимость доставки составляет 300 рублей. Есть экспресс-доставка в течение дня за 500 рублей, если заказ оформлен до 15:00.

<code class="xml" style="font-family: PTMonoRegular, courier, sans-serif;"><span><<span>shop</span>></span>
  <span><<span>delivery-options</span>></span>
    <span><<span>option</span> <span>cost</span>=<span>"300"</span> <span>days</span>=<span>"4"</span> <span>order-before</span>=<span>"18"</span>/></span>
    <span><<span>option</span> <span>cost</span>=<span>"500"</span> <span>days</span>=<span>"0"</span> <span>order-before</span>=<span>"15"</span>/></span>
  <span></<span>delivery-options</span>></span>
  <span><<span>offers</span>></span>
   ...
  <span></<span>offers</span>></span>
<span></<span>shop</span>></span></code>

На Маркете информация для данного примера показывается следующим образом:

  • до 15:00 — «500 руб., сегодня», в блоке дополнительной информации: «300 руб., 4 дня»;
  • с 15:00 до 18:00 — «500 руб., завтра», в блоке дополнительной информации: «300 руб., 4 дня»;
  • после 18:00 — «500 руб., завтра», в блоке дополнительной информации: «300 руб., 5 дней».

Таким образом, в качестве основного типа доставки показывается та доставка, срок которой не превышает трех дней.


11 комментариев

  • +2
    Vladislav Vladislav 1 сентября 2016 09:31 #

    по этим же причинам пришлось отключить заказ на маркете сразу после подключения. Печально все это. Формальный подход разработчиков может погубить весь webasyst. Оно вроде есть на обложке, а коробочка то дырявая. Ключевые плагины работают не идеально, не говоря уже о мелких

  • +1
    Иван Быков Иван Быков 1 сентября 2016 12:29 #

    Сейчас для товаров в России, в частности в Москве, будет введена CPA онли для яндекс маркета. Товаров туда попадет очень много. Получается что смысл в вебасисте отсутствует без данных функций. Т.е. Москва торговать не сможет физически.

  • +1
    Иван Быков Иван Быков 1 сентября 2016 12:31 #

    Если разрабы молчат- будем пилить сами.

  • +1
    Владислав Горлов Владислав Горлов Webasyst 1 сентября 2016 15:15 #

    Плагин может корректно считать стоимость доставки в домашний регион в случае размещения только в домашнем регионе. Для остальных проблемой является формат адресов, используемых яндексом (не всегда можно корректно его трансформировать в адрес, понятный плагину), а так же существенным ограничением на время ответа в 5 секунд (за это время можно успеть посчитать стоимость доставки только теми плагинами, что не обращаются к внешним сервисам). Первую проблему можно со временем решить (уточняя правила преобразования адресов), а со второй сложнее и в общем случае её не решить без введения ограничений на доступные способы доставки при продаже через маркет.

  • +1
    Иван Быков Иван Быков 1 сентября 2016 17:44 #

    Решение проблемы №1

    {"cart":{"currency":"RUR","items":[{"feedId":*******,"offerId":"*****","feedCategoryId":"*******","offerName":"*******","count":1}],"delivery":{"region":{"id":54,"name":"Екатеринбург","type":"CITY","parent":{"id":121110,"name":"Муниципальное образование Екатеринбург","type":"SUBJECT_FEDERATION_DISTRICT","parent":{"id":11162,"name":"Свердловская область","type":"SUBJECT_FEDERATION","parent":{"id":52,"name":"Уральский федеральный округ","type":"COUNTRY_DISTRICT","parent":{"id":225,"name":"Россия","type":"COUNTRY"}}}}}}}}

    У всех городов яндекс делает запрос с корректным регионом. Дублей городов быть не может, яндекс разрешает это на уровне общения с пользователем и он выбирает корректный (например, Железногорск, там 2 города)

    Итак, имея SUBJECT_FEDERATION_DISTRICT","parent":{"id":11162,"name":"Свердловская область"

    и

    {"region":{"id":54,"name":"Екатеринбург","type":"CITY"

    Можно их подставить в службу доставки и посчитать стоимость

    Я проверил кучу городов. Отрабатывает отлично, знает такие мухосрански...

    В чем у Вас сложность?

    Проблема 2

    У меня стоит плагин, который показывает варианты доставки на карточке товара :

    Delivery Info

    Информация о вариантах и стоимости доставки в карточке товара фронтенда

    По запросу на карточке товара показывает возможные варианты и цену доставки для выбранного региона.

    Обращаясь к плагинам СДЕК и ЕМС почта, которые тянут инфу через API. Времени им хватает за глаза, 5 сек никогда не было.

    Дайте мне интеграцию со Сдек и мне ничего для счастья больше не нужно. Он отрабатывает БЫСТРО!

    Проблема 3

    https://yandex.ru/support/partnermarket/elements/d...

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

    • +2

      у сдэка бывают капитальные перебои с серверами. для ваших покупателей это неприятное событие, для вас -- временное неудобство, для яндекса -- повод отключить ваш магазин от маркета из-за долгого ответа :(


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

      • +1
        Иван Быков Иван Быков 5 сентября 2016 13:22 #

        Есть резервный, ну если оба мертвы, то понятно. Вообще я не жалуюсь, работает нормально. Если сдек мертв, есть ЕМС почтой. Отдам данные по тому, что работает.


      • +1

        по поводу региона нужно смотреть особые случаи: "г. Москва, регион Москва", "г. Зеленоград, регион Москва", "г. Мурино, регион Санкт-Петербург" и т.п.

        Екат/Сверд.обл -- это понятно :)

        • +1
          Иван Быков Иван Быков 5 сентября 2016 13:35 #

          Проверил зеленоград, москву- считает сдек правильно.

          Есть затык с "г. Мурино, регион Санкт-Петербург" Плагин по нему посчитать не может вообще. Но паралельно считает по ЕМС. Он то к региону привязан. Отправил багрепорт

          А есть какой-то список проблемных городов?

          • +1
            Иван Быков Иван Быков 5 сентября 2016 14:15 #

            И есть выриант слить базу яндекса? Разраб плагина сдек заточит базу под нее.

          • +1
            Иван Быков Иван Быков 1 сентября 2016 17:49 #

            Ах да, есть проблема с плагином пикпоинт, он не выдает список постаматов, в отличии от плагина сдек. Но это проблемы разработчика плагина, он ее решит сам и быстро. Мне он в принципе не нужен.

            Добавить комментарий

            Чтобы добавить комментарий, зарегистрируйтесь или войдите