=== HULO Quotations ===
Contributors: huloglobal
Tags: quotes, quotation, request a quote, estimates, pdf
Requires at least: 6.5
Tested up to: 7.1
Requires PHP: 8.1
Stable tag: 0.1.0
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

Quote request forms, a quote builder with line pricing, PDF quotes and online acceptance with a typed signature. Works on any WordPress site.

== Description ==

HULO Quotations turns "can you send me a quote?" into a tidy, trackable workflow on any WordPress site. With WooCommerce it also quotes your products and baskets.

**Customers ask for a quote**

* A "Quote request form" block, or the `[hulo_quote_request]` shortcode, on any page. `[hulo_quote_request item="ID"]` asks about one saved item.
* Each request lands under HULO → Quotations as a *requested* quote, with known items already priced. You get an e-mail with the details.
* A hidden honeypot field and a 10-an-hour limit per address and per e-mail keep bots and floods out.

**Build and price quotes**

* Quote builder with free-text lines and your own saved catalogue items (name, SKU, price, tax rate), quantities, per-line discounts, a quote-level percent or fixed discount, VAT, validity, notes, terms and internal notes.
* Link a quote to a WordPress user, and choose the member of staff the quote is "prepared by".
* Safe sequential numbering (prefix-year-number, never issued twice, even under load).

**Share, accept, track**

* Download a branded PDF of any quote, or copy the customer link. "Mark as sent" opens the quote for the customer; "Write the e-mail in your mail app" prepares the message from your template.
* The customer's quote page shows the lines and totals, prints cleanly, offers the PDF, and lets them **accept with a typed-name signature** or decline.
* Every step lands in the quote's activity trail: created, sent, opened, accepted or declined, paid, expired, comments. Optional "first opened" e-mail to you.
* Quotes expire on their own at the end of their validity; extend or revive them in one click. Duplicate a quote, or revise it (the original is superseded so only one version can be accepted).
* If the site runs HULO Payments, a payment for a quote marks the quote paid.

**My quotes and reports**

* The "My quotes" block or `[hulo_my_quotes]` lists the quotes linked to the signed-in user's account (picked in the builder, or requested while signed in) with view, PDF and pay links.
* The Quotes list has status views, search and figures (requests waiting, open pipeline, 30-day win rate and value won, average response time). Reports show quotes by status and the last 12 months.

**With WooCommerce**

* Quote WooCommerce products and variations in the builder, and pick existing customers.
* A request panel on product pages, on the classic cart and below the Cart block; basket requests copy the shopper's cart.
* My Account → Quotes. Money uses your shop's currency and format, and e-mails use WooCommerce's e-mail template.
* Compatible with HPOS (custom order tables) and the Cart and Checkout blocks.

= Quotations Pro =

The optional [Pro add-on](https://huloglobal.com/wordpress-plugins/quotations/) adds automation on top:

* E-mail quotes to customers with the PDF attached, sent as the member of staff who prepared them; test sends to yourself.
* Accepted quotes become a HULO Payments pay link at exactly the quoted total, and the customer goes straight to payment. With WooCommerce you can make a WooCommerce order instead.
* One automatic chaser for unopened quotes and an expires-soon reminder.
* An acknowledgement e-mail for every request, and a weekly report of what your quotes did.

Try Pro free for 14 days, no card.

== Installation ==

1. Install the plugin from Plugins → Add New (search for "HULO Quotations"), or upload the zip, and activate it.
2. Go to HULO → Quotations → Settings: add your business name, currency, reply-to and notification addresses.
3. Add your regular items under Catalogue items (not needed with WooCommerce: your products are used).
4. Add the "Quote request form" block to a page, and the "My quotes" block to another if your customers have accounts.
5. Click **New quote** to build your first quote.

== Frequently Asked Questions ==

= Do I need WooCommerce? =

No. Everything works on a plain WordPress site with saved catalogue items and free-text lines. When WooCommerce is active, products, the cart panel and My Account join in.

= Can the customer pay an accepted quote online? =

With the Pro add-on and HULO Payments, acceptance creates a pay link and takes the customer to the payment page. With WooCommerce, Pro can create a WooCommerce order instead. Without either, acceptance is recorded and you are notified.

= How are VAT and discounts calculated? =

Line total = quantity × unit price × (100 − line discount) / 100. The quote discount is taken from the sum of the lines, VAT is charged on the discounted amount. All money is stored in whole minor units (pence or cents) and rounded once per figure.

= Is the customer link safe to share? =

Each quote has its own 48-character random link. Drafts and unpriced requests are never shown on it, and it is marked noindex.

= What happens to my data if I remove the plugin? =

Nothing, unless you tick "Delete all quotes and settings when the plugin is deleted" in Settings first.

== External services ==

This plugin does not connect to any external service. E-mail goes through your own site (wp_mail, or WooCommerce's mailer when WooCommerce is active).

== Screenshots ==

1. The quote builder with line items, discounts and live totals.
2. The customer's quote page with the accept and decline form.
3. The quote request form block.
4. Quotes list with figures.
5. Reports.

== Changelog ==

= 0.1.0 =
* First release: quote request form block and shortcode, quote builder with free-text and saved catalogue items, safe sequential numbering, PDF quotes, customer quote page with typed-name acceptance, status trail, expiry and revival, revisions, My quotes block and shortcode, Quotes list and Reports, HULO Payments payments mark quotes paid. With WooCommerce: products, product-page and cart request panels (classic cart and Cart block), My Account → Quotes.
