Przejdź do treści

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-mBY011-03467-0042 → kod 03467.
  • Nazwa i hex — wykresy kolorów z BYB Katalog 2025 (PDF) (Pajunen / Build Your Brand). W katalogu etykieta SOFTLILAC odpowiada nazwie Soft Lilac w palecie pluginu.

Dane źródłowe: includes/data/hft71-byb-colors.phphft71_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.