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.

Support from Acquia helps fund testing for Drupal Acquia logo

Comments

vasike’s picture

Status: Active » Needs review
FileSize
2.96 KB

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

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

Tagging.

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.

Commit: http://drupalcode.org/project/commerce.git/commitdiff/957a599

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