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

ответе пожалуйста каким образом картинки нужно выгружать? какие методы ? тут народ интересуется :) а мы в личку ?
что именно нужно? код на 1с? методом post класса pictures
 
что именно нужно? код на 1с? методом post класса pictures
в том то и дело что не совсем 1С У клиента Для просмотра ссылки Войди или Зарегистрируйся. Как думаете будет работать ваша часть кода на выгрузку картинок? Мне нужно как-то состыковать их программу с Prestashop.

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

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

Суть

Хотим попробовать делать выгрузку с программ учета (неважно какой именно) в файл xml и архив с рисунками.
Далее модуль делает импорт содержимого и поддерживает наблюдение за файлом в автоматическом режиме.
 
Подскажите какие еще модули импорта используете ? этот не хочет наполнить магазин :) . Желательно легок в настройке
у нас 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>
 
вы отказались от взаимодействия через api? зачем все эти гигантские xml?
 
вы отказались от взаимодействия через api? зачем все эти гигантские xml?
тут у меня уже вторая программа с которой нужно делать импорт - CRVNet. Она для полного обслуживания авторазборки. Что в первом варианте они говорят что нате вам файл xml и архив с картинками и делайте сними что хотите :) так и во втором варианте :) . С 1С вроде еще кое как идет сопряжение через реализованные решения
 
кто сможет сделать?
необходимо создать 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 запрос: Для просмотра ссылки Войди или Зарегистрируйся
 
Назад
Сверху