Przykłady API
Praktyczne przykłady dla najważniejszych flow integracji HFT71.
1) Autoryzacja
Endpoint:
POST /authentication/login
Przykładowy request:
{
"username": "api-user@example.com",
"password": "your-password"
}
Przykładowy response:
{
"access_token": "eyJhbGciOi...",
"expires_in": 300,
"token_type": "Bearer"
}
2) Wysłanie zamówienia
Endpoint:
POST /order
Przykładowy payload:
{
"referenceId": "72774",
"orderDate": "2026-03-02",
"address": {
"address1": "Main Street 10",
"address2": "",
"city": "Wroclaw",
"zip": "50-001",
"state": "DS",
"country": "PL",
"customerName": "John Doe",
"email": "john@example.com",
"mobile": "+48123456789"
},
"items": [
{
"sku": "BY004-00007-0046",
"quantity": 2
}
]
}
3) Polling statusu
Endpoint:
GET /order/{orderId}/status
Przykładowy response:
[
{
"sku": "BY004-00007-0046",
"status": "In Production"
}
]
4) Webhook do WooCommerce
Endpoint:
POST /wp-json/hft71/v1/order-status
Przykładowy body:
{
"external_id": "123456",
"status": "Closed"
}
5) Synchronizacja stocku
Endpoint:
GET /stock/available?page=1&count=200
Przykładowy response:
[
{
"sku": "BY004-00007-0046",
"stock": 18
}
]
6) Aktualizacja dwukierunkowa
Endpoint:
PUT /order/{orderId}
Przykładowy payload statusu:
{
"orderStatus": "Closed"
}
7) Odczyt konfiguracji modeli (helpery WordPress)
Od v1.3.0 dane modeli produktów są w tabelach pluginu i udostępniane przez publiczne helpery PHP (nie endpointy REST).
Od v1.3.1 SKU wariantów w panelu Modele są wyliczane wg wzoru HFT {kod_modelu}-{kod_koloru}-{kod_rozmiaru} (np. BY004-00007-0046 dla Black / M) i zapisywane przy zapisie modelu — bez ręcznej edycji w formularzu.
$models = hft71_get_models();
$config = hft71_get_model( 'BY004' );
$sku_m = hft71_get_model_sku( 'BY004', 'Black', 'M' ); // BY004-00007-0046
$sku_s = hft71_get_model_sku( 'BY004', 'Black', 'S' ); // BY004-00007-0051
$sku_xxl = hft71_get_model_sku( 'BY004', 'Heather Grey', 'XXL' ); // BY004-00431-0060
$map = hft71_get_model_sku_map( 'BY004' );
$black = hft71_get_color( 'Black' ); // id, name, code => 00007, hex => #000000
$bark = hft71_get_color_by_code( '03467' );
8) Paleta kolorów BYB
Źródła danych
- Kod (5 cyfr) — numer artykułu Build Your Brand, np.
https://www.buildyourbrand.de/en/heavy-hoody-bark-m→BY011-03467-0042→ kod03467. - Nazwa i hex — wykresy kolorów z BYB Katalog 2025 (PDF) (Pajunen / Build Your Brand). W katalogu etykieta
SOFTLILACodpowiada nazwie Soft Lilac w palecie pluginu.
Dane źródłowe: includes/data/hft71-byb-colors.php → hft71_get_byb_color_palette() (kolumny code, name, hex). Aktualizacja bazy z CLI: bin/sync-byb-colors.php (patrz wp eval-file w nagłówku pliku).
Przykładowe kody (BY011 / ogólna paleta BYB)
| Kod | Nazwa | Hex |
|---|---|---|
00007 |
Black | #000000 |
00220 |
White | #FFFFFF |
00155 |
Navy | #022447 |
00431 |
Heather Grey | #868686 |
03467 |
Bark | #9A6055 |
00606 |
Burgundy | #3A0201 |
00091 |
Charcoal | #424647 |
00208 |
Sand | #D4D1B2 |
00176 |
Olive | #31330B |
03251 |
Soft Lilac | #DAD4D4 |
Format eksportu (np. do JS): code,Name,HEX
00007,Black,#000000
00220,White,#FFFFFF
03467,Bark,#9A6055
Odczyt w PHP
// Pełna paleta seed (tablica asocjacyjna code/name/hex)
require_once WP_PLUGIN_DIR . '/hft71-plugin/includes/data/hft71-byb-colors.php';
$byb = hft71_get_byb_color_palette();
// Z bazy po zasianiu
$palette = hft71_get_color_palette(); // name => hex
$black = hft71_get_color_by_code( '00007' );
$config = hft71_get_model( 'BY011' );
// colors[]: { id, name, code, hex }
Wzorzec SKU
{model}-{color_code}-{size_code} — np. BY004-00007-0046 (BY004, Black, M).
Dane produktu z L-Shop (skład, gramatura, piktogramy)
Źródło: includes/data/hft71-byb-models-product.php — pola z tabeli atrybutów L-Shop oraz .care / .certificates.
$config = hft71_get_model( 'BY011' );
// sklad => "65% bawełna / 35% poliester"
// gramatura => "300 g/m²"
// care => [ 'Pranie w pralce 30°C, program delikatny', 'Nie wybielać', ... ]
// certificates => [ 'Oeko-Tex 100' ]
// certificates => [ ['src' => '.../2337338.jpg', 'title' => 'Oeko-Tex 100'] ]
// lshop_url => https://shop.l-shop-team.pl/pl/Catalogue/.../Heavy-Hoody.html
Przykładowy znormalizowany obiekt z hft71_get_model() (patrz schemas/model-config.schema.json):
{
"code": "BY004",
"label": "Classic T-Shirt",
"description": "<p>…</p>",
"base_price": 29.99,
"double_sided_surcharge": 5.0,
"wc_category_id": 42,
"sizes": ["S", "M", "L", "XL", "XXL"],
"colors": [
{ "id": 1, "name": "Black", "code": "00007", "hex": "#000000" },
{ "id": 2, "name": "Heather Grey", "code": "00431", "hex": "#868686" }
],
"skus": {
"Black": {
"S": "BY004-00007-0051",
"M": "BY004-00007-0046"
},
"Heather Grey": {
"XXL": "BY004-00431-0060"
}
}
}
Wszystkie helpery mają filtry (hft71_get_models, hft71_get_model, hft71_get_color, itd.). Zmiany cen wywołują akcję hft71_model_price_changed.