Magento 2 : Custom product type module update The Next CEO of Stack OverflowMagento2: How to add pre defined data (installData.php) for Custom ModuleError during upgrade to Magento 2.1 from 2.0.7installation stopping at 51%Magento 2.1.5 How to create Module which can use Eav functionalities (addAttribute in my case)I have created an extension to show Customer Company Name in Order grid. But when creating new order, order is not showing in order gridHaving trouble exporting products from Magento 2.x. Fatal error: Uncaught Error: Call to a member function getName()Custom EAV Entity Type Missing “default_attribute_set_id” In ModelMagento 2 How to upgrade existing custom customer address attribute?Magento2 REST API get all customers detailsMagento 2.3 How to get all the Multi Source Inventory (MSI) locations collection in custom module?
What is required to make GPS signals available indoors?
Can compressed videos be decoded back to their uncompresed original format?
Can a simulacrum "regain" HP by being True Polymorphed into a creature that can do so normally?
Why did early computer designers eschew integers?
Is there a rule of thumb for determining the amount one should accept for a settlement offer?
Is there any pdf viewer with dark mode?
Can corrosion on the subframe be addressed by cleaning and repainting or waxoyling?
How to show a landlord what we have in savings?
How to compactly explain secondary and tertiary characters without resorting to stereotypes?
What does the same-ish mean?
How does allowing Sneak Attack with improvised weapons imbalance gameplay at the table?
Why is the sentence "Das ist eine Nase" correct?
Incomplete cube
Why is it a bad idea to hire a hitman to eliminate most corrupt politicians?
Why were 5.25" floppy drives cheaper than 8"?
Best way to load image from list python script
Is it possible to get a referendum by a court decision?
Why was Sir Cadogan fired?
What is the opposite of "eschatology"?
Small nick on power cord from an electric alarm clock, and copper wiring exposed but intact
How can I prove that a state of equilibrium is unstable?
Is a distribution that is normal, but highly skewed, considered Gaussian?
Human-leather Armor: Effective and Practical?
What exactly is ineptocracy?
Magento 2 : Custom product type module update
The Next CEO of Stack OverflowMagento2: How to add pre defined data (installData.php) for Custom ModuleError during upgrade to Magento 2.1 from 2.0.7installation stopping at 51%Magento 2.1.5 How to create Module which can use Eav functionalities (addAttribute in my case)I have created an extension to show Customer Company Name in Order grid. But when creating new order, order is not showing in order gridHaving trouble exporting products from Magento 2.x. Fatal error: Uncaught Error: Call to a member function getName()Custom EAV Entity Type Missing “default_attribute_set_id” In ModelMagento 2 How to upgrade existing custom customer address attribute?Magento2 REST API get all customers detailsMagento 2.3 How to get all the Multi Source Inventory (MSI) locations collection in custom module?
I have a module that was defining a custom product type: MyPT1
I added a second custom product type (MyPT2) using the same module.
But When I create a MyPT2 product in the backend, the price is not present.
I Think that it is due to the fact that InstallData.php is not run during setup:upgrade as the module was already installed.
I then would like to create a UpgradeData.php but I don't know how to create it correctly.
Here is my InstallData.php
<?php
namespace VendorModuleSetup;
use MagentoEavSetupEavSetup;
use MagentoEavSetupEavSetupFactory;
use MagentoFrameworkSetupInstallDataInterface;
use MagentoFrameworkSetupModuleContextInterface;
use MagentoFrameworkSetupModuleDataSetupInterface;
class InstallData implements InstallDataInterface
protected $eavSetupFactory;
public function __construct(EavSetupFactory $eavSetupFactory)
$this->eavSetupFactory = $eavSetupFactory;
public function install(ModuleDataSetupInterface $setup, ModuleContextInterface $context)
$eavSetup = $this->eavSetupFactory->create(['setup' => $setup]);
$fieldList = [
'price',
'special_price',
'special_from_date',
'special_to_date',
'minimal_price',
'cost',
'tier_price',
'weight',
];
foreach ($fieldList as $field)
$applyTo = explode(
',',
$eavSetup->getAttribute(MagentoCatalogModelProduct::ENTITY, $field, 'apply_to')
);
if (!in_array(VendorModuleModelProductTypeMyPT1::TYPE_CODE, $applyTo))
$applyTo[] = VendorModuleModelProductTypeMyPT1::TYPE_CODE;
$eavSetup->updateAttribute(
MagentoCatalogModelProduct::ENTITY,
$field,
'apply_to',
implode(',', $applyTo)
);
if (!in_array(VendorModuleModelProductTypeMyPT2::TYPE_CODE, $applyTo))
$applyTo[] = VendorModuleModelProductTypeMyPT2::TYPE_CODE;
$eavSetup->updateAttribute(
MagentoCatalogModelProduct::ENTITY,
$field,
'apply_to',
implode(',', $applyTo)
);
Thank you for your help,
magento2 module upgrade
add a comment |
I have a module that was defining a custom product type: MyPT1
I added a second custom product type (MyPT2) using the same module.
But When I create a MyPT2 product in the backend, the price is not present.
I Think that it is due to the fact that InstallData.php is not run during setup:upgrade as the module was already installed.
I then would like to create a UpgradeData.php but I don't know how to create it correctly.
Here is my InstallData.php
<?php
namespace VendorModuleSetup;
use MagentoEavSetupEavSetup;
use MagentoEavSetupEavSetupFactory;
use MagentoFrameworkSetupInstallDataInterface;
use MagentoFrameworkSetupModuleContextInterface;
use MagentoFrameworkSetupModuleDataSetupInterface;
class InstallData implements InstallDataInterface
protected $eavSetupFactory;
public function __construct(EavSetupFactory $eavSetupFactory)
$this->eavSetupFactory = $eavSetupFactory;
public function install(ModuleDataSetupInterface $setup, ModuleContextInterface $context)
$eavSetup = $this->eavSetupFactory->create(['setup' => $setup]);
$fieldList = [
'price',
'special_price',
'special_from_date',
'special_to_date',
'minimal_price',
'cost',
'tier_price',
'weight',
];
foreach ($fieldList as $field)
$applyTo = explode(
',',
$eavSetup->getAttribute(MagentoCatalogModelProduct::ENTITY, $field, 'apply_to')
);
if (!in_array(VendorModuleModelProductTypeMyPT1::TYPE_CODE, $applyTo))
$applyTo[] = VendorModuleModelProductTypeMyPT1::TYPE_CODE;
$eavSetup->updateAttribute(
MagentoCatalogModelProduct::ENTITY,
$field,
'apply_to',
implode(',', $applyTo)
);
if (!in_array(VendorModuleModelProductTypeMyPT2::TYPE_CODE, $applyTo))
$applyTo[] = VendorModuleModelProductTypeMyPT2::TYPE_CODE;
$eavSetup->updateAttribute(
MagentoCatalogModelProduct::ENTITY,
$field,
'apply_to',
implode(',', $applyTo)
);
Thank you for your help,
magento2 module upgrade
add a comment |
I have a module that was defining a custom product type: MyPT1
I added a second custom product type (MyPT2) using the same module.
But When I create a MyPT2 product in the backend, the price is not present.
I Think that it is due to the fact that InstallData.php is not run during setup:upgrade as the module was already installed.
I then would like to create a UpgradeData.php but I don't know how to create it correctly.
Here is my InstallData.php
<?php
namespace VendorModuleSetup;
use MagentoEavSetupEavSetup;
use MagentoEavSetupEavSetupFactory;
use MagentoFrameworkSetupInstallDataInterface;
use MagentoFrameworkSetupModuleContextInterface;
use MagentoFrameworkSetupModuleDataSetupInterface;
class InstallData implements InstallDataInterface
protected $eavSetupFactory;
public function __construct(EavSetupFactory $eavSetupFactory)
$this->eavSetupFactory = $eavSetupFactory;
public function install(ModuleDataSetupInterface $setup, ModuleContextInterface $context)
$eavSetup = $this->eavSetupFactory->create(['setup' => $setup]);
$fieldList = [
'price',
'special_price',
'special_from_date',
'special_to_date',
'minimal_price',
'cost',
'tier_price',
'weight',
];
foreach ($fieldList as $field)
$applyTo = explode(
',',
$eavSetup->getAttribute(MagentoCatalogModelProduct::ENTITY, $field, 'apply_to')
);
if (!in_array(VendorModuleModelProductTypeMyPT1::TYPE_CODE, $applyTo))
$applyTo[] = VendorModuleModelProductTypeMyPT1::TYPE_CODE;
$eavSetup->updateAttribute(
MagentoCatalogModelProduct::ENTITY,
$field,
'apply_to',
implode(',', $applyTo)
);
if (!in_array(VendorModuleModelProductTypeMyPT2::TYPE_CODE, $applyTo))
$applyTo[] = VendorModuleModelProductTypeMyPT2::TYPE_CODE;
$eavSetup->updateAttribute(
MagentoCatalogModelProduct::ENTITY,
$field,
'apply_to',
implode(',', $applyTo)
);
Thank you for your help,
magento2 module upgrade
I have a module that was defining a custom product type: MyPT1
I added a second custom product type (MyPT2) using the same module.
But When I create a MyPT2 product in the backend, the price is not present.
I Think that it is due to the fact that InstallData.php is not run during setup:upgrade as the module was already installed.
I then would like to create a UpgradeData.php but I don't know how to create it correctly.
Here is my InstallData.php
<?php
namespace VendorModuleSetup;
use MagentoEavSetupEavSetup;
use MagentoEavSetupEavSetupFactory;
use MagentoFrameworkSetupInstallDataInterface;
use MagentoFrameworkSetupModuleContextInterface;
use MagentoFrameworkSetupModuleDataSetupInterface;
class InstallData implements InstallDataInterface
protected $eavSetupFactory;
public function __construct(EavSetupFactory $eavSetupFactory)
$this->eavSetupFactory = $eavSetupFactory;
public function install(ModuleDataSetupInterface $setup, ModuleContextInterface $context)
$eavSetup = $this->eavSetupFactory->create(['setup' => $setup]);
$fieldList = [
'price',
'special_price',
'special_from_date',
'special_to_date',
'minimal_price',
'cost',
'tier_price',
'weight',
];
foreach ($fieldList as $field)
$applyTo = explode(
',',
$eavSetup->getAttribute(MagentoCatalogModelProduct::ENTITY, $field, 'apply_to')
);
if (!in_array(VendorModuleModelProductTypeMyPT1::TYPE_CODE, $applyTo))
$applyTo[] = VendorModuleModelProductTypeMyPT1::TYPE_CODE;
$eavSetup->updateAttribute(
MagentoCatalogModelProduct::ENTITY,
$field,
'apply_to',
implode(',', $applyTo)
);
if (!in_array(VendorModuleModelProductTypeMyPT2::TYPE_CODE, $applyTo))
$applyTo[] = VendorModuleModelProductTypeMyPT2::TYPE_CODE;
$eavSetup->updateAttribute(
MagentoCatalogModelProduct::ENTITY,
$field,
'apply_to',
implode(',', $applyTo)
);
Thank you for your help,
magento2 module upgrade
magento2 module upgrade
edited Mar 19 at 10:20
magefms
2,2052426
2,2052426
asked Apr 24 '18 at 8:45
AlexglvrAlexglvr
87511138
87511138
add a comment |
add a comment |
1 Answer
1
active
oldest
votes
This one should work:
<?php
namespace VendorModuleSetup;
use MagentoEavSetupEavSetup;
use MagentoEavSetupEavSetupFactory;
use MagentoFrameworkSetupInstallDataInterface;
use MagentoFrameworkSetupModuleContextInterface;
use MagentoFrameworkSetupModuleDataSetupInterface;
class UpgradeData implements InstallDataInterface
protected $eavSetupFactory;
public function __construct(EavSetupFactory $eavSetupFactory)
$this->eavSetupFactory = $eavSetupFactory;
public function upgrade(ModuleDataSetupInterface $setup, ModuleContextInterface $context)
$setup->startSetup();
if (version_compare($context->getVersion(), '1.0.1', '<'))
$eavSetup = $this->eavSetupFactory->create(['setup' => $setup]);
$fieldList = [
'price',
'special_price',
'special_from_date',
'special_to_date',
'minimal_price',
'cost',
'tier_price',
'weight',
];
foreach ($fieldList as $field)
$applyTo = explode(
',',
$eavSetup->getAttribute(MagentoCatalogModelProduct::ENTITY, $field, 'apply_to')
);
if (!in_array(VendorModuleModelProductTypeMyPT1::TYPE_CODE, $applyTo))
$applyTo[] = VendorModuleModelProductTypeMyPT1::TYPE_CODE;
$eavSetup->updateAttribute(
MagentoCatalogModelProduct::ENTITY,
$field,
'apply_to',
implode(',', $applyTo)
);
if (!in_array(VendorModuleModelProductTypeMyPT2::TYPE_CODE, $applyTo))
$applyTo[] = VendorModuleModelProductTypeMyPT2::TYPE_CODE;
$eavSetup->updateAttribute(
MagentoCatalogModelProduct::ENTITY,
$field,
'apply_to',
implode(',', $applyTo)
);
$setup->endSetup();
add a comment |
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
);
);
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fmagento.stackexchange.com%2fquestions%2f223438%2fmagento-2-custom-product-type-module-update%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
This one should work:
<?php
namespace VendorModuleSetup;
use MagentoEavSetupEavSetup;
use MagentoEavSetupEavSetupFactory;
use MagentoFrameworkSetupInstallDataInterface;
use MagentoFrameworkSetupModuleContextInterface;
use MagentoFrameworkSetupModuleDataSetupInterface;
class UpgradeData implements InstallDataInterface
protected $eavSetupFactory;
public function __construct(EavSetupFactory $eavSetupFactory)
$this->eavSetupFactory = $eavSetupFactory;
public function upgrade(ModuleDataSetupInterface $setup, ModuleContextInterface $context)
$setup->startSetup();
if (version_compare($context->getVersion(), '1.0.1', '<'))
$eavSetup = $this->eavSetupFactory->create(['setup' => $setup]);
$fieldList = [
'price',
'special_price',
'special_from_date',
'special_to_date',
'minimal_price',
'cost',
'tier_price',
'weight',
];
foreach ($fieldList as $field)
$applyTo = explode(
',',
$eavSetup->getAttribute(MagentoCatalogModelProduct::ENTITY, $field, 'apply_to')
);
if (!in_array(VendorModuleModelProductTypeMyPT1::TYPE_CODE, $applyTo))
$applyTo[] = VendorModuleModelProductTypeMyPT1::TYPE_CODE;
$eavSetup->updateAttribute(
MagentoCatalogModelProduct::ENTITY,
$field,
'apply_to',
implode(',', $applyTo)
);
if (!in_array(VendorModuleModelProductTypeMyPT2::TYPE_CODE, $applyTo))
$applyTo[] = VendorModuleModelProductTypeMyPT2::TYPE_CODE;
$eavSetup->updateAttribute(
MagentoCatalogModelProduct::ENTITY,
$field,
'apply_to',
implode(',', $applyTo)
);
$setup->endSetup();
add a comment |
This one should work:
<?php
namespace VendorModuleSetup;
use MagentoEavSetupEavSetup;
use MagentoEavSetupEavSetupFactory;
use MagentoFrameworkSetupInstallDataInterface;
use MagentoFrameworkSetupModuleContextInterface;
use MagentoFrameworkSetupModuleDataSetupInterface;
class UpgradeData implements InstallDataInterface
protected $eavSetupFactory;
public function __construct(EavSetupFactory $eavSetupFactory)
$this->eavSetupFactory = $eavSetupFactory;
public function upgrade(ModuleDataSetupInterface $setup, ModuleContextInterface $context)
$setup->startSetup();
if (version_compare($context->getVersion(), '1.0.1', '<'))
$eavSetup = $this->eavSetupFactory->create(['setup' => $setup]);
$fieldList = [
'price',
'special_price',
'special_from_date',
'special_to_date',
'minimal_price',
'cost',
'tier_price',
'weight',
];
foreach ($fieldList as $field)
$applyTo = explode(
',',
$eavSetup->getAttribute(MagentoCatalogModelProduct::ENTITY, $field, 'apply_to')
);
if (!in_array(VendorModuleModelProductTypeMyPT1::TYPE_CODE, $applyTo))
$applyTo[] = VendorModuleModelProductTypeMyPT1::TYPE_CODE;
$eavSetup->updateAttribute(
MagentoCatalogModelProduct::ENTITY,
$field,
'apply_to',
implode(',', $applyTo)
);
if (!in_array(VendorModuleModelProductTypeMyPT2::TYPE_CODE, $applyTo))
$applyTo[] = VendorModuleModelProductTypeMyPT2::TYPE_CODE;
$eavSetup->updateAttribute(
MagentoCatalogModelProduct::ENTITY,
$field,
'apply_to',
implode(',', $applyTo)
);
$setup->endSetup();
add a comment |
This one should work:
<?php
namespace VendorModuleSetup;
use MagentoEavSetupEavSetup;
use MagentoEavSetupEavSetupFactory;
use MagentoFrameworkSetupInstallDataInterface;
use MagentoFrameworkSetupModuleContextInterface;
use MagentoFrameworkSetupModuleDataSetupInterface;
class UpgradeData implements InstallDataInterface
protected $eavSetupFactory;
public function __construct(EavSetupFactory $eavSetupFactory)
$this->eavSetupFactory = $eavSetupFactory;
public function upgrade(ModuleDataSetupInterface $setup, ModuleContextInterface $context)
$setup->startSetup();
if (version_compare($context->getVersion(), '1.0.1', '<'))
$eavSetup = $this->eavSetupFactory->create(['setup' => $setup]);
$fieldList = [
'price',
'special_price',
'special_from_date',
'special_to_date',
'minimal_price',
'cost',
'tier_price',
'weight',
];
foreach ($fieldList as $field)
$applyTo = explode(
',',
$eavSetup->getAttribute(MagentoCatalogModelProduct::ENTITY, $field, 'apply_to')
);
if (!in_array(VendorModuleModelProductTypeMyPT1::TYPE_CODE, $applyTo))
$applyTo[] = VendorModuleModelProductTypeMyPT1::TYPE_CODE;
$eavSetup->updateAttribute(
MagentoCatalogModelProduct::ENTITY,
$field,
'apply_to',
implode(',', $applyTo)
);
if (!in_array(VendorModuleModelProductTypeMyPT2::TYPE_CODE, $applyTo))
$applyTo[] = VendorModuleModelProductTypeMyPT2::TYPE_CODE;
$eavSetup->updateAttribute(
MagentoCatalogModelProduct::ENTITY,
$field,
'apply_to',
implode(',', $applyTo)
);
$setup->endSetup();
This one should work:
<?php
namespace VendorModuleSetup;
use MagentoEavSetupEavSetup;
use MagentoEavSetupEavSetupFactory;
use MagentoFrameworkSetupInstallDataInterface;
use MagentoFrameworkSetupModuleContextInterface;
use MagentoFrameworkSetupModuleDataSetupInterface;
class UpgradeData implements InstallDataInterface
protected $eavSetupFactory;
public function __construct(EavSetupFactory $eavSetupFactory)
$this->eavSetupFactory = $eavSetupFactory;
public function upgrade(ModuleDataSetupInterface $setup, ModuleContextInterface $context)
$setup->startSetup();
if (version_compare($context->getVersion(), '1.0.1', '<'))
$eavSetup = $this->eavSetupFactory->create(['setup' => $setup]);
$fieldList = [
'price',
'special_price',
'special_from_date',
'special_to_date',
'minimal_price',
'cost',
'tier_price',
'weight',
];
foreach ($fieldList as $field)
$applyTo = explode(
',',
$eavSetup->getAttribute(MagentoCatalogModelProduct::ENTITY, $field, 'apply_to')
);
if (!in_array(VendorModuleModelProductTypeMyPT1::TYPE_CODE, $applyTo))
$applyTo[] = VendorModuleModelProductTypeMyPT1::TYPE_CODE;
$eavSetup->updateAttribute(
MagentoCatalogModelProduct::ENTITY,
$field,
'apply_to',
implode(',', $applyTo)
);
if (!in_array(VendorModuleModelProductTypeMyPT2::TYPE_CODE, $applyTo))
$applyTo[] = VendorModuleModelProductTypeMyPT2::TYPE_CODE;
$eavSetup->updateAttribute(
MagentoCatalogModelProduct::ENTITY,
$field,
'apply_to',
implode(',', $applyTo)
);
$setup->endSetup();
answered Mar 19 at 10:14
magefmsmagefms
2,2052426
2,2052426
add a comment |
add a comment |
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.
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fmagento.stackexchange.com%2fquestions%2f223438%2fmagento-2-custom-product-type-module-update%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
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