Skip to content

Basic Conventions

Basic Conventions

Codebase conventions

List of naming conventions the B2B Suite complies to:

DI ContainerAll container ids look like b2b_*.*
The first asterisk is the component name
The second asterisk is a class name abbreviation
DatabaseAll table names start with b2b_
All table names are in singular
All field and table names are in snake case
AttributesAll attribute names start with swag_b2b_
SubscriberAll subscriber methods are named in accordance with their function, not to the event
TestsAll test methods are in snake case
All test methods start with test_
TemplatesAll new layout modules are wrapped in b2b--* class containers
Modules reuse the template style of Shopware
CSS SelectorsThree levels of selector depth as max
Twig Blocks{% block b2b_* %}{% endblock %} empty blocks are in one line
JavaScriptThe B2B Suite is written in TypeScript
Storefront pluginsFile names end with *.plugin.ts
InterfacesFile names start with I, e.g., IAjaxPanelEvent.ts
SnippetsThe root snippet key is b2b

Entity naming conventions

Certain domain entities, such as Contact, Contingent Rule, and others, have different naming conventions in the B2B UI and the codebase. To make things easier to understand, here is a comparison between these entities' B2B UI to their corresponding names in English Storefronts:

English term (Display name)B2B-Suite term (Entity name)
Company administratorDebtor
Cart detailsPositions
Quick orderFastorder
Purchase restrictionContingent
Order restrictionContingent rule
Product restrictionContingent restrictions

You can use the table above as a reference to identify a domain entity in the codebase when working with the B2B storefront.