Standard component customization - means copying a standard component to the own namespace and changing its operation logic to change/add a functionality.
Most tasks in Bitrix Framework are implemented through components, and in the component template you use the $arResult arrays that constitute the work result of the component (data) and $arParams that are input parameters.
The following steps must be taken in order to customize a standard component:
Create a new component namespace in the folder /bitrix/components/; for example, create the catalog /bitrix/components/my_components/.
A folder with component you wish to change must be copied to the created folder (copy is to be made from the folder /bitrix/components/bitrix/).
Change the component according to the tasks at hand.
Change component description to your description in the files .description.php and /lang/en/.description.php;
Correct the files .parameters.php and component.php by modifying (adding necessary) functionality using API product;
Edit the component template according to the tasks at hand.
Clear the cache of the visual editor. As a result, the visual editor will display the customized component.
Note: Cache of the visual editor is updated in the tab Components:
Important! While customizing a component, please remember that all of the keys in $MESS containing the name, description, and parameters of a component and also the identifiers of component branches in the component tree of the visual editor must be unique throughout the entire product.
It is preferable to refrain from component customization unless it is really necessary. In this case:
No updates are lost;
It is easier to solve problems through helpdesk (helpdesk does not solve the problems occurring in operation of a customized code unless an error in API is clearly identified);
AJAX is implemented in composite components as a standard.