Magento 2 : Custom product type module updateMagento2: 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 the meaning of "You've never met a graph you didn't like?"
How do you say "Trust your struggle." in French?
What is it called when someone votes for an option that's not their first choice?
Highest stage count that are used one right after the other?
Hashing password to increase entropy
How to test the sharpness of a knife?
Air travel with refrigerated insulin
Should a narrator ever describe things based on a character's view instead of facts?
Do native speakers use "ultima" and "proxima" frequently in spoken English?
Friend wants my recommendation but I don't want to give it to him
Amorphous proper classes in MK
Checking @@ROWCOUNT failing
Can you describe someone as luxurious? As in someone who likes luxurious things?
Weird lines in Microsoft Word
What properties make a magic weapon befit a Rogue more than a DEX-based Fighter?
What is the purpose of using a decision tree?
Why didn't Voldemort know what Grindelwald looked like?
Trouble reading roman numeral notation with flats
Why doesn't Gödel's incompleteness theorem apply to false statements?
Is there a distance limit for minecart tracks?
Make a Bowl of Alphabet Soup
Output visual diagram of picture
Started in 1987 vs. Starting in 1987
Reasons for having MCU pin-states default to pull-up/down out of reset
Magento 2 : Custom product type module update
Magento2: 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 16 hours ago
magefms
1,8321425
1,8321425
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 16 hours ago
magefmsmagefms
1,8321425
1,8321425
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