Extending bundle product in custom type ends up without “add option” button












0















I need a custom product type to be able to use other transaction mail templates.
For that purpose I am using an existing module which contains the following code:



<vendor>/<module>/etc/product_types.xml:



<?xml version="1.0"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:module:Magento_Catalog:etc/product_types.xsd">
<type name="customtype" label="Custom Product Type" modelInstance="<vendor><module>ModelProductTypeCustom" composite="true" indexPriority="110" sortOrder="110">
<priceModel instance="MagentoBundleModelProductPrice" />
<indexerModel instance="MagentoBundleModelResourceModelIndexerPrice" />
<stockIndexerModel instance="MagentoBundleModelResourceModelIndexerStock" />
<allowedSelectionTypes>
<type name="simple" />
<type name="virtual" />
</allowedSelectionTypes>
<customAttributes>
<attribute name="refundable" value="true"/>
</customAttributes>
</type>
</config>


<vendor>/<module>/Model/Product/Type/Custom.php:



<?php

namespace <vendor><model>ModelProductType;

class Custom extends MagentoBundleModelProductType
{
const TYPE_ID = 'customtype';
}


<vendor>/<module>/Setup/UpgradeData.php:



<?php
namespace <vendor><module>/Setup;

use MagentoCatalogApiDataProductAttributeInterface;
use MagentoFrameworkSetupModuleContextInterface;
use MagentoFrameworkSetupModuleDataSetupInterface;
use MagentoFrameworkSetupUpgradeDataInterface;
use MagentoEavSetupEavSetupFactory;
use MagentoEavSetupEavSetup;
use MagentoCatalogModelProduct;
use <vendor><module>ModelProductTypeCustom as CustomProductType;

/**
* Upgrade Data script
* @codeCoverageIgnore
*/
class UpgradeData implements UpgradeDataInterface
{
/**
* EAV setup factory
*
* @var EavSetupFactory
*/
private $eavSetupFactory;

/**
* Init
*
* @param EavSetupFactory $eavSetupFactory
*/
public function __construct(EavSetupFactory $eavSetupFactory)
{
$this->eavSetupFactory = $eavSetupFactory;
}

/**
* {@inheritdoc}
*/
public function upgrade(ModuleDataSetupInterface $setup, ModuleContextInterface $context)
{
if (version_compare($context->getVersion(), '0.0.6') < 0) {
/** Version under 0.0.6 -> Upgrade */
$eavSetup = $this->eavSetupFactory->create(['setup' => $setup]);

$fieldList = [
'price',
'special_price',
'special_from_date',
'special_to_date',
'minimal_price',
'cost',
'tier_price',
'weight',
'price_type',
'sku_type',
'weight_type',
'price_view',
'shipment_type',
'tax_class_id',
];

foreach ($fieldList as $field) {
$applyTo = explode(
',',
$eavSetup->getAttribute(Product::ENTITY, $field, 'apply_to')
);
if (!in_array(CustomProductType::TYPE_ID, $applyTo)) {
$applyTo = CustomProductType::TYPE_ID;
$eavSetup->updateAttribute(
Product::ENTITY,
$field,
'apply_to',
implode(',', $applyTo)
);
}
}
}
}
}


The Upgradescript runs successfull and I can see according changes in catalog_eav_attribute's apply_to column.



With all that done I lack the option to add options for containing products:
Screenshot showing lack of "add option"-Button









share



























    0















    I need a custom product type to be able to use other transaction mail templates.
    For that purpose I am using an existing module which contains the following code:



    <vendor>/<module>/etc/product_types.xml:



    <?xml version="1.0"?>
    <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:module:Magento_Catalog:etc/product_types.xsd">
    <type name="customtype" label="Custom Product Type" modelInstance="<vendor><module>ModelProductTypeCustom" composite="true" indexPriority="110" sortOrder="110">
    <priceModel instance="MagentoBundleModelProductPrice" />
    <indexerModel instance="MagentoBundleModelResourceModelIndexerPrice" />
    <stockIndexerModel instance="MagentoBundleModelResourceModelIndexerStock" />
    <allowedSelectionTypes>
    <type name="simple" />
    <type name="virtual" />
    </allowedSelectionTypes>
    <customAttributes>
    <attribute name="refundable" value="true"/>
    </customAttributes>
    </type>
    </config>


    <vendor>/<module>/Model/Product/Type/Custom.php:



    <?php

    namespace <vendor><model>ModelProductType;

    class Custom extends MagentoBundleModelProductType
    {
    const TYPE_ID = 'customtype';
    }


    <vendor>/<module>/Setup/UpgradeData.php:



    <?php
    namespace <vendor><module>/Setup;

    use MagentoCatalogApiDataProductAttributeInterface;
    use MagentoFrameworkSetupModuleContextInterface;
    use MagentoFrameworkSetupModuleDataSetupInterface;
    use MagentoFrameworkSetupUpgradeDataInterface;
    use MagentoEavSetupEavSetupFactory;
    use MagentoEavSetupEavSetup;
    use MagentoCatalogModelProduct;
    use <vendor><module>ModelProductTypeCustom as CustomProductType;

    /**
    * Upgrade Data script
    * @codeCoverageIgnore
    */
    class UpgradeData implements UpgradeDataInterface
    {
    /**
    * EAV setup factory
    *
    * @var EavSetupFactory
    */
    private $eavSetupFactory;

    /**
    * Init
    *
    * @param EavSetupFactory $eavSetupFactory
    */
    public function __construct(EavSetupFactory $eavSetupFactory)
    {
    $this->eavSetupFactory = $eavSetupFactory;
    }

    /**
    * {@inheritdoc}
    */
    public function upgrade(ModuleDataSetupInterface $setup, ModuleContextInterface $context)
    {
    if (version_compare($context->getVersion(), '0.0.6') < 0) {
    /** Version under 0.0.6 -> Upgrade */
    $eavSetup = $this->eavSetupFactory->create(['setup' => $setup]);

    $fieldList = [
    'price',
    'special_price',
    'special_from_date',
    'special_to_date',
    'minimal_price',
    'cost',
    'tier_price',
    'weight',
    'price_type',
    'sku_type',
    'weight_type',
    'price_view',
    'shipment_type',
    'tax_class_id',
    ];

    foreach ($fieldList as $field) {
    $applyTo = explode(
    ',',
    $eavSetup->getAttribute(Product::ENTITY, $field, 'apply_to')
    );
    if (!in_array(CustomProductType::TYPE_ID, $applyTo)) {
    $applyTo = CustomProductType::TYPE_ID;
    $eavSetup->updateAttribute(
    Product::ENTITY,
    $field,
    'apply_to',
    implode(',', $applyTo)
    );
    }
    }
    }
    }
    }


    The Upgradescript runs successfull and I can see according changes in catalog_eav_attribute's apply_to column.



    With all that done I lack the option to add options for containing products:
    Screenshot showing lack of "add option"-Button









    share

























      0












      0








      0








      I need a custom product type to be able to use other transaction mail templates.
      For that purpose I am using an existing module which contains the following code:



      <vendor>/<module>/etc/product_types.xml:



      <?xml version="1.0"?>
      <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:module:Magento_Catalog:etc/product_types.xsd">
      <type name="customtype" label="Custom Product Type" modelInstance="<vendor><module>ModelProductTypeCustom" composite="true" indexPriority="110" sortOrder="110">
      <priceModel instance="MagentoBundleModelProductPrice" />
      <indexerModel instance="MagentoBundleModelResourceModelIndexerPrice" />
      <stockIndexerModel instance="MagentoBundleModelResourceModelIndexerStock" />
      <allowedSelectionTypes>
      <type name="simple" />
      <type name="virtual" />
      </allowedSelectionTypes>
      <customAttributes>
      <attribute name="refundable" value="true"/>
      </customAttributes>
      </type>
      </config>


      <vendor>/<module>/Model/Product/Type/Custom.php:



      <?php

      namespace <vendor><model>ModelProductType;

      class Custom extends MagentoBundleModelProductType
      {
      const TYPE_ID = 'customtype';
      }


      <vendor>/<module>/Setup/UpgradeData.php:



      <?php
      namespace <vendor><module>/Setup;

      use MagentoCatalogApiDataProductAttributeInterface;
      use MagentoFrameworkSetupModuleContextInterface;
      use MagentoFrameworkSetupModuleDataSetupInterface;
      use MagentoFrameworkSetupUpgradeDataInterface;
      use MagentoEavSetupEavSetupFactory;
      use MagentoEavSetupEavSetup;
      use MagentoCatalogModelProduct;
      use <vendor><module>ModelProductTypeCustom as CustomProductType;

      /**
      * Upgrade Data script
      * @codeCoverageIgnore
      */
      class UpgradeData implements UpgradeDataInterface
      {
      /**
      * EAV setup factory
      *
      * @var EavSetupFactory
      */
      private $eavSetupFactory;

      /**
      * Init
      *
      * @param EavSetupFactory $eavSetupFactory
      */
      public function __construct(EavSetupFactory $eavSetupFactory)
      {
      $this->eavSetupFactory = $eavSetupFactory;
      }

      /**
      * {@inheritdoc}
      */
      public function upgrade(ModuleDataSetupInterface $setup, ModuleContextInterface $context)
      {
      if (version_compare($context->getVersion(), '0.0.6') < 0) {
      /** Version under 0.0.6 -> Upgrade */
      $eavSetup = $this->eavSetupFactory->create(['setup' => $setup]);

      $fieldList = [
      'price',
      'special_price',
      'special_from_date',
      'special_to_date',
      'minimal_price',
      'cost',
      'tier_price',
      'weight',
      'price_type',
      'sku_type',
      'weight_type',
      'price_view',
      'shipment_type',
      'tax_class_id',
      ];

      foreach ($fieldList as $field) {
      $applyTo = explode(
      ',',
      $eavSetup->getAttribute(Product::ENTITY, $field, 'apply_to')
      );
      if (!in_array(CustomProductType::TYPE_ID, $applyTo)) {
      $applyTo = CustomProductType::TYPE_ID;
      $eavSetup->updateAttribute(
      Product::ENTITY,
      $field,
      'apply_to',
      implode(',', $applyTo)
      );
      }
      }
      }
      }
      }


      The Upgradescript runs successfull and I can see according changes in catalog_eav_attribute's apply_to column.



      With all that done I lack the option to add options for containing products:
      Screenshot showing lack of "add option"-Button









      share














      I need a custom product type to be able to use other transaction mail templates.
      For that purpose I am using an existing module which contains the following code:



      <vendor>/<module>/etc/product_types.xml:



      <?xml version="1.0"?>
      <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:module:Magento_Catalog:etc/product_types.xsd">
      <type name="customtype" label="Custom Product Type" modelInstance="<vendor><module>ModelProductTypeCustom" composite="true" indexPriority="110" sortOrder="110">
      <priceModel instance="MagentoBundleModelProductPrice" />
      <indexerModel instance="MagentoBundleModelResourceModelIndexerPrice" />
      <stockIndexerModel instance="MagentoBundleModelResourceModelIndexerStock" />
      <allowedSelectionTypes>
      <type name="simple" />
      <type name="virtual" />
      </allowedSelectionTypes>
      <customAttributes>
      <attribute name="refundable" value="true"/>
      </customAttributes>
      </type>
      </config>


      <vendor>/<module>/Model/Product/Type/Custom.php:



      <?php

      namespace <vendor><model>ModelProductType;

      class Custom extends MagentoBundleModelProductType
      {
      const TYPE_ID = 'customtype';
      }


      <vendor>/<module>/Setup/UpgradeData.php:



      <?php
      namespace <vendor><module>/Setup;

      use MagentoCatalogApiDataProductAttributeInterface;
      use MagentoFrameworkSetupModuleContextInterface;
      use MagentoFrameworkSetupModuleDataSetupInterface;
      use MagentoFrameworkSetupUpgradeDataInterface;
      use MagentoEavSetupEavSetupFactory;
      use MagentoEavSetupEavSetup;
      use MagentoCatalogModelProduct;
      use <vendor><module>ModelProductTypeCustom as CustomProductType;

      /**
      * Upgrade Data script
      * @codeCoverageIgnore
      */
      class UpgradeData implements UpgradeDataInterface
      {
      /**
      * EAV setup factory
      *
      * @var EavSetupFactory
      */
      private $eavSetupFactory;

      /**
      * Init
      *
      * @param EavSetupFactory $eavSetupFactory
      */
      public function __construct(EavSetupFactory $eavSetupFactory)
      {
      $this->eavSetupFactory = $eavSetupFactory;
      }

      /**
      * {@inheritdoc}
      */
      public function upgrade(ModuleDataSetupInterface $setup, ModuleContextInterface $context)
      {
      if (version_compare($context->getVersion(), '0.0.6') < 0) {
      /** Version under 0.0.6 -> Upgrade */
      $eavSetup = $this->eavSetupFactory->create(['setup' => $setup]);

      $fieldList = [
      'price',
      'special_price',
      'special_from_date',
      'special_to_date',
      'minimal_price',
      'cost',
      'tier_price',
      'weight',
      'price_type',
      'sku_type',
      'weight_type',
      'price_view',
      'shipment_type',
      'tax_class_id',
      ];

      foreach ($fieldList as $field) {
      $applyTo = explode(
      ',',
      $eavSetup->getAttribute(Product::ENTITY, $field, 'apply_to')
      );
      if (!in_array(CustomProductType::TYPE_ID, $applyTo)) {
      $applyTo = CustomProductType::TYPE_ID;
      $eavSetup->updateAttribute(
      Product::ENTITY,
      $field,
      'apply_to',
      implode(',', $applyTo)
      );
      }
      }
      }
      }
      }


      The Upgradescript runs successfull and I can see according changes in catalog_eav_attribute's apply_to column.



      With all that done I lack the option to add options for containing products:
      Screenshot showing lack of "add option"-Button







      magento2.2.2 bundled-product custom-product-type





      share












      share










      share



      share










      asked 9 mins ago









      muhkuh2005muhkuh2005

      133




      133






















          0






          active

          oldest

          votes











          Your Answer








          StackExchange.ready(function() {
          var channelOptions = {
          tags: "".split(" "),
          id: "479"
          };
          initTagRenderer("".split(" "), "".split(" "), channelOptions);

          StackExchange.using("externalEditor", function() {
          // Have to fire editor after snippets, if snippets enabled
          if (StackExchange.settings.snippets.snippetsEnabled) {
          StackExchange.using("snippets", function() {
          createEditor();
          });
          }
          else {
          createEditor();
          }
          });

          function createEditor() {
          StackExchange.prepareEditor({
          heartbeatType: 'answer',
          autoActivateHeartbeat: false,
          convertImagesToLinks: false,
          noModals: true,
          showLowRepImageUploadWarning: true,
          reputationToPostImages: null,
          bindNavPrevention: true,
          postfix: "",
          imageUploader: {
          brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
          contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
          allowUrls: true
          },
          onDemand: true,
          discardSelector: ".discard-answer"
          ,immediatelyShowMarkdownHelp:true
          });


          }
          });














          draft saved

          draft discarded


















          StackExchange.ready(
          function () {
          StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fmagento.stackexchange.com%2fquestions%2f258316%2fextending-bundle-product-in-custom-type-ends-up-without-add-option-button%23new-answer', 'question_page');
          }
          );

          Post as a guest















          Required, but never shown

























          0






          active

          oldest

          votes








          0






          active

          oldest

          votes









          active

          oldest

          votes






          active

          oldest

          votes
















          draft saved

          draft discarded




















































          Thanks for contributing an answer to Magento Stack Exchange!


          • Please be sure to answer the question. Provide details and share your research!

          But avoid



          • Asking for help, clarification, or responding to other answers.

          • Making statements based on opinion; back them up with references or personal experience.


          To learn more, see our tips on writing great answers.




          draft saved


          draft discarded














          StackExchange.ready(
          function () {
          StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fmagento.stackexchange.com%2fquestions%2f258316%2fextending-bundle-product-in-custom-type-ends-up-without-add-option-button%23new-answer', 'question_page');
          }
          );

          Post as a guest















          Required, but never shown





















































          Required, but never shown














          Required, but never shown












          Required, but never shown







          Required, but never shown

































          Required, but never shown














          Required, but never shown












          Required, but never shown







          Required, but never shown







          Popular posts from this blog

          Polycentropodidae

          Magento 2 Error message: Invalid state change requested

          Paulmy