По-умолчанию модуль Easy Breadcrumb в Drupal 8 не умеет подставлять всю цепочку родителей терминов таксономии в товары Commerce 2, и хлебные крошки выглядят как "Главная - Товар", в то время, как корректный вид крошек должен быть таким "Главная - Категория - Подкатегория - Товар". Решить эту проблему можно кастомным модулем, переписав значения крошек:
"field_category" - название поля с терминами, его нужно заменить на ваше.
use Drupal\Core\Breadcrumb\Breadcrumb;
use Drupal\Core\Routing\RouteMatchInterface;
use Drupal\Core\Link;
use Drupal\taxonomy\Entity\Term;
/**
* Implements hook_system_breadcrumb_alter().
*/
function custom_module_system_breadcrumb_alter(Breadcrumb &$breadcrumb, RouteMatchInterface $route_match, array $context) {
if($breadcrumb && !\Drupal::service('router.admin_context')->isAdminRoute()) {
$commerce_page = \Drupal::routeMatch()->getParameter('commerce_product');
$links = $breadcrumb->getLinks();
if($commerce_page && $links){
$breadcrumb = new Breadcrumb();
$breadcrumb->addLink(Link::createFromRoute(t('Home'), '<front>'));
$commerce_product = \Drupal::request()->get('commerce_product');
$tid = $commerce_product->get('field_category')->getString();
$term = Term::load($tid);
$parents = \Drupal::entityTypeManager()->getStorage('taxonomy_term')->loadAllParents($tid);
$aliasManager = \Drupal::service('path.alias_manager');
if($parents){
$breadcrumb_list = [];
foreach ($parents as $k => $term) {
$breadcrumb_list[$k]['name'] = $term->getName();
$breadcrumb_list[$k]['tid'] = $term->id();
}
foreach(array_reverse($breadcrumb_list) as $bread){
$breadcrumb->addLink(Link::createFromRoute($bread['name'], 'entity.taxonomy_term.canonical', ['taxonomy_term' => $bread['tid']]));
}
$request = \Drupal::request();
$route_match = \Drupal::routeMatch();
$title = \Drupal::service('title_resolver')->getTitle($request, $route_match->getRouteObject());
$breadcrumb->addLink(Link::createFromRoute($title, '<nolink>'));
}
}
}
}
Используемые материалы:
https://makedrupaleasy.com/articles/drupal-8-how-create-simple-custom-mo...
https://drupal.stackexchange.com/questions/220931/how-do-i-modify-the-br...
https://kevinquillen.com/manually-add-breadcrumb-links-drupal-8