Here are some the basic things you can do to improve your code..
1.) Use variables that describe the object. example: don’t use iiii, var, x , or y. as a variable.
2.) Name methods for what it does. example: getPromotionsApplied(order) gets the promo’s applied to the order.
3.) Use a state-machine when your models go threw a transition. (state machines)
4.) Don’t forget to write unit tests for your code. Unit tests are key for improving the quality of code produced, and reducing the number of bugs.