Project

General

Profile

Edit Copy Actions

Feature #8573

open

Implementing Product Quotation SMS integration

Added by Divya Inapakurthi about 13 hours ago. Updated about 13 hours ago.

Status:
New
Priority:
Normal
Target version:
-
Start date:
04/07/2026
Due date:
04/07/2026 (1 day late)
% Done:

100%

Estimated time:

Add

Subtasks


Add

Related issues

Updated by Divya Inapakurthi about 13 hours ago

Added/updated product quotation SMS event coverage end-to-end:
Product_Quotation_Created
Product_Quotation_Approved
Product_Quotation_Resent
Product_Quotation_Payment_Link_Sent
Product_Quotation_Fully_Paid
Product_Quotation_Partially_Paid
Product_Quotation_Payment_Failed
Implemented customer + admin SMS templates in product quotation flows:
Quote creation
Quote acceptance (customer and admin acceptance paths)
Resend quote
Create payment link
Resend payment link
Payment success (full/partial)
Payment failure (webhook)
Added payment/public links in SMS where needed:
Acceptance SMS now includes payment link (invoice public URL).
Admin-approved quote SMS includes payment link.
Resent pay link SMS text updated to explicitly include “resent”.
Standardized public invoice URL for customer actions:
Uses frontend public URL format:
CLIENT_URL/product-invoice-public-url/{invoiceId}
(fallback http://localhost:5173/...)
Fixed resend quote behavior when email missing:
resendQuoteEmail no longer fails with 500 if customer email is absent.
SMS still proceeds.
Returns success with warning metadata.
Fixed dynamic model/populate issue:
Resolved MissingSchemaError: Client in resend flow by avoiding problematic populate usage and using tenant-safe client lookup.
Client notification schema enhancement:
Added in client schema:
notification.phone (default true)
notification.email (default true)
Applied similarly in v2 client model.
Updated notification dispatcher behavior (notifyUsers):
Product quotation events treated as transactional-style.
Customer channel checks now honor:
notification.phone !== false
notification.email !== false
Reduced dependency on reminder-only gating for quote critical notifications.
Fixed Stripe payment link failure (customer_email invalid):
Added safe email validation before passing customer_email to Stripe.
If email invalid/missing, session still created; email sending skipped gracefully.
Fixed makepaymentLink.ejs rendering crash:
Added missing paidAmount / dueAmount in one admin approval render path.
Hardened EJS conditions to avoid undefined-variable runtime errors.
Repaired addProductInstallmentAndPayViaAdmin stability:
Fixed broken function structure/syntax (Missing catch or finally after try).
Prevented side-effect failures (receipt/email) from failing payment save flow.
Restored consistent SMS notification trigger for partial/full payment.
Fixed invalid sale enum mapping:
replaced invoice_online with valid online_invoice, and mapped all payment methods correctly.
Added bank_transfer support in installment payment flows:
Enabled in both handlers:
addProductInstallmentAndPayViaAdmin
addProductInstallmentAndPay
Added valid sale payment mapping:
bank_transfer -> invoice_bank_transfer
Included in processing branches and success messages.

Actions #2

Updated by Divya Inapakurthi about 13 hours ago

  • % Done changed from 0 to 100
Edit Copy Actions

Also available in: Atom PDF