In a true MVC, the controller takes the input from the user, and translates it into commands either for controlling the views (e.g. create a new view or close a view) or for the model (e.g. updating the price, saving changes,...).
The methods that you describe do not belong to the controller but to the model: adding priced items, updating prices, removing stock keeping units (sku) and remove all the items is the responsibilitiy of the model. To quote your article:
the Model is the name given to the permanent storage of the data used in the overall design. It must allow access for the data to be viewed, or collected and written to, (...)
The Controller can be summed up simply as a collector of information, which then passes it on to the Model to be organized for storage, and does not contain any logic other than that needed to collect the input. (...)
The most common mistake made by developers is confusing the Controller for a gateway, (...)
So the controller shall not just be a gateway to the database. All database interactions belong to the model: the controller and the view know nothing about the database: they only know about the model.
Additional remarks :
There are several MVC variants that all share the principles above. In your article, there is one controller per view.
An ORM makes the mapping between objects (application) and tables (database) and facilitates access to the database. In an MVC architecture, the ORM is used to implement the model. It should not replace the model.
Different architectures may distribute responsibilities differently. But it's no longer MVC:
- If a controller acts as middleman between views and model, and views querry the controllen, then it's probably no longer a controller but a presenter in an MVP
- If a view has furthermore some databinding that is synched with the model via the controler, it's probably no longer a controller but a view-model in an MVVM
- If a controller has some business logic and database responsibilities that are not in the model, you probably made something wrong in the MVC, or there is a misunderstanding about the architecture that implements and EBC pattern in which the controller has a different purpose.