If a partner is requesting to add an additional cost to a panel/inverter based on the Lender selected, you can do this in V2 by creating a custom Pricing Option for the equipment. This can also be used if the partner is wanting to restrict the use of a panel/inverter based on the lender selected
Adding an additional cost to a panel/inverter based on the the Lender
Create a custom Pricing Option for the panel/inverter. For Pricing Option Inputs, be sure to add pricing inputs for BOTH the default price AND the requested additional cost.
MODULE (panel)
in the example below, the partner is requesting that this Module have an additional $0.08/ppw when EverBright is selected as the Lender. The module has a default fee of $0.17/ppw, so with the additional cost, EverBright's ppw would be $0.25/ppw
/span> /span>
Amount FUNCTION for Modules:
(financeMethodName, moduleCount, capacity, EverbrightPPW, ppw) => {
if (financeMethodName === "EverBright") { return moduleCount.times(capacity).times(EverbrightPPW).round(2); } else if (financeMethodName != "EverBright") { return moduleCount.times(capacity).times(ppw).round(2); }
}
(financeMethodName, moduleCount, capacity, EverbrightPPW, ppw) => { if (financeMethodName === "EverBright") { return moduleCount.times(capacity).times(EverbrightPPW).round(2); } else if (financeMethodName != "EverBright") { return moduleCount.times(capacity).times(ppw).round(2); }}
INVERTER
For inverters, you would create a custom Pricing Option just the same as you would for a Module, but the function inputs and function code are a little different.
/span>
/span>
Amount FUNCTION for Inverters:
(financeMethodName, systemSizeWatts, ppw, everbrightPPW) => {
if (financeMethodName === "EverBright") { return systemSizeWatts.times(everbrightPPW) }
else if (financeMethodName != "EverBright") { return systemSizeWatts.times(ppw) }
}
(financeMethodName, systemSizeWatts, ppw, everbrightPPW) => { if (financeMethodName === "EverBright") { return systemSizeWatts.times(everbrightPPW) } else if (financeMethodName != "EverBright") { return systemSizeWatts.times(ppw) }}
Here is a test company module you can reference as an example: https://valhallasolar.enerflo.io/equipment/modules/92f3faf9-13d4-4483-8edd-7ee590a35ae9
Restricting the use of a module/inverter based on the Lender selected
You can also use this same method to restrict the use of a model/inverter based on the Lender selected. By adding a custom pricing model, if you select a model/inverter that is restricted by a lender and that lender is chosen, on the proposal stage, an error will occur. The error message can be customized within the pricing model function.
In the example below, the Module CANNOT be used if Service Finance is the lender. The module is chosen in the design stage, but when Service Finance is selected, the rep will see the proposal error with the customized throw range message
/span>
Here is the Module's setup:
/span>
/span>
Amount FUNCTION with Throw Range Error
(financeMethodName, moduleCount, capacity, ppw) => {
if (financeMethodName != "Service Finance") { return moduleCount.times(capacity).times(ppw).round(2); }
else if (financeMethodName === "Service Finance") { throw RangeError(" You can't use this panel with Service Finance. Please return to your design and pick another panel") }
return Big(0);}
(financeMethodName, moduleCount, capacity, ppw) => { if (financeMethodName != "Service Finance") { return moduleCount.times(capacity).times(ppw).round(2); } else if (financeMethodName === "Service Finance") { throw RangeError(" You can't use this panel with Service Finance. Please return to your design and pick another panel") } return Big(0);}
Here is a test company module you can reference as an example: https://valhallasolar.enerflo.io/equipment/modules/49a75219-d9c7-495b-9473-b281f29153e5