A Netorigo Storefront kosara nem mindig kosar. Ha a tetelek kozott legalabb egy CartLine.isOnlinePurchasable=false jeloltetes szerepel, a kosar atvalt RFQ (Request for Quote) modba. Az alabbi cikk a tervezesi dontesekrol szol, plusz 18 honap eles uzemi adatat hozza negy storefrontrol.
A flag: isOnlinePurchasable
A product Prisma tablan szerepel egy isOnlinePurchasable: boolean mezo. Hamis ertek eseten az adott termeknek nincs "Kosarba" gombja a PDP-n, helyette "Ajanlatkeres" CTA jelenik meg. Aki megis odateszi (mert pl. egy bundle resze, vagy admin override-szal), az a kosarban egy borostyan szinu (--nrt-amber-500) "Ajanlat alapjan" badge-et kap a tetel mellett.
A flag-et az admin /admin/catalog/products/[id] feluleten lehet allitani. Default true, mert a Storefront elsodlegesen B2C, es csak az ipari/projekt-jellegu tetelek megnek RFQ-re.
Mod-valtas: a checkout maga
Amint a kosarban legalabb egy quote-only tetel van, a useCartPurchasability(items) hook visszater egy mode: 'quote' vagy mode: 'mixed' discriminatorral. A /checkout oldal ezt nezi:
mode: 'cart': klasszikus payment-checkout (Barion, Stripe, banki atutalas).mode: 'quote': RFQ form. Mezok: cegnev, adoszam, beszerzesert felelo neve+telefonja, jegyzet. A submit asubmitQuoteRequestMCP tool-on at megy a backendquotes.createendpointjara, ami egy uj sort vesz fel aquote_requesttablaba es notifikalja a sales rep modult.mode: 'mixed': kettos checkout. A vasarolhato tetelek azonnal megvasarlasra mennek, a quote-only tetelek ajanlatkeresbe. A vasarlo ket szal email-t kap (rendelesi visszaigazolas + ajanlatkeres regisztracioja).
A mixed eset agyas. Volt eleget design vita: hagyjuk-e a vasarlot kettos workflow-ba menni vagy keszitsuk ra egy dontesre ("mindent ajanlatkereskent" / "csak a vasarolhatokat most"). Vegul a kettos workflow lett, mert a partner sales csapatok tobbsege ezt akarta — "ne tartsuk vissza az online vasarlast egy hosszu RFQ ciklus miatt."
A sales hand-over
A quote az /admin/sales/quotes modulba erkezik. A modul listazza, rangsorolja prioritas+ertek szerint, es a sales rep itt fogalmaz arajanlatot (PDF generaltat a quote-bol). Az arajanlat egy 14 napos lejaratu quote-specific-pricing cookieval erkezik vissza a vasarlohoz: az ajanlathoz tartozo URL-en megkulonboztetett ar latszik a katalogus listaartol, igy a vasarlo onkiszolgalva is befejezheti a vasarlast.
18 honap szamai (n=1247 ajanlatkeres, 4 storefront)
- Ajanlatkeresek osszesen: 1247 (atlag 69/honap, csucs novemberi szezon 142)
- PO konverzio: 34% (424 db vegrehajtott megrendeles)
- Median quote-to-PO ido: 8 nap (atlag 11.4, p90 21)
- Onkiszolgalo befejezes a quote URL-en at: a PO-k 11%-a (47 db, ezt csak 2025 marciustol mertuk pontosan)
- Atlagos quote ertek: 1.2 millio Ft, atlagos PO ertek a quote-bol 980 ezer Ft (vagyis a vasarlok altal ajanlott discount kb. 18%)
- Lejart quote-ok (14 nap): 23% (a maradek vagy egy uj quote-ba megy at vagy egyszeruen elenyeszik)
A vegrehajtas: chat-driven MCP tools
A cart es checkout muveleteket a chat panel is tudja vegrehajtani MCP tools-on at. Ot tool: cart.removeItem, cart.proceedToCheckout, cart.applyCoupon, checkout.fillField, checkout.submitQuote. Igy a vasarlo kerdezheti "toröld a masodikat es kuld be ajanlat-keresként", es a bot vegrehajtja. A panelszinten useRegisterUIActions hook regisztralja a kezelokat. Ket honap eles uzem utan: a sessionek 19%-a hasznalja a chat-driven cart vezerlest, ezen belul 73% mobil. A klasszikus gomb-klikk csaknem mind asztali; a chat-driven mobil.
A hatrany, amirol nem szoktak beszelni
A quote-first cart latvanyosan rontja a kosar-konverziot (a klasszikus "kosarba tesz / megveszi" metrika), mert egy halmazt elveszit: a quote-keresoket. Ne meljd ugyanazt a KPI-t a quote-bol jovo bevetelre — az 8 napos kesleltetessel mas riportba vagja a money-szezont. Vegezunk ket meresi szalat parallel, a sales rep oldalon ott a quote pipeline, a marketing oldalon ott a kosar konverzio. Ne keverjuk.