A commission-free website booking widget that reads live rates and availability from your ERPNext hotel PMS, captures deposits or full payment online, and creates the reservation directly in ERPNext — no OTA commission, no double entry. Built to order, installed, and supported by ECOSIRE. Built to order by ECOSIRE for ERPNext v15, v16 — indicative price from $499.00 USD; request a quote for a scoped proposal.

A commission-free website booking widget that reads live rates and availability from your ERPNext hotel PMS, captures deposits or full payment online, and creates the reservation directly in ERPNext — no OTA commission, no double entry. Built to order, installed, and supported by ECOSIRE.
今すぐのお支払いはありません。これはチームへの見積もり依頼を送信します。価格と次のステップをメールでご案内します。
Every booking that comes through an OTA costs a hotel 15-25% in commission, and the alternative — a website "book now" button that dumps enquiries into an inbox — means someone re-keys each reservation into ERPNext by hand, risks overselling a room, and loses the guest to a faster competitor. ERPNext has strong back-office hospitality building blocks (Hotel Room, Hotel Room Reservation, Hotel Room Pricing, Hotel Room Package DocTypes), but out of the box there is no public, embeddable booking front end: no real-time availability check exposed to your website, no guest-facing checkout, and no online payment capture that lands a confirmed reservation straight into the PMS. That gap is exactly where hotels keep paying commission.
Embeddable JS booking widget (single script tag) that mounts on any site — WordPress, static, or your existing marketing page — and talks to ERPNext over the REST API
Guest-safe `@frappe.whitelist(allow_guest=True)` methods for availability, quote, and booking, with server-side price calculation so client-submitted prices are never trusted
Real-time availability and rate reads directly from your ERPNext room inventory and Hotel Room Pricing rules — one source of truth for web and reception
Room-hold mechanism that reserves inventory during checkout, with a scheduler event that auto-releases expired holds so rooms are never silently locked
Online payment capture (deposit or full) via Stripe, Razorpay, or a regional PSP, confirmed by verified server-side webhooks before the reservation is created
Reservation creation on a `hooks.py` doc event / server script — creates the Hotel Room Reservation, guest Contact, and payment record inside one transaction
We build a proper Frappe app — its own module, DocTypes, and hooks.py — that closes the gap. An embeddable, mobile-first booking widget (a lightweight JS bundle you drop into any website, including your existing WordPress or static site) calls a set of guest-safe @frappe.whitelist(allow_guest=True) methods over the Frappe REST API. Those methods run an availability query against your ERPNext room inventory and pricing rules, return only bookable dates and live rates, apply promo codes and package deals server-side (never trusting client prices), and hold the room while the guest checks out. Payment is captured through your gateway of choice (Stripe, Razorpay, or a regional PSP), and on a verified payment webhook a server script creates the Hotel Room Reservation (or your customer reservation DocType) with the guest Contact, deposit or full-payment record, and correct status — all inside a single transaction so you never confirm a room you couldn't charge for.
The engine is wired into ERPNext's own mechanics rather than bolted alongside them. Availability and rate logic live in server scripts and whitelisted methods so the same source of truth drives both the widget and your reception desk. hooks.py doc events keep the widget honest — when a reservation is created, cancelled, or a room is blocked for maintenance, availability recalculates immediately. A scheduler event releases expired payment holds so inventory is never silently locked, and can push booking confirmations and pre-arrival emails. Guest-facing endpoints run under a tightly scoped guest role with rate limiting and input validation; staff-facing screens respect ERPNext role profiles and permissions so front-desk, revenue, and admin users each see only what they should. Client scripts add the desk-side conveniences (quick availability lookup, promo overrides), and everything targets Frappe/ERPNext v15 and v16.
Because this is build-to-order, we start from your actual property: room types, rate plans, seasonal and package pricing, deposit policy, cancellation rules, languages, and payment gateway. After a short scoping call we confirm the exact scope in writing, build against your requirements, and hand over installable source and a git repository — not a locked black box. Typical delivery is 2-4 weeks from confirmed scope. We deploy to a staging bench for UAT, agree a rollback plan, then go live on your production bench and support you through the first weeks of real bookings. There is no instant download: what you get is a bench app engineered for your hotel and your ERPNext instance.
Runs one or a few properties on ERPNext, is tired of paying 15-25% OTA commission, and wants a website booking button that lands confirmed, paid reservations straight into the PMS without a receptionist re-keying anything.
Owns rate plans, seasonal pricing, and packages. Needs the website to always show the same live rates and availability as the desk, with promo codes and length-of-stay rules enforced server-side, so direct becomes the cheapest and best-controlled channel.
Maintains the bench and expects a clean, standard Frappe app on v15/v16 with proper DocTypes, whitelisted methods, role profiles, and a git repo they can audit, extend, and upgrade — not a fragile customization.
Drives traffic to the hotel website and wants a fast, mobile-first, multilingual checkout embeddable on any landing page, with promo and package deals that convert lookers into paid direct bookings.
ecosire.com でライセンスを購入し、アカウント ダッシュボードから Direct Booking Engine for Hotels アプリの ZIP をダウンロードします。
ZIP をベンチのアプリ フォルダーに抽出するか、抽出されたアプリへのパスを指定して「bench get-app」を実行します。
`bench --site SITE_NAME install-app APP_NAME` を実行し、続いて `bench maigrate` を実行して、Direct Booking Engine for Hotels をインストールし、そのスキーマを適用します。
サイトの ECOSIRE ライセンス設定を開き、ライセンス キーをアクティブ化します。無料の ecosire_connect アプリと ecosire_license_client アプリが必要です。
| 基準 | エコシエール | カスタムビルド | 競合他社 | オドゥー ネイティブ |
|---|---|---|---|---|
| Commission on direct bookings | Zero — bookings land straight in ERPNext | Zero, if built correctly | Usually zero, but generic flow | |
| Live PMS availability on the website | Real-time via whitelisted methods + hooks | Depends on your build effort | Often a nightly sync, can oversell | |
| Online payment before confirmation | Deposit or full, webhook-verified | You wire the gateway yourself | Gateway support varies by app | |
| Fit to your rates and policies | Built to your exact rate plans and rules | Fully bespoke but you own the design | Fixed feature set, limited config | |
| Time to live | 2-4 weeks from confirmed scope | Months, plus your hiring risk | Fast install, slow to fit reality | |
| Source code and ownership | Full git repo handover, installable source | You own it, you also maintain it | Often closed or license-locked | |
| Support and upgrades | Post-go-live window + optional ongoing | Only if your developer stays | Vendor SLA, may lag v15/v16 | |
| Multilingual mobile checkout | Built-in, Frappe translation layer | Extra scope you must specify | Sometimes, quality varies |
No. This is a build-to-order engagement, not a marketplace download. ECOSIRE builds the Frappe app around your actual property, rate plans, and payment gateway, then installs and supports it. You receive installable source and a git repository, but the work starts after a scoping call and confirmed scope.
Typical delivery is 2-4 weeks from confirmed scope. After a short scoping call we write down the exact requirements — room types, rate plans, deposit and cancellation policy, languages, and gateway — and build against that. Complex multi-property or unusual payment setups may extend the timeline, which we confirm before we start.
Every build includes a post-go-live support window covering the first weeks of live bookings. Because you get the full git repository and source, you or your team can maintain it, and ECOSIRE offers ongoing support and upgrade work (including v15-to-v16 moves) as a separate arrangement. We are not a locked SaaS you can be cut off from.
It works with your existing website. The booking engine ships as an embeddable JS widget you drop into any page — WordPress, a static marketing site, or a landing page — which calls guest-safe whitelisted methods on your ERPNext instance over the REST API. No website rebuild is required.
No. Availability and rates are read directly from your ERPNext room inventory and pricing rules through whitelisted methods, and `hooks.py` doc events recalculate the moment a reservation is booked, cancelled, or a room is blocked. The widget and the front desk read the same source of truth, and a room-hold mechanism prevents double-booking during checkout.
We build for Frappe/ERPNext v15 and v16. Payment is captured through the gateway you choose — Stripe, Razorpay, or a regional PSP — with reservations created only after a verified server-side webhook confirms the charge, so you never confirm a room you could not charge for.
Yes. You can capture a deposit or full payment, and promo codes plus package and rate-plan rules (seasonal, minimum-stay, length-of-stay) are evaluated server-side against dedicated DocTypes. Prices submitted by the browser are never trusted — every quote is recomputed on the server before payment.
A commission-free website booking widget that reads live rates and availability from your ERPNext hotel PMS, captures deposits or full payment online, and creates the reservation directly in ERPNext — no OTA commission, no double entry. Built to order, installed, and supported by ECOSIRE.