Интеграция ABCP c drom.ru (farpost.ru)

Реализована выгрузка клиентов, их заказов с сервиса объявлений farpost.ru, drom.ru на платформу ABCP через API.
Автоматически определяется самая выгодная цена из всех поставщиков (возможна более гибкая сортировка), и создаётся заказ в ABCP с нужным статусом. Есть плохие поставщики, их отсеиваем на этапе проценки.
Клиенты синхронизируются, адрес доставки также синхронизируется.

Сейчас загружаются только заказы в определенном статусе, но возможна доработка, если это позволяет API drom.ru (https://www.farpost.ru/help/API)

Комментарии менеджеров не выгружаются на drom.ru, так как на момент разработки, функции изменения заказа через API не было.

Можно доработать, чтобы поставщики группировались по срокам доставки, и цена определялась не по самому "быстрому" поставщику, а по вхождению его в интервал 1-3 дня, и т.д.

Цена настройки скрипта PHP, который не использует сторонних библиотек, работает по расписанию, и не требует вмешательства пользователя 25 тыс. рублей.

Возможна доработка для работы с другими информационными системами например 1С, и прочими.

Видео: загрузка объявлений drom.ru/farpost, проценка, нахождение самых выгодных цен и выгрузка заказа на ABCP для размещения у поставщиков.

Описание API от drom.ru:
Описание АПИ для магазинов, подключенных к Защищенным сделкам.

Получение оплаченных сделок

Вы можете запрашивать все заказы, которые изменили состояние у нас нас
сайте за определенный период. Изменили состояние - это означает были
оплачены покупателями, подтверждены продавцами, отправлены или переданы
покупателю продавцами.

Текущий статус заказа отдается в атрибуте status. Семантика статусов заказа:

    dealPaid - заказ оплачен покупателем
    dealInProgress - заказ подтвержден продавцом
    dealGoodSent - заказ отправлен
    dealFailed - заказ не выполнен, деньги возвращены покупателю.

Ссылка, по которой мы отдаем заказы -
http://www.farpost.ru/deals/api/sync/paid?auth=&userId=&dateFrom=&dateUntil=
где:

    auth - параметр аутентификации. Он для каждого кабинета продавца (рабочего и тестового) уникален, и мы предоставим его по вашему запросу.
    userId - id кабинета продавца, заказы которого вы хотите получить.
    dateFrom, dateUntil - даты начала и окончания периода, за который вы хотите получить заказы, в формате YYYYMMDDTHHMMSS+mmss, где +mmss -
таймзона продавца (для Владивостока +10:00). Если dateUntil не указан, то будут выданы все заказы с момента dateFrom до текущего момента.

Пример запроса -
http://www.farpost.ru/deals/api/sync/paid?auth=***&userId=**&dateFrom=20160720T000000+1000&dateUntil=20160716T140200+1000

В качестве ответа мы отдаем код HTTP-ответа и файл со списком заказов,
если код HTTP ответа был 200, т.е. запрос успешен. Тег 
группирует заказы. Тег  группирует товары в заказе. Тег 
содержит частичные возвраты за период. Пример содержимого файла:
deals.xml
<-?xml version="1.0" encoding="windows-1251"?>
<-deals>
    <-deal>
        <-id>1949295 
        <-status>dealPaid 
        <-statusDate>2016-06-02 15:34:40 
        <-paidAmount>13700 
        <-deliveryAmount>700 
        <-deliveryMode>До ТК 
        <-buyerName>Иванов Иван 
        <-buyerPhone>79147654327 
        <-buyerEmail>mailbox@email.ru 
        <-deliveryAddress>Приморский край, Владивосток
        <-deliveryCarrier>Энергия 
        <-items>
            <-item>
                <-article>abb93c49-add6-11e5-aa93-000c2908f1cd
<-url>http://www.farpost.ru/vladivostok/auto/sell_spare_parts/akpp-mitsubishi-dingo-cq2a-4g15-33000-g996889534.html
 
                <-subject>Акпп Mitsubishi Dingo, CQ2A, 4G15;33000 
                <-quantity>1 
                <-price>13000 
            <-/item>
            <-item>
                ***
            <-/item>
        <-/items>
    <-/deal>
<-/deals>
<-refunds>
    <-refund>
        <-deal_id>1949295
        <-date>2016-08-02 15:34:40
        <-amount>10000
    <-/refund>
<-/refunds>
<-delivery>
    <-address>
        <-deal_id>1949295
        <->2016-08-02 15:34:40
        <-amount>10000
    <-/refund>
<-/delivery>

Если запрос был неудачен, то мы возвращаем следующие коды ответов:
400 Некорректные параметры - отсутствует один из параметров в запросе (кроме dateFrom). Нужно проверить запрос и выполнить его еще раз.
401 Доступ запрещен - неправильный либо auth либо userId. Нужно проверить запрос и выполнить его еще раз.
503 Ошибка сервиса - ошибка на нашем сервисе. В этом случае нужно повторить запрос позже, когда мы восстановим сервис.

Для создания тестовых заказов вам нужно будет использовать отдельный
кабинет покупателя. После авторизации в нем вам нужно включить режим
тестовых покупок по ссылке http://www.farpost.ru/set/testBuyer/1

После этого вы сможете зайти в любой товар из вашего тестового прайслиста в кабинете ?????? и создать тестовый заказ по нажатию кнопки
"Купить". Для оплаты тестовых заказов используйте карту 4111 1111 1111 1111 дата экспирации 12/2019, держатель TEST, CVC 123, код подтверждения 12345678.

Смена статуса сделки

Чтобы перевести защищенную сделку в статус "отправлено" (dealGoodSent), нужно выполнить POST-запрос к адресу
https://www.farpost.ru/deals/api/sync/deal/update/ с параметрами:

    userId - id кабинета продавца
    auth - должен вычисляться как hash('sha512', X), где X - ключ синхронизации продавца, который выдает администратор по запросу продавца
    dealId - id сделки
    status - статус, в который нужно перевести сделку. Пока единственное валидное значение этого параметра - dealGoodSent, при передаче иного
значения запрос вернет ошибку.
    text - текст, который содержит трекинговый номер. Если доставка выполняется не транспортной компанией или почтой, параметр может не
передаваться. В иных случаях параметр должен содержать трекинговый номер

Для создания тестовых заказов вам нужно будет использовать отдельный кабинет покупателя. После авторизации в нем вам нужно включить режим тестовых покупок по ссылке http://www.farpost.ru/set/testBuyer/1

После этого вы сможете зайти в любой товар из вашего тестового прайслиста в кабинете ?????? и создать тестовый заказ по нажатию кнопки "Купить".

для примера https://baza.drom.ru/novokuznetsk/sell_spare_parts/poliuretanovaja-vtulka-ja12-tochka-opory-art-17031973-g3073039931.html

Автомобильные объявления — Доска объявлений
Подать объявление. Частные объявления и предложения организаций.
1.добавьте данный товар в корзину
2.оплатите его 
3.дождитесь подтверждения 
после чего получите его у нас в офисе или укажите адрес доставки 

ИНСТРУКЦИЯ подробная тут => https://baza.drom.ru/help/how_to_buy_parts (внимательно прочитайте!)