Wprowadzenie

Jest to narzędzie do pobierania danych lub integracji systemów. Działa na zasadzie zrzucania danych. Zrzuty danych mają szereg zastosowań, zarówno w aspektach integracji systemów, budowy aplikacji, sporządzania raportów i analiz oraz wykonywania importów i eksportów.    

Najczęstsze zastosowania: 

  • automatyczne pobieranie i aktualizowanie baz produktowych, w tym możliwość budowania kart produktów w locie. 

  • automatyczne aktualizowanie stanów magazynowych i tym samym skrócenie terminów realizacji zamówień dla produktów na magazynie  

  • automatyczne aktualizowanie ceny na podstawie zmian w warunkach handlowych 

  • automatyzowanie zamówień / zakupów, produktów wprost ze swojego oprogramowania, 

  • automatyczne tworzenie zamówień na produkty, po założeniu zamówienia przez Klienta 

  • generowanie cenników lub ofert dla Klienta 

  • aktualizacje poprzez import danych  
     

Zachęcamy do kreowania własnych indywidualnych rozwiązań i aplikacji.  

Zasada działania

Dane są zrzucane co 15 minut do plików o różnym formacie i przeznaczeniu.  
 
W zależności od potrzeb i technik integracji, przygotowane zostały najbardziej uniwersalne formaty i zakresy danych. Niektóre zrzuty dostępne są dla wszystkich (dane produktowe, stany magazynowe), a niektóre wymagają autoryzacji (ceny).  
 
Pliki z danymi, można pobrać na dysk, a można też traktować jako źródło danych (Endpoint) dla aplikacji i systemów.  
 
Adres jest niezmienny i dane są ogólnodostępne dla wszystkich: 

  1. Dla połączeń szyfrowanych pod adresem https://data.terma24.pl 
  2. Dla połączeń nieszyfrowanych pod adresem http://data.terma24.pl 

Nie polecamy korzystania z połączeń nie szyfrowanych w przypadku danych, które wymagają autoryzacji.  
Do korzystania z połączenia szyfrowanego wymagane jest posiadanie i poprawne skonfigurowanie certyfikatów SSL na serwerach, z których odbywać się będzie połączenie. 
 

Jako uzupełnienie danych posiadamy narzędzia: 

  1. bazę renderów produktów w każdym rozmiarze https://www.terma24.pl/CDN 
  2. wizualizacje produktów 3D https://www.terma24.pl/wizualizacje-3d-api 
  3. zbudowane karty produktów z metrykami https://www.terma24.pl/karty-wbudowane 

Zakresy danych

Zrzucane dane produktów, pochodzą ze standardowej (katalogowej) oferty Termy, z gamy produktów grzewczych. W tym znajdują się grzejniki, grzałki i akcesoria. Jest magazyn transakcyjny, w którym liczba indeksów przekracza 100000.

 

Zrzuty wykonane są w dwóch wariantach, z podziałem na grupy produktowe z dedykowanymi parametrami produktów oraz kompleksowo w pliku zbiorczym w pełnym zakresie danych.  

Struktura plików

Pliki mają stałą strukturę, można je pobrać ze strony https://data.terma24.pl.  Pliki można także wykorzystać jako endpointy danych, do połączenia własnych aplikacji i systemów. 

Nie dotyczy adresów indywidualnych. Więcej w sekcji “Dane indywidualne”

 

pliki_danych 

 

dane produktów, pozycji skonfigurowanych.  

 

dane produktów katalogowych, parametrów. Wymaga stworzenia i przypisania konfiguracji. 

 
 

 

dane produktów, pozycji skonfigurowanych z połączonymi danymi metryk 

 
 

 

aktualne stany magazynowe produktów katalogowych 

products_prices 

cennik produktów katalogowych  

grupy 

accessories_drivers 

Sterowniki temperatury 

adapters 

Adaptery, nyple 

hanglers 

Relingi i wieszaki 

heaters_drive 

Głowice termostatyczne 

heating_elements 

Grzałki 

mask 

Maskownice 

radiators 

Grzejniki 

shelfs 

Półki 

valves_set 

Zestawy zaworów 

valves 

Zawory 

Zbiorcze:  
data.terma24.pl/{format_pliku}/{plik_danych}.{format_pliku} Zawiera wszystkie produkty w jednym pliku  
lub  
Grupy produktów: 
data.terma24.pl/{format_pliku}/{grupa}/{plik_danych}.{format_pliku} Zawiera tylko produkty z danej grupy  

formaty_plikow: 

CSV 

rozdzielony średnikiem, kodowanie UTF-8 (z sygnaturą BOM), zawiera nagłówki 

 
 

XML 

kodowanie UTF-8 (z sygnaturą BOM) 

 
 

JSON 

kodowanie UTF-8 (z sygnaturą BOM) 

SQLite 

zawiera tabele: 
- strukturę i dane zgodne z zakresem: 
products_configured 
products_full 
products_stock 
products_prices  

 

Struktura danych

Terma w ofercie posiada miliony konfiguracji grzejników, zatem należy zwrócić szczególną uwagę na sposób budowania oferty oraz przeznaczenie danych: 
 
Jeśli potrzebujesz zbudować pełną ofertę produktową Termy, optymalny sposób to przygotowanie katalogu produktów oraz kart produktowej i powiązanie wariantów (konfiguracji) do produktu.  

Listy zbudujesz wówczas z danych products_metrics w zakresie dostępnych modeli produktów, ale nieskonfigurowanych, co oznacza, że dodatkowo potrzebujesz powiązać warianty produktów, ceny oraz stany magazynowe.  


Rys. Optymalny sposób zbudowania pełnej oferty Termy 
 
Jeśli potrzebujesz ofertę oparta o stany magazynowe i aktualizować na bieżąco ich stan, musisz skorzystać z danych products_configured lub products_full w zakresie produktów już skonfigurowanych, wówczas nie potrzebujesz wykonywać dodatkowych relacji, ale zakres danych ogranicza się do pozycji transakcyjnych (które są lub były w magazynie TERMY) obecnie ponad 100.000 pozycji.  
 
 
Rys. Zbudowanie list magazynowych 
 

Przykładowe zastosowania

W zależności od przyjętej struktury, bazę danych można zasilić na różne sposoby: 
 

  • Przygotowanie listy produktów (products_configured) z powiązaniem z tabelą danych produktowych  (products_metrics). W taki sposób nie przechowujemy nadmiaru danych a aktualizacja parametrów od razu wpływa na wszystkie wystąpienia. 
    W tym schemacie otrzymujemy listę produktów o ściśle określonych parametrach. Jeden indeks to jedna pozycja na liście. 
    Baza wówczas zawiera link do źródła renderów odpowiadającemu danej konfiguracji produktu  
     

  • Przygotowanie listy produktów bez relacji do parametrów (products_full), kiedy w strukturze bazy danych nie ma dedykowanego miejsca na parametry produktowe, można całość lub wybrane parametry przerzucić do jednej tabeli.  
    W tym schemacie otrzymujemy klasyczną listę produktów o ściśle określonych parametrach. Jeden indeks to jedna pozycja na liście.  
    Baza wówczas zawiera link do źródła renderów odpowiadającemu danej konfiguracji produktu  
     

  • Zbudowanie pełnej oferty produktowej na podstawie (products_metrics). 
    Ponieważ Terma posiada produkty, których łączna liczba kombinacji sięga kilku milionów wylistowanie ich wszystkich w tabeli, będzie powodować wiele problemów zarówno systemowych jak i użytkowych. Rozwiązuje je ograniczenie do wybrania pozycji, na którą składa się model grzejnika w wybranym rozmiarze oraz niezależnie doprecyzowanie jego konfiguracji. Wówczas kod produktu SKU należy systemowo złożyć w locie.  
     

  • Aktualizacja stanów magazynowych (products_stock). Jest to pomocny zrzut, aby nie obciążać systemów weryfikacją pełnej tabeli danych lub niepotrzebną aktualizacją całości. Proponujemy wykonać synchronizację niezależnie od reszty danych. 

Lista zrzucanych danych

Metryka produktów (_metrics) 

qty 

Aktualny stan magazynowy TERMA CZAPLE 

sku 

Uniklany kod producenta, na który składa się kod pozycji oraz kod wariantu produktu. 

Więcej znajdziesz w naszym poradniku. 

id 

Unikalny kod numeryczny 

type 

Rodzaj produktu warunkujący parametry 

model 

Nazwa modelu produktu 

height 

Wysokość produktu (wyłącznie grzejniki i grzałki) 

width 

Szerokość produktu (wyłącznie grzejniki i grzałki) 

color 

Paleta kolorów z oferty, zawiera pozycje RAL jak i pozycje specjalne 

connection 

Rodzaj podłączenia grzejnika 

image 

Adres do pobrania renderu lub zdjęcia 

title 

Pełna nazwa produktu 

power55 

Moc grzejnika dla parametrów instalacji 55/45/20 

power75 

Moc grzejnika dla parametrów instalacji 75/65/20 

power90 

Moc grzejnika dla parametrów instalacji 90/70/20 

weight 

Waga produktu 

size_{x} 

Poszczególne wymiary grzejnika, w zależności od podłączenia grzejnika 

coating 

Rodzaj wykończenia powierzchni grzejnika, przyjmuje wartości farba / chrom 

 

 

 

Produkty skonfigurowane (_stock, full, configured) 

Grzejniki 

price 

Cena katalogowa netto, w tym cena wyprzedażowa 

qty 

Aktualny stan magazynowy TERMA CZAPLE 

sku 

Uniklany kod producenta, na który składa się kod pozycji oraz kod wariantu produktu. 

id 

Unikalny kod numeryczny 

type 

Rodzaj produktu warunkujący parametry 

model 

Nazwa modelu produktu 

height 

Wysokość produktu (wyłącznie grzejniki i grzałki) 

width 

Szerokość produktu (wyłącznie grzejniki i grzałki) 

color 

Paleta kolorów z oferty, zawiera pozycje RAL jak i pozycje specjalne 

connection 

Rodzaj podłaczenia grzejnika 

image 

Adres do pobrania renderu lub zdjęcia 

visualisation 

Identyfikator do zbudowania wizualizacji 3D 

PDF_product_card 

Link do pobrania karty produktowej w PDF 

description 

Opis przypisany modelowi produktu 

title 

Pełna nazwa produktu 

power55 

Moc grzejnika dla parametrów instalacji 55/45/20 

power75 

Moc grzejnika dla parametrów instalacji 75/65/20 

power90 

Moc grzejnika dla parametrów instalacji 90/70/20 

weight 

Waga produktu brutto 

weight2 

Waga produktu netto 

maxpower 

Maksymalna moc grzejnika 

coating 

Powłoka grzejnika 

size_{x} 

Poszczególne wymiary grzejnika, w zależności od podłączenia grzejnika 

description 

Domyślny opis modelu produktu. Opis jest pobrany ze strony termaheat.pl 

power_heating 

Moc grzałki dla grzejników elektrycznych 

pressure 

Cisnienie robocze grzejnika 

coating 

Rodzaj wykończenia pwierzchni grzejnika, przyjmuje wartości farba / chrom 

sale 

Informacja czy pozycja jest wyprzedażowa 

EAN 

Kod EAN 

INTRA 

Kod Intrastat 

PKWIU 

Kod PKWiU 

Grzałki 

cable 

Typ kabla zasilającego grzałki 

cable_color 

Kolor kabla 

package 

Rodzaj opakowania 

heater_power 

Moc grzałki 

with_valve 

Zawiera trójnik 

split_lenght 

Długość elementu grzejnego 

ip_class 

Klasa IP 

power_connect 

Wersja zasilania: 230V/50Hz 

Akcesoria 

 

depth 

Wymiar - głębokość 

surface 

Powierzchnia 

lifting 

 

stuff 

 

thread 

 

valves_type 

Rodzaj zaworu, przyjmuje wartości: regulacyjny, odcinający 

 

Ceny produktów (_price) 

price 

Cena katalogowa netto, w tym cena wyprzedażowa 

qty 

Aktualny stan magazynowy TERMA CZAPLE 

sku 

Uniklany kod producenta, na który składa się kod pozycji oraz kod wariantu produktu. 

Więcej znajdziesz w naszym poradniku. 

id 

Unikalny kod numeryczny 

type 

Rodzaj produktu warunkujący parametry 

model 

Nazwa modelu produktu 

height 

Wysokość produktu (wyłącznie grzejniki i grzałki) 

width 

Szerokość produktu (wyłącznie grzejniki i grzałki) 

color 

Paleta kolorów z oferty, zawiera pozycje RAL jak i pozycje specjalne 

connection 

Rodzaj podłączenia grzejnika 

image 

Adres do pobrania renderu lub zdjęcia 

title 

Pełna nazwa produktu 

power55 

Moc grzejnika dla parametrów instalacji 55/45/20 

power75 

Moc grzejnika dla parametrów instalacji 75/65/20 

power90 

Moc grzejnika dla parametrów instalacji 90/70/20 

weight 

Waga produktu 

sale 

Produkt z wyprzedaży 

coating 

Rodzaj wykończenia powierzchni grzejnika, przyjmuje wartości farba / chrom 

weight 

Waga produktu 

package 

Opakowanie 

power_heating 

Moc grzałki dla grzejników elektrycznych 

 

 

Dane powiązane

Lista ujęć

cam0 

Widok od frontu grzejnika, z zachowaniem skali grzejników.  
Grzejnik o wysokości 1200 
bedzie 2 razy wyższy od 600. Rendery wykonane są w trybie ortho, czyli bez zachowania perspektywy, więc tu grzejnik wygląda bardziej jak rysunek techniczny. 

cam1 

Widok od frontu grzejnika, bez zachowania skali grzejnika. 
Grzejnik jest maksymalnie duży na renderze, ale przy zestawieniu kilku renderów obok siebie nie będzie widać różnicy skali. Rendery są wykonane bez trybu ortho 

cam2 

Widok z lewego boku 

cam3 

Widok z góry 

cam4 

Perspektywa 

cam5 

Perspektywa 

  

{width}  

Dowolny wymiar w PX 


Generowanie wizualizacji 3D  

W plikach zrzucane są identyfikatory gotowej wizualizacji, jeśl chciałbyś wstawić na stronie taką wizualizacje, musisz przygotować szablon kodu html, który wygeneruje ramkę z wizualizacją. Może on być przygotowany w szablonie podstrony lub pola w bazie danych.  
W przypadku pola bazy danych należy zwrócić uwagę, że to musi być pełne pole tekstowe.  
 
Kod, który należy wstawić jest następujący: 

<div class="embed-container"  style="position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden; max-width: 100%;"> 
<iframe src="//www.termaheat.pl/node/{visualisation}" style="border:0; position: absolute; top: 0; left: 0; width: 100%; height: 100%; allowfullscreen="true" webkitallowfullscreen="true" mozallowfullscreen="true" oallowfullscreen="true" msallowfullscreen="true"></iframe> 
</div> 


{visualisation} należy podstawić id z pliku. 

Wynikiem będzie ramka z modelem 3D oraz konfiguratorem. Możesz tez wygenerować kod do wybranej wizualizacji na stronie https://www.terma24.pl/wizualizacje-3d-api 
 
Wynikiem będzie ramka z modelem 3D oraz konfiguratorem 
 
Kod można modyfikować zgodnie ze specyfikacją aplikacji https://www.terma24.pl/wizualizacje-3d-api aby dopasować pod swoje wymagania 
 

Generowanie miniatur 

W pliku podstawione są oryginalne nieprzetworzone rendery produktów. Możesz je przerzucić do własnych aplikacji lub podłączyć do naszego serwera.  
W celu optymalizacji pod kątem prędkości ładowania, możesz wykorzystać generator miniatur, który w locie przerobi obrazek do wymaganych parametrów.  
Dodatkowo możesz zmienić ujęcie lub utworzyć galerię zdjęć. 
 
Aby podłączyć generator miniatur wystarczy, że podstawisz do ścieżki https://img.terma24.pl/ {sku} / {cam} / {width} 
 
 
 
 
 
gdzie do ścieżki należy podstawić:  
 

{sku} 

kod SKU {format z kreską w środku} 

 

Integrowanie

Pliki można wykorzystać jako endpointy danych, do połączenia własnych aplikacji i systemów. Wystarczy, że na stałe wybierzesz i podłączysz końcowy plik do własnego systemu. Na temat struktury plików, adresów i zawartości przeczytasz więcej w sekcji “struktura plików”. Adresy oraz nomenklatura nie ulegają zmianom, mogą natomiast pojawić się nowe pola i zakresy danych. Dlatego proponujemy posługiwać się nagłówkami. 

Lokalna baza danych

Jedno-plikowa baza danych SQLite, zastosowanie ma do specyficznych rozwiązań, w szczególności wygodnym jest rozwiązaniem do implementacji w natywnych aplikacjach mobilnych, dla których może stanowić gotowe źródło danych, a także jeśli zachodzi potrzeba manipulowania danymi w procesie synchronizacji baz danych. Wówczas w prosty i wydajny sposób można wybrać zakres do synchronizacji; 
 
np. tylko produkty na stanie magazynowym w kolorze RAL 9016 bez produktów elektrycznych. 

SELECT * FROM products_full WHERE `qty` > 0 AND `color` = 'RAL 9016' AND sku NOT LIKE 'WL%' AND sku NOT LIKE 'WZ%' 


Bazę można pobrać pod adresem: 
http://data.terma24.pl/sqlite/products.sqlite 
 

Baza zawiera tą samą strukturę i zakres danych, jak w przypadku plików CSV, JSON, XML. 
Zakres danych wówczas określony jest w tabelach. 

Do przeglądania danych, możesz użyć dowolnego oprogramowania: 
Polecamy bezpłatny DB Browser for SQLite, można pobrać ze strony: https://sqlitebrowser.org/ 

 
 

Dane indywidualne

Jesteśmy otwarci na indywidualne rozwiązania i potrzeby. Jeśli potrzebujesz danych o dedykowanej strukturze lub formacie, wyślij zgłoszenie, przygotujemy specjalnie dla Ciebie. 
 

Zmiany można przygotować w zakresie  
- Mapowania pól 
- Dołożenia wartości stałych 
- Przeliczeń i konwersji 
- Zakresu danych 
- Strony kodowej   
 
Do działania będziesz potrzebować konto na platformie B2B https://www.terma24.pl/user/ z wygenerowanym Kontem Odbiorcy. 

Endpoint:  data.terma24.pl/custom/{id_odbiorcy}/{format_pliku}/custom.{format_pliku} 
 
format_pliku: 

  • CSV  - rozdzielony średnikiem, kodowanie UTF-8 (z BOM), zawiera nagłówki 
  • XML  - kodowanie UTF-8 (z BOM) 
  • JSON- kodowanie UTF-8 (z BOM) 

plik_danych: 

  • products_individual - dane produktów, pozycji skonfigurowanych. Wariant produktu, który ma przypisaną cenę. 

id_odbiorcy: 

Identyfikator konta Odbiorcy, nadawany jest po zawarciu współpracy i utworzenia konta w ERP oraz rejestracji na platformie B2B 

(Identyfikator składa się z C{liczba} np. C1234)