Можно просто уточнить условие - и будет работать. Сумму в итоге посчитает. Вот так:
total_cost = 0
while True:
price = int(input("Стоимость товара (введите 0, если больше покупок нет): ")
if price == 0:
break
total_cost += price
print("Стоимость всех покупок:", total_cost)
А вот тест:
Стоимость товара (введите 0, если больше покупок нет): 6
Стоимость товара (введите 0, если больше покупок нет): 4
Стоимость товара (введите 0, если больше покупок нет): 2
Стоимость товара (введите 0, если больше покупок нет): 0
Стоимость всех покупок: 12
Код корректный и выводит сумму покупок. Если сумма не выводится, возможно проблема в том, что программа не доходит до строки вывода, то есть она не прерывается по условию в строке 5. Проверьте правильность ввода данных и попробуйте ввести 0, чтобы прервать цикл. Также убедитесь, что отступы в коде корректны.