The process of working on the project
Customer Briefing
Before the interview, the client sent us materials to get acquainted with the service and a quite clear task that we needed to perform. So the questions were mostly about flow, tasks, and user interaction with the interface.
Made a plan of action

made a list of what needs to be or should be done;

discussed what we would do together, what we would do separately;

timed out.
OOP
This stage was the most difficult. Because it was necessary to move to another level of understanding of reality 🙂 But thanks to the understanding of entities and their functions, it became easier to work on the project.
But, thanks to the understanding of entities and their functions, it became easier to work on the project. We understood what objects there are to interact with, we documented the logic of the processes.
What we consider entities, what properties they work with, who has access to what methods. Roughly speaking - who can do what in general (divided into roles).
Parallel to this stage, a transcription of the interview with the client was made.
Process diagram
The goal of this stage was to lay out all the stages of working on the product.
We divided the process of working on the product into five stages (the beginning of work, adding the category, information, photos and delivery to the storefront) and created a scheme for each role, which was present in the process of working on the product. As a result, we came up with a voluminous scheme, which we edited several times and tried to simplify.
Who does what in terms of physical processes, at what stage, in what sequence, what are the corner cases and whether we will process them or think it is a mistake and wrap up the process.

What did it get us? When you're redoing complicated logic, you need to see each step, not just present it. It's easier to see unnecessary steps or a point where you can simplify the interaction between roles, and perhaps somewhere it is absolutely unnecessary and the system can do it. And that's how it came out. As a result, we removed pieces of the interface that were not used and/or duplicated. Why weren't we afraid to? Because the project has existed for a very long time and was developed "on the fly".