раздели систему на компоненты, исходя из задачи. Скажем, если исходить из паттрена MVC — должны быть объекты для работы с базой (Order, Client и т.д.), класс занимающийся репрезентативной частью и контроллеры (OrderController (Причем для пользовательской части можно наследовать от Controller а для админки AdminController), ClientController, CatalogController). Магазин можно грубо разделить как минимум на каталог и корзину. Есть еще доставка, оплата и т.д. Все эти части можно разнести по модулям (в случае доставки и оплаты — это будут контроллеры и модели)…
Ну это так, примерно. Просто надо разбить все на эти самые подзадачи. Причем надо продумать как так разбить что бы изменения в одном компоненте не привели к необходимости менять что-то еще…