Работа через API

andry123123

Создатель
Регистрация
26 Сен 2018
Сообщения
30
Реакции
35
ответе пожалуйста каким образом картинки нужно выгружать? какие методы ? тут народ интересуется :) а мы в личку ?
что именно нужно? код на 1с? методом post класса pictures
 

fantats

Постоялец
Регистрация
30 Ноя 2014
Сообщения
321
Реакции
185
что именно нужно? код на 1с? методом post класса pictures
в том то и дело что не совсем 1С У клиента Для просмотра ссылки Войди или Зарегистрируйся. Как думаете будет работать ваша часть кода на выгрузку картинок? Мне нужно как-то состыковать их программу с Prestashop.

ps/ Напишите пожалуйста ваши контакты в личку -viber,telegram, вацап... Если не разберемся попробую вам написать.
 

fantats

Постоялец
Регистрация
30 Ноя 2014
Сообщения
321
Реакции
185
Продолжение большой эпопеи.

Кто работал с модулем Для просмотра ссылки Войди или Зарегистрируйся ?

Суть

Хотим попробовать делать выгрузку с программ учета (неважно какой именно) в файл xml и архив с рисунками.
Далее модуль делает импорт содержимого и поддерживает наблюдение за файлом в автоматическом режиме.
 

fantats

Постоялец
Регистрация
30 Ноя 2014
Сообщения
321
Реакции
185
Подскажите какие еще модули импорта используете ? этот не хочет наполнить магазин :) . Желательно легок в настройке
у нас xml файлик 25 Мб (есель долговато открывал) может ноут слабый

Код:
<PiezaExp RefId="750" RefPieza="6B0920933G" Atributo1="" Atributo2="" AnoStock="2001" Precio="41.32" Descuento="0" Peso="5" GastosEnvio="0" Estado="Material de segunda mano" Ubicacion="Almacenada" Observaciones="6B0920933G 3 CONECTORES" >
  <Familia>
    <Descripcion>ELECTRICIDAD</Descripcion>
  </Familia>
  <Articulo>
    <Descripcion>CUADRO INSTRUMENTOS</Descripcion>
  </Articulo>
  <Marca>
    <Descripcion>AUDI</Descripcion>
  </Marca>
  <Modelo>
    <Descripcion>A6 BERLINA</Descripcion>
    <Inicio >2001</Inicio>
    <Fin >2004</Fin>
  </Modelo>
  <Version>
    <Descripcion>AUDI A6 BERLINA 2.5 TDI</Descripcion>
  </Version>
  <Imagenes>
    <ImagenExp Fichero="jYEDLXkGH_mhMi03l1XwIQ==.jpeg" Defecto="1" />
    <ImagenExp Fichero="jYEDLXkGH_lWTK09SrZ56Q==.jpeg" Defecto="0" />
    <ImagenExp Fichero="jYEDLXkGH_npEAe-GBhmYg==.jpeg" Defecto="0" />
    <ImagenExp Fichero="jYEDLXkGH_lHWGvl2BhJIQ==.jpeg" Defecto="0" />
  </Imagenes>
</PiezaExp>
<PiezaExp RefId="757" RefPieza="P248211220R" Atributo1="" Atributo2="" AnoStock="2014" Precio="57.85" Descuento="0" Peso="5" GastosEnvio="0" Estado="Material de segunda mano" Ubicacion="Almacenada" Observaciones="" >
  <Familia>
    <Descripcion>ELECTRICIDAD</Descripcion>
  </Familia>
  <Articulo>
    <Descripcion>CUADRO INSTRUMENTOS</Descripcion>
  </Articulo>
  <Marca>
    <Descripcion>MERCEDES</Descripcion>
  </Marca>
  <Modelo>
    <Descripcion>CITAN COMBI</Descripcion>
    <Inicio >2012</Inicio>
    <Fin >0</Fin>
  </Modelo>
  <Version>
    <Descripcion>MERCEDES CITAN COMBI 111 CDI extralang</Descripcion>
  </Version>
  <Imagenes>
    <ImagenExp Fichero="s4ty9PAZvTYNJqAExI8JWg==.jpeg" Defecto="1" />
    <ImagenExp Fichero="s4ty9PAZvTbUHBVG09pkrQ==.jpeg" Defecto="0" />
    <ImagenExp Fichero="s4ty9PAZvTaaLQfXELNUaw==.jpeg" Defecto="0" />
    <ImagenExp Fichero="s4ty9PAZvTZpB_V1RxFuUA==.jpeg" Defecto="0" />
  </Imagenes>
</PiezaExp>
 

andry123123

Создатель
Регистрация
26 Сен 2018
Сообщения
30
Реакции
35
вы отказались от взаимодействия через api? зачем все эти гигантские xml?
 

fantats

Постоялец
Регистрация
30 Ноя 2014
Сообщения
321
Реакции
185
вы отказались от взаимодействия через api? зачем все эти гигантские xml?
тут у меня уже вторая программа с которой нужно делать импорт - CRVNet. Она для полного обслуживания авторазборки. Что в первом варианте они говорят что нате вам файл xml и архив с картинками и делайте сними что хотите :) так и во втором варианте :) . С 1С вроде еще кое как идет сопряжение через реализованные решения
 

Denniss

Писатель
Регистрация
6 Апр 2020
Сообщения
1
Реакции
0
кто сможет сделать?
необходимо создать API конектинг для магазина на PS 1.6.1.19 и маркетплейса wildberris
вот часть описания


Особенности работы системы:
Все карточки товаров которые были созданы в API Для просмотра ссылки Войди или Зарегистрируйся будут видны методом /card/list
Карточки созданные ранее в API Для просмотра ссылки Войди или Зарегистрируйся, не будут отображаться на текущий момент.
Тестового окружения для поставщиков не предусмотрено. Все карточки сразу создаются в продуктовой среде. В случае ошибок, для исправления которых нет методов в API можно обращаться в службу поддержки с темой Заявка на API Content
Аутентификация
Процедура аутентификации по номеру телефона состоит из 3-х шагов:

Шаг 1.
Необходимо запросить у пользователя номер телефона, а так же согласие на правила использования. Затем отправить эти данные методом login_by_phone (POST /api/v2/auth/login_by_phone) в формате:

Пример запроса:



POST Для просмотра ссылки Войди или Зарегистрируйся
Content-Type: application/json





{
"phone": "79999999999",
"is_terms_and_conditions_accepted": true
}



Ответ:



HTTP/1.1 200 OK
Server: nginx
Date: Wed, 01 Sep 2021 00:00:00 GMT
Content-Type: application/json
Content-Length: 149
Connection: keep-alive
Uber-Trace-Id: 0000000000000000:0000000000000000:0000000000000000:0
Strict-Transport-Security: max-age=31536000; preload;
X-Content-Type-Options: nosniff





{
"token": "AfvYxgf6o8X1C7akxfULQprf2iFGASdb_s9tRzTzdYgTY6iYghxW7Cq4wJbsMBk6T_o9W3TBA2p_VbogrjSJfXAi3rD44ng",
"till_next_request": 30000
}



Если формат данных корректен, то пользователю будет отправлена SMS/Push с кодом подтверждения владения номером. Помимо этого в ответе будет отправлен токен и время (в миллисекундах), в течение которого паспорт будет ожидать ввод кода подтверждения.

Шаг 2.
После ввода пользователем кода, пришедшего по SMS, он вместе с токеном должен быть передан методу login (POST /api/v2/auth/login)

Пример:



POST Для просмотра ссылки Войди или Зарегистрируйся
Content-Type: application/json





{
"token": "AfvYxgf6o8X1C7akxfULQprf2iFGASdb_s9tRzTzdYgTY6iYghxW7Cq4wJbsMBk6T_o9W3TBA2p_VbogrjSJfXAi3rD44ng",
"options":{
"notify_code": "680014"
}
}



В ответ, если аутентификация прошла успешно, будет установлен secure httpOnly cookie WBToken с сессией пользователя.


WBToken AvvYxgfM6bv1C8yMwfULQqIylUTql5Zm3kndf2i8Z-7knuI6SD6o6onmUn4_KY2mx3ZW3ZZjnQ10QZ0vQ3TTLAue-keC


Шаг 3.
Для того чтобы не запрашивать каждый раз аутентификацию с помощью смс, можно запросить токен аутентификации. Для этого нужно отправить фоновый POST запрос по адресу /api/v2/auth/grant.



POST Для просмотра ссылки Войди или Зарегистрируйся
Content-Type: application/json
Cookie: WBToken=AvvYxgfM6bv1C8yMwfULQqIylUTql5Zm3kndf2i8Z-7knuI6SD6o6onmUn4_KY2mx3ZW3ZZjnQ10QZ0vQ3TTLAue-keC



Пример ответа :



HTTP/1.1 200 OK
Server: nginx
Date: Wed, 01 Sep 2021 00:00:00 GMT
Content-Type: application/json
Content-Length: 123
Connection: keep-alive
Uber-Trace-Id: 0000000000000000:0000000000000000:0000000000000000:0
Strict-Transport-Security: max-age=31536000; preload;
X-Content-Type-Options: nosniff





{
"token": "APvYxgfUvMX1C5C9xfULQogsIQwqBj-i6GJLkzMyni0ybGkuOvkEr-4SW_al4P-xfkvs5_aYAbZAmByrArEr7NPd_aRSu_ReaZnvV_a-A5O-ZQ"
}



В ответ будет получен токен в формате APvYxgfUvMX1C5C9xfULQogsIQwqBj-i6GJLkzMyni0ybGkuOvkEr-4SW_al4P-xfkvs5_aYAbZAmByrArEr7NPd_aRSu_ReaZnvV_a-A5O-ZQ

Полученный токен необходимо отправить в центральную инсталяцию паспорта. Для этого нужно произвести фоновый POST запрос на Для просмотра ссылки Войди или Зарегистрируйся в формате:



POST Для просмотра ссылки Войди или Зарегистрируйся
Content-Type: application/json
Cookie: WBToken=AvvYxgfM6bv1C8yMwfULQqIylUTql5Zm3kndf2i8Z-7knuI6SD6o6onmUn4_KY2mx3ZW3ZZjnQ10QZ0vQ3TTLAue-keC





{
"country": "RU",
"device": "MacBookPro16",
"token": "APvYxgfUvMX1C5C9xfULQogsIQwqBj-i6GJLkzMyni0ybGkuOvkEr-4SW_al4P-xfkvs5_aYAbZAmByrArEr7NPd_aRSu_ReaZnvV_a-A5O-ZQ"
}



На этом передачу знания об аутентификации можно считать успешно завершённой. Теперь с токеном аутентификации можно запрашивать обновление cookies:
Пример:



POST Для просмотра ссылки Войди или Зарегистрируйся
Content-Type: application/json





{
"token": "APvYxgfUvMX1C5C9xfULQogsIQwqBj-i6GJLkzMyni0ybGkuOvkEr-4SW_al4P-xfkvs5_aYAbZAmByrArEr7NPd_aRSu_ReaZnvV_a-A5O-ZQ"
}



Описание процесса создания карточки товара
Данное API предназначено для работы по схеме “Со склада поставщика”.
Для работы с запросами требуется пройти аутентификацию пользователя.

Создание карточки/карточек товаров.
Для создания карточек существует 2 метода:

Create.
Для просмотра ссылки Войди или Зарегистрируйся
Описание: метод позволяет создать одну новую карточку товара. Возвращает созданную карточку.

Тело запроса выглядит следующим образом:



{
"id": 1, // ID запроса для сопоставления ответа отправленному запросу, необходимы уникальные идентификаторы.
// Для каждого запроса, рекомендуется избегать простых идентификаторов, таких как 1, 2, 3 и т.д.
"jsonrpc": "2.0", // Версия протокола. Всегда должна быть "2.0".

"params": { // Параметры.
"card": {
"countryProduction": "string", // Страна проиводитель.
"object": "string" // Категория товара (Jeans, Books и другие).
"addin": [ // Структура, содержащая характеристики карточки, общие для всех номенклатур и размеров.
{
"type": "string", // Название характеристики. Пример: "Composition".
"params": [ // Массив значений характеристики. Пример для 1 эл-та: "{"type": "Brand", "params": [{"value": "brandName"}]}".
{
"count": 0, // Численное значение характеристики.
"units": "string", // Единицы измерения характеристики ("см", "%" и другие).
"value": "string" // Текстовое значение характеристики ("brandName").
}
]
}
],
"nomenclatures": [ // Массив номенклатур товара.
{
"vendorCode": "string", // Артикул товара.
"variations": [ // Массив вариаций товара. Одна цена - одна вариация.
{
"barcode": "string", // Штрихкод товара.
"addin": [ // Структура, содержащая характеристики конкретной вариации товара.
{
"type": "string", // Название характеристики.
// Массив значений хар-ки. Пример: "{"type": "Size", "params": [{"value": "S"}]}".
"params": [ // У хар-ик, содержащих одно значение, массив будет содержать только 1 элемент.
{
"count": 0, // Численное значение характеристики.
"units": "string", // Единицы измерения характеристики.
"value": "string" // Текстовое значение характеристики.
}
]
}
]
}
],
"addin": [ // Структура, содержащая характеристики конкретной номенклатуры.
{
"type": "string", // Название характеристики.
// Массив значений характеристики. Пример: "{"type": "Color", "params": [{"value": "Красный"}]}".
"params": [ // У хар-ик, содержащих одно значение массив будет содержать только 1 элемент.
{
"count": 0, // Численное значение характеристики.
"units": "string", // Единицы измерения характеристики.
"value": "string" // Текстовое значение характеристики.
}
]
}
]
}
]
},
"supplierID": "00000000-0000-0000-0000-000000000000" // Идентификатор поставщика. Выдаётся при регистрации поставщика.
}
}



Пример запроса:



POST Для просмотра ссылки Войди или Зарегистрируйся
Content-Type: application/json
Cookie: WBToken={{cookie}}

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



"type" - название характеристики товара
"params" - массив значений характеристики




params, в свою очередь, содержит следующие поля для более удобного хранения характеристик:


"value" - текстовое значение характеристики
"count" - числовое значение характеристики
"units" - единицы измерения характеристики




Все характеристики для определённой категории товаров можно получить, совершив следующий запрос:

GET Для просмотра ссылки Войди или Зарегистрируйся
В результате в формате json вернётся список характеристик данной категории товаров (в примере используется категория Кроссовки) и требования к ним. Получение списка возможных категорий товаров будет описано ниже в пункте "Поиск ключа объекта". Некоторые характеристики требуется заполнять из словарных значений. Для получения списка возможных значений характеристик используется следующий запрос:

GET Для просмотра ссылки Войди или Зарегистрируйся
В данном запросе имеется 3 параметра:
pattern позволяет указать шаблон для поиска значения характеристики;
lang - обязательный параметр, на данный момент используется только ru;
top - ограничение по количеству объектов, если не указано - 10 шт.
Получение карточки/карточек.
Для получения карточек существует 2 метода:

CardByID. Для просмотра ссылки Войди или Зарегистрируйся
Описание: метод позволяет получить карточку поставщика с указанным ID.
Тело запроса выглядит следующим образом:



{
"id": 1,
"jsonrpc": "2.0",
"params": {
"cardID": "00000000-0000-0000-0000-000000000000", // ID карточки. Можно получить в ответе сервиса после создания карточки или методом "List", который рассмотрен ниже.
"supplierID": "00000000-0000-0000-0000-000000000000" // ID поставщика. Выдаётся при регистрации поставщика.
}
}


List. Для просмотра ссылки Войди или Зарегистрируйся
Описание: метод позволяет получить список карточек поставщика по указанным параметрам. Фильтрация позволяет исключить из итогового списка карточек те, в которых указанное поле column содержит значение excludedValues. Поиск позволяет оставить в итоговом списке карточек только те, у которых поле column имеет значение search, если это число, если это строка, то значение поля начинается с search. Сортировка позволяет отсортировать список по полю column в порядке order. query содержит значения limit и offset, который указывают соответственно на макисмальное количество карточек, которые надо вывести и на количество карточек, которые с самого начала списка нужно пропустить.
Наименования полей соответствуют пути до этого поля через точку. Так, например, чтобы добраться до поля barcode, понадобится путь nomenclatures.variations.barcode. Исключения - параметры, лежащие внутри структуры addin. Чтобы добраться до них, требуется в пути после addin через точку указать type этого параметра. Например, чтобы получить brand, потребуется путь addin.Brand. Brand написан с большой буквы, так как type был написан тоже с большой.

Тело запроса выглядит следующим образом:


{



В результате вышеприведённого запроса нам вернутся все карточки поставщика 00000000-0000-0000-0000-000000000000, среди которых не будет карточек с красными цветами и ноутбуков, у всех карточек будут товары с размером “S”. И все эти карточки будут отсортированы по дате создания в порядке возрастания (сначала старые).

Описание процесса загрузки файлов
Для работы с запросами требуется пройти аутентификацию пользователя.

Files. Для просмотра ссылки Войди или Зарегистрируйся
Заголовок должен содержать следующие поля:

X-File-ID – сгенерированный идентификатор файла в формате uuid v4, его в дальнейшем и надо передавать в карточку товара. Идентификатор поставщик генерирует своими силами.
Cookie – данные полученные полученная после авторизации (пример WBToken=AvvYxgfMn7P0C8zCuPQLQhkkkt-C…)
X-Supplier-ID – Supplier-ID в формате uuid который был выдан при регистрации
В тело запроса передаётся файл.
Пример запроса:



POST Для просмотра ссылки Войди или Зарегистрируйся
Cookie: WBToken={{cookie}}
Content-Type: multipart/form-data; boundary=boundaryImage
X-File-Id: 00000000-0000-0000-0000-000000000001
X-Supplier-ID: 00000000-0000-0000-0000-000000000001

--boundaryImage
Content-Disposition: form-data; name="uploadfile"; filename="photo.jpg"

bytes photo.jpg
--boundaryImage--


Пример CURL запроса который можно использовать для загрузки файла:


$ curl -H "X-File-ID: 00000000-0000-0000-0000-000000000001" -H "Cookie: WBToken=AvvYxgfMn7P0C8zCuPQLQhkwRa6AidtSA" -H "X-Supplier-ID: 00000000-0000-0000-0000-000000000001" -X POST -v "Для просмотра ссылки Войди или Зарегистрируйся" -F "uploadfile= @ Downloads/photo.jpg"


Добавление файла в карточку товара
Для добавления файла надо создать или обновить карточку товара
Create. Для просмотра ссылки Войди или Зарегистрируйся
Update. Для просмотра ссылки Войди или Зарегистрируйся


Сервиc конфигурации предметов и характеристик объекта.
Требуется для того чтобы сконфигурировать карточку товара Для просмотра ссылки Войди или Зарегистрируйся

Поиск ключа объекта
Для осуществления поиска ключа следует выполнить GET запрос например: Для просмотра ссылки Войди или Зарегистрируйся
В полученном ответе требуется обратить внимание на столбик с названиями на русском языке. Именно они являются названиями категорий товаров и должны использоваться при создании карточек в поле object.




Получение списка доступных справочников
Метод GET: Для просмотра ссылки Войди или Зарегистрируйся




Получение данных справочника
Пример получения значения из справочника "/options", для получения данных следует выполнить GET запрос: Для просмотра ссылки Войди или Зарегистрируйся
Как и в случае с категориями товаров, из ответа данного запроса требуется извлечь поля translate и использовать для создания карточки.





Получение всех данных справочника
Пример получения значения из справочника "/options", для получения данных следует выполнить GET запрос: Для просмотра ссылки Войди или Зарегистрируйся
 

ZhokhovM

Писатель
Регистрация
15 Июн 2017
Сообщения
2
Реакции
1
Сверху