Test: FluentCart / Integrări / FluentBooking
Dovadă: Integrare FluentCart ↔ FluentBooking
Testat LIVE pe fluent.safebiz.ro — combo aprobat de taki în Plugin Lab (integration-matrix/selection.json, status approved_by_taki).
Ce demonstrează
Spre deosebire de integrările tip “feed” (ex. FluentCRM), FluentBooking↔FluentCart NU e o integrare configurabilă din ecranul de Integrări al FluentCart — nu apare în GET /integration/global-feeds nici în GET /integration/addons (reconfirmat live acum, consistent cu descoperirea din #3343). Wiring-ul real e cod-la-cod, inițiat de partea FluentBooking:
add_action('fluentcart_loaded', ...)— FluentBooking își înregistrează un modul de integrare dedicat (Services/Integrations/FluentCart/Bootstrap) DOAR când detectează FluentCart activ.GET /wp-json/fluent-booking/v2/integrations/options/cart-products→ 200 confirmat LIVE — controller-ul FluentBooking (FluentCartController::getCartProducts) interoghează direct modelele Eloquent ale FluentCart (CartProduct,CartProductVariant) cross-plugin, fără eroare fatală.- Filtrul
fluent_cart/item_attributes(partea FluentCart,AttributeHelper::getProductItemAttributes) — punct de extensie pregătit explicit pentru FluentBooking (exemplu în docblock: cheiafluent_booking_start), pe care FluentBooking l-ar folosi la afișarea orei de rezervare pe linia de comandă. - Rutele scriere FluentBooking (
saveEventCartSettings,createProduct) leagă un eveniment de calendar de un produs FluentCart plătit — bidirecțional, nu doar cosmetic.
Limitare onestă a testului
Site-ul de test (family-lab) are în acest moment 0 calendare/evenimente FluentBooking configurate și un singur produs FluentCart, în stare draft — deci items din options/cart-products a răspuns gol (corect: query-ul filtrează explicit publish/private). Fluxul complet de checkout (rezervare plătită → redirect FluentCart → confirmare → status scheduled) rămâne ⚠️ NETESTAT end-to-end — ar necesita un calendar + eveniment plătit + produs publicat, în afara scope-ului acestui test (GET-only, fără scriere pe automation-policy fluent-booking, care e absentă complet).
Clasificare corectată din cod (Faza 1 selection.json marca “glue” doar din perspectiva FluentCart): integrarea are de fapt o clasă de integrare dedicată completă pe partea FluentBooking (payment driver, checkout redirect, receipt, admin order log) — echivalentă ca profunzime cu o integrare “nativă”, confirmată acum live la nivel de reachability REST.