End-to-end quotation engine for Vendure:
Works on MySQL, MariaDB and PostgreSQL. Admin UI included (Quotes, editor with catalogue search, Settings). Licence activation in the admin, one-click in-app updates.
SMTP comes from SMTP_SERVER / SMTP_PORT / SMTP_USER / SMTP_PASSWORD
/ SMTP_FROM (or pass smtp in init()).
Post JSON from your storefront (server-side or from the browser — the
endpoint is public and CORS follows your Vendure apiOptions.cors). Send
the channel's token so the request lands on the right channel:
The quote appears under Sales → Quotations as requested; price any
free-text lines, then Send to customer. Turn requests off per channel in
Settings. Requests are throttled (10 an hour per client) and a hidden
website field discards bots.
Unlicensed installs run in the free tier; the 14-day free trial (card required) is started from the admin banner. Afterwards the plugin drops to the free tier: drafting, pricing and previews stay free — sending, chasers and order conversion require a licence from https://huloglobal.com/vendure-plugins/quotations/.
Pick monthly or annual on the plugin's admin banner and click Start 14-day free trial (card required, nothing charged until day 15, cancel any time), or choose lifetime — checkout opens in a new tab and the key installs itself within a minute. You can also buy at https://elite.charity/licence/buy/vendure-plugin-quotations and paste the emailed key into the admin.
All notable changes to @huloglobal/vendure-plugin-quotations are
documented here. The format follows
Keep a Changelog and this project
adheres to semantic versioning.
(channelId, reference) is unique.enabled IS TRUE instead of = 1) and in non-English shops (the admin's language, falling back to English).requested quotes are no longer served on the public quote URL before they are priced.POST /quotations/request lets any site — a basket, a product page, a calculator or a plain form — ask for a quote. Each request lands in the admin as a requested quote with catalogue lines (by variant id or SKU) pre-priced at the channel's list price, free-text lines left for you to price, the customer's message and where it came from. The channel's notify address gets the details, and the customer receives an acknowledgement carrying the quote reference (editable template in Settings). Existing customers are linked by email.website field acts as a honeypot, and the endpoint never needs a licence — sending the finished quote does, as before.quotation.requestMessage / requestSource / requestedAt, quotation_config.acceptRequests / requestAckBody (added automatically on boot).hulo-global-logo.svg is now the HG wordmark on the HULO black rounded square (the same mark as the huloglobal.com header), with explicit -light and -dark variants alongside the auto-switching default..env edit, no restart. Renewed subscription keys are picked up automatically too. New admin endpoints licence/purchase-link and licence/claim-status.@huloglobal/vendure-licence-sdk ^0.12.0.{{staffName}} variable signs the email body, and accept/decline/
opened notifications reach them directly.