COMPLETE FEATURE CATALOGUE

MageMe EasyQuote
for Magento 2

The complete B2B quote extension — 124 verified features across 8 categories, covering the path from a customer’s first enquiry through a branded PDF proposal to a one-click hand-off into the native Magento checkout.

The Complete Quote Management Extension for Magento 2

EasyQuote turns Magento 2 into a full B2B quoting platform — a private negotiation layer on top of your existing catalogue, with a 9-status quote lifecycle, per-line negotiated prices, multi-row volume tiers, branded PDF proposals, and a direct hand-off to the native Magento checkout.

Every category links through to its own dedicated page for full detail. The numbers below are live: 124 verified features, 11 REST endpoints, 2 native GraphQL resolvers, 17 transactional email templates, and one canonical quote record from request through to converted order.

124
Features
8
Categories
9
Lifecycle Statuses
11
REST Endpoints

Quote Creation & Customer Portal

Learn more

Three self-service entry points, admin quote-builder tools, and a buyer portal that lives alongside native Magento order history.

Get-a-Quote button on cart

A button on the cart page turns an assembled basket into a formal quote request in one click.

Get-a-Quote in mini-cart

The same action in the mini-cart drawer — useful on category pages where the buyer hasn’t hit the full cart.

Popup request form

Modal request form keeps the buyer on the current page. Name, email, phone, message, optional custom fields, file attachments.

Logged-in & guest submission

Logged-in customers get pre-filled details; guests submit with just an email. An admin toggle can auto-register the guest as a Magento customer at submission time.

Admin-initiated new quote

Admin can build a quote from scratch on the quote grid, pick a customer, search catalog, and add products with negotiated prices.

Duplicate existing quote

Any quote duplicates with all line items, negotiated prices, and tiers intact — repeat customers and recurring orders on rails.

Bundle, grouped & downloadable products

Dedicated admin renderers for bundle, grouped, and downloadable SKUs; a pricing plugin fixes Magento’s children-calculated flag so bundle totals compute right on the quote and converted order.

Promote guest to customer

Edit-screen Create Customer / Guest Customer actions mint a Magento account from a guest-quote’s buyer details and bind the quote to it.

Quotes grid in My Account

A Quotes tab lists every quote the buyer has received, alongside orders — ready to review, accept, decline, or reply to.

Accept & decline actions

One-click Accept records timestamped approval; Decline lets the buyer formally reject. Both transitions appear in the quote history.

9-status lifecycle

Pending → Approved → Proposed → Accepted → Purchased, with Declined / Expired / Cancelled / Closed branches.

Stable quote number & history

Every quote gets a human-readable number that never changes, and every status transition is timestamped on the record.

Pricing, Discounts & Tier Pricing

Learn more

Per-line negotiated prices, multi-row volume tiers, tax-preserving currency handling, and per-store coupon controls.

Per-line negotiated price

A private per-line price overrides the catalog price on the quote, proposal PDF, email, and converted order.

Original vs negotiated display

MSRP can render as a strikethrough next to the negotiated price, so buyers see their saving on the quote and the PDF.

Row total recalculation

Every pricing change triggers a full totals refresh — subtotal, shipping, tax, grand total stay consistent.

Tax on negotiated prices

Native Magento tax re-applies to the negotiated price, respecting tax-inclusive / exclusive stores and destination zones.

Currency conversion

Totals render in the active store view’s currency; negotiated prices stay anchored to the base currency internally.

Store coupon toggle

A per-store setting decides whether cart-rule coupons may further reduce a quote-sourced cart.

Multi-row volume tiers

Per-quote tier tables that live on the line — different ladders for different buyers on the same SKU.

Auto-fill from group tier prices

Adding a product to a quote pre-fills the tier table from its native Magento customer-group tier prices — the admin starts from what the group already qualifies for, not from a blank table.

Customer-selectable tier

Buyers pick which tier to purchase before accepting, and totals refresh in place.

Selected tier persists to checkout

The tier the customer picks flows through quick checkout into the converted order with no drift.

Tiers visible in proposal email

The proposal email template renders every tier inline alongside the selected one for approvers.

Proposals & PDF Documents

Learn more

Branded PDF proposals, store-view-aware transactional emails, and a one-click send that carries the current quote straight to the buyer’s inbox.

Send proposal (idempotent)

One admin action regenerates the branded email and attaches the latest PDF — safe to repeat.

Manual email resend

Separate re-send action when the buyer forwards the proposal to an approver and needs a fresh copy.

Approve quote

One-click Approve transitions the quote into the approved state and triggers the customer notification.

Auto-attached PDF

The proposal email carries the generated PDF as an attachment — read-ready the moment the buyer opens the message.

On-demand PDF generation

The PDF is rendered on request from the current quote — every download reflects the latest negotiated data.

Admin download + customer email

Admin downloads from the grid; customer receives the same PDF via email. Both sides read from the same document.

Branded header, footer & logo

Per-store branding templates mean multi-store setups produce per-store PDFs from the same quote.

Configurable PDF footer

Separate configurable footer block for legal disclaimers, payment terms, or a per-store signature line.

Line items with tier pricing

Every line appears with its negotiated price, quantity, and full volume-tier table inline.

Terms, notes & footer copy

Store-level terms and a configurable footer cover the recurring copy every proposal needs.

Structured template variables

Proposal templates receive quote, items, totals, and branding as standard Magento template variables.

Per-store-view locale routing

Template selection follows the store view the quote was created on — DE quotes send DE, EN sends EN.

Email-client-friendly markup

Inline-styled markup renders consistently across Outlook, Gmail, Apple Mail, and corporate filters.

Email Notifications & Messaging

Learn more

13 real notification events covered by 17 transactional email templates — plus a two-way message thread on every quote.

Request confirmation

Immediate confirmation to the buyer when a quote request is submitted — no “did you get my message?” follow-ups.

Admin-reply notification

When the admin replies on the message thread, the customer is notified with the reply content.

New-quote email

When admin builds a quote proactively, the customer receives an email with the details to review.

Proposal send

Full proposal email with line items, pricing, and an accept link — the main conversion event.

Proposal approved

Customer is notified when the admin approves the quote — pricing is locked.

Quote follow-up reminder

Friendly nudge on silent quotes so negotiations don’t quietly expire.

Quote expiry reminder

Scheduled reminder before the quote expires — time to accept or re-negotiate before losing the offer.

Quote expired notice

Final notice when the quote crosses its expiry date — pricing is no longer valid.

Proposal expiration reminder

Separate from the quote expiry — the proposal itself carries its own expiry window.

Proposal expired notice

Closing email when the proposal lapses — admin can re-send or reopen as needed.

New-request admin email

Goes to the configured admin address so your sales team sees the lead straight away.

Proposal accepted (to admin)

Notifies the rep when a buyer accepts — the quote is ready to move to checkout.

Proposal declined (to admin)

Notifies the rep with the timing so they can follow up, adjust pricing, and re-send.

17 transactional email templates

13 events ship as 17 templates — some events have separate admin and customer variants. Editable in Marketing → Email Templates.

Per-store-view locale routing

The store view the quote was created on determines which template is sent — no admin configuration per customer.

Standard template variables

Templates receive the quote, items, totals, and formatted helpers as standard Magento template variables.

Email-client-friendly markup

Inline-styled, email-safe markup so every mail client renders the proposal consistently.

Shipping & Checkout Conversion

Learn more

Dedicated quote shipping, one-click cart hand-off to the native Magento checkout, and an order linked to its source quote.

Custom quote shipping carrier

Visible only on quote-sourced carts at checkout — never offered on regular public carts.

Configurable carrier title

Displayed name is configurable per store. Multi-store setups can carry different labels for different segments.

Configurable method name

Method line is configurable so you can describe service level — “5-day freight,” “white-glove delivery.”

Per-quote shipping amount

Admin types a shipping amount directly on the quote — matches a freight partner’s bespoke quote.

Shipping recalculates

Subtotal, shipping, tax stay consistent when items or quantities change on the quote.

Customer-editable shipping — global & per-quote

Store-level Allow customer to modify shipping toggle, overridable per quote — lock the negotiated carrier on freight-sensitive quotes, leave it open on others.

Quick Checkout (one-click hand-off)

Accepting a quote hands the buyer off to the native Magento checkout in a single click — every line, negotiated price, tier selection, and shipping amount intact, no custom checkout skin to maintain.

Permanent quote reuse

Flag a quote as permanent so it can be purchased multiple times until its expiry date — ideal for standing contracts, recurring-order frameworks, and annual wholesale agreements.

Native Magento cart compatibility

Quote items live in the standard Magento cart — theme, mini-cart, saved-for-later UX all work.

Any store-supported payment

Credit card, PO, third-party PO extensions, bank transfer — EasyQuote doesn’t dictate payment choice.

Multi-store-view routing

DE-created quote checks out through DE store with DE language, DE tax, DE payment.

Customer ownership guard

Quick-checkout route is gated to the customer who owns the quote.

Order ↔ quote linkage

Every quote-sourced order stores a link back to its source quote, surfaced on both admin and customer views.

Auto-transition to Purchased

When the order is placed, the source quote’s status flips to Purchased automatically.

Negotiated prices on order

Converted orders keep negotiated prices on invoices, shipments, and credit memos.

Refunds honour negotiated amounts

Converted orders carry negotiated line prices, so Magento credit memos refund what was actually paid — not the catalog price.

Expiry-aware quote state

Each quote carries an expiry date and an isQuoteExpired() helper; scheduled reminders and a final notice email go out before and after expiry.

Backorder-aware stock bypass

A store-level “Enable backorder quotes” toggle bypasses Magento’s stock check on quote lines — for made-to-order SKUs.

Workflow, Status & Reporting

Learn more

Nine lifecycle statuses, timestamped transitions, a shared admin grid, four mass actions, and CSV + XML exports.

Pending status

Default state for a customer-submitted quote request — the rep’s inbox of work.

Approved status

Admin reviewed and approved the quote — ready for proposal send.

Proposed status

Proposal has been sent to the customer with the PDF attached.

Accepted status

Customer accepted — quote is ready for quick checkout.

Declined status

Customer explicitly declined — admin follows up and adjusts if appropriate.

Purchased status

Accepted quote was converted to a Magento order — stays linked.

Expired status

Quote expired without acceptance — checkout path blocked, final notice sent.

Cancelled status

Admin revoked the quote — audit entry stamped.

Closed status

Admin-triggered archive for superseded or no-longer-relevant quotes.

Status change history

Every transition is timestamped on the quote record — full audit trail.

Conversation thread

Customer and admin messages on each quote, timestamped, read/unread indicator.

CSV export of quote grid

Respects active filters — pull “Pending over $10k” straight into Excel.

XML export of quote grid

Same filter context in XML — for ERP import or structured downstream systems.

Admin quote grid

Single grid for the whole pipeline across store views.

Grid search & filters

Filter by status, customer, store, date range, total.

Managed By assignment

Each quote is assigned to a responsible admin / sales rep. The grid surfaces a sortable, filterable Managed By column so each rep can focus on their own pipeline.

Mass actions (4)

Mass Approve, Mass Cancel, Mass Delete, Mass Set-Pending — batch triage in one action.

Duplicate quote

Any quote duplicates from the grid with line items, prices, and tiers copied.

API, Integrations & Themes

Learn more

11 REST endpoints, 2 GraphQL resolvers, and native Magento extensibility patterns — integrate like any native module.

GET /V1/easyquote/quote/:id

Fetch a single quote record by ID with its full payload.

GET /V1/easyquote/quote/:id/items

Return every line item on a given quote with negotiated prices and tier data.

GET /V1/easyquote/quote/quotes

List all quotes with Magento search-criteria filtering — paginated, sortable.

GET /V1/easyquote/request/:id

Fetch a quote request by ID with its form payload, attachments, thread.

GET /V1/easyquote/requests

List all quote requests — a feed of inbound leads for CRM or lead-scoring.

GET /V1/easyquote/quotes

Customer-scope list of the authenticated user’s quotes.

GET /V1/easyquote/quotes/:quoteId/items

Customer-scope item detail for rendering the line-item view.

POST /V1/easyquote/quotes/:quoteId/addToCart

Moves every quote line into the native cart with negotiated prices preserved.

GET /V1/easyquote/customer/:id/requests

Customer-scope list of quote requests the authenticated user has submitted.

POST /V1/easyquote/request/customer/:id/submit

Submits a new quote request on behalf of the authenticated customer.

POST /V1/easyquote/request/cart/:id/submit

Submits a quote request derived from the customer’s existing cart in one call.

Native GraphQL resolvers

Quote (single by ID) and Quotes (customer list) ship as native GraphQL resolvers.

Luma theme compatibility

Works on default Magento Luma out of the box — no overrides needed.

Breeze.js compatibility layer

Dedicated MageMe_EasyQuoteBreeze module for Breeze-based themes like Swissup Breeze Blank.

Hyvä theme compatibility

Dedicated Hyva_MageMeEasyQuote module — Hyvä/Tailwind templates, Hyvä Checkout integration, Tailwind CSS class purging.

Adobe Commerce Cloud compatibility

Runs on Open Source, Adobe Commerce, and Adobe Commerce Cloud the same way.

Multi-store-view routing

Every API response respects the requesting store view — currency, locale, carrier title.

Service contract interfaces

Every operation exposed through service-contract interfaces for DI injection and override.

DI preference overrides

Swap any service implementation via DI preference in your own module.

Event observers

Standard Magento events plus easyquote_cart_add_items_after and mm_calculate_product_price_options.

B2B Use Cases & Configuration

Learn more

Wholesale, manufacturing, and tender workflows, plus seven admin-configurable settings that shape how EasyQuote behaves across your stores.

Per-account volume pricing

Different tier tables per buyer on the same SKU — distributors don’t see each other’s deals.

Catalog visibility + customer groups

Pairs with Magento customer-group visibility to hide wholesale-only catalogs from retail buyers.

Configurable-product options in quotes

Every configurable and custom-option product works on the quote the same way as the cart.

Backorder-aware stock bypass

Store-level toggle lets quote lines bypass Magento’s out-of-stock check — on for made-to-order, off for strict-stock stores.

Lead-time-aware expiry

Per-quote expiry window — 60/90 day proposals without forcing short policy on everything.

Formal PDF proposal

Branded PDF for tender submissions, procurement portals, or any PDF-routed buyer workflow.

Structured pricing breakdown

Line items, per-unit price, tiers, subtotal, shipping, tax, grand total in a predictable structure.

Audit trail for compliance

Timestamped transitions, preserved conversation thread, attachments bound to the record.

Enable / disable per scope

EasyQuote can be enabled per website or per store view — run it only where it fits.

Cart & mini-cart button toggle

Toggle the Get-a-Quote button independently on the cart page and the mini-cart drawer.

Default quote expiry window

Store-wide default expiry that auto-fills on new quotes; per-quote overrides still available.

Shipping carrier & method labels

Configure the title and method label of the quote-specific shipping carrier per store.

ACL roles for quote management

Standard Magento admin ACL permissions for every quote action.

Admin email recipient

Configurable admin email per store view for new-request and accept/decline alerts.

Coupon-apply toggle on quote carts

Store-level toggle controls whether cart-rule coupons may further reduce a quote total.

Frequently Asked Questions

Licensing, tiers, compatibility, and how EasyQuote fits alongside other B2B tools in the Magento ecosystem.

How does EasyQuote compare to Adobe Commerce B2B native quoting?

Adobe Commerce B2B’s native quoting is part of the paid B2B bundle on Adobe Commerce. EasyQuote runs on Magento Open Source, Adobe Commerce, and Adobe Commerce Cloud with the same codebase, and ships a focused quote lifecycle without the rest of the B2B suite — simpler install when you don’t need the full Company / Requisition / Shared-Catalog feature set.

How does EasyQuote compare to Cart2Quote?

Cart2Quote has been in market longer and has a broader add-on ecosystem. EasyQuote is leaner, uses native Magento patterns exclusively (service contracts, DI preferences, standard REST / GraphQL), and ships a smaller, more predictable integration surface — better fit for stores that prefer a tight core to a wide feature list.

How does EasyQuote compare to Aheadworks B2B Company Accounts?

Aheadworks focuses on Company Accounts and multi-buyer hierarchies. EasyQuote focuses on the quote itself — its pricing, proposal, lifecycle, and conversion — rather than the organisational structure around the buyer. The two complement each other for teams that need both.

What are the system requirements for EasyQuote?

Magento 2.3.5+ through 2.4.x on Open Source, Adobe Commerce, or Adobe Commerce Cloud. PHP 7.4, 8.1, 8.2, 8.3, or 8.4. MySQL 8.0+ or MariaDB 10.4+ (same as Magento’s own matrix). Composer install, no extra services, no metered API. Upgrade paths track the Magento release schedule.

Does EasyQuote work with Hyvä themes?

Yes. EasyQuote ships a dedicated Hyva_MageMeEasyQuote compatibility module with Hyvä/Tailwind templates, Hyvä Checkout integration (Magewire/LiveWire), and Tailwind class purging. Luma and Breeze.js are supported through their own dedicated compat modules. Full details on the API & Themes page.

Is there a Lite (free) edition?

The Lite edition is in development and not yet released. The current product is EasyQuote with the full feature set as catalogued on this page.

How much does EasyQuote cost?

Two editions, one-time licence per Magento installation. Community Edition: €179 (Magento Open Source). Enterprise & Cloud Edition: €429 (Adobe Commerce, Adobe Commerce Cloud). Both include lifetime updates, dev and staging copies under the same licence, and a 30-day money-back guarantee. No metered API calls, no subscription.

Does EasyQuote require any third-party service subscriptions?

No. The module is entirely self-hosted — no third-party cloud, no SaaS dependency, no metered API calls. Transactional emails use your store’s existing mail transport; PDFs are generated server-side.

Can EasyQuote run alongside other B2B extensions?

Yes. EasyQuote focuses on quote lifecycle and doesn’t own Company Accounts, Shared Catalogs, or Requisition Lists — so it coexists with dedicated company-account modules, shared-catalog modules, and CRM integrations that cover those areas.

How long does typical installation and configuration take?

Composer install and module enable take minutes. Base configuration — admin email, store-view-specific carrier title, default expiry window, email template review — takes under an hour for a typical single-store site. Multi-store setups scale with the number of views requiring custom branding or locale routing.

Is there a trial or money-back guarantee?

Yes — a 30-day money-back guarantee applies. Contact MageMe support to arrange trial installs, staging licences, or refunds within the window.

How fast is MageMe support response?

Support tickets are answered within 24 hours, Monday to Friday. The response SLA covers every active licence — Community and Enterprise & Cloud. For ongoing development work (module tweaks, custom features, performance tuning), MageMe’s separate Support & Maintenance plan covers 20 or 40 hours per month.

Is EasyQuote GDPR and CCPA compliant?

Yes. EasyQuote uses standard Magento customer and quote data structures — no separate data silo, no third-party cloud. Customer-initiated data deletion removes linked quote records through the admin grid’s Mass Delete action, and the status history is removed with the parent quote. Transactional emails use your store’s existing mail transport; no data leaves the installation.

Who maintains EasyQuote?

EasyQuote is built and maintained by MageMe, the same team behind WebForms, Schema, and the wider MageMe Magento extension catalogue.

Ready to Run Real B2B Quoting
on Magento 2?

Experience the most comprehensive quote management extension for Magento 2 — 124 verified features, native code, 30-day money-back guarantee.

124
Features
9
Lifecycle Statuses
11
REST Endpoints