RFQ - zapytania ofertowe online w sklepie B2B
Nie wszystko sprzedajesz po cenie z katalogu. Klient B2B przy zamówieniu na 200 tys. zł oczekuje rozmowy, nie kliknięcia „kup teraz". RFQ (Request for Quote) to mechanizm, który tę rozmowę przenosi do sklepu - klient prosi o ofertę, handlowiec wycenia, klient akceptuje, oferta staje się zamówieniem. Bez RFQ - tracisz duże transakcje na rzecz konkurencji, która ma to wbudowane.
Spis treści (8)
W skrócie
- 1. RFQ = klient prosi o cenę, dostawca odpowiada konkretną ofertą
- 2. Workflow: koszyk RFQ → handlowiec wycenia → klient akceptuje → zamówienie
- 3. Cykl life: od minut do tygodni
- 4. Implementacja: Adobe Commerce (Negotiable Quotes), Shopware EE B2B Suite (Quote Management), Magento OS przez moduły
- 5. Dla kogo: zamówienia > 50 tys. zł, produkty custom, nowi klienci bez kontraktu
Kiedy RFQ ma sens
Tak, RFQ, gdy:
- Zamówienia powyżej kwoty (typowo > 50 tys. zł)
- Produkty na zamówienie (custom, konfigurowalne)
- Klient nowy bez kontraktu, ale duży obrót w perspektywie
- Klient prosi o lepszą cenę przy dużych ilościach (negocjacja)
- Sprzedaż usług / projektów (nie konkretnych SKU)
Nie RFQ, gdy:
- Klient regularnie kupuje z cennika kontraktowego (już ma cenę)
- Małe zamówienia (poniżej progu)
- Standardowe produkty bez customizacji
Workflow RFQ
1. Klient w sklepie
- Wkłada produkty do "koszyka RFQ" (osobny od standardowego)
- Dodaje notatki (specyfikacja, ilości, terminy)
- Klika "Wyślij zapytanie ofertowe"
2. Sklep tworzy RFQ #ID
- Status: "submitted"
- Notyfikacja do handlowca / sales team'u
3. Handlowiec analizuje
- Profil klienta (historia, kontrakt, scoring)
- Marża per produkt
- Sytuacja rynkowa
- Przygotowuje ofertę w panelu
4. Handlowiec wysyła ofertę
- Cena per produkt (może być negocjowana)
- Warunki dostawy (termin, koszt)
- Warunki płatności (termin, BNPL, etc.)
- Ważność oferty (do kiedy)
- Notes / uzasadnienie cen
- Status RFQ: "quoted"
5. Klient otrzymuje ofertę
- Notyfikacja (email + in-app)
- Może otworzyć w panelu
- Decyzje:
- Accept → konwersja w zamówienie
- Counter (negocjacja) → wraca do handlowca
- Reject → zamknięcie RFQ
- Ask for clarification → komentarz do handlowca
6. Konwersja w zamówienie
- Po akceptacji oferty
- Zamówienie ma cenę z oferty (NIE z cennika kontraktowego)
- Normalna ścieżka realizacji
Status RFQ - state machine
submitted → quoted → (accepted | countered | rejected | expired)
| |
v v
converted re-quoted (→ quoted)
Każda zmiana statusu loguje się w audit trail.
Multi-round negotiation
Klasyczne B2B - rzadko jednorazowy strzał. Negocjacje:
Round 1:
Klient RFQ: 100 sztuk produktu X po cenie do uzgodnienia
Handlowiec quote: 100 sztuk × 95 zł = 9500 zł
Round 2:
Klient counter: "Damy 88 zł"
Handlowiec re-quote: "Możemy 92 zł" + bonus dostawa gratis
Round 3:
Klient accept: 92 zł × 100 = 9200 zł
Konwersja → zamówienie
Każdy round to event w audit trail.
Panel handlowca
Sales Rep w panelu:
Inbox RFQ:
- Lista nowych zapytań (status submitted)
- Sortowanie: data, klient, kwota szacunkowa
- Filtry: tylko moi klienci, tylko nowi, tylko priorytet
Otwarte zapytanie:
- Klient, kontrakt, historia
- Produkty z koszyka klienta
- Pole „twoja cena per produkt" (initial: cennik kontraktowy lub katalog)
- Marża per pozycja (tylko handlowiec widzi)
- Warunki dostawy, płatności
- Komentarz dla klienta
- Akcje: Wyślij ofertę / Zapisz draft / Odrzuć RFQ
Negocjacja:
- Chat z klientem (in-app messages)
- Historia counter-offerów
- Możliwość modyfikacji oferty
Wycena per produkt - what handlowiec robi
Handlowiec patrzy na:
1. Cennik klienta (jeśli ma kontrakt). Pojawia się jako default. Handlowiec może go zmodyfikować dla tego konkretnego RFQ.
2. Marża per produkt. Cena katalogowa minus koszt zakupu = marża. Handlowiec wie, ile może opuścić.
3. Sytuacja sezonowa. Czy produkt jest w nadwyżce (chcemy się pozbyć - niższa cena akceptowalna) czy w niedoborze (drożej).
4. Wartość strategiczna klienta. Nowy klient z perspektywą długoterminową - można dać preferencyjną cenę.
5. Konkurencja. Klient może mieć ofertę z innego źródła. Handlowiec konkuruje.
Wszystko to handlowiec robi mentalnie / w Excelu. Sklep tylko dostarcza interfejs do wpisania finalnych cen.
Implementacja w platformach
Adobe Commerce Negotiable Quotes:
- Wbudowane od Magento 2.4
- Pełen workflow: submit, quote, counter, accept
- Notyfikacje email
- Konwersja w zamówienie
Shopware Enterprise B2B Suite - Quote Management:
- Wbudowane
- Funkcjonalność porównywalna z Adobe Commerce
- Lepsze UI w panelu administracyjnym (subjektywnie)
Magento Open Source:
- Aheadworks B2B Suite ma Quote module
- Webkul B2B Quote
- Custom: niezbyt skomplikowane (Symfony + Twig + state machine)
Custom:
- 2-4 tygodnie pracy dewelopera dla MVP
- Database: quotes, quote_items, quote_messages
- Logika: state machine + notyfikacje + UI
Najczęstsze problemy
1. Brak ważności oferty. Handlowiec wysłał ofertę 2 miesiące temu, klient akceptuje dziś - ceny się zmieniły, marża zerowa lub straty. Konieczne: pole „ważność oferty" (default 7-14 dni).
2. Brak notyfikacji o ekspiracji. Klient nie wie, że oferta wygasa. Konieczne: reminder email 2 dni przed.
3. Brak ograniczenia RFQ per klient / dzień. Klient spamuje 50 RFQ dziennie. Handlowcy nie nadążają. Rate limit lub workflow „klienci priorytetowi vs. low priority".
4. Brak panelu Sales Rep. Handlowcy zarządzają RFQ przez email. Chaos, brak audit trail.
5. Brak konwersji bezpośredniej w zamówienie. Klient akceptuje ofertę, ale potem musi wpisać dane ponownie w nowym koszyku. Powinna być one-click konwersja.
6. Brak integracji z ERP po akceptacji. Zamówienie z RFQ wchodzi do sklepu, ale nie do ERP. Lub trafia bez ceny z RFQ.
FAQ
Czy mogę mieć RFQ bez zalogowania? Można. „Guest RFQ" - klient wpisuje email, sklep tworzy konto „pending". Handlowiec aktywuje przy odpowiedzi.
Czy klient widzi marżę w ofercie? Nie. Marża widoczna tylko handlowcowi.
Czy RFQ działa z BNPL (Mondu)? Tak. Klient akceptuje ofertę, w checkoutcie wybiera BNPL. Mondu robi decyzję kredytową na kwocie z oferty.
Co z VAT na ofercie? Standardowo (stawka per produkt). Klient B2B widzi netto + VAT + brutto.
Czy można mieć multi-currency RFQ? Tak (Adobe Commerce, Shopware wspierają multi-currency). Klient może prosić w EUR, sklep odpowiada w EUR.
Co dalej
- Pillar procesów B2B: Procesy zakupowe B2B
- Cenniki (default): Cenniki kontraktowe
- Workflow po akceptacji RFQ: Workflow akceptacji
- Platforma z RFQ wbudowanym: Magento / Adobe Commerce
O autorze
Jakub Owsianka
Architekt rozwiązania w WiseB2B - silniku platform B2B. Zaczynał po stronie biznesu (własne sklepy), potem deweloper, dziś projektuje wdrożenia dla sklepów z katalogami w dziesiątkach tysięcy SKU. W ostatnich latach wdrożył AI-development w zespole i funkcjonalności oparte o AI bezpośrednio w silniku sklepu.
Masz pytanie do tego artykułu?
Dodatkowy kontekst, problem z własnym wdrożeniem, druga opinia - napisz wprost. Odpowiadam osobiście w 1-2 dni robocze.