Important
You are browsing upcoming documentation for version 7.0 of OroCommerce, scheduled for release in 2026. Read the documentation for version 6.1 (the latest LTS version) to get up-to-date information.
See our Release Process documentation for more information on the currently supported and upcoming releases.
Content Widget Types
OroCommerce provides 7 types of content widgets.
contact_us_form |
The widget type that provides a Contact Us form that allows users to submit inquiries. |
image_slider |
The widget type that provides the possibility to configure a multiple-image slider. |
oro_tabbed_content |
The widget type that provides the possibility to add content in the form of tabs or an accordion. |
product_mini_block |
The widget type that provides the possibility to add a block with product information. |
product_segment |
The widget type that provides the possibility to add a product segment(slider). |
customer_dashboard_datagrid |
The widget type that provides the possibility to use defined customer dashboard datagrids. |
scorecard |
The widget type that provides the possibility to use defined scorecard metrics. |
Customer Dashboard Datagrid
There are multiple ways to extend and add a new type of datagrid for selection in this widget:
create a custom service that implements
Oro\Bundle\CommerceBundle\ContentWidget\Provider\CustomerDashboardDatagridsProviderInterface
and decorates the existingOro\Bundle\CommerceBundle\ContentWidget\Provider\CustomerDashboardDatagridsProvider
,Hint
Provider must return only datagrids where the frontend option is set to true.
class NewProvider implements CustomerDashboardDatagridsProviderInterface
{
public function getDatagrids(): array
{
return [
'oro.customer.frontend.dashboard.widgets.my_latest_orders.title' =>
'frontend-customer-dashboard-my-latest-orders-grid',
'oro.customer.frontend.dashboard.widgets.open_quotes.title' =>
'frontend-customer-dashboard-open-quotes-grid',
];
}
}
services:
oro_commerce.content_widget.provider.new_provider:
class: Oro\Bundle\CommerceBundle\ContentWidget\Provider\NewProvider
decorates: oro_commerce.content_widget.provider.customer_dashboard_datagrids
- use the `setDatagrids` method of the `CustomerDashboardDatagridsProvider` provider to configure additional datagrids.
services:
oro_commerce.content_widget.provider.new_provider:
class: Oro\Bundle\CommerceBundle\ContentWidget\Provider\CustomerDashboardDatagridsProvider
decorates: oro_commerce.content_widget.provider.customer_dashboard_datagrids
calls:
- [setDatagrids, [
{
'oro.customer.frontend.dashboard.widgets.my_latest_orders.title': 'frontend-customer-dashboard-my-latest-orders-grid',
'oro.customer.frontend.dashboard.widgets.open_quotes.title': 'frontend-customer-dashboard-open-quotes-grid'
}
]]
Scorecard
To extend and add a new type of scorecard for selection in this widget, create a custom scorecard provider that implements Oro\Bundle\CommerceBundle\ContentWidget\Provider\ScorecardInterface
and tag it with oro_commerce.scorecard.
class OpenQuotesScorecardProvider implements ScorecardInterface
{
public function __construct(
private ManagerRegistry $registry,
private AclHelper $aclHelper,
private AuthorizationCheckerInterface $authorizationChecker
) {
}
public function getName(): string
{
return 'open_quotes';
}
public function getLabel(): string
{
return 'oro.commerce.content_widget_type.scorecard.open_quotes';
}
public function isVisible(): bool
{
return $this->authorizationChecker->isGranted(BasicPermission::VIEW, new Quote());
}
public function getData(): int|float|null|string|array
{
$qb = $this->registry->getRepository(Quote::class)->createQueryBuilder('r');
return $this->aclHelper->apply($qb->select('COUNT(r.id)'))->getSingleScalarResult();
}
}
oro_commerce.content_widget.scorecards.open_quotes:
class: Oro\Bundle\CommerceBundle\ContentWidget\Provider\OpenQuotesScorecardProvider
arguments:
- '@doctrine'
- '@oro_security.acl_helper'
- '@security.authorization_checker'
tags:
- { name: oro_commerce.scorecard }