Оглавление |
---|
...
Введение
Модуль Автовыкуп — это помощник в работе с заказами (автоматизация) на сайте Товарного Провайдера (Таобао, 1688 и тд).
Есть три вида систем заказов, которые участвуют в процессе:
- Ваша система заказов (покупателя ключа ОТ API).
- Система заказов OT Platform.
- Система заказов Поставщика товаров (Таобао).
Модуль Автовыкуп работает с системами 2 и 3 (из OT Platform в систему Поставщика товаров):
Весь процесс работы можно описать схематично (используя нумерацию процессов, указанных выше):
- 1 → 2 — Добавление заказов в систему OT Platform
- 2 ↔ 3 — Работа Автовыкупа (экспорт заказов; синхронизация статусов
- Экспортирует заказы.
- Синхронизирует статусы (товаров и заказа), трек-коды кодов посылок и тд.
- 2 → 1 — Работа с заказами после Автовыкупа.
Так как модуль Автовыкуп работает только с заказами, которые находятся в системе заказов OT Platform, необходимо с помощью API загрузить заказы из вашей системы в систему OT Platform. Когда заказы будут загружены, возможна дальнейшая работа с модулем Автовыкуп.
Информация | ||
---|---|---|
| ||
Модуль Автовыкуп требует регистрацию на сайте Товарного Провайдера, а также не заменяет общения с продавцами (согласования товаров, наличия, обсуждение доставки, брака и тп). Все условия работы с продавцом, разместившим товар на сайте Товарного провайдераПровайдера, необходимо обговаривать лично, если того требует ситуация. |
...
Для дальнейшей настройки, сохраняем у себя (записываем или запоминаем) идентификатор доставки.
...
Виды сессий
Админская/операторская сессия — нужна для всех операторских действий, в том числе и работа с Автовыкупом, и получение информации о заказах для синхронизации с ними, и изменение статусов заказов. Можно получить методом AuthenticateInstanceOperator, передав ваши админские логин/пароль (полученные с покупкой ключа ОТ API)
Пользовательская/покупательская сессия — нужна для добавления заказов от его имени. Можно получить методом Authenticate, передав логин/пароль от созданного ранее при настройке пользователя.
Провайдерская сессия — нужна для работы с Автовыкупом, связана с внешними системами, такими как Таобао, и в данном примере зависит от вашего Таобао-аккаунта и входа в него. Подробнее о получении будет в описании работы Автовыкупа.
Добавление заказов в систему ОТ Platform
...
Результат работы метода AddOrder
AddOrder создает всегда один заказ, но в заказе может быть сколько угодно товаров.
Все параметры будут предварительно проверены, если по какой-либо причине товар нельзя заказать, он будет пропущен.
...
Не смотря на то, что передать явную причину отказа не представляется возможным, можно проверить заказ по списку возможных ошибок и, тем самым, решить возникшую проблему.
...
проблему
...
.
- Товар снят с продажи (закончился на складе и тд). Убрать товар из списка товаров или подобрать аналогичный у другого продавца.
- Данной конфигурации товара нет на сайте (или она закончилась). Выбрать другую конфигурацию товара (цвет, размер и тп) или подобрать аналогичный у другого продавца.
- Указанного продавца больше нет на сайте. Выбрать аналогичный товар у другого продавца.
- Опечатка в каком-либо поле документа. Проверить правильность ввода данных.
Результат работы метода AddOrder: заказ из вашей системы попал в систему ОТ Platform (если смотреть аналогию в начале статьи, то из блока 1 попал в блок 2).
Имитация оплаты заказа
Информация | ||
---|---|---|
| ||
Далее требуется административная сессия. |
Так как система ОТ Platform рассчитана на обычную работу интернет-магазина, невозможно отправить в Автовыкуп заказ, который не был оплачен. Пока мы разрабатываем иное решение по данному вопросу, необходимо настроить имитацию оплаты заказа по схеме, описанной ниже.
Все действия делятся на две части:
- Пополнение счета покупателя.
- Оплата заказа со счета покупателя.
Реальный перевод денег не требуется!
Пополнение счета покупателя
Пополнить счет можно методом PostTransaction. Для этого требуется:
- Административная сессия.
- Идентификатор покупателя.
- Сумма перевода.
- В isDebit передаем значение true (так как идет пополнение счета).
- В комментарий и дату можно ничего не передавать.
Идентификатор покупателя и сумму можно узнать из информации о заказе, которая получена в ответ на AddOrder (либо можно запросить отдельно методом GetSalesOrderDetailsForOperator — там тоже админстративная сессия, идентификатор заказа, в параметр filter можно отправить пустую строку, а в queryType значение 0. Метод неоднократно пригодится вам и далее.)
Оплата со счета покупателя
Оплатить заказ со счета покупателя можно методом SalesPaymentReserve
Для этого требуется:
- Административная сессия.
- Идентификатор Заказа.
- Сумма оплаты.
Если обе операции прошли успешно, то заказ теперь оплачен, и можно приступать к экспорту в систему Товарного Провайдера.
В любой момент состояние заказа можно проверить методом GetSalesOrderDetailsForOperator , он же понадобится в дальнейшем и для получения информации от Провайдера, такой как трек-номера, статусы, и т.д.
Автовыкуп
Первоначальная настройка
Если у вас есть регистрация на Таобао, то вы можете подключить Таобао, как своего Товарного Провайдера.
Информация | ||
---|---|---|
| ||
Автовыкуп не работает для товаров Tmall. Примерно 1,5 года назад часть скидок на товары Tmall перестали передаваться через api Taobao. Используемый сейчас, разработанный OpenTrade Commerce, эксклюзивный метод получения Tmall скидок не позволяет использовать эти скидки в Автовыкупе, так как система автоматизированного выкупа товаров работает только со скидками, передаваемыми через api Taobao. |
Для подключения необходимо знать следующие данные:
Список логинов Таобао, которые будут использоваться для выкупа (логинов может быть неограниченное количество). Внимание! Номер телефона не является логином. Логин — это ник покупательского аккаунта:
Информация о получателе посылок (данные склада) на китайском языке:
- Имя получателя (если не указано, будет ставиться транслитерированное имя покупателя заказа) — Важно! Размер от 2 до 14 символов
- Мобильный телефон получателя (11 цифр)
- Код региона (это число можно увидеть, выбирая регион внутренней доставки в админке)
- Почтовый индекс (zip-код)
- Адрес склада на китайском языке (не включая регион: Например, если регион выбран Пекин, то в адрес не нужно писать город. Если выбран отдельный район Пекина, то в адрес не нужно писать и район.)
Информация | ||
---|---|---|
| ||
Имя: 王鑫磊奇跡 |
Если возникли вопросы, можно обратиться в скайп-чат для консультации с менеджером ОТ.
Получение Провайдерской сессии
Если вы используете несколько аккаунтов в системе Провайдера, например в Таобао, то на каждый аккаунт будет своя сессия. Все они после получения запоминаются в системе ОТ Platform, и используются не только для экспорта, но и, например, для автоматической фоновой синхронизации.
Информация | ||
---|---|---|
| ||
Примерное время жизни сессии Таобао составляет сутки, поэтому рекомендуется каждый день перед началом работы пройтись по всем аккаунтам и получить для них сессии. |
Если сессия ранее уже была получена, то можно узнать её методом GetProviderOrdersIntegrationSessionInfoList. К сожалению, процесс получения требует ручных действий от оператора, и не может быть полностью автоматизирован.
Чтобы получить сессию, необходимо:
- Адрес на вашем сайте с обработчиком, куда Таобао вернет оператора после авторизации.
- Вызвать метод GetProviderOrdersIntegrationSessionAuthenticationInfo, передав ваш адрес возврата (из пункта 1). В ответ вы получите адрес, который нужно открыть для оператора.
- Открыть полученный адрес оператору в браузере.
- Оператор должен войти в Таобао-аккаунт и подтвердить что разрешает работу с ним системе ОТ Platform.
- После чего браузер вернется на ваш адрес возврата (из пункта 1), в параметрах будет либо готовая сессия, либо текст ошибки.
Сессию можно запомнить или узнать заново запросив список методом GetProviderOrdersIntegrationSessionInfoList.
Интерактивные операции
Все остальные операции с Автовыкупом, не описанные выше, кроме получения сессии, могут выполняться неопределенное время и являться интерактивными (требующими действий от оператора), поэтому они реализованы в виде системы Фоновых Активностей. Каждый используемый метод выдает идентификатор фоновой активности, все действия происходят внутри неё, а наблюдать за активностью и управлять ею нужно через общие методы работы с ними.
Всего ручных действий с Автовыкупом четыре.
1. Экспорт заказа в Провайдер
Метод RunOrderExportingToProvider принимает:
- админскую сессию,
- тип Провайдера,
- Провайдерскую сессию,
- структуру, в которой указаны идентификатор заказа и идентификаторы строк заказа.
Если строки заказа не перечислены, будет экспортирован весь заказ (точнее, все доступные к экспорту строки). Но можно и экспортировать часть заказа, если перечислить конкретные строки заказа.
Процесс работы:
Сперва пройдет проверка наличия товаров, конфигураций, корректности цен, при каждом расхождении будет вопрос к оператору, что делать с таким товаром. При наличии вопроса активность приостанавливается в ожидании ответа. Об этом подробнее в разделе про фоновые активности.
Затем будет попытка самого экспорта. В случае успеха в Провайдере (в Таобао) появится заказ (или несколько), а в строках заказа в системе OT Platform будет записана информация, какая строка к какому Провайдерскому заказу относится. По этой информации будет происходить дальнейшая синхронизация.
Если же при экспорте возникнет ошибка, то о ней будет сообщено в активности.
Среди ошибок могут быть:
- Неверные настройки адреса для выкупа.(Имеются ввиду данные для Таобао: адрес в Китае, телефон и тп. Необходимо внести верные данные).
- Лимит неоплаченных заказов в системе Провайдера. (Превышен лимит забронированных товаров. У каждого товарного Провайдера есть ограничение на количество забронированных товаров. Чтобы решить эту проблему, необходимо пополнить счет на сайте Товарного Провайдера и выкупить часть товаров.)
- Упущенные при проверке несоответствия, такие как недостаточное количество, и т.д.
- Или любые иные, типа плохой связи с Провайдером, работ в системе Провайдера или системе OT Platform, и т.д.
Кроме того, в настройках системы OT Platform может быть включена проверка после экспорта, всё ли верно прошло. В этом случае тоже сообщит об ошибке, если например товар должен был быть со скидкой, а забронировался без скидки.
2. Ручная синхронизация
Метод RunOrdersSynchronizingWithProvider принимает:
- админскую сессию,
- тип Провайдера,
- Провайдерскую сессию.
Хотя синхронизация запускается периодически в фоне автоматически, можно запустить её и вручную.
При синхронизации проверяются все экспортированные заказы, и в них меняются статусы, если они сменились на стороне Провайдера (например, продавец отправил посылку), расставляются трек-номера, а так же прочие действия.
Синхронизация носит односторонний характер, и в случае, например, отмены заказа в системе OT Platform, у Провайдера заказ не отменится (в Таобао это вообще возможно лишь вручную на их сайте). Поэтому, чтобы ваш заказ получил статус отменен, необходимо вручную отменить заказ в личном кабинете Провайдера. После синхронизации статус заказа будет везде единым.
3. Ручное связывание заказов
Метод RunOrderLinkingWithProvider принимает:
- админскую сессию,
- тип Провайдера,
- Провайдерскую сессию,
- структуру, в которой указаны идентификатор заказа и список Провайдерских заказов.
Не всегда можно забронировать (экспортировать) товар автоматом, в случае с Таобао основная из причин это особые Tmall-скидки, которые просто недоступны автоматике.
Но чтобы пользоваться преимуществами синхронизации, можно выкупить вручную, и связать заказы между собой. А далее синхронизация будет работать с ними так же, как и с теми что экспортированы автоматически.
Система сперва попытается сама определить совпадающие товары в указанных заказах, а если не нашло, спросит оператора, что с ним делать.
4. Отвязывание заказа
Метод RunOrderUnlinkingFromProvider принимает:
- админскую сессию,
- тип Провайдера,
- Провайдерскую сессию,
- структуру, в которой указаны идентификатор заказа и идентификаторы строк заказа.
Если строки заказа не перечислены, будут отвязаны все связанные строки.
Иногда, если экспорт прошел не так как надо, или вручную связали не то что надо, то перед повторными попытками нужно сперва данные строки заказа отвязать.
Или вы просто хотите, чтобы они больше не синхронизировались.
Работа с заказами системы OT Platform
Подробная информация о заказе
Если вы сохраняли в своей системе идентификаторы заказов OT Platform, то можно периодически просматривать их, проверяя нужную информацию.
Подробную информацию о заказе можно получить методом GetSalesOrderDetailsForOperator — там тоже админстративная сессия, идентификатор заказа, в параметр filter можно отправить пустую строку, а в queryType значение 0.
В ответе метода стоит обратить внимание на список строк заказа (свойство SalesLinesList), в каждой из которых интересно следующее:
- StatusId/StatusName — статус данного товара, он меняется в соответствии со статусами в Провайдерском заказе. Сами соответствия можно настраивать, что описано в разделе настроек Автовыкупа.
- VendPurchId — идентификатор Провайдерского заказа.
- VendPurchWaybill — номер накладной, он же трек-номер посылки, которую вам отправил Продавец.
- VendPurchAccountId — имя аккаунта, под которым был выкуплен товар.
- VendPurchStatus — оригинальный статус товара в Провайдерском заказе, не переведенный в статус OT Platform.
- VendPurchItemId / VendPurchConfigurationId / VendPurchPromotionId — идентификаторы товара / конфигурации / скидки в Провайдерском заказе.
Поиск строк заказов по идентификатору Провайдерского заказа
Если вам известен идентификатор Провайдерского заказа (например, в Таобао его видно в личном кабинете в списке заказов), можно получить то, что с ним связано в системе OT Platform.
Для этого используйте метод SearchOrderLines с примерно таким параметром xmlSearchParameters:
Блок кода | ||
---|---|---|
| ||
<OrderLineSearchParameters>
<VendorPurchaseIdList>
<Id>здесь идентификатор провайдерского заказа</Id>
</VendorPurchaseIdList>
</OrderLineSearchParameters> |
Поиск строк заказов по трек-номеру
Если вам известен трек-номер посылки, можно получить то, что с ним связано в системе OT Platform (в случае с Таобао это номер накладной, напечатанный на посылке, которая пришла на ваш склад. Он же там есть в виде штрих-кода, который вы можете считать, если имеется сканер).
Для получения информации используйте метод SearchOrderLines с примерно таким параметром xmlSearchParameters:
Блок кода | ||
---|---|---|
| ||
<OrderLineSearchParameters>
<VendorPurchaseWaybillIdList>
<Id>здесь трек-номер</Id>
</VendorPurchaseWaybillIdList>
</OrderLineSearchParameters> |