Project

General

Profile

Actions

Feature #569

open

Feature #568: Add New Product. Bolt Device Protection

V3 Device Protection additions

Added by Greg Krabbenhoft 11 months ago. Updated 9 months ago.

Status:
QA
Priority:
Normal
Start date:
05/20/2024
Due date:
% Done:

0%

Estimated time:

Description

This product will ONLY be added to daily policies, not 6MO or annual. Logic also needs to be included to add this only to US residents' policies.
In the policyCosts table of the database, we will need 2 new columns, device_premium and device_fee. Currently there will be no fee associated with it, however it's better to plan for the future. Premium will be determined at a later date. Use a placeholder of $0.60/policy for now. This information will also need to be added to accounting's Raw Data report that is pulled every month as soon as we go live.

Updates will need to be made to the coverage comparison pages on the quote results page. Another row with device protection will need to be added. All daily policies will show green (included) for this product.

After a sale, but prior to the document download page, we will need to make a call to Bolt's API to provide them information about each policy. Their API information can be found here:

Use TravelEnrollment Enroll and Cancel
https://uatportal.boltinsurance.com/uat/api/V1/IntegrationAPI/swagger/index.html
https://uatportal.boltinsurance.com/uat/api/V1/IntegrationAPI/TravelEnrollment/Enroll
https://uatportal.boltinsurance.com/uat/api/V1/IntegrationAPI/TravelEnrollment/Cancel

Test API key: C817817A-A6ED-4248-BD2D-A85B6D70A105 (production API key will be forthcoming)

The API call should be made after we get a positive response from the Braintree API which indicates a sale and charge has gone through. If the charge fails, Bolt should not receive information about the customer or policy. Likewise, if a customer cancels a policy, we send the information to Bolt only after the cancellation goes through with Braintree.

API field mapping
"accountNumber": "",
"deviceProtectionProductNumber": "DEWForNFPTravelPayForDays",
"customers": [ {
"policyNumber": policydetails:policy_num,
"premium": .6,
"firstName": policydrivers:first_name,
"middleName": policydrivers:middle_name,
"lastName": policydrivers:last_name,
"contact": {
"address": {
"line1": policydrivers:address1,
"line2": policydrivers:address2,
"line3": "",
"city": policydrivers:city,
"state": policydrivers:state, - Must cross reference with the state table for the 2 letter state code
"postalCode": policydrivers:zip,
"country": "US"
},
"emailAddress": users:email,
"phoneNumber": policydrivers:phone,
"phoneCountry": ""
}

The declarations packet will need to be updated to include information for the customer regarding this coverage. Documents are forthcoming to add to the packet.


Files

clipboard-202406181526-3r8kv.png (365 KB) clipboard-202406181526-3r8kv.png George Howington, 06/18/2024 10:26 PM
clipboard-202406181541-yadnd.png (159 KB) clipboard-202406181541-yadnd.png George Howington, 06/18/2024 10:41 PM
clipboard-202406181547-nynlw.png (68.7 KB) clipboard-202406181547-nynlw.png George Howington, 06/18/2024 10:47 PM
clipboard-202406181556-apiao.png (37.1 KB) clipboard-202406181556-apiao.png George Howington, 06/18/2024 10:56 PM
Actions #1

Updated by Leo Esaki 11 months ago

  • Status changed from New to In Progress
Actions #2

Updated by Leo Esaki 11 months ago

  • Status changed from In Progress to QA
  • Assignee changed from Leo Esaki to George Howington

Updated by George Howington 10 months ago

Hi Leo,

I have found the following issues:

Quote Result's page:
(1) "This product will ONLY be added to daily policies, not 6MO or annual. Logic also needs to be included to add this only to US residents' policies."
(A) On the Quote results, the inclusion matrix shows this inclusion on 6-months and annual policies (1). In addition, changing tabs, the daily rates are still exposed (2). See image One below.

(2) "In the policyCosts table of the database, we will need 2 new columns, device_premium and device_fee. Currently there will be no fee associated with it, however it's better to plan for the future. Premium will be determined at a later date. Use a placeholder of $0.60/policy for now. This information will also need to be added to accounting's Raw Data report that is pulled every month as soon as we go live."
(A) You need to provide the SQL logic which adds the two additional fields into the policyCosts table. Place this update into the "~<repository>/sql" directory
(B) In the results, the $0.60 is not reflected in the results or debugger. See Image two below

Credit Card Page:
(1) I have selected GNP policy expressing the incorrect charge of 32.10 (off by $0.60). The credit card page reflects the same incorrect amount of 32.10. See image three below.

Resulting declaration.
(1) On the top receipt, the additional $0.60 charge is not reflected. The receipt needs to be modified to reflect device protection (1). See Image four below.
Sub Header: "Included Device Protection"
Next Row: Premium: $0.60
Next Row: Fee: $0.00
Next Row: Sub Total: $0.60

Please et me know if you have any questions and thank you,
--George

Image One:

Image Two:

Image Three:

Image Four:

Actions #5

Updated by George Howington 10 months ago

Hi Leo. :) For your question "[N]ow the receipt page is left. And to show the additional row for device protection, I need to ensure it is daily policy with US residents. But when print policy details, I can't use session infos. So what do you think about this? I think we need to create a new column to identify the correct statement."

You can use the existing data in the DB to confirm. Here is the mapping you can use:
(1) Number of days: From Lines 159, 160 and 162 in dec.mhtml ($p directly retrieves from the DB)
$enter_date = DateTime->from_epoch(time_zone => $p->get_policies_time_zone, epoch => $p->get_policies_enter_date());
$leave_date = DateTime->from_epoch(time_zone => $p->get_policies_time_zone, epoch => $p->get_policies_leave_date());
$days = Delta_Days($enter_date->year, $enter_date->month, $enter_date->day, $leave_date->year, $leave_date->month, $leave_date->day);

(2) US Residents: From line 2178 in dec.mhtml ($p directly retrieves from the DB)
$p->get_policyowner_citizenship() == 1 ? "USA"

Actions #6

Updated by Leo Esaki 10 months ago

  • Status changed from In Progress to QA
  • Assignee changed from Leo Esaki to George Howington
Actions #7

Updated by George Howington 9 months ago

  • Assignee changed from George Howington to Leo Esaki

Hi Leo,

As with endorsements, please merge the master branch into this branch and I will resume my testing.

Thanks,
--George

Actions

Also available in: Atom PDF