From 026729a70f1ed4811bdf0e4e12eb56a58d920ab6 Mon Sep 17 00:00:00 2001
From: Jonathan Sacksick <jonathan.sacksick@gmail.com>
Date: Fri, 4 Jul 2025 11:57:09 +0300
Subject: [PATCH] Issue #3478603 by sidgrafix, omarlopesino, ushma, jsacksick:
 Commerce promotion warning is preventing editing views field configuration
 for bundle fields.

---
 modules/price/commerce_price.module         | 4 ++--
 modules/promotion/commerce_promotion.module | 6 +++---
 2 files changed, 5 insertions(+), 5 deletions(-)

diff --git a/modules/price/commerce_price.module b/modules/price/commerce_price.module
index 3090cc0bb..697cde07e 100644
--- a/modules/price/commerce_price.module
+++ b/modules/price/commerce_price.module
@@ -55,9 +55,9 @@ function commerce_price_configurable_language_insert(ConfigurableLanguage $langu
 function commerce_price_form_views_ui_config_item_form_alter(&$form, FormStateInterface $form_state) {
   /** @var \Drupal\views\Plugin\views\field\EntityField $handler */
   $handler = $form_state->get('handler');
-  if ($handler instanceof EntityField && !empty($handler->definition['entity_type']) && !empty($handler->options['field_name'])) {
+  if ($handler instanceof EntityField && !empty($handler->definition['entity_type'])) {
     $entity_type_id = $handler->definition['entity_type'];
-    $field_name = $handler->definition['field_name'];
+    $field_name = $handler->definition['field_name'] ?? NULL;
     /** @var \Drupal\Core\Entity\EntityFieldManagerInterface $field_manager */
     $field_manager = \Drupal::service('entity_field.manager');
     $field_definitions = $field_manager->getFieldStorageDefinitions($entity_type_id);
diff --git a/modules/promotion/commerce_promotion.module b/modules/promotion/commerce_promotion.module
index 7125cb4f3..dd1a2396f 100644
--- a/modules/promotion/commerce_promotion.module
+++ b/modules/promotion/commerce_promotion.module
@@ -99,12 +99,12 @@ function commerce_promotion_form_views_ui_config_item_form_alter(&$form, FormSta
   $handler = $form_state->get('handler');
   if ($handler instanceof EntityField && !empty($handler->definition['entity_type'])) {
     $entity_type_id = $handler->definition['entity_type'];
-    $field_name = $handler->definition['field_name'];
+    $field_name = $handler->definition['field_name'] ?? NULL;
     /** @var \Drupal\Core\Entity\EntityFieldManagerInterface $field_manager */
     $field_manager = \Drupal::service('entity_field.manager');
     $field_definitions = $field_manager->getFieldStorageDefinitions($entity_type_id);
-    $field_definition = $field_definitions[$field_name];
-    if ($entity_type_id == 'commerce_promotion' && $field_definition->getType() == 'datetime') {
+    $field_definition = $field_definitions[$field_name] ?? NULL;
+    if ($entity_type_id == 'commerce_promotion' && $field_definition?->getType() == 'datetime') {
       unset($form['options']['type']['#options']['datetime_custom']);
       unset($form['options']['type']['#options']['datetime_default']);
       unset($form['options']['type']['#options']['datetime_plain']);
-- 
GitLab