- Saved searches
- Use saved searches to filter your results more quickly
- License
- gam6itko/ozon-seller
- Name already in use
- Sign In Required
- Launching GitHub Desktop
- Launching GitHub Desktop
- Launching Xcode
- Launching Visual Studio Code
- Latest commit
- Git stats
- Files
- README.md
- About
- Saved searches
- Use saved searches to filter your results more quickly
- googlesheets-ru/OzonFromGAS
- Name already in use
- Sign In Required
- Launching GitHub Desktop
- Launching GitHub Desktop
- Launching Xcode
- Launching Visual Studio Code
- Latest commit
- Git stats
- Files
- README.md
- About
- Клиент Ozon Seller API на Golang
- 404 Not found
- Как пользоваться
Saved searches
Use saved searches to filter your results more quickly
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session.
PHP client for Ozon Seller API
License
gam6itko/ozon-seller
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Name already in use
A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Sign In Required
Please sign in to use Codespaces.
Launching GitHub Desktop
If nothing happens, download GitHub Desktop and try again.
Launching GitHub Desktop
If nothing happens, download GitHub Desktop and try again.
Launching Xcode
If nothing happens, download Xcode and try again.
Launching Visual Studio Code
Your codespace will open once ready.
There was a problem preparing your codespace, please try again.
Latest commit
Git stats
Files
Failed to load latest commit information.
README.md
composer require gam6itko/ozon-seller
Для взаимодействия библиотеки с Ozon-Api нужно дополнительно установить реализации PSR-18: HTTP Client и PSR-17: HTTP Factories.
composer require symfony/http-client composer require nyholm/psr7
use Gam6itko\OzonSeller\Service\V1\ProductService; use Symfony\Component\HttpClient\Psr18Client; $config = [$_SERVER['CLIENT_ID'], $_SERVER['API_KEY'], $_SERVER['API_URL']]; $client = new Psr18Client(); $svc = new ProductService($config, $client); //do stuff
Использование без Symfony
composer require php-http/guzzle6-adapter
use Gam6itko\OzonSeller\Service\V1\CategoriesService; use GuzzleHttp\Client as GuzzleClient; use Http\Adapter\Guzzle6\Client as GuzzleAdapter; use Http\Factory\Guzzle\RequestFactory; use Http\Factory\Guzzle\StreamFactory; $config = [ 'clientId' => '', 'apiKey' => '', 'host' => 'http://cb-api.ozonru.me/' ]; $client = new GuzzleAdapter(new GuzzleClient()); $requestFactory = new RequestFactory(); $streamFactory = new StreamFactory(); $svc = new CategoriesService($config, $client, $requestFactory, $streamFactory); //do stuff
Чтобы узнать какой класс и метод реализуют запрос на нужный URL воспользуйтесь скриптом bin/is_realized.php
php bin/is_realized.php | grep /v2/posting/fbs/get
/v2/posting/fbs/get: Gam6itko\OzonSeller\Service\V2\Posting\FbsService::get /v2/posting/fbs/get-by-barcode: NotRealized
Автор не всегда успевает добавлять реализации новых методов. Если нужного вам метода нет в библиотеке, то не стесняйтесь открыть issue или PR.
Больше примеров смотрите в папке tests/Service/
use Gam6itko\OzonSeller\Service\V1\CategoriesService; use GuzzleHttp\Client as GuzzleClient; use Http\Adapter\Guzzle6\Client as GuzzleAdapter; $config = [ 'clientId' => '', 'apiKey' => '', 'host' => 'http://cb-api.ozonru.me/' //sandbox ]; $adapter = new GuzzleAdapter(new GuzzleClient()); $svc = new CategoriesService($config, $adapter); //Server Response example: https://cb-api.ozonru.me/apiref/en/#t-title_categories $categoryTree = $svc->tree(); //Server Response example: https://cb-api.ozonru.me/apiref/en/#t-title_get_categories_attributes $attributes = $svc->attributes(17038826);
use Gam6itko\OzonSeller\Service\V2\Posting\CrossborderService; use GuzzleHttp\Client as GuzzleClient; use Http\Adapter\Guzzle6\Client as GuzzleAdapter; $config = [ 'clientId' => '', 'apiKey' => '', 'host' => 'http://cb-api.ozonru.me/' ]; $adapter = new GuzzleAdapter(new GuzzleClient()); $svc = new CrossborderService($config, $adapter); $postingNumber = '39268230-0002-3'; $orderArr = $svc->get($postingNumber); echo json_encode($orderArr);
< "result": [ < "address": < "address_tail": "г. Москва, ул. Центральная, 1", "addressee": "Петров Иван Владимирович", "city": "Москва", "comment": "", "country": "Россия", "district": "", "phone": "+7 495 123-45-67", "region": "Москва", "zip_code": "101000" >, "auto_cancel_date": "2019-11-18T11:30:11.571Z", "cancel_reason_id": 76, "created_at": "2019-11-18T11:30:11.571Z", "customer_email": "petrov@email.com", "customer_id": 60006, "in_process_at": "2019-11-18T11:30:11.571Z", "order_id": 77712345, "order_nr": "1111444", "posting_number": "39268230-0002-3", "products": [ < "name": "Фитнес-браслет", "offer_id": "DEP-1234", "price": "1900.00", "quantity": 1, "sku": 100056 > ], "shipping_provider_id": 0, "status": "awaiting_approve", "tracking_number": "" > ] >
use Gam6itko\OzonSeller\Service\V1\ProductService; use GuzzleHttp\Client as GuzzleClient; use Http\Adapter\Guzzle6\Client as GuzzleAdapter; $config = [ 'clientId' => '', 'apiKey' => '', // use prod host by default ]; $adapter = new GuzzleAdapter(new GuzzleClient()); $svcProduct = new ProductService($config, $adapter); $product = [ 'barcode' => '8801643566784', 'description' => 'Red Samsung Galaxy S9 with 512GB', 'category_id' => 17030819, 'name' => 'Samsung Galaxy S9', 'offer_id' => 'REDSGS9-512', 'price' => '79990', 'old_price' => '89990', 'premium_price' => '75555', 'vat' => '0', 'vendor' => 'Samsung', 'vendor_code' => 'SM-G960UZPAXAA', 'height' => 77, 'depth' => 11, 'width' => 120, 'dimension_unit' => 'mm', 'weight' => 120, 'weight_unit' => 'g', 'images' => [ [ 'file_name' => 'https://ozon-st.cdn.ngenix.net/multimedia/c1200/1022555115.jpg', 'default' => true, ], [ 'file_name' => 'https://ozon-st.cdn.ngenix.net/multimedia/c1200/1022555110.jpg', 'default' => false, ], [ 'file_name' => 'https://ozon-st.cdn.ngenix.net/multimedia/c1200/1022555111.jpg', 'default' => false, ], ], 'attributes' => [ [ 'id' => 8229, 'value' => '4747', ], [ 'id' => 9048, 'value' => 'Samsung Galaxy S9', ], [ 'id' => 4742, 'value' => '512 ГБ', ], [ 'id' => 4413, 'collection' => ['1', '2', '13'], ], [ 'id' => 4018, 'complex_collection' => [ [ 'collection' => [ [ 'id' => 4068, 'value' => 'Additional video', ], [ 'id' => 4074, 'value' => '5_-NKRVn7IQ', ], ], ], [ 'collection' => [ [ 'id' => 4068, 'value' => 'Another one video', ], [ 'id' => 4074, 'value' => '5_-NKRVn7IQ', ], ], ], ], ], ], ]; $svcProduct->import($product); // or $svcProduct->import([$product, $product1, $product2, ...]); // or $res = $svcProduct->import(['items' => [$product, $product1, $product2, ...] ]); echo $res['task_id']; // save it for checking by `importInfo`
About
PHP client for Ozon Seller API
Saved searches
Use saved searches to filter your results more quickly
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session.
Реализация методов Ozon Seller Api в среде Google Apps Script
googlesheets-ru/OzonFromGAS
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Name already in use
A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Sign In Required
Please sign in to use Codespaces.
Launching GitHub Desktop
If nothing happens, download GitHub Desktop and try again.
Launching GitHub Desktop
If nothing happens, download GitHub Desktop and try again.
Launching Xcode
If nothing happens, download Xcode and try again.
Launching Visual Studio Code
Your codespace will open once ready.
There was a problem preparing your codespace, please try again.
Latest commit
Git stats
Files
Failed to load latest commit information.
README.md
Реализация методов Ozon Seller Api в среде Google Apps Script
Проект начат в рамках подготовки материала для информационной платформы dev.ozon.ru.
Библиотека представляет из себя клиент для отправки запросов, адаптированный под выполнение в среде Google Apps Script. Все методы и типы в ней полностью соответствуют официальной документации, типы сгенерированны автоматически.
Для того, чтобы поставить галочку за соблюдение принципа разделения ответственности, облегчить поддержку и исключить путаницу — ничего, кроме того, что есть в документации, в этой библиотеке не будет. Различные функции-помощники, синтаксический сахар и вообще все, что не касается методов Ozon Seller API, будет в таблице-примере.
Подключение библиотеки к скрипту 🚀
- В редакторе скриптов нажимаем на иконку “+” рядом с пунктом “библиотеки”
- В появившемся окне в поле “Идентификатор скрипта” вводим идентификатор библиотеки 1jNkKwjF2fasD2kSn9KvjtcOe-09LepeUS4016TolPomer8oo4bsFkPLt и нажимаем кнопку “найти”
- Если идентификатор библиотеки введен верно, то увидим следующее окно. Выбираем самую последнюю версию (она необязательно будет 1)
- После подключения к скрипту, в разделе “Библиотеки” появится новый, нужный нам элемент. Значение “OzonApi” говорит о том, что именно через этот объект возможно получить доступ.
Например, так: const client = OzonApi.client(keys);
1.Получение списка идентификатор товара
/** Инициализируем апи клиент */ const client = OzonApi.client(keys); const productsIdsListResponse = client.productApiGetProductList(< filter: < /* Можно отфильтровать по offer_id, чтобы получить другие данные о товаре */ // offer_id: [''], /* или по product_id */ // product_id: [''], /** Здесь фильтр "по видимости", подробнее - https://docs.ozon.ru/api/seller/#operation/ProductAPI_GetProductList */ visibility: 'ALL', >, limit: 20, >);
/** Инициализируем апи клиент */ const client = OzonApi.client(keys); /**Запрашиваем информацию о товарах по полученному списку offer_id */ const productsInfoListResponse = client.productApiGetProductInfoListV2(< offer_id: productsOfferIds, >);
Ответы на вопросы и помощь в нашем чате телеграм
About
Реализация методов Ozon Seller Api в среде Google Apps Script
Клиент Ozon Seller API на Golang
Как всем известно, Ozon предоставляет продавцам API для работы с площадкой. В возможности API входит весь функционал площадки, с помощью которого можно работать с карточками товаров, складами, заказами, продвижением своих карточек и даже чатом.
Для чего он нужен и как им можно пользоваться? Например, если вы продаете на нескольких площадках, то целесообразнее было бы хранить информацию о товаре в структурированном виде и добавлять их на площадки при помощи API. Так вы сэкономите время и убережете себя от ошибок. Также легко копировать карточки с одной площадки на другую. Или можно написать сайт с статистикой о продажах по категориям на основе данных продавцов, полученных при помощи API.
404 Not found
На просторах Github я не смог найти какой-либо поддержанной и полной клиентской библиотеки с API Ozon, поэтому я решил написать ее самостоятельно. Ее можно посмотреть на моем github. На момент написания этой статьи она еще находится на стадии добавления всех endpoints, поэтому хотелось бы получить какой-то фидбэк о данной библиотеке и узнать каков на нее спрос.
Как пользоваться
Для начала нужно получить Client-Id и Api-Key в своем личном кабинете продавца на ozon.
Затем необходимо добавить пакет при помощи:
go get github.com/diphantxm/ozon-api-client
Необходимо создать клиент, в который нужно передать полученные ранее Client-Id и Api-Key:
client := ozon.NewClient("my-client-id", "my-api-key")
Функционал библиотеки разделен по структурам. Например, чтобы создать карточку товара, необходимо обратиться к структуре Products в клиенте:
resp, err := client.Products().GetProductDetails(&ozon.GetProductDetailsParams< ProductId: 123456789, >)
В функцию передаем параметры запроса и получаем ответ от Ozon API.
package main import ( "fmt" "log" "net/http" "github.com/diphantxm/ozon-api-client/ozon" ) func main() < // Create a client with your Client-Id and Api-Key // [Documentation]: https://docs.ozon.ru/api/seller/en/#tag/Auth client := ozon.NewClient("my-client-id", "my-api-key") // Send request with parameters resp, err := client.Products().GetProductDetails(&ozon.GetProductDetailsParams< ProductId: 123456789, >) if err != nil || resp.StatusCode != http.StatusOK < log.Fatalf("error when getting product details: %s", err) >// Do some stuff for _, d := range resp.Result.Barcodes < fmt.Printf("Barcode %s\n", d) >>
На данный момент библиотеке находится в процессе реализации всех endpoint, поэтому какого-то функционала еще нет. Если вы хотели бы пользоваться такой библиотекой и вам нужны некоторые функции, можете оставить Issue с списков необходимых методов. Или можете реализовать их сами и отправить Pull Request. Вклад в развитие приветствуется 🙂