Contact Contact Show All Awards & Recognition
Show All Awards & Recognition



No Category

No author set



Last updated



No  Reviewer


No Category

Project Summary

Pimcore 6.x company information management

Readme Company Bundle



The Company Bundle provides to the backend user a simplified management panel to edit all important company information such as:

  • address details
  • opening hours
  • social media links
  • details
  • business location coordinates

The Bundle includes also HTML and templates which easily be extended and implemented with a Pimcore Document Tag.

included translations

  • German (v1.0.0)
  • English (v1.0.0)
  • Ukrainian (v1.0.1) thanks to Olya Batyr
  • Russian (v1.0.1) thanks to Olya Batyr

new in v1.4

  • document tag adjustment for the latest Pimcore version

new in v1.3

  • Pimcore 6 ready

new in v1.2.2

  • removed Google+ from socialmedias
  • added Metatag accounts (Twitter & Facebook)

new in v1.2.1

  • opening times bugfix (closing times)
  • opening times UX improvements


new in v1.2.0

  • replaced Twig templates with PHP templates
  • caching

new in v1.1.1

  • added VAT number field
  • added company founding information fields
  • added VKontakte, Medium & Reddit to the social media channels
  • translation fixes
  • style fixes

new in v1.1.0

  • new tab organisation
  • add holidays to the opening hours
  • edit site description & keywords based on the site language
  • new template handling

Getting Started

  • download bundle with Composer "docono/company-bundle": "^1.1"
  • install the Bundle in the Extension Management Tool in Pimcore
  • make sure the cache is flushed and Pimcore reloaded
  • open the "Company Information" panel and fill in the company details
  • add <?= $this->company('demoInformations'); ?> to your view
  • your page will show now all contact details and added a JSON-LD to the markup

Configuration File

Each site has its own YAML configuration file which is located in the app config folder /app/config.

site ids

The Bundle uses the Pimcore site ids:

  • default: the main site
  • site_1: site with the id 1
  • site_2: site with the id 2
  • etc


/app/config/docono_company.default.yml /app/config/docono_company.site_1.yml

config YAML

    name: DOCONO
    address: 'Bahnhofstrasse 8'
    town: Alpnach
    postalcode: '6055'
    region: OW
    country: CH
    phone: '+41 XX XXX XX XX' 
    fax: '+41 41 670 01 70'
    vat-number: ''
    linkedin: ''
    xing: ''
    facebook: ''
    vk: ''
    twitter: ''
    instagram: ''
    pinterest: ''
    youtube: ''
    vimeo: ''
    medium: ''
    reddit: ''
    lunchbreak: true
    monday: { open: '09:00', close: '11:30', open_pm: '13:00', close_pm: '16:00' }
    tuesday: { open: '09:00', close: '11:30', open_pm: '13:00', close_pm: '16:00' }
    wednesday: { open: '09:00', close: '11:30', open_pm: '13:00', close_pm: '16:00' }
    thursday: { open: '09:00', close: '11:30', open_pm: '13:00', close_pm: '16:00' }
    friday: { open: '09:00', close: '11:30', open_pm: '13:00', close_pm: '16:00' }
    saturday: { allday_closed: 'on' }
    sunday: { allday_closed: 'on' }
    - { name: 'Easter weekend', start: 30.03.2018, end: 02.04.2018 }
    - { name: 'Christmas & New Year', start: 21.12.2018, end: 06.01.2019 }
    en: { description: 'site description', keywords: 'keywords, metakeywords' }
    de: { description: 'Seitenbeschreibung', keywords: 'keywords, metakeywords' }
    type: LocalBusiness
    subtype: ''
    url: ''
    logo: /var/assets/logo/DOCONO-logo.jpg
    image: /var/assets/logo/DOCONO-logo.jpg
    founder-name: ''
    founding-date: '2017'
    founding-town: 'Alpnach Dorf'
    lat: '47.050168'
    long: '8.309307'
    link: ''
    twitter-site: 'docono'
    twitter-creator: 'docono'
    facebook-publisher: ''
    facebook-author: ''
    facebook-app-id: ''


CompanyBundle uses normal php templates since v1.2.0.


There are three different kind of templates: html, schema and combined.

Each typ has its own folder for the templates, which are defined in the Template Service as constants.



If you do not like the standard templates simply override it with a template in the app template dir `app/Resources/views'.


To override the address HTML template (address_html.html.php) create following file: app/Resources/CompanyBundle/views/docono_company/address_html.html.php

To override the address template (address_schema.html.php) create following file: app/Resources/CompanyBundle/views/docono_company/address_schema.html.php

Custom Template

To use your own template simply create your template in a folder the views dir.


To build your own Stemplate creat following file: app/Resources/views/myTemplates/demo.html.php

Implementing it into your view:

<?= $this->company('demoTemplate', ['tpl'=>'myTemplates/demo.html.php']); ?>


All templates are cached and assigned to the tag 'CompanyBundle_templates';

Rendering Templates

Template options:

  • address [only address]
  • times [only opening times]
  • socialmedia [only social media] (fontawesome ready)
  • full [all information]
  • template [using your customised template]

Type options:

  • html [only HTML]
  • schema [only JSON-LD]
  • combined [HTML and JSON-LD]

Document Tag


Name Type Configuration
tpl string standard template name or path - default: full
type string only for standard templats needed, e.g.: \CompanyBundle\Services\Template::html - default: combined

basic usage

<?= $this->company('demoInformations'); ?>

advanced usage

<?= $this->company('demoInformations', ['tpl'=>'address', 'type'=>\CompanyBundle\Services\Template::html]); ?>

Template Service

The Template Render Service is registered as


Name Return Description
template(String $tpl) string render custom template
address(String $type=self::combined) string render standard address template
times(String $type=self::combined) string render standard times template
socialmedia() string render standard social media html template
full(String $type=self::combined) string render standard full template
__toString() string full() alias

basic usage

<?= $this->container->get(''); ?>

advanced usage

<?= $this->container->get('')->address(\CompanyBundle\Services\Template::combined); ?>
<?= $this->container->get('')->template('myTemplates/demo.html.php'); ?>

Configuration Helper

If you want to access any of the company information data, simply use the STATIC config helper to access them.


Name Return Description
getFile() string get YAML config file for current site
getFileForSite(String $site) string get YAML config file for given site id
getData(String $site=null) array array of all data
getCompany() array array of the 'company' namespace
getSocialmedia() array array of the 'socialmedia' namespace
getOpeningtimes() array array of the 'times' namespace
getHolidays() array array of the 'holiday' namespace
getSEO(string $language='en') array array of the 'seo' namespace
getSchema() array array of the 'schema' namespace
getLocation() array array of the 'location' namespace
getAccounts() array array of the 'accounts' namespace
<?= CompanyBundle\Helper\Config::getCompany()['name']; ?>
<?= CompanyBundle\Helper\Config::getData()['socialmedia']['facebook']; ?>

Review status



No author set



Last updated



No  Reviewer