Получение id по api

Раз техподдержка послала сюда, решил все же написать:

я еще раз перечитал информацию по api, но так и не нашел там решения своего вопроса. Работа с апи идет по ID товара, но как же мне найти этот айди если я знаю только наименование товара?

Мне надо по наименованию товара найти его айди для того чтобы в

api.php/shop.product.sku.update

поменять его цену например или количество. Как?

Второй раз с этим столкнулся, в конечном счете закинул и получил данные напрямую в mysql. Но сюда все же напишу, так как глупо как-то иметь методы для обновления товаров, а вот получить id этих самых товаров нельзя. Есть конечно shop.product.search.method.php, но это не дает 100% идентификацию конкретного товара.


2 ответа

  • 1
    Михаил Ушенин Webasyst 24 января 2019 09:39 #

    как же мне найти этот айди если я знаю только наименование товара?

    Какие методы нахождения ID вы рассматриваете? Средствами API?

    • +1
      Shaman Shaman 25 января 2019 18:52 #

      Да, средствами апи. Ну сами подумайте как обновить товар методом shop.product.update.method.php если мы не можем передать ему неизвестный еще параметр. Тут явно не хватает двух методов:

      shop.product.getId.method.php, которому передаем точное название товара без всяких хешей и получаем id или 0 в случае отсутствия такого товара

      и

      shop.product.skus.getId.method.php, которому передаем точный артикул без всяких хешей и получаем id sku и id product или 0 в случае отсутствия такого sku


      • +1
        Михаил Ушенин Михаил Ушенин Webasyst 26 января 2019 12:13 #

        У разных товаров могут совпадать названия. Было бы логично получать информацию о товаре по коду артикула, потому что артикулы почти наверняка уникальны в пределах одного каталога. Но такой возможности в магазине я пока не вижу.

        Придётся пока, видимо, искать товары по наименованию с помощью shop.product.search, затем находить все артикулы найденных товаров с помощью shop.product.skus.getList и по кодам полученных артикулов определять, что найденный товар — тот, что вам нужен. Придётся выполнять больше запросов, но более экономного точного способа нахождения товара я не вижу.

        Передал разработчикам информацию об этой задаче — либо добавим нужный метод в API, либо предложим другой алгоритм решения.

        • +1
          Shaman Shaman 26 января 2019 22:32 #

          Пока я тупо через свою прослойку получаю нужные данные непосредственно в базе mysql. Но это костыль, от которого хотелось бы уйти, хоть и работает мгновенно.

          И в пределах одного каталога при правильном подходе уникальны и названия товаров.

  • 1
    enso_studio@mail.ru 25 января 2019 17:03 #

    https://developers.webasyst.ru/api/explorer/shop/shop.product.search/ первое что приходит в голову

    • +1
      Shaman Shaman 25 января 2019 18:47 #

      Ключевой минус тут это хеш. Что уже подразумевает получение нескольких значений вместо одного айди.

      • 0
        enso_studio@mail.ru enso_studio@mail.ru 26 января 2019 19:53 #

        освой поиск, а потом спорь

        • +1
          Shaman Shaman 26 января 2019 22:35 #

          Я не спорю, я утверждаю что это костыль искать что-то вместо обращения напрямую

          • +1
            enso_studio@mail.ru enso_studio@mail.ru 27 января 2019 02:49 #

            'search/name=Товар' вернет 1 значение

            • +1
              Shaman Shaman 27 января 2019 04:05 #

              Ладно, допустим, позже гляну еще раз. Хотя точно помню что у меня ранее были проблемы в случае если есть товары "Товар2"  и "Товар25", а мы ищем "Товар2"

              И как быть с артикулом?

Добавить ответ

Чтобы добавить комментарий, зарегистрируйтесь или войдите