Это же БЛ, зачем для нее либу делать и в паблик выкладывать?
Насколько просто адаптировать под свои нужды? Добавить ещё входящих - fee, commission, taxes
OCP соблюдён. Все типы используют extends.
У нас при использовании в объектах sales куча дополнительных полей.
В будущем может и taxes будет, если будет у нас такая задача. Но по задумке, это можно будет "навернуть", не меняя вычисления в totals
Это не частное решение. Там в пдф файле представлена теоретическая модель, которая реализована в коде. Я достаточно поработал в мадженто, чтоб сделать модель достаточно абстрактной и расширяемой для новой функциональности.
К слову, сейчас пилим мульти-пеймент, когда заказ оплачен из нескольких различных источников. В каждом документе (инвойс/рефанд/отмена) надо будет знать, какая часть total к какому источнику payment относится