PHPackages                             ages/sklik-gateway - 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. ages/sklik-gateway

ActiveLibrary

ages/sklik-gateway
==================

PHP client for the Seznam RS-API (Fénix) – Sklik statistics and Seznam Nákupy

03↑2900%

Since Jul 22Compare

[ Source](https://github.com/A-g-e-s/sklik-gateway)[ Packagist](https://packagist.org/packages/ages/sklik-gateway)[ RSS](/packages/ages-sklik-gateway/feed)WikiDiscussions Synced today

READMEChangelogDependenciesVersions (1)Used By (0)

ages/sklik-gateway
==================

[](#agessklik-gateway)

PHP klient pro **Seznam RS-API (Fénix)** — `https://api.sklik.cz/v1`. Zaměřený na **Seznam Nákupy** a **statistické reporty** (útrata, prokliky, konverze, PNO…).

- REST/JSON, autentizace přes refresh token → access token (platnost ~1 h, klient ho cachuje a reusuje)
- Ošetřený rate limit (5 req/s → 429 s `Retry-After`, automatické opakování)
- PHP 8.4+, Guzzle, framework-agnostic (volitelná PSR-16 cache pro sdílení tokenu mezi requesty)

Instalace
---------

[](#instalace)

```
composer require ages/sklik-gateway
```

Získání refresh tokenu
----------------------

[](#získání-refresh-tokenu)

1. Přihlas se na [sklik.cz](https://www.sklik.cz/).
2. V sekci **Nástroje → API** vytvoř nový token a zvol scope (`r` pro čtení statistik).
3. Refresh token vlož do konfigurace (viz níže). Jeho platnost si volíš při vytvoření.

> Access token má platnost 1 hodinu. Klient ho získá jednou a reusuje — endpoint `/user/token` je rate-limited, nevolej ho před každým requestem.

Použití
-------

[](#použití)

```
use Ages\SklikGateway\Config\SklikConfig;
use Ages\SklikGateway\SklikGateway;
use Ages\SklikGateway\Nakupy\Request\ReportParams;
use Ages\SklikGateway\Enum\ReportFileFormat;
use Ages\SklikGateway\Enum\ReportStatisticsGranularity;

$config  = new SklikConfig(refreshToken: 'váš-refresh-token');
$gateway = new SklikGateway($config /*, $psr16cache */);

// 1) vytvoření agregovaného reportu (asynchronně vrátí id)
$params = new ReportParams(
    from: new DateTimeImmutable('-30 days'),
    to:   new DateTimeImmutable('now'),
    format: [ReportFileFormat::Json],
    granularity: ReportStatisticsGranularity::Daily,
);
$created = $gateway->nakupy()->createAggregatedReport($params);

// 2) stažení obsahu reportu, až je vygenerovaný
$report = $gateway->reports()->getReport($created->id);
echo $report->sums?->totalMoney;   // celková útrata
foreach ($report->stats as $row) { /* ... */ }
```

### Seznam Nákupy — shop items

[](#seznam-nákupy--shop-items)

```
use Ages\SklikGateway\Nakupy\Request\ShopItemsQuery;
use Ages\SklikGateway\Nakupy\Request\ItemChange;

$list = $gateway->nakupy()->listShopItems(new ShopItemsQuery(limit: 100));
foreach ($list->items as $item) {
    echo $item->matchingId, ' ', $item->price, PHP_EOL;
}

// úprava max. 50 položek najednou (ITEM_ID z feedu)
$gateway->nakupy()->updateShopItems([
    new ItemChange(id: 'SKU-123', searchMaxCpc: 2.50, productMaxCpc: 3.00),
]);
```

### Detail produktu

[](#detail-produktu)

```
// jeden produkt
$product = $gateway->nakupy()->getProduct($productId);
echo $product?->productName, ' ', $product?->minPrice, '–', $product?->maxPrice;

// dávka (max 10 productId najednou)
$products = $gateway->nakupy()->getProducts([232, 233, 234]);

// obchody, které produkt nabízejí (název + hodnocení), klíčované premiseId
$shops = $gateway->nakupy()->getProductShops($product);
foreach ($shops as $premiseId => $shop) {
    echo $shop->name, ' ', $shop->rating, '%', PHP_EOL;
}
```

> **premiseId** je výchozí z konfigurace (`SklikConfig::$premiseId`); u každé metody ho lze přebít posledním argumentem (např. `getProduct($productId, $jinyPremiseId)`). Najdeš ho v rozhraní Sklik.cz – API pro jeho výpis neexistuje. **productId** je ID produktu v katalogu Zboží.cz/Seznam – z URL produktu, z `manufacturers/search`nebo z napárovaných shop-items.

### Další čtecí endpointy

[](#další-čtecí-endpointy)

```
$gateway->nakupy()->listFeeds();
$gateway->nakupy()->listCampaigns();
$gateway->nakupy()->listShops([$shopId1, $shopId2]);   // až 100 shop ID
$gateway->reports()->listReports(limit: 20);
```

Integrace do Nette projektu (neon)
----------------------------------

[](#integrace-do-nette-projektu-neon)

```
services:
    sklikConfig: Ages\SklikGateway\Config\SklikConfig(
        refreshToken: 'váš-refresh-token'
        premiseId: 123456           # výchozí provozovna pro /nakupy/* volání
        # userId: 123456            # volitelně – přístup k propojenému účtu
    )
    - Ages\SklikGateway\SklikGateway(@sklikConfig)
```

> Volitelný druhý argument je **PSR-16** cache (`Psr\SimpleCache\CacheInterface`). Když ji předáš, access token se sdílí mezi HTTP requesty; jinak se získává nový token per instance klienta. Nette `IStorage` není PSR-16 — pro sdílení tokenu zaregistruj adaptér (např. `symfony/cache` `Psr16Cache`) a předej ho sem.

Rozšíření
---------

[](#rozšíření)

Neobalené endpointy (např. `/sklik/reports/` list, diagnostika, recenze) jsou dostupné přes nízkoúrovňový klient:

```
$data = $gateway->client()->get('nakupy/diagnostics/item', ['premiseId' => $premiseId, 'itemId' => 'SKU-123']);
```

Chyby
-----

[](#chyby)

- `Ages\SklikGateway\Exception\SklikApiException` — nesprávný HTTP status (`->statusCode`, `->responseBody`)
- `Ages\SklikGateway\Exception\SklikException` — síťová / parsovací chyba (základní typ)

###  Health Score

10

—

LowBetter than 0% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity4

Limited adoption so far

Community2

Small or concentrated contributor base

Maturity11

Early-stage or recently created project

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.

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/20422823?v=4)[Jiří Hovad](/maintainers/A-g-e-s)[@A-g-e-s](https://github.com/A-g-e-s)

### Embed Badge

![Health badge](/badges/ages-sklik-gateway/health.svg)

```
[![Health](https://phpackages.com/badges/ages-sklik-gateway/health.svg)](https://phpackages.com/packages/ages-sklik-gateway)
```

PHPackages © 2026

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