Ну да. Кроме одного отличия - там айтемы по total сортируются, а ниже - наоборот, по скидке. Я не пытался убрать общие части кода в этой функции - от части потому, что тогда стало бы ещё менее понятной, хотя функция тупая, как бревно же)))
но вообще этот код в реалиях бизнес проекта не работал бы. просто погряз бы в доп условиях по флажкам, скидкам, зависимостям от типа продукта, сезонных всяких купонов и прочего
Ну, код самого магазина - грязный, да. Мне удалось выделить эту либу в чистый отдельный пакет. А изменения я делаю уже даже не из бизнес задач - в проекте и без последних изменений всё работает ЗЫ: на сайте у нас есть и разные типы продуктов, и разные виды оплаты и дофига разных типов скидок