The document provides an overview of techniques for customizing OroCRM, including:
- Adding a new bundle manually or using commands, registering the bundle, and setting bundle priorities
- Creating a new entity and generating CRUD functionality including controllers, forms, routing, and views
- Adding migrations for data and schema changes
- Overriding existing bundles by overriding services, controllers, routing, views, forms, and JavaScript modules
- Key techniques for customizing include extending classes rather than replacing them, using annotation and configuration overrides, and utilizing placeholder blocks in overridden template files.