The Manage Display of a Product Display type should check the Referenced Product Type field to only show the available fields for the selected Product Types.

source issue: #1629966: Check the allowed types of referenced product when managing content type display.

#3 referenced_product_types_fields_for_display-1672118-3.patch1.62 KBvasike
PASSED: [[SimpleTest]]: [MySQL] 3,589 pass(es). View
#1 referenced_product_types_fields_for_display-1672118-1.patch2.96 KBvasike
PASSED: [[SimpleTest]]: [MySQL] 3,589 pass(es). View
Members fund testing for the Drupal project. Drupal Association Learn more


vasike’s picture

Status: Active » Needs review
2.96 KB
PASSED: [[SimpleTest]]: [MySQL] 3,589 pass(es). View

here is a patch
it limits the fields to the referenced product types, based on the instance of the product_reference field
and all fields of all product types if there is no product type selected.

bojanz’s picture

+        $referenceable_types = $field_instance['settings']['referenceable_types'];
+        foreach ($referenceable_types as $key => $referenceable_type) {
+          if ($referenceable_type) {
+            $product_types[] = $referenceable_type;
+          }
+        }

You can replace this with

$referenceable_types = array_filter($field_instance['settings']['referenceable_types']);

Might make sense to not duplicate the field adding code, and just give it a list of all product bundles if the list of referenceable types is empty, but that's more of a code style issue...

vasike’s picture

1.62 KB
PASSED: [[SimpleTest]]: [MySQL] 3,589 pass(es). View

thank you Bojan.
what about this new patch?

bojanz’s picture

Much better! Other than perhaps documentation tweaks, this seems ready.

bojanz’s picture

Status: Needs review » Reviewed & tested by the community

Let's get this to Ryan.

bojanz’s picture

Issue tags: +kickstart blocker


rszrama’s picture

Status: Reviewed & tested by the community » Fixed

Touched up the comments and also used commerce_product_types() to get a list of "all" product types in the event no filter has been applied. For some reason as written it wasn't working in my testing.


Automatically closed -- issue fixed for 2 weeks with no activity.