承接 bravegeek/allrival-sdk 相关项目开发

从需求分析到上线部署,全程专人跟进,保证项目质量与交付效率

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

bravegeek/allrival-sdk

最新稳定版本:v1.0.0

Composer 安装命令:

composer require bravegeek/allrival-sdk

包简介

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

README 文档

README

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

SKD созданное для упрощенного взаимодействия с API сайта allrival.com
Документация к API

Установка

composer require bravegeek/allrival-sdk

Ссылка на Packagist

Клиент

Класс 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);
    
  1. Company Manager отвечает за получение всей информации о компании и её конкурентах на сайте Allrival а также удаление компании вместе с продуктами по её ID
    Методы:
  • getYourCompanyInfo
    Возвращает информацию о вашей компании и её конкурентах
    Примеры:
    // Возвращает CompanyType / array
    $result = $this->companyManager->getYourCompanyInfo();
    
  • removeProductsByCompanyId
    Удаляет компанию вместе с продуктами по её ID
    $id = ...; // Id вашей компании
    
    // Возвращает true / false
    $result = $this->companyManager->removeProductsByCompanyId($id)
    
  1. 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

统计信息

  • 总下载量: 9
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 1
  • 点击次数: 0
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 1
  • Watchers: 2
  • Forks: 1
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2023-06-22