PHPackages                             bravegeek/allrival-sdk - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. bravegeek/allrival-sdk

ActiveLibrary

bravegeek/allrival-sdk
======================

An SDK designed for easy usage of the allrival.com website's API

v1.0.0(2y ago)1175↑105%1MITPHPPHP ^8.1

Since Jun 15Pushed 2y ago2 watchersCompare

[ Source](https://github.com/BraveGeek3/allrival-sdk)[ Packagist](https://packagist.org/packages/bravegeek/allrival-sdk)[ Docs](https://github.com/BraveGeek3/allrival-sdk)[ RSS](/packages/bravegeek-allrival-sdk/feed)WikiDiscussions main Synced 1mo ago

READMEChangelog (1)Dependencies (2)Versions (2)Used By (0)

Allrival-SDK
============

[](#allrival-sdk)

An SDK designed for easy usage of the allrival.com website's API

SKD созданное для упрощенного взаимодействия с API сайта allrival.com
[Документация к API](https://allrival.com/docs-api)

Установка
---------

[](#установка)

```
composer require bravegeek/allrival-sdk

```

[Ссылка на Packagist](https://packagist.org/packages/bravegeek/allrival-sdk)

Клиент
------

[](#клиент)

Класс AllrivalSDK\\Client.php является точкой входа для взаимодействия с SDK.
В нем находятся менеджеры, через которых идет взаимодействие с API Allrival.

Менеджеры
---------

[](#менеджеры)

В данном SDK представлены 5 типов менеджеров:

- Product Manager
- Company Manager
- Cluster Manager
- Report Manager
- Price history Manager

1. Product Manager отвечает за добавление и удаление товаров. При передачи url уже сохраненного товара сервер вернет полную информацию о нем.
    Методы:

- addProduct
    Принимает Url товара, который вы хотите сохранить. Возвращает информацию о сохраненном товаре
    Примеры: ```
    // URL товара
    $productUrl = 'https://www.wildberries.ru/catalog/46369147/detail.aspx';

    // Возвращает ProductType / array
    $createdProduct = $this->productManager->addProduct($productUrl);

    ```
- deleteProduct
    Принимает Url товара, который вы хотите удалить. Возвращает булево значение о результате удаления (true/false)
    ```
    // Возвращает true / false
    $result = $this->productManager->deleteProduct($productUrl);

    ```

2. Company Manager отвечает за получение всей информации о компании и её конкурентах на сайте Allrival а также удаление компании вместе с продуктами по её ID
    Методы:

- getYourCompanyInfo
    Возвращает информацию о вашей компании и её конкурентах
    Примеры: ```
    // Возвращает CompanyType / array
    $result = $this->companyManager->getYourCompanyInfo();

    ```
- removeProductsByCompanyId
    Удаляет компанию вместе с продуктами по её ID
    ```
    $id = ...; // Id вашей компании

    // Возвращает true / false
    $result = $this->companyManager->removeProductsByCompanyId($id)

    ```

3. Cluster Manager отвечает за создание/удаление сопоставлений по ID Вашего продукта и ID продукта конкурента.
    Если будут переданы неправильные ID продуктов (оба ID вашей компании, оба ID компании конкурента) менеджер выкинет BadRequestException с информацией о неправильных ID. Методы:

- createMatching
    Принимает параметры ID продукта вашей компании и ID продукта компании конкурента.
    В случае успеха, возвращает о созданном сопоставлении.
    ```
    $yourProductId = ...; // Id продукта вашей компании
    $rivalProductId = ...; // Id продукта компании конкурента

    // Возвращает ClusterType / array
    $createdMatching = $this->clusterManager->createMatching($yourProductId, $rivalProductId);

    ```
- deleteMatching
    Принимает параметры ID продукта вашей компании и ID продукта компании конкурента.
    В случае успеха, возвращает об удаленном сопоставлении.
    ```
    $yourProductId = ...; // Id продукта вашей компании
    $rivalProductId = ...; // Id продукта компании конкурента

    // Возвращает ClusterType / array
    $deletedMatching = $this->clusterManager->deleteMatching($yourProductId, $rivalProductId);

    ```

4) Report Manager - отвечает за выгрузку. Принимает фильтры, которые будут использованы при выборке.
Методы: - getYourProducts
    Принимает произвольное количество фильтров и возвращает выгрузку ваших продуктов на основе фильтров. ```
    // $filters - массив фильтров для выгрузки
    // Возвращает ReportType содержащий массив продуктов и информацию о пагинации
    $result = $this->reportManager->getYourProducts(...$filters);

    ```
- getRivalProducts
    Принимает произвольное количество фильтров и возвращает выгрузку продуктов конкурентов на основе фильтров. ```
    // $filters - массив фильтров для выгрузки
    // Возвращает ReportType содержащий массив продуктов и информацию о пагинации
    $result = $this->reportManager->getRivalProducts(...$filters);

    ```
- getSimilars
    Принимает произвольное количество фильтров и возвращает выгрузку сопоставлений ваших товаров с товарами конкурентов на основе фильтров. ```
    // $filters - массив фильтров для выгрузки
    // Возвращает ReportType содержащий массив ваших товаров и массив совпавших товаров конкурентов и информацию о пагинации
    $result = $this->reportManager->getSimilars(...$filters);

    ```
- setFilters
    Сохраняет переданные фильтры для использования в последующих запросах ```
    // $filters - массив фильтров для выгрузки
    $this->reportManager->setFilters(...$filters);

    ```
- addFilter
    Добавляет переданный фильтр к массиву уже сохраненных фильтров ```
    // $filter - фильтр для выгрузки
    $this->reportManager->setFilters($filter);

    ```
- removeFilter
    Удаляет переданный фильтр из массива уже сохраненных фильтров по его названию ```
    // $filter - фильтр для выгрузки
    // Может быть как строкой так и FilterInterface
    $this->reportManager->removeFilter($filter);

    ```
- replaceFilter
    Заменяет существующий сохраненный фильтр переданным ```
    // $filter - фильтр для выгрузки (FilterInterface)
    $this->reportManager->replaceFilter($filter);

    ```
- resetFilters
    Очищает сохраненные фильтры, добавленные через setFilters() ```
    $this->reportManager->resetFilters();

    ```

Фильтры
-------

[](#фильтры)

Каждый фильтр наследуется от соответствующего типа фильтра. Существует 8 видов фильтров:

1. BooleanFilter - Фильтр для булевых типов фильтров (где есть выбор да/нет)
2. EmptyTypeFilter - Без указания типа фильтра, принимает только явные значения
3. EmptyTypeMultipleValuesFilter - Для фильтров с выбором нескольких значений (тэги, города, категории и т.д.) и без типа фильтра
4. InequalityFilter - Фильтр для сравнения числовых значений
5. MembershipFilter - Фильтр для строковых значений. Позволяет указать принадлежит ли одна строка другой или сравнить их
6. MultipleValuesFilter - Для типов фильтров с выбором нескольких значений (города, категории и компании) с выбором типа фильтра
7. OnlyExplicitValuesFilter - Фильтр без указания типа, принимает только явные значения. Примеры параметров можно посмотреть в личном кабинете allrival.com
8. TimePeriodFilter - Фильтр для работы с датой и временем

Примеры
-------

[](#примеры)

- Получение ваших товаров на основе фильтров ```
    // $apiKey - API ключ из личного кабинета Allrival
    $apiKey = ...;

    // Создаем клиент
    $client = new Client($apiKey);

    // Создаем массив нужных фильтров
    $filters = [
        new PriceFilter(50, PriceFilter::GREATER_THAN),
        new NameFilter('Товар', NameFilter::CONTAINS),
        new SimilarProductPriceFilter(50, SimilarProductPriceFilter::GREATER_THAN),
        new WithBestPriceFilter(WithBestPriceFilter::YES),
        new RivalsCompanyFilter(111),
    ];

    // Добавляем фильтры в клиент для последующих запросов
    $client->setFilters(...$filters);

    /**
     * Получаем выгрузку ваших продуктов с фильтрами
     *
     * @var $report ReportType
     */
    $report = $this->reportManager->getYourProducts();

    // Массив с вашими продуктами
    $products = $report->getItems();

    // Информация о пагинации
    $pagination = $report->getPagination();

    // Количество ваших продуктов на странице
    $itemsCount = $pagination->getItemsCount();

    // Общее количество ваших продуктов
    $itemsTotalCount = $pagination->getItemsTotalCount();

    // Общее количество страниц
    $pagesCount = $pagination->getPagesCount();

    // Делаем что-нибудь с продуктами
    // ...

    ```
- Добавление и удаление товаров ```
    // $apiKey - API ключ из личного кабинета Allrival
    $apiKey = ...;

    // Создаем клиент
    $client = new Client($apiKey);

    // Ссылка на товар
    $createdProductUrl = ...;

    // Получаем добавленный продукт в виде ProductType
    $createdProduct = $this->productManager->addProduct($createdProductUrl);

    // Делаем что-то с добавленным товаром
    ...
    ....
    .....

    // URL удаляемого товара
    $deletedProductUrl = ...;

    // Информация об удалении товара (true/false)
    $isDeleted = $this->productManager->deleteProduct($deletedProductUrl);

    ```
- Получение истории цен ```
    // Id продукта, у которого хотим получить историю цен
    $productId = ...;

    /**
     * @var PriceHistoryType $priceHistory
     */
    $priceHistory = $this->priceHistoryManager->getPriceHistory($productId);

    // Может быть UNIX-time, строкой или DateTime
    $date = ...;

    // Получаем цену в указанный момент времени
    $price = $priceHistory->getByDate($date);

    // Возвращает массив с историей цен
    $priceHistoryArray = $priceHistory->getHistory();

    ```
- Создание и удаление сопоставлений ```
    // Id продукта из вашей компании
    $yourProductIdForCreatedMatch = ...;

    // Id продукта из компании конкурента
    $rivalProductIdForCreatedMatch = ...;

    /**
     * @var ClusterType $createdMatching
     */
    $createdMatching = $this->clusterManager->createMatching($yourProductIdForCreatedMatch, $rivalProductIdForCreatedMatch);

    ...
    ....
    .....

    // Id продукта из вашей компании
    $yourProductIdForDeletedMatch = ...;

    // Id продукта из компании конкурента
    $rivalProductIdForDeletedMatch = ...;

    /**
     * @var ClusterType $deletedMatching
     */
    $deletedMatching = $this->clusterManager->deleteMatching($yourProductIdForDeletedMatch, $rivalProductIdForDeletedMatch);

    ```

Больше примеров использования находятся в папке ./tests

###  Health Score

27

—

LowBetter than 49% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity18

Limited adoption so far

Community9

Small or concentrated contributor base

Maturity52

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Unknown

Total

1

Last Release

1059d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/7350dd6877011ac4443b8fc821b24ac886d57567f7f6f3754427652ef3c453de?d=identicon)[BraveGeek3](/maintainers/BraveGeek3)

---

Top Contributors

[![BraveGeek3](https://avatars.githubusercontent.com/u/75667375?v=4)](https://github.com/BraveGeek3 "BraveGeek3 (7 commits)")

---

Tags

phpsdkparsingweb-scraping allrivalproducts matching

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/bravegeek-allrival-sdk/health.svg)

```
[![Health](https://phpackages.com/badges/bravegeek-allrival-sdk/health.svg)](https://phpackages.com/packages/bravegeek-allrival-sdk)
```

###  Alternatives

[deepseek-php/deepseek-php-client

deepseek PHP client is a robust and community-driven PHP client library for seamless integration with the Deepseek API, offering efficient access to advanced AI and data processing capabilities.

47073.9k5](/packages/deepseek-php-deepseek-php-client)[microsoft/azure-storage-queue

This project provides a set of PHP client libraries that make it easy to access Microsoft Azure Storage Queue APIs.

142.6M16](/packages/microsoft-azure-storage-queue)[cryptonator/merchant-php-sdk

Cryptonator.com Merchant API SDK for PHP

2713.7k](/packages/cryptonator-merchant-php-sdk)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
