Overview
This project implemented a custom Request a Quote workflow for The Paediatric Dental
Company’s Shopify store to support customers (notably government and wholesale buyers) who
require offline price negotiations, volume-based pricing, or purchase approvals. The work was
delivered in two phases:
Phase 1 — Single-product quote (Product page)
Added a visible “Request a Quote” / “Add to Quote” button on individual product pages.
When clicked, a form collected customer details (Full Name, Email, Company, Mobile, Address, optional ABN,
Country [AU/NZ], and notes).
On submission the system captured product details (title, SKU, quantity, price) and generated a PDF quote which
was emailed to both the customer and the store admin.
The UI followed Shopify Liquid standards and remained responsive and consistent with the theme.
Phase 2 — Multi-product quote (Cart page enhancement)
After Phase 1 the client requested cart-level quoting because the existing flow only supported one product at a
time.
Rimik Technologies extended the feature to the cart so customers could bundle all cart items into a single
combined PDF quote and submit one request for multiple products.
End-to-end the flow automated PDF generation, shipping/tax logic, and email delivery, simplifying quote
management and improving the customer experience.
The delivered solution preserved visible pricing (no hidden prices), supported ABN capture and address fields,
handled regional tax rules (GST for Australia vs no GST for NZ), and allowed admin-side quote receipt, tracking,
and conversion into orders.
The delivered solution preserved visible pricing (no hidden prices), supported ABN capture and
address fields, handled regional tax rules (GST for Australia vs no GST for NZ), and allowed
admin-side quote receipt, tracking, and conversion into orders
Challenges
The key technical and product challenges that drove the custom solution were:
-
Shopify limitations for quote flows
- Shopify’s native checkout and cart objects are built for direct purchases; there’s no built-in quote mode.
- Cart objects don’t natively pass multiple-item details into a single quote form.
-
Third-party app constraints
- Available apps (e.g., SA – Request a Quote, Quick Quote, Quotify) either only supported product-page quoting or had limited template/customization access.
- Some apps could not reliably attach generated PDFs to emails or calculate shipping/taxes automatically for quotes.
-
PDF generation for multiple items
- Merging multiple cart line items into one formatted PDF caused errors in the initial integration (notably in the Qvista backend).
- The system had to ensure all items, variants, SKUs, and custom notes were correctly listed and subtotaled.
-
Shipping & tax complexity
- Required weight-based shipping calculations (Sendle API) and region-aware logic for GST (AU vs NZ).
- Ensuring shipping and tax values in the PDF matched expected retail/draft order logic was non-trivial.
-
UX & navigation concerns
- After adding to quote, users experienced navigation bugs — for example, inability to access the cart directly except via cart icon click.
- The site needed to maintain both standard purchase flows (“Buy Now” / “Add to Cart”) and the quote flow without confusing customers.
-
Business rule changes
- Client requested changes to minimum order value and quantity logic (e.g., reducing min order from $200 to $50 and removing minimum-quantity constraints for certain categories), requiring theme-level overrides.
-
Permissions & operations
- Coordination required for Sendle API keys, Shopify draft order permissions, and app permissions — slowing parts of testing and delivery.
Solutions
Rimik Technologies implemented a robust, end-to-end custom solution addressing the above
challenges. The implementation covered front-end, backend, PDF automation, shipping/tax
logic, and operational handover.
Core Architecture & Flow (As Implemented)
Shopify UI & capture
- Added Request a Quote buttons on product pages and the cart page.
- Built a quote form to capture customer info including optional ABN and shipping address (AU/NZ).
Cart-level Collection
- Implemented custom Liquid and JavaScript logic to collect all cart line items — including title, SKU, variant info, quantity, price, and per-item notes.
- Bundled all items into a single payload for quote request submission.
Webhook & Backend Integration (QVista Services)
- Shopify triggers a webhook upon quote submission.
- QVista backend receives the webhook, fetches product and draft order data through API calls, and saves the full context (draft order ID, cart data, user fields).
Draft Order Support
- System creates or fetches a draft order to preserve cart state and pricing context.
- Draft order ID is stored within QVista context for tracking and consistency.
PDF Template & Generation
- Fetched a pre-defined PDF template and populated it dynamically with data — including multi-item tables, subtotals, totals, shipping, and GST labels.
- HTML-to-PDF conversion produced a formatted PDF buffer, which was stored and attached to emails.
Email Automation
- The backend mailer automatically assembled emails with the generated PDF attached.
- Emails were dispatched simultaneously to both the customer and the store admin.
Shipping & Tax Handling
- Integrated Sendle API for weight-based shipping calculations.
- Applied region-specific GST rules — AU included GST, while NZ was treated as non-GST.
- Ensured accurate display of shipping and tax values within both PDF and email.
UI Fixes & Business Rule Overrides
- Resolved navigation bugs, ensuring users could return to the cart or continue browsing seamlessly.
- Implemented theme-level overrides for minimum order value and minimum quantity rules per client request.
Technology Used
Shopify — Custom theme modifications using Liquid, front-end JavaScript, and responsive HTML/CSS
for the quote user interface.
QVista Services (Custom Backend) — Handles webhook reception, API orchestration, draft order
lifecycle management, PDF template storage, and the mailer system.
HTML-to-PDF Engine — Converts dynamic HTML templates into PDFs; templates were enhanced to support
variable product counts and flexible formatting.
Sendle API — Integrated for weight-based shipping calculations and applied within quote totals.
Email Automation — Backend mailer automatically attaches the generated PDF and dispatches it to
both the customer and admin.
Other Components — Shopify Draft Orders (via Shopify API),RESTful API calls between Shopify and
QVista Services, Server-side context storage for draft order metadata and PDF buffers, Theme-level overrides
implementing business rule adjustments