Если по хорошему, то вы слишком сильно замахнулись… Это биллинг с балансами и т.п., которого у нас пока еще нет.
Но если вы просто хотите реализовать разные типы товаров (которые по своей сути едины, только надписями отличаются), то можете создать еще один шаблон товара, а в смарти-шаблоне по условию выводить ту или иную надпись. Но как вы потом собираетесь решать выводить клиенту надпись «Окончательный расчет» или нет? Ведь для этого надо по идее смотреть вносил он предоплату или нет.
К слову, недавно спрашивали про один товар в корзине, может это и ваш вариант. Там я писал, что в принципе наш биллинг позволяет выполнять частичную оплату по счету, то есть на один и тот же заказ принимать несколько оплат, и если в заказе будет только один товар, то по нему вы можете получить заказ и посмотреть был он полностью оплачен или нет. Но и это задача совсем не из легких.