Denis0707
@Denis0707
Дымный о_0

/card​/list в WB API?

Всем привет! Мучаюсь и не могу понять в чем ошибка уже более недели, прошу подскажите кто знает.. В API WB имеется метод /card​/list (Получить список карточек поставщика с фильтром и сортировкой). Мне по сути необходимо получить одну карточку данным методом. Получить ее нужно по номенклатурному номеру (nmId), он у меня 81923101. Кто может пример привести, как это делается? Пишу на PHP. Вот ссылка на их документацию. https://suppliers-api.wildberries.ru/swagger/index...
  • Вопрос задан
  • 118 просмотров
Пригласить эксперта
Ответы на вопрос 2
Denis0707
@Denis0707 Автор вопроса
Дымный о_0
На 1С пишут тут, но я не понял..
https://infostart.ru/public/1664291/
Ответ написан
Комментировать
Adamos
@Adamos
Мучаюсь и не могу понять в чем ошибка уже более недели

Предлагаете теперь нам помучиться и поугадывать, в чем у вас ошибка?
private function curl($url, $params = [])
    {
        $curl = curl_init();
        $headers = [
            'accept: application/json',
            'Authorization: ' . $this->tokenV2
        ];
        if(count($params)) {
            $headers[] = 'Content-Type: application/json';
            curl_setopt($curl, CURLOPT_POST, true );
            curl_setopt($curl, CURLOPT_POSTFIELDS, json_encode($params));    
        }
        curl_setopt($curl, CURLOPT_URL, $url);
        curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
        curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);
        curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
        curl_setopt($curl, CURLOPT_HEADER, true);
        curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);
        curl_setopt($curl, CURLOPT_CONNECTTIMEOUT, 30);
        curl_setopt($curl, CURLOPT_TIMEOUT, 300);

        $response = curl_exec($curl);
        $curlInfo = curl_getinfo($curl);

        $responseBodyRaw = substr($response, $curlInfo['header_size']);
        $responseBody = json_decode($responseBodyRaw, true);
        if(json_last_error() !== JSON_ERROR_NONE) {
            $responseBody = $responseBodyRaw;
        }
        unset($response, $responseBodyRaw);
        curl_close($curl);

        return $responseBody;
    }

    private function queryV25($url, $params)
    {
        return $this->curl($this->urlV2 . $url, $params);
    }

    public function getCards()
    {
        return $this->queryV25(
            'card/list',
            [
                'id' => 1,
                'jsonrpc' => '2.0',
                'params' => [
                    'query' => [
                        'limit' => 1000,
                        'offset' => 0,
                        'total' => 0
                    ],
                    'supplierID' => $this->supplierId
                ]
            ]
        );
    }

Этот код - работает. Для вашей задачи нужно в запрос добавить фильтр.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы