public function ProcessFieldsBeforeDisplay(&$oFields)
    {
        /** @var TdbShopArticle $product */
        $product = $this->oTable;
        if ($product->IsVariant()) {
            $oParent = &$product->GetFieldVariantParent();
            if (null != $oParent) {
                $oVariantSet = &$oParent->GetFieldShopVariantSet();
                if (!is_null($oVariantSet)) {
                    $aPermittedFields = $oVariantSet->GetMLTIdList('cms_field_conf', 'cms_field_conf_mlt');
                    $oPermittedFields = new TIterator();
                    $oFields->GoToStart();
                    while ($oField = $oFields->Next()) {
                        /** @var $oField TCMSField */
                        if (in_array($oField->oDefinition->id, $aPermittedFields)) {
                            $oPermittedFields->AddItem($oField);
                        }
                    }
                    $oFields = $oPermittedFields;
                }
            }
        }
    }