Pro vývojáře

Otázky, které nám chodí od integračních týmů. Konkrétní příklady kódu jsou na stránce Integrace podrobněji.

Snippet a identita

Jak vypadá minimální integrace?

Tři volání: načtení loaderu (<script src>), předání identity (stromcom.user(...)) a inicializace vlákna (stromcom.thread(...)). Plný příklad na stránce Integrace podrobněji.

Jak Stromcom autentizuje uživatele?

Identitu předáváte ze svého backendu. V praxi vyrenderujete stromcom.user({ id, name, ... }) až poté, co si ověříte přihlášení vlastní logikou.

Co když uživatel není přihlášený?

Snippet pro něj prostě neinicializujete. Vlákno se nezobrazí. Stromcom je výhradně pro přihlášené zaměstnance.

Vlákna a routing

Můžu nastavit ID vlákna libovolně?

Ano, ID je libovolný string. Typicky to je ID objednávky, faktury nebo zakázky. Doporučujeme prefixovat (order-12345, invoice-789), ať se nepletou vlákna napříč entitami.

Můžu mít víc vláken na jedné stránce?

Ano. stromcom.thread(selector, options) zavoláte pro každý kontejner zvlášť. Použití typicky na dashboardu, kde je v seznamu objednávek u každé řádky vlastní mini-vlákno.

Funguje to v SPA (React, Vue, Angular)?

Ano. Po změně routy zavoláte stromcom.thread() znovu pro nový kontejner. V Reactu typicky v useEffect navázaném na route paramy. Stromcom history API sám neodposlouchává, abychom nezasahovali do vašeho lifecyklu.

Frontend integrace

Bude se Stromcom prát s naším CSS?

Ne. UI je vykreslené v Shadow DOM, takže izolované od stylů vaší stránky. Vlastní vzhled jde přidat skrz konfigurační volby snippetu, případně dodáním vlastní CSS.

Light a dark mode?

Snippet má konfigurační option theme, kterou nastavíte při inicializaci. Pro detaily k podporovaným hodnotám a způsobu přepínání nás kontaktujte.

Můžu odebírat události ze Stromcomu?

Ano. V conf() jde nastavit callback onNotification, který zavoláme, když má uživatel novou notifikaci — můžete tak třeba aktualizovat vlastní zvoneček v hlavičce vaší aplikace.

Jak fungují přílohy?

Soubory se ukládají u záznamu, takže zůstávají vázané na vlákno a jsou dostupné komukoliv, kdo má k záznamu přístup. Nepřenášejí se přes vaši aplikaci.

Performance

Ovlivní snippet rychlost stránky?

Loader se vkládá s async, takže neblokuje render stránky. Plné UI se nahrává až poté, co stránka doběhne.

Jaká je prohlížečová kompatibilita?

Moderní evergreen prohlížeče (Chrome, Edge, Firefox, Safari). Pro IE a starší legacy prohlížeče podpora není.

Vývoj a testování

Jak řešit testovací prostředí?

Vytvoříte si druhý projekt s vlastním client key pro staging a v produkci máte samostatný. Klíče se nepřekrývají, vlákna jsou striktně oddělená per projekt.

Existuje server-side REST API?

Ano. Pro server-to-server scénáře (synchronizace uživatelů, hromadné operace, čtení historie) je k dispozici REST API zabezpečené client secretem. OpenAPI specifikace je na /docs/customer/.

Máte SDK pro PHP nebo jiné jazyky?

Ano, oficiálně máme tři balíky — PHP generátor snippetu, PHP SDK pro Customer API a React komponenty. Detaily jsou v sekci SDK a balíky. REST API je standardní HTTP, takže klient si snadno napíšete i v jiném jazyce.

Co dělat, když něco nefunguje?

Snippet loguje do konzole s prefixem [stromcom], takže problémy s identitou nebo vlákny snadno odchytíte. Pokud to nepomůže, ozvěte se na support@stromcom.cz a podíváme se na to spolu.

SDK a balíky

PHP — generátor snippetu (stromcom/php-snippet)

Knihovna pro generování HTML snippetu na backendu. Vyrobí <script> tag s loaderem, identitou uživatele i inicializací vlákna. Nemusíte řešit escapování ani správné pořadí volání.

Repozitář: github.com/stromcom/php-snippet

Instalace: composer require stromcom/php-snippet

PHP — SDK pro Customer API (stromcom/php-customer-sdk)

Server-to-server SDK nad Customer REST API. Pokrývá projekty, uživatele, vlákna, zprávy a notifikace. Typesafe rozhraní, modelové třídy pro requesty i response, ošetření chybových stavů.

Repozitář: github.com/stromcom/php-customer-sdk

Instalace: composer require stromcom/php-customer-sdk

React — komponenty (@stromcom/react-snippet)

Hotové komponenty a hooky pro React SPA. Řeší lifecycle při změně routy, předávání identity přes provider a typování přes TypeScript. Stačí obalit aplikaci providerem a v detailu záznamu vykreslit komponentu vlákna.

Repozitář: github.com/stromcom/react-snippet

Instalace: npm install @stromcom/react-snippet

Můžeme přispívat nebo hlásit issues?

Všechny tři balíky jsou veřejné na GitHubu. Issues a pull requesty vítáme. Pro citlivější věci pište na support@stromcom.cz.

Pár řádků JavaScriptu

Pokračujte na detailní příklad integrace včetně ukázek kódu.