You are browsing the documentation for version 3.1 of OroCommerce, OroCRM and OroPlatform, which is no longer maintained. Read version 5.1 (the latest LTS version) of the Oro documentation to get up-to-date information.

See our Release Process documentation for more information on the currently supported and upcoming releases.

Contribute to Documentation

We use reStructuredText markup language to write the documentation and Sphinx generator to prepare it for the web publication at You can find more information about the syntax on the Sphinx website by reading reStructuredText Primer. The most important information is provided in the sections below.

Documentation source files are maintained in the dedicated github repository.

If you are willing to contribute — you are totally welcome. The information below should help you understand the documentation structure and topic organization, useful rst directives and a simple workflow that helps quickly publish a new topic.

Before You Begin

Before submitting your documentation changes in a pull request, please sign our Contributor License Agreement (CLA). The CLA must be signed for any code or documentation changes to be accepted.

Fork Documentation Project

If you are just making a small change, you can use the Edit this file button directly in the GitHub UI. It will automatically create a fork of our documentation repository and allow for the creation and submission of a new pull request with your modifications once you are done editing:

For large volume of updates, fixes, and enhancements please use the following process:

  1. Fork a documentation repository.

  2. Clone the forked repository.

  3. Update your local copy of documentation (see Update Documentation for more information on the process and formatting).

  4. Build and test the documentation before submitting a pull request to be sure you haven’t accidentally introduced any layout or formatting issues.


To build Sphinx documentation, set up a local Sphinx build environment:

  • Install Sphinx.

  • Install the required Sphinx extensions: git submodule update --init.

To test your changes before you commit them, run make html and check the generated documentation in the _build directory.

Update Documentation

This section is intended to provide you with the basic information of simple text formatting using reStructuredText (reST) markup language. Just enough to update and create new documentation files in Oro documentation.

For more information, please refer to the sphinx’s reStructuredText Primer and to the Quick reStructuredText by docutils.

The most complete information is available in the reStructureText specifications.

Documentation Structure and Topic Organization

The documentation is organized into the tree hierarchy of sections using toctree directive in the index.rst. Sections of the same level reside in the same folder which simplifies navigation and sibling reference.

Sample file structure:

 1+ user-guide:
 2    + img:
 3        - Demo.png
 4    - topic_1.rst
 5    - topic_2.rst
 6    - topic_3.rst
 7    - index.rst
 8+ admin-guide:
 9    - index.rst
10    + integration
11        - email.rst
12        - LDAP.rst
13+ img:
14    - Architecture.png
15- index.rst

Basic Rst Syntax


Use the following markup for the headings to split your topic into sections, subsections, and more granular bits:

Use an underline with =, -, ^, ~, “ to mark up the sections.

 1Section 1
 4Section 1.1
 7Section 1.1.1
13Paragraph Title



Preserve the same level of indentation for all lines of the paragraph. More information is available here.

Inline Markup

Surround the text with one asterisk (*) for italic text, with two asterisks (**) for bold text, and with double back quotes (``) for Preformatted text. to use these symbols in the text without affecting the text style, escape them with the backslash (\).

Bulleted List

To form a bullet list, start the line with *, +, or - followed by whitespace:

1* Item A
2* Item B
4    - Item C
5    - Item D
7        + Item E
8        + Item F


  • Item A

  • Item B

    • Item C

    • Item D

      • Item E

      • Item F

Numbered List

To form a numbered list, start the line with Arabic numerals (1,2,3), upper- or lowercase alphabet letters (A,B,C, or a,b,c), upper- or lowercase Roman numerals (I, II, III, or i, ii, iii). You can automatically enumerate the list by starting the lines with a hash sign (#).

Simple numbered list:

11. Item A
22. Item B
4     a) Item C
5     b) Item D
7          i. Item E
8          ii. Item F


  1. Item A

  2. Item B

    1. Item C

    2. Item D

      1. Item E

      2. Item F

Auto Enumerated List

11. Item A
2#. Item B
4     a) Item C
5     #) Item D
7          i. Item E
8          #. Item F


  1. Item A

  2. Item B

    1. Item C

    2. Item D

      1. Item E

      2. Item F

Text Blocks

Attention Block

Syntax in Rst: .. attention:: The message text.



The message text.

Caution Block

Syntax in Rst: .. caution:: The caution message.



The caution message.

Warning Block

Syntax in Rst: .. warning:: The warning message.



The warning message.

Hint Block

Syntax in Rst: .. hint:: The hint message.



The hint message.

Note Block

Syntax in Rst: .. note:: The note message.



The note message.

Tip Block

Syntax in Rst: .. tip:: The tip message.



The tip message.

Important Block

Syntax in Rst: .. important:: The important message.



The important message.


2| Header 1   | Header 2   | Header 3  |
4| Cell 1.1   | Cell 1.2   | Cell 1.3  |
6| Cell 2.1   | Cell 2.2   | Cell 2.3  |


Header 1

Header 2

Header 3

Cell 1.1

Cell 1.2

Cell 1.3

Cell 2.1

Cell 2.2

Cell 2.3

Advanced Rst Syntax

Temporarily, the information resides on Confluence.


References to the section titles in the doc are enabled with the ‘sphinx.ext.autosectionlabel’ plugin.

File Naming Conventions

Please follow the recommendations below when naming the new documenation file:

  • Use a topic-based approach (e.g. assign_user_management_permissions_to_the_organization.rst).

  • Use lowercase letters and Arabic numbers only.

  • Replace whitespace symbols with underscores (e.g. file_naming_conventions.rst).

  • Avoid special symbols (/,$,#, etc).

  • Save the file with .rst extension

Add a New Topic

  1. Create topic contents using Restructured Text format and save it following the File Naming Conventions.

  2. To link a topic to the global documentation table of contents:

    1. Identify the best location for the reference to your new topic in the documentation structure.

    2. Move the newly created file to the selected folder.

    3. Append the relative document name (without the rst extension) to the toctree definition in the potential parent topic.

For example, when we create a new topic with additional information about price list management in the additional_pricelist_management_info.rst file. To include it into the document structure at the user-guide/pricing level, we’ll update the index.rst file in the user-guide/pricing directory like in the following example:


1.. toctree::
2   :maxdepth: 1
4   price-attributes
6   price-list-management


1.. toctree::
2   :maxdepth: 1
4   price-attributes
6   price-list-management
8   additional-pricelist-management-info


If your are adding more than one topic and your new topics cover the same domain, consider grouping them into a folder. For better navigation, it is recommended to create a dedicated index.rst file with an overview and references to the topics in the new folder (using .. toctree:: directive). To attach your newly created group of topics into the general structure, add the reference to the index.rst to the appropriate loaction in the documetnation hierarchy (e.g. documentation-structure-and-topic-organization.rst and file_naming_conventions.rst may be saved to the user_guide/writing folder, may be added to the toctree of the dedicated user_guide/writing/index.rst. Finally, user_guide/writing/index.rst may be added into the user_guide/index.rst toctree to attach the newly created files into the global documentation structure).

Submit Documentation Updates

Once you are ready, create a pull request in the Oro documentation repository with changes from your forked repository. See Code Version Control for more information on using repository.

After documentation review, your changes will be merged to the Oro documentation and will be published on the Oro website.

See Also