To enhance customer convenience and streamline the payment process, we've integrated dynamic QR codes into our sales invoices. Recognizing the increasing preference for digital payments via UPI and QR codes, this feature automatically generates a unique QR code on each invoice. This QR code dynamically embeds the specific invoice amount and the shop owner's designated UPI details. Upon receiving their bill, customers can simply scan the QR code using any UPI-enabled application to instantly and securely remit payment directly to the shop owner's UPI ID.

Purpose:
The primary purpose of incorporating dynamic QR codes into sales invoices is to modernize and simplify the payment experience for customers, aligning with the widespread adoption of UPI and QR code-based transactions. This feature is designed to:
- Facilitate Rapid and Contactless Payments: Enable customers to make payments swiftly by scanning a QR code, reducing transaction times and promoting a hygienic, contactless payment method.
- Enhance Customer Convenience: Offer a user-friendly and increasingly preferred payment option, catering to the digital payment habits of a significant customer base.
- Streamline the Checkout Process: Expedite the overall checkout experience, leading to improved customer satisfaction and operational efficiency.
- Support Digital India Initiative: Contribute to the broader movement towards a cashless economy by promoting digital payment solutions.

Benefits:
Implementing dynamic QR codes in sales invoices provides numerous advantages for both customers and shop owners:

For Customers:
- Convenient and Familiar Payment Method: Customers can utilize their preferred UPI applications for payment, a method they are likely already comfortable and familiar with.
- Faster Checkout Experience: Significantly reduces waiting time at the payment counter, making the checkout process quicker and more efficient.
- Error-Free Transactions: Eliminates the need to manually enter UPI details or invoice amounts, minimizing the risk of payment errors and ensuring accurate transactions.
- Seamless and Modern Payment Experience: Provides a smooth, technologically advanced, and hassle-free payment experience that aligns with contemporary digital expectations.

For Shop Owners:
- Efficient and Direct Payment Collection: Ensures payments are received directly and promptly into the designated UPI account, improving cash flow management.
- Reduced Cash Handling and Associated Risks: Decreases reliance on cash transactions, thereby minimizing risks associated with cash management, such as theft and handling costs.
- Improved Payment Accuracy: Guarantees accurate payment collection as the invoice amount is automatically embedded in the QR code, eliminating discrepancies.
- Enhanced Customer Satisfaction and Loyalty: Offering a convenient and preferred payment option improves customer satisfaction, potentially fostering customer loyalty and repeat business.
- Modern and Tech-Forward Business Image: Projects a progressive and technologically advanced business image, appealing to a broader customer base and enhancing brand perception.
- Operational Efficiency: Streamlines payment processing, potentially reducing staff workload and improving overall operational efficiency.
To create this QR code, we need to set up a Query Field in the print design that contains the following information:
-
- Bill No
- Net Amount
- UPI Details (Active UPI details sent by the customer)
The data needed to create the query field is provided below:
select 'upi://pay?pa=customerupi@okbank&pn=Firm name &tn=CC'+convert(VARCHAR(20),MBH_PBILL_NO) +' &cu=INR&am='+convert(varchar(20),NetAmount)
Below is the complete process for creating the Query Field:
Step 1: Navigate to the Reprint screen and load any invoice in the preview.
Step 2: Select the design edit option and open the print profile in the Easy Print tool.
Step 3: Press the F6 button and log in as a service user in the Easy Print tool.
Step 4: Press the F6 button again, then click on the "Field Table" tab below to create a query field.
Step 5: Click on "Modify Field" and select the "Net Amount" field from the user field name list. After selecting the field, disable the "Modify Field" option to create a new field.
Step 6: Name the field [For example - UPI_QR] and set the query field option to "Yes" beside the Query option.
Step 7: Next, click on the "Query Field" tab to enter the specified query. In the query, you need to change the customerupi@okbank & Firm name which will be provided by the customer.
Step 8: After entering the query, map the "MBH_PBILL_NO" and "NetAmount" from the field list on the left side. To map the field names, type the field names ["MBH_PBILL_NO" & "NetAmount"] into the search bar and click the search button. Double-click the field name to complete the mapping.
Searching the "MBH_PBILL_NO" field:
Searching "NetAmount" field:
Step 9: After mapping the fields, click on "Check Query Result" to verify the query outcome. In the Result section you will get the result.
Step 10: Click on the "Save" button, enter the reason for creating the query field, and then click the "Close" button.
Click on the OK button. The query field will now be available in the field list on the print design screen.
Step 11: Search for the keyword "UPI" and then click on the field and drag it to the design area where you want to display the QR code.
Step 12: Once the query field is successfully created, it will display the field result. Right-click on the field to get the result. Click on the "Get Field Result" option.
Click on the OK button to proceed.
Step 13: Click on the field, then click on the barcode settings icon to show the created query field as a query code.
Step 14: In the barcode settings screen, select the barcode font "QR Code Larger String" and save the settings.
Step 15: Finally, click on the preview button to check the print preview.
When the customer scans the QR code, the exact bill amount will be taken and the amount will be sent to the exact UPI which is mapped to the QR. Check the below screenshot for your reference.

Note:
When pasting the query to create a query field, if the quotes appear as double quotes, change them to single quotes before saving the query.