Hey!
We're currently using velocity script tokens for dynamic content on our emails and currently having some challenges with getting the script to show a dollar amount with the $ format.
I was expecting the field lead.yearlyAmount to spit out the amount with the $ sign (field type is currency) but I guess that's not how it works so we've tried using the script below to no avail. The script doesn't seem to be parsing - any ideas?
#set($yearlyCurrency = $number.toNumber($lead.yearlyAmount))
$esc.dollar$number.format('#,###', $yearlyCurrency)
Any help would be appreciated!
Jervis
Solved! Go to Solution.
First: you should never use Currency -- for anything -- despite the name. For round numbers, use Integer. For numbers with decimals, use scaled Integers (value * 100) and scale them back in Velocity or JS.
Also, please highlight code when posting using the syntax highlighter so it's readable. Highlight as Java as it's closest to VTL.
You don't need to convert to a Number (Double) separately, $number.format() does that conversion internally. Make sure you escape all your special Velocity symbols.
${number.format("${esc.d}${esc.h},${esc.h}${esc.h}${esc.h}", $lead.yearlyAmount)}
First: you should never use Currency -- for anything -- despite the name. For round numbers, use Integer. For numbers with decimals, use scaled Integers (value * 100) and scale them back in Velocity or JS.
Also, please highlight code when posting using the syntax highlighter so it's readable. Highlight as Java as it's closest to VTL.
You don't need to convert to a Number (Double) separately, $number.format() does that conversion internally. Make sure you escape all your special Velocity symbols.
${number.format("${esc.d}${esc.h},${esc.h}${esc.h}${esc.h}", $lead.yearlyAmount)}
Worked perfectly! Was doing my head in for a good few weeks.Thank you Sanford Whiteman!
*also edited to highlight code
Thanks a lot for the highlighting, helps others remember.
How can I apply that same scripting to show a $ sign and a comma in an amount. For example, I tried to apply it this way, but no luck. (I am a very novice user)
${number.format("${esc.d}${esc.h},${esc.h}${esc.h}${esc.h}", $lead.APPBURSELAMNT)}
That is the correct syntax to output
12345
as
$12,345
so we’d need to know what you mean by “no luck”.
I entered the script into my token exactly as you edited it. The number still shows up without a comma and will has the ".0" at the end which is odd because the data coming into Marketo has the comma and .00
WAIT, I got it. I knew it was user error! Thank you!
Thanks @SanfordWhiteman I appreciate the help, but it's still not rendering properly. I'm sure it's user error so I opened a ticket.