sima-land / api-php-client Goto Github PK
View Code? Open in Web Editor NEWКлиент для работы с API сайта
Home Page: https://www.sima-land.ru/api/v3/help/
License: MIT License
Клиент для работы с API сайта
Home Page: https://www.sima-land.ru/api/v3/help/
License: MIT License
сабж
Вот эту статистику #10 отправлять по REST Разработчику в целях контроля качества.
Раскоментировал код для получения набора данных сущности - скрипт не запускается.
Fatal error: Call to a member function getStatusCode() on array in parser_example.php
[{"balance":"0","id":1623644,"price":155.4,"sid":1994203}
,{"balance":"0","id":1623667,"price":550.8,"sid":1995517}
,{"balance":"0","id":1623624,"price":418.48,"sid":1994634}
,{"balance":"0","id":1623623,"price":313.14,"sid":1993349}
,{"balance":"0","id":1623668,"price":212.16,"sid":1993356}
,{"balance":"0","id":1623614,"price":244.94,"sid":1993758}
,{"balance":"0","id":1623625,"price":244.94,"sid":1993760}
,{"balance":"0","id":1623701,"price":244.94,"sid":1993774}
,{"balance":"0","id":1623652,"price":212.16,"sid":1993353}
,{"balance":"0","id":1623693,"price":184.26,"sid":1994212}
,{"balance":"0","id":1623680,"price":155.4,"sid":1994210}
,{"balance":"0","id":1623676,"price":244.94,"sid":1993769}
,{"balance":"0","id":1623685,"price":184.26,"sid":1994211}
,{"balance":"0","id":1623633,"price":391.68,"sid":1995511}
,{"balance":"0","id":1623636,"price":418.48,"sid":1994636}
,{"balance":"0","id":1623612,"price":418.48,"sid":1994632}
,{"balance":"0","id":1623695,"price":550.8,"sid":1995523}
,{"balance":"0","id":1623709,"price":212.16,"sid":1993365}
,{"balance":"0","id":1623688,"price":2.5761914952e+09,"sid":1993360}
,{"balance":"0","id":1623656,"price":244.94,"sid":1993765}
,{"balance":"0","id":1623655,"price":155.4,"sid":1994205}
,{"balance":"0","id":1623702,"price":143.19,"sid":1994648}
,{"balance":"0","id":1623705,"price":550.8,"sid":1995525}
,{"balance":"0","id":1623654,"price":134.31,"sid":1995073}
,{"balance":"0","id":1623673,"price":212.16,"sid":1993357}
,{"balance":"0","id":1623615,"price":391.68,"sid":1995508}
,{"balance":"0","id":1623648,"price":134.31,"sid":1995072}
,{"balance":"0","id":1623611,"price":313.14,"sid":1993347}
,{"balance":"0","id":1623700,"price":550.8,"sid":1995524}
,{"balance":"0","id":1623639,"price":155.4,"sid":1994202}
,{"balance":"0","id":1623675,"price":418.48,"sid":1994643}
,{"balance":"0","id":1623640,"price":391.68,"sid":1995512}
,{"balance":"0","id":1623698,"price":184.26,"sid":1994213}
,{"balance":"0","id":1623691,"price":550.8,"sid":1995522}
,{"balance":"0","id":1623642,"price":134.31,"sid":1995071}
,{"balance":"0","id":1623637,"price":313.14,"sid":1993351}
,{"balance":"0","id":1623610,"price":155.4,"sid":1994197}
,{"balance":"0","id":1623690,"price":2.5761914952e+09,"sid":1993361}
,{"balance":"0","id":1623650,"price":391.68,"sid":1995514}
,{"balance":"0","id":1623620,"price":391.68,"sid":1995509}
,{"balance":"0","id":1623626,"price":134.31,"sid":1995068}
,{"balance":"0","id":1623618,"price":134.31,"sid":1995067}
,{"balance":"0","id":1623708,"price":251.84,"sid":1993775}
,{"balance":"0","id":1623671,"price":550.8,"sid":1995518}
,{"balance":"0","id":1623684,"price":468.43,"sid":1994645}
,{"balance":"0","id":1623661,"price":244.94,"sid":1993766}
,{"balance":"0","id":1623689,"price":143.19,"sid":1994646}
,{"balance":"0","id":1623687,"price":244.94,"sid":1993771}
,{"balance":"0","id":1623628,"price":155.4,"sid":1994200}
,{"balance":"0","id":1623678,"price":212.16,"sid":1993358}
,{"balance":"0","id":1623631,"price":418.48,"sid":1994635}
,{"balance":"0","id":1623696,"price":143.19,"sid":1994647}
,{"balance":"0","id":1623641,"price":418.48,"sid":1994637}
,{"balance":"0","id":1623632,"price":134.31,"sid":1995069}
,{"balance":"0","id":1623706,"price":143.19,"sid":1994649}
,{"balance":"0","id":1623666,"price":244.94,"sid":1993767}
,{"balance":"0","id":1623657,"price":391.68,"sid":1995515}
,{"balance":"0","id":1623682,"price":550.8,"sid":1995520}
,{"balance":"0","id":1623660,"price":155.4,"sid":1994206}
,{"balance":"0","id":1623703,"price":184.26,"sid":1994214}
,{"balance":"0","id":1623704,"price":212.16,"sid":1993364}
,{"balance":"0","id":1623647,"price":418.48,"sid":1994638}
,{"balance":"0","id":1623645,"price":313.14,"sid":1993352}
,{"balance":"0","id":1623659,"price":418.48,"sid":1994640}
,{"balance":"0","id":1623686,"price":550.8,"sid":1995521}
,{"balance":"0","id":1623649,"price":155.4,"sid":1994204}
,{"balance":"0","id":1623643,"price":391.68,"sid":1995513}
,{"balance":"0","id":1623664,"price":155.4,"sid":1994207}
,{"balance":"0","id":1623622,"price":155.4,"sid":1994199}
,{"balance":"0","id":1623669,"price":155.4,"sid":1994208}
,{"balance":"0","id":1623635,"price":244.94,"sid":1993762}
,{"balance":"0","id":1623672,"price":244.94,"sid":1993768}
,{"balance":"0","id":1623651,"price":244.94,"sid":1993764}
,{"balance":"0","id":1623629,"price":313.14,"sid":1993350}
,{"balance":"0","id":1623677,"price":550.8,"sid":1995519}
,{"balance":"0","id":1623630,"price":244.94,"sid":1993761}
,{"balance":"0","id":1623616,"price":155.4,"sid":1994198}
,{"balance":"0","id":1623707,"price":184.26,"sid":1994215}
,{"balance":"0","id":1623617,"price":418.48,"sid":1994633}
,{"balance":"0","id":1623665,"price":418.48,"sid":1994641}
,{"balance":"0","id":1623619,"price":313.14,"sid":1993348}
,{"balance":"0","id":1623694,"price":212.16,"sid":1993362}
,{"balance":"0","id":1623692,"price":244.94,"sid":1993772}
,{"balance":"0","id":1623627,"price":391.68,"sid":1995510}
,{"balance":"0","id":1623679,"price":468.43,"sid":1994644}
,{"balance":"0","id":1623674,"price":155.4,"sid":1994209}
,{"balance":"0","id":1623621,"price":244.94,"sid":1993759}
,{"balance":"0","id":1623662,"price":212.16,"sid":1993355}
,{"balance":"0","id":1623653,"price":418.48,"sid":1994639}
,{"balance":"0","id":1623670,"price":418.48,"sid":1994642}
,{"balance":"0","id":1623699,"price":212.16,"sid":1993363}
,{"balance":"0","id":1623646,"price":244.94,"sid":1993763}
,{"balance":"0","id":1623681,"price":244.94,"sid":1993770}
,{"balance":"0","id":1623634,"price":155.4,"sid":1994201}
,{"balance":"0","id":1623683,"price":2.5761914952e+09,"sid":1993359}
,{"balance":"0","id":1623638,"price":134.31,"sid":1995070}
,{"balance":"0","id":1623697,"price":244.94,"sid":1993773}
,{"balance":"0","id":1623613,"price":134.31,"sid":1995066}
,{"balance":"0","id":1623658,"price":212.16,"sid":1993354}
,{"balance":"0","id":1623663,"price":391.68,"sid":1995516}
]
Получаем по API любой товар, например вот этот
https://www.sima-land.ru/api/v3/item/?sid=1521100&has_balance=0
Поле barcode (где по идее должен быть штрих-код товара) всегда пусто.
В результате, нам сейчас приходится после каждого заказа просить нашего менеджера присылать нам штрих-коды, и вручную их вводить.
Есть ли способ получать штрих-коды товара по API?
Есть ли возможность привязать api клиент к wordpress?
общее:
по каждой сущности:
выводить в коносль
У вашего магазина очень много товаров. Обрабатывать полный список "на лету" нет возможности. Подскажите как можно получить список лишь изменившихся и добавленных товаров и категорий?
Здравствуйте! Выполнил установку клиента через команду composer require "sima-land/api-php-client", установка прошла успешна, но далее в консоли не работают команды, к примеру:
curl -i -H "Accept:application/json" "https://www.sima-land.ru/api/v3/item/"
Ошибка:
Invoke-WebRequest : Missing an argument for parameter 'InFile'. Specify a parameter of type 'System.String' and try again
At line:1 char:6
~~
В чем проблема и как решить её?
P.s. OS Windows Server 2012 R2, WampServer
Предположим, есть товар с артикулом sima land 1521100. Этот товар сейчас не в наличии на sima-land.ru.
Требуется как-то получить по api данные этого товара. Пробовал без результата
https://www.sima-land.ru/api/v3/item/?sid=1521100
а также
https://www.sima-land.ru/api/v3/item/?sid=1521100&is_disabled=1&is_deleted=1
Возможно ли в принципе получить через api данные товара не в наличии по sima артикулу?
Если да, то как это сделать?
При новой пагинации атрибутов
Как можно выполнить установку без применения composer?
Не увидел в документации возможности поиска товара по SID, как можно было делать в API v.3:
GET https://www.sima-land.ru/api/v3/item?sid=1125295
Впрочем, не увидел возможности вообще как-либо фильтровать результаты. Планируется ли в API v.5 такое реализовывать?
При загрузке полного дерева категорий, вы отдаете только parent_id, и поэтому дерево приходится строить самостоятельно. При вашем гигантском количестве категорий, серверы клиентов загибаются от нагрузки во время пересчета.
Просьба отдать все необходимые ключи для nested set (left, right, deep, parent).
Здравствуйте!
Подскажите как отфильтровать товары по минимальной партии?
Например, такой фильтр
https://www.sima-land.ru/igrushki/igrushki-dlya-malchikov/roboty-transformery/?per-page=100&f={%22agg_min_qty%22:[%221_91%22,%222_82%22]}
Здравствуйте, а при парсинге у товаров картинки малого размера, есть ли возможность получать их большего размера? Хотя бы оригинального с карточки товара.
Ни через curl, ни через библиотеку никак не могу получить Etag в хедерах.
GET https://www.sima-land.ru/api/v3/item/
Хедеры ответа
Content-Encoding: gzip
Content-Type: application/json; charset=UTF-8
Date: Tue, 01 Nov 2016 05:51:10 GMT
Link: <https://www.sima-land.ru/api/v3/item/?page=1>; rel=self, <https://www.sima-land.ru/api/v3/item/?page=2>; rel=next, <https://www.sima-land.ru/api/v3/item/?page=25484>; rel=last
Server: nginx
Set-Cookie: userSettings=098f88b4af38509ca4193fce26dc09c613d23ee8422d3b7cfa3e5eb678cc7e5ba%3A2%3A%7Bi%3A0%3Bs%3A12%3A%22userSettings%22%3Bi%3A1%3Bs%3A42%3A%22%7B%22sort%22%3A%22%22%2C%22per_page%22%3A20%2C%22currency%22%3A%22RUB%22%7D%22%3B%7D; path=/; HttpOnly
Transfer-Encoding: chunked
X-Pagination-Current-Page: 1
X-Pagination-Page-Count: 25484
X-Pagination-Per-Page: 50
X-Pagination-Total-Count: 1274191
access-control-allow-credentials: true
Пытаюсь разобраться, но с чего начать? Что конкретно нужно установить, как запустить и куда писать код?
Можно как то узнать о параметрах запроса, идентичных тем, что выводятся на сайте?
Например, в категории
https://www.sima-land.ru/igrushki/igrushki-dlya-malchikov/roboty-transformery/transformery/
на сайте отображается 370 товаров
А если же делать запрос парсером по categoty_id = 1763
в файле создаётся 1496 строк сущностей Товар
Приветствую. Методом научного тыка установил, что https://www.sima-land.ru/api/v5/item?p=n&view=brief. Принимает 249 запросов в секунду, потом выбивает в 403. Сколько нужно ждать пока не ясно (чаще всего 5 секунд достаточно, но иногда приходится ждать больше). В документации по v5 нет ни строчки об этом.
Подскажите какие лимиты у v5 и добавьте это в хелп
Как с помощью клиента получить expand поля description, categories и пр?
Здравствуйте! Использую такой код для парсинга, но он выгружает не все товары, которые в наличии, а только около 257 тысяч вместо 484 тысяч
$categoryStorage = new \SimaLand\API\Parser\Csv(['filename'=>$path_category]);
$categoryList = new \SimaLand\API\Entities\CategoryList($client,['getParams'=>['with_adult'=>1]]);
$parser->addEntity($categoryList, $categoryStorage);
$itemStorage = new \SimaLand\API\Parser\Csv(['filename'=>$path_item]);
$itemList = new \SimaLand\API\Entities\ItemList($client,['getParams'=>['with_adult'=>1, 'has_balance'=>1, 'has_photo'=>1, 'is_gift'=>0]]);
$parser->addEntity($itemList,$itemStorage);
$parser->reset();
$parser->run();
Здравствуйте.
Сейчас интеграция реализована на api v2, получили письмо насчет его закрытия.
Что лучше, перейти на v3 или сразу на v5?
И вопрос по v5:
Насколько я понял, там нет возможности получать рубрики первого уровня, подрубрики рубрик, а только весь список.
Предполагается, что сначала выгружается весь список рубрик и товаров, а потом локально формируется дерево каталога (по path)?
И как предполагается определять последний Номер страницы (p) - увеличивать до тех пор пока не вернется ошибка?
Предположим, что я получил ссылки на фото товара из
https://www.sima-land.ru/api/v3/item/?sid=1816492
<photos>
<item>
<url_part>
https://cdn2.static1-sima-land.com/items/1569976/0/
</url_part>
<version>0</version>
</item>
<item>
<url_part>
https://cdn2.static1-sima-land.com/items/1569976/1/
</url_part>
<version>0</version>
</item>
</photos>
Каким образом теперь получить фото из ссылок наподобие
https://cdn2.static1-sima-land.com/items/1569976/0/
?
Эти фото не открываются просто по ссылке, пишут 403 forbidden.
Попробовал получить через curl с авторизацией через логин и пароль на sima-land - без результата.
$saveto = DIR_IMAGE . 'f23134.jpg';
$ch = curl_init ($url);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_BINARYTRANSFER,1);
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
curl_setopt($ch, CURLOPT_USERPWD, 'mylogin*:mypass*');
$raw=curl_exec($ch);
curl_close ($ch);
if(file_exists($saveto)){
unlink($saveto);
}
$fp = fopen($saveto,'x');
fwrite($fp, $raw);
fclose($fp);
Каким образом автоматически получить актуальные фото товара (который может быть не в наличии на sima-land) без водяных знаков sima-land?
composer require "sima-land/api-php-client": "~3"
[InvalidArgumentException]
Could not find package ~3 at any version for your minimum-stability (stable). Check the package spelling or your minimum- stability
Прошу мне помочь, т.к. я не совсем программист, но освоить могу хоть что.
Подскажите с чего нужно начать, чтобы настроить работу интерфейса API на моем сайте?
Сейчас вообще не понятно как сделать выгрузку всех товаров из определенной категории.
В api v3 это можно, но там нет параметра, чтобы не загружать потомков. Для нормальной работы нужны оба варианта загрузки.
Здравствуйте! А можно ли через парсер получать только товары, которые в наличии?
Остальную документацию (Авторизация, Запрос к API, Асинхронные запросы к API, Парсер) перенести в директорию ./doc.
Будет намного понятнее как все просто и круто, а если кто хочет подробностей посмотрит подробную документацию.
пример:
id=>1404354
sid=>1382535
uid=>d49acaa4-f55f-11e5-80c0-00155d65b108
name=>"Ежедневникъ" 280 стр (красный) 14,5 х 21 см
...
photos=>{"id":356,"name":"Индия","full_name":"Республика Индия","alpha2":"IN"}
country=>
offer=>0
discountPercent=>https://st-sima.r.worldssl.net/items/1404354/0/140.jpg
img=>
hasGift=>
hasGiftAssignee=>1
isNovelty=>/1382535/ezhednevnik-280-str-krasnyy-14-5-h-21-cm/
itemUrl=>
текущий пример переименовать в Быстрый старт, добавить еще один - full-featured (со всеми фишками, основными сущностями, готово к использованию, как по-русски не знаю)
Добрый день, а можно реализовать парсинг товаров только по конкретным полям, условно: артикуль, цена и количество?
В документации к методу https://www.sima-land.ru/api/v3/help/#Товар указано, что атрибут has_balance
по умолчанию не предустановлен никаким значением, хотя по факту он установлен в значение 1, т.к. без его указания удаленные товары не показываются.
Здравствуйте!
Пару дней назад изменилось поведение API v3, а именно поведение параметра has_balance.
Согласно документации:
has_balance - Показывать только товары, которые есть на складе
При значении 1 (которая установлено по умолчанию), возвращались только те товары, которые есть на складе. При значении 0 - возвращались товары без учета наличия.
В данный момент работает так:
has_balance == 0 - ищет товары, которых нет на складе
has_balance == 1 - ищет товары, которые есть на складе
Таким образом, пропала возможность находить товар по SID без учета наличия, приходится делать два запроса.
Например, по запросу товар, который есть на складе, сейчас не возвращается -> https://www.sima-land.ru/api/v3/item/?sid=1552044&has_balance=0.
По возможности - поправьте, пожалуйста. Не удобно делать два запроса.
Спасибо!
В сущностях, где требуется отправка GET запроса все работает, но для сущности delivery-price необходимо отправлять POST запрос, пробую так
$client = new \SimaLand\API\Rest\Client([
'login' => 'XXX',
'password' => 'XXX',
'pathToken' => 'xxx/xxx',
'baseUrl' => 'https://www.sima-land.ru/api/v3',
]);
$request = new \SimaLand\API\Rest\Request([
'method' => 'POST',
'entity' => 'delivery-price',
'postParams' => [
'settlement_id' => 'XXX',
'items' => json_encode([])
]
]);
$responses = $client->batchQuery([$request]);
Приходит ответ, что параметры settlement_id и items не переданы. И еще вопрос, если в batchQuery передать очень много запросов, они будут отправлены с учетом лимита в 30 запросов в секунду?
Здравствуйте, как сайт подключить к каталогам через API ? Спасибо,
Есть проблемы при парсинге, некоторые значения товаров, к примеру ид категории, смещаются в другие столбцы, в результате все значения просто смещаются и не соответствуют столбцам
по рекомендации в установке
composer require "sima-land/api-php-client:~3"
но данная версия не работает с PHP 7.2
Compile Error: Cannot use SimaLand\API\Object as Object because 'Object' is a special class name
Видел что мастер ветке уже исправлена, данная проблема. возможно необходимо поставить ограничения в composer.json на установку при версии php выше 7
мне нужно получить список свойств товара
делаю запрос по item_id
https://www.sima-land.ru/api/v3/attr-item/?item_id=1255080
получаю первую партию ВСЕГО! списка, со значениями к item_id=1255080 никак не относящимися!
даже по id не пашет
https://www.sima-land.ru/api/v3/attr-item/?id=36450,36451
Здравствуйте! В faq не ясно, как получать фотографии нужного размера через парсер, поэтому возникает вопрос, какой параметр (getParams) нужно передавать для получения необходимого размера фотографии без водяного знака?
В документации к сущности Товары одним из полей для получения списка является параметр q - поисковый запрос. Как им пользоваться? Что он вообще делает?
При изучении документации по адресу https://www.sima-land.ru/api/v3/help/, узнал, что нужно ставить готовую библиотеку при помощи composer библиотеку для работы с API командой
composer require "sima-land/api-php-client": "~3"
Не получается установить библиотеку данной командой, выдает ошибку:
[InvalidArgumentException]
Could not find a matching version of package ~3. Check the package spelling
, your version constraint and that the package is available in a stability
which matches your minimum-stability (stable).
в папке /tests/ реализованы тестовые скрипты
как из запускать ?
никакой документации не нашел :(
например, при запуске ItemListTest.php пишет
Fatal error: Class 'SimaLand\API\Tests\BaseCase' not found in /..../tests/ItemListTest.php on line 10
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.