$ perl -e 'use Digest::SHA qw(sha1_hex); print sha1_hex("abc777X:description=some description of product:priceAmount=51.20:priceCurrency=EUR:shopID=60678:version=1")' 04d87d2718767ea0bef259c436ec63e3cde05be2
SHA-1 hash produces 20-byte output. If you represent these 20 bytes in hexadecimal, you will get 40 characters.
source share