Giter VIP home page Giter VIP logo

ozon-seller's Issues

/v1/chat/list too slowly,can you help me

Chat list(/v1/chat/list ) has too much data and is pulled too slowly. Can you provide change time parameters. It takes one hour to pull a store, and many stores can't be pulled at all,can you help me

can't use api:https://api-seller.ozon.ru/v1/product/import-by-sku,return error:Техническая ошибка

api:
https://api-seller.ozon.ru/v1/product/import-by-sku
param:

{
  "offer_id": "82605303223525",
  "old_price": "6158",
  "price": "3658",
  "premium_price": "3600",
  "currency_code": "CNY",
  "sku": 826053031,
  "vat": "0"
}

result:

{
  "result": {
    "items": [
      {
        "offer_id": "82605303223525",
        "product_id": 0,
        "status": "failed",
        "errors": [
          {
            "code": "bad_request_error",
            "field": "",
            "attribute_id": 0,
            "state": "new",
            "level": "error",
            "description": "Техническая ошибка",
            "optional_description_elements": [],
            "attribute_name": "",
            "message": "Неверно указана валюта"
          }
        ]
      }
    ],
    "total": 1
  }
}

Получить комиссию Озона для подсчёта прибыли?

Есть необходимость считать реальную прибыль, для этого надо получать комиссию Озона.
В документации нет описания методов для получения комиссии.

Задавал вопрос, ответили, что метод есть. Может быть его включить в библиотеку:

POST /v1/product/list/price
{
  "filter": {
    "offer_id": [],
    "product_id": [],
    "visibility": "ALL"
  },
  "page": 1,
  "page_size": 100
}
Ответ:
{
  "result": {
    "items": [
      {
        "buybox_price": "string",
        "commission": {
          "percent": 0,
          "value": 0
        },
        "id": 0,
        "offer_id": "string",
        "old_price": "string",
        "premium_price": "string",
        "price": "string",
        "recommended_price": "string"
      }
    ],
    "total": 0
  }
}

Вопрос по ProductService V3

Добрый день, подскажите, будет ли реализован в ближайшее время в вашей библиотеки ProductService V3?
С 30 августа 2022 года Ozon отключает часть методов, и в списке по ссылке Отключение методов есть следующие строки:
Информация о количестве остатков -> /v3/product/info/stocks
Получить описание характеристик товара -> /v3/products/info/attributes
Методы предыдущих версий будут не доступны.

Service\V2\Posting\FbsService unfulfilledList ошибка, если не передать with

Если при вызове unfulfilledList не передать значение with, то озон не может распарсить такой json
{"with":[],"status":["awaiting_packaging"],"sort_by":"updated_at","dir":"asc","offset":0,"limit":50}
Ошибка:
Data: [{"name":"cause","code":"","value":"json: cannot unmarshal array into Go value of type map[string]json.RawMessage","message":""}]

если передать, то запрос будет таким
{"with":{"barcodes":true},"status":["awaiting_packaging"],"sort_by":"updated_at","dir":"asc","offset":0,"limit":50}
и всё норм

Изменения в методах

От Озона:
Мы запустили вторую версию API, где обновили методы получения списков заказов и их обработки. Она работает стабильнее и лучше оптимизирована. Документация по новой версии: для схемы «Отгрузка со склада продавца», для схемы «Отгрузка со склада Ozon». И важно: перейти на новую версию нужно до Нового года, так как после 9 января старая версия работать уже не будет.

Некорректная обработка статусов ответа

Со вчера начали сыпаться эксепшены

Client error: POST `http://api-seller.ozon.ru/v3/posting/fbs/list` resulted in a `405 Method Not Allowed` response

В AbstractService идет проверка только содержимого контента, но в данном случае нужно проверять статус, тк боди пустое.

Соответственно на выходе получаем пустой эксепшен

Gam6itko\OzonSeller\Exception\OzonSellerException Object
(
    [details:protected] => Array
        (
        )

    [message:protected] => 
    [string:Exception:private] => 
    [code:protected] => 0
    [file:protected] => /var/www/vhosts/***/local/php_interface/vendor/gam6itko/ozon-seller/src/Service/AbstractService.php
    [line:protected] => 146
    [trace:Exception:private] => Array
        (
)

image

Валидатор «съедает» наименование товара

В импорте товара /v2/product/import обрезается параметр name. В результате в Озон товар попадает без названия.
Конфиг валидатора product_validator_v2.php просится, чтобы его дополнили.

Добавить функцию в сервис

Добрый день. Неплохо было бы добавить функцию tree - получения списка категорий от Озон
И она могла бы выглядеть так:

    /**
     * Receive the tree of categories for a specified category or full categories tree.
     *
     * @param array $categoryId [attribute_type, language]
     *
     * @return mixed|\Psr\Http\Message\ResponseInterface
     */
    public function tree(int $categoryId = 0, array $query = []): array
    {
        $query = ArrayHelper::pick($query, ['category_id', 'language']);
        $query = TypeCaster::castArr($query, [
            'category_id'    => 'int',
            'language'       => 'str',
        ]);
        if($categoryId > 0) {
            $query = array_merge([
                'category_id'    => $categoryId,
            ], $query);
        }
        $query = array_merge([
            'language'    => 'RU',
        ], $query);
        return $this->request('POST', "{$this->path}/tree", $query);
    }

при 0 d category_id выгружается все дерево

Загрузка изображений

/v1/product/pictures/import - Загрузка\Обновление изображений

/v1/product/pictures/info - статус загрузки изображений

Ошибка при вызове метода V3\Posting\FbsService::unfulfilledList без указания фильтра

Версия библиотеки v0.8.7

Вызов \Gam6itko\OzonSeller\Service\V3\Posting\FbsService::unfulfilledList без параметров формирует следующий запрос (заголовки опущены для краткости):

POST /v3/posting/fbs/unfulfilled/list HTTP/1.1

{"with":{"analytics_data":false,"barcodes":false,"financial_data":false},"filter":[],"dir":"asc","offset":0,"limit":10}

Ответ:

HTTP/1.1 400 Bad Request

{"code":3,"message":"proto: syntax error (line 1:83): unexpected token [","details":[]}

Полагаю, проблема в том, что при преобразовании в JSON пустой массив преобразуется в [] вместо {}.

Похожая проблема была в #40, там это решили добавлением дефолтных значений для некоторых полей фильтра (чтобы он никогда не был пустым).

AbstractService::getExceptionClassByName() must be of the type string

Уже больше месяца, в лог иногда сыпется вот такая ошибка

Argument 1 passed to Gam6itko\OzonSeller\Service\AbstractService::getExceptionClassByName() must be of the type string, null given, called in /vendor/gam6itko/ozon-seller/src/Service/AbstractService.php

Насколько я понимаю, сервер озона не отвечает и вместо ответа null, хотя в функции ожидается строка.

метод /v1/brand/company-certification/list еще реализован ?

Здравствуйте,
Правильно ли я понял, что данный метод в топике у Вас еще не реализован?

ps. Пробую использовать Вашу библиотеку и получаю ошибку по таску, что импортируемый товар подлежит сертификации со ссылкой на данный метод, а быстрым поиском не нашёл в библиотеке.

PHP Fatal error при 502 ответе озона

Озон отвечает 502 кодом и

<html>
<head><title>502 Bad Gateway</title></head>
<body>
<center><h1>502 Bad Gateway</h1></center>
<hr><center>nginx</center>
</body>
</html>

В итоге ошибка
PHP Fatal error: Uncaught RuntimeException: Invalid json error response: in /vendor/gam6itko/ozon-seller/src/Service/AbstractService.php:127

/V2/Posting/FbsService, an exception occurred, can you help me?

use V2\Posting\FbsService

$config = ['clientId' => $client_id, 'apiKey' => $api_key, 'host' => $api_url];
$svc = new FbsService($config, new GuzzleAdapter(new GuzzleClient()), new RequestFactory(), new StreamFactory());
$svc->ship($packages, $number_posting);

the exception like this:
proto: syntax error (line 1:13): unexpected token {

can you help me?

PHP 7.0 version support

Package gam6itko/ozon-seller at version has a PHP requirement incompatible with your PHP version (7.0.33)

Invalid JSON payload

Здравствуйте.
Поставил Вашу библиотеку всё настроил. В итоге получаю Invalid JSON payload
Конфиг такой:
array(3) {
["clientId"]=>
string(3) "836"
["apiKey"]=>
string(36) "0296d4f2-70a1-4c09-b507-904fd05567b9"
["host"]=>
string(24) "http://cb-api.ozonru.me/"
}

Т.е. пытаюсь по тестовому апи получить данные о списке заказов по V3

$this->client_config = [
            'clientId' => $this->config['test'] ? self::TEST_CLIENT_ID : $this->config['client_id'],
            'apiKey' => $this->config['test'] ? self::TEST_API_KEY : $this->config['api_key'],
            'host' => 'http://'.$host.'/'
        ];
        $this->client = new GuzzleAdapter(new GuzzleClient());
        $this->requestFactory = new RequestFactory();
        $this->streamFactory = new StreamFactory();
$this->service = new FbsService($this->client_config, $this->client, $this->requestFactory, $this->streamFactory);
$data = $this->service->list();

Я вывел данные по ошибке:

protected function throwOzonException(string $responseBodyContents): void
    {
        var_dump('$responseBodyContents', $responseBodyContents);
        $errorData = json_decode($responseBodyContents, true);
        if (JSON_ERROR_NONE !== json_last_error()) {
            throw new OzonSellerException($responseBodyContents);
        }

        if (!class_exists($className = $this->getExceptionClassByName($errorData['error']['code']))) {
            throw new OzonSellerException($responseBodyContents);
        }

        $errorData = array_merge([
            'message' => '',
            'data'    => [],
        ], $errorData['error']);

        $refClass = new \ReflectionClass($className);
        /** @var \Throwable $instance */
        $instance = $refClass->newInstance($errorData['message'], $errorData['data']);
        throw $instance;
    }

Получаю:

string(21) "$responseBodyContents" 
string(203) "{"error":{"code":"BAD_REQUEST","message":"Invalid JSON payload","data":[{"name":"cause","code":"","value":"json: cannot unmarshal array into Go value of type map[string]json.RawMessage","message":""}]}} "

Подскажите в чём может быть дело?

image360

Привет! Как мне в созданый товар добавить images360

primary_image в import и update

Поддержка Озона про /import сообщает:

Добавили в запрос параметр primary_image — ссылка на главное изображение товара. Если у вас одно изображение, то его не нужно будет указывать в параметре images, а только в primary_image

Но правила валидации product_validator_v2.php не позволяют опустить параметр images.

Не смотря на то, что в документации озона предлагается указывать главное изображение первым в списке images, мы столкнулись с ошибкам обработки фотографий на стороне Озона. Поэтому нужно явно задавать главное в primary_image

Некорректная обработка сетевых ошибок

} catch (RequestExceptionInterface $exc) {
// guzzle
$response = $exc->getResponse();
$contents = $response->getBody()->getContents();
$this->throwOzonException($contents ?: "Error status code: {$response->getStatusCode()}");
}

Метод getResponse не является частью интерфейса RequestExceptionInterface. В частности, он отсутствует в классе \Http\Client\Exception\NetworkException, в результате при сетевых ошибках получаем

Call to undefined method Http\Client\Exception\NetworkException::getResponse()

Некорректная обработка ответа печати маркировок

В методе packageLabel FbsService.php#L129 обработка идет так же как и для других методов - предполагая что в ответе JSON, но в ответе pdf файл https://cb-api.ozonru.me/apiref/ru/#t-fbs_package_label (тоже самое и для метода /v2/posting/fbs/act/get-pdf - https://cb-api.ozonru.me/apiref/ru/#t-section_postings_fbs_act_title).

Undefined index: error

Здравствуйте. Частенько получаем следующую ошибку:

Undefined index: error at /var/www/vendor/gam6itko/ozon-seller/src/Service/AbstractService.php:146)

Запрос:

{
    "method": "POST",
    "uri": "/v1/product/list",
    "body": {
        "page": 1,
        "page_size": 1000,
        "filter": {
            "visibility": "VISIBLE"
        }
    }
}

Ответ:
{"code":7,"message":"Invalid Api-Key, please contact support","details":[]}

Ошибка в запросе

Для получения отчета по товарам используется запрос со словом products, а не product.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.