1) I changed it to integer because wanted to check the value for 3 days of duration.
But it’s already a Long. Why do you want it to be an Integer? You can compare equality between a Long and Integer just fine. Both sides are cast to Long automatically.
2) We are already using smartlist, in that we are putting the qulification criteria of 3 days so not any other will pass out.
Not sure what that has to do with the question. I had asked why, exactly, you’re checking for Boolean falseness here:
3) I wanted to get the serial number of custom object which is falling in this criteria.
Again, doesn’t seem to answer the question. Why are you assigning a variable to the productSerial property of the first item in the list (.get(0) = index  = first item)? Why aren’t you using $prod.productSerial here?
Earlier we have used below URL behind the image where serialNo is email script token but this token was not populating the values of serial number which sits inside of custom object so Marketo Support team suggested to put the image as well as url inside of velocity tokens.
You have to put the entire <a> tag, from start to finish, in Velocity. You can’t do it piecemeal like this: if it’s a link, it has to all come from Velocity. That’s why support said that — it’s true!
Also, the code refers to variables like
Do you have those declared in another token included earlier in the email? You must.
... View more