Provider guide
Provider settings tutorial
This tutorial covers every major feature in the provider settings page: profile fields, ABN lookup, payout details, website normalisation, rates, menu items, item albums, extras, cancellation policy, boat invitations, gallery, password setup, validation, save flow and mobile layout.
Profile
Tax & payout
Menu & extras
Gallery
Save flow
Provider settings · /provider/settings
Initial load — loads provider, gallery, menu, extras and menu-item album images.
Profile — profile photo, name, phone, experience, bio, website and Instagram.
Payment and tax — ABN lookup, TFN, GST toggle, bank account name, BSB and account number.
Commercial setup — non-catering provider rate, service/menu items, extras and cancellation note.
Media — profile image, menu item image, menu item album, extra images, and portfolio gallery.
Side tools — public profile preview, profile tips, boat invitation component and password setup component.
Sticky save — Save profile stays fixed at bottom so the provider can save from anywhere.
Purpose: This page controls how providers appear publicly and how BookMyWave admin processes provider payouts.
What you see — full-width provider settings
Profile Settings
This is what clients see when they view your public profile.
✓ Profile saved
Profile photo
H
Upload photo JPG, PNG or WebP · Max 10MB · Cropped to square
Payment & tax details
GST registered
Turn this on if your invoices include GST.
Food & Beverage Menu
Menu items operators can add to boats.
+ Add item
Portfolio gallery
Past event photo ✕
+ Add photos
Public profile
This is what clients see when they click your name on a boat listing.
Preview my profile ↗
Tips
✓ Add a clear professional headshot
✓ Upload 5–10 portfolio photos
✓ Set your rate or menu items
Provider settings · Initial load
Provider identity — fetches provider/me and redirects to provider login on 401.
Gallery — fetches provider/gallery for portfolio images.
Menu — fetches provider/menu for included service items or F&B menu items.
Extras — fetches provider/extras for non-catering add-ons.
Album images — after menu loads, fetches provider/menu-images for each menu_item_id.
Form hydration — provider fields are copied into the local form state.
Loading state
Loaded together: profile + gallery + menu + extras, then album images per menu item.
Provider settings · Profile photo upload
Preview — if image_filename exists, shows /images/filename as circular preview.
Fallback — if no profile image, uses first letter of provider name.
Hidden file input — upload button triggers file input through ref.
Upload endpoint — sends FormData to upload/provider with type profile.
Saving behaviour — upload sets form.image_filename; final Save profile persists it.
Upload state — button text changes to Uploading...
Profile photo block
H
Upload photo JPG, PNG or WebP · Max 10MB · Cropped to square
Provider settings · Basic info
Name required — save stops with name error if empty.
Phone required — save stops with phone error if empty.
Years experience — number input allows 0 to 60; saved as integer or null.
Bio — public profile description, trimmed before saving.
Error clearing — name and phone errors clear when user types.
Provider settings · Payment and tax details
ABN cleanup — non-digits are removed before validation and lookup.
ABN validation — optional, but if provided must be exactly 11 digits.
ABN lookup — on blur, 11-digit ABN calls /api/abn-lookup and displays loading, valid, invalid, or error states.
GST auto-on — if ABN lookup returns valid and gst true, gst_registered is automatically turned on.
TFN — optional; if provided must be 8 or 9 digits.
BSB — optional; if provided must be 6 digits.
Account number — optional; if provided must be 5 to 12 digits.
Private data — section copy says these payout/tax details are not shown on the public profile.
Tax and payout form
Payment & tax details
Used by BookMyWave admin to process provider payouts and invoice records. Not shown on your public profile.
ABN Checking ABN…
✓ Harbour Kitchen Pty Ltd · Active · GST registered
ABN must be 11 digits
GST registered
Turn this on if your invoices include GST.
Bank account name
Provider settings · Links and normalisation
Website — saved after normalisation.
Normalisation — removes existing http/https and existing www, then forces https://www.
Blank website — saved as empty string.
Instagram — saved as trimmed URL or null.
Example: yoursite.com, www.yoursite.com, and http://yoursite.com all save as https://www.yoursite.com.
Provider settings · Provider rate
Hidden for Catering — this section is not rendered when provider.category is Catering.
Client charge — optional numeric amount charged to clients.
Blank rate — saves null for quote-per-job providers.
Charge type — flat, per_head, or per_hour.
Save payload — client_charge parses to float and charge_type falls back to flat.
Non-catering rate
Your rate
Leave blank if you prefer to quote per job.
Provider settings · Menu item photo album
Album load — each menu item fetches its images from provider/menu-images.
Add album image — uploads image to upload/provider as gallery, then saves filename to provider/menu-images.
Caption — updates local caption immediately, then sends PUT provider/menu-images.
Delete — removes locally immediately, then sends DELETE provider/menu-images?id=imageId.
Storage shape — local state uses menuItemImages keyed by menu_item_id.
Provider settings · Cancellation & change policy
Platform policy — displays fixed cancellation rules in a grey policy box.
14+ days — no charge applies to provider.
Within 14 days — provider receives 50% of service fee; client receives no refund.
Custom note — provider can add a note visible to clients.
Save — cancellation_policy_note is trimmed and saved as null if blank.
Policy block
Client cancellation policy
• 14 days or more before event — no charge applies to you
• Within 14 days of event — you receive 50% of your service fee; client receives no refund
Provider settings · ProviderInviteBoats component
Component — ProviderInviteBoats is rendered inside the main settings flow.
Props — receives provider and menuItems.
Use case — helps provider invite or connect boats/operators to use their services or menu items.
Placement — appears after cancellation policy and before portfolio gallery.
Important: Tutorial includes this because it is a separate component, not visible in this page file’s CSS.
Component placeholder
Invite boats to use your services
Select boat / operator
Send invitation
Provider settings · Portfolio gallery
Multiple upload — hidden file input supports multiple image files.
Upload loop — each file uploads to upload/provider with type gallery.
Save gallery row — successful upload is saved through provider/gallery POST.
Append locally — saved image is appended to gallery state.
Delete — confirms “Remove this image?”, deletes via provider/gallery, then removes locally.
Uploading state — add button shows spinner while gallery upload is running.
Portfolio gallery grid
Portfolio gallery
Show clients examples of your past work. Upload multiple images at once.
Past event photo ✕
Food setup ✕
Service example ✕
+ Add photos
Provider settings · SetPassword component
Component — SetPassword is rendered after sidebar inside the settings layout.
Purpose — lets provider set or update their password from settings.
Separate logic — password fields and API behaviour live in the SetPassword component, not this file.
Do not miss it: It is part of the page even though it is imported as a component.
Password component placeholder
Password
New password
Update password
Provider settings · Save profile and validation
Required checks — name and phone are required before save.
Number checks — ABN 11 digits, TFN 8–9 digits, BSB 6 digits, account number 5–12 digits.
Clean payload — numeric/tax fields remove non-digits; blank optional fields save as null.
Website normalisation — website is saved after normalizeWebsiteUrl.
PUT endpoint — saves provider profile to provider/me.
Server error — errors._global is shown and alert displays backend error.
Success — success banner and alert appear; banner disappears after 3 seconds.
Sticky footer — fixed translucent bottom bar keeps Save profile visible.
Save states
ABN must be 11 digits
✓ Profile saved
Provider settings · Mobile layout
Single-column layout — main and side columns collapse to one column under 800px.
Sidebar — loses sticky behaviour and appears in normal flow.
Item rows — menu/extras row fields wrap on smaller screens.
Bank row — BSB and account number stack under 600px.
Sticky footer — footer content gets smaller side padding and page has extra bottom padding.
Mobile-style settings
Profile Settings
Public profile
Preview my profile ↗