Closed
Description
OpenMage 20.1.0-rc1, There is big problem, when add more store views,you can't create customers、orders on backend.blow are the error message.
2023-03-13T16:04:49+00:00 ERR (3):
Exception: Cannot call addStoreLabel for different store views on the same collection in web/app/code/core/Mage/Eav/Model/Resource/Entity/Attribute/Collection.php:441
Stack trace:
#0 web/app/code/core/Mage/Eav/Model/Config.php(213): Mage_Eav_Model_Resource_Entity_Attribute_Collection->addStoreLabel(1)
#1 web/app/code/core/Mage/Eav/Model/Config.php(172): Mage_Eav_Model_Config->_loadEntityAttributes(Object(Mage_Eav_Model_Entity_Type), 1)
#2 web/app/code/core/Mage/Eav/Model/Config.php(532): Mage_Eav_Model_Config->_initializeStore(1)
#3 web/app/code/core/Mage/Eav/Model/Entity/Abstract.php(503): Mage_Eav_Model_Config->getEntityAttributeCodes(Object(Mage_Eav_Model_Entity_Type), Object(Mage_Customer_Model_Customer))
#4 web/app/code/core/Mage/Eav/Model/Entity/Abstract.php(938): Mage_Eav_Model_Entity_Abstract->loadAllAttributes(Object(Mage_Customer_Model_Customer))
#5 web/app/code/core/Mage/Core/Model/Abstract.php(292): Mage_Eav_Model_Entity_Abstract->load(Object(Mage_Customer_Model_Customer), 1, NULL)
#6 web/app/code/core/Mage/Adminhtml/Model/Session/Quote.php(138): Mage_Core_Model_Abstract->load(1)
#7 web/app/code/core/Mage/Adminhtml/Block/Sales/Order/Create/Abstract.php(68): Mage_Adminhtml_Model_Session_Quote->getCustomer()
#8 web/app/code/core/Mage/Adminhtml/Block/Sales/Order/Create/Header.php(48): Mage_Adminhtml_Block_Sales_Order_Create_Abstract->getCustomer()
#9 web/app/code/core/Mage/Core/Block/Abstract.php(933): Mage_Adminhtml_Block_Sales_Order_Create_Header->_toHtml()
#10 web/app/code/core/Mage/Adminhtml/Block/Sales/Order/Create.php(93): Mage_Core_Block_Abstract->toHtml()
#11 web/app/design/adminhtml/default/default/template/widget/form/container.phtml(29): Mage_Adminhtml_Block_Sales_Order_Create->getHeaderHtml()
#12 web/app/code/core/Mage/Core/Block/Template.php(257): include('/home/wwwroot/l...')
#13 web/app/code/core/Mage/Core/Block/Template.php(294): Mage_Core_Block_Template->fetchView('adminhtml/defau...')
#14 web/app/code/core/Mage/Core/Block/Template.php(307): Mage_Core_Block_Template->renderView()
#15 web/app/code/core/Mage/Adminhtml/Block/Template.php(74): Mage_Core_Block_Template->_toHtml()
#16 web/app/code/core/Mage/Adminhtml/Block/Widget/Container.php(300): Mage_Adminhtml_Block_Template->_toHtml()
#17 web/app/code/core/Mage/Core/Block/Abstract.php(933): Mage_Adminhtml_Block_Widget_Container->_toHtml()
#18 web/app/code/core/Mage/Core/Block/Abstract.php(650): Mage_Core_Block_Abstract->toHtml()
#19 web/app/code/core/Mage/Core/Block/Abstract.php(594): Mage_Core_Block_Abstract->_getChildHtml('content', true)
#20 web/app/design/adminhtml/default/default/template/page.phtml(69): Mage_Core_Block_Abstract->getChildHtml('content')
#21 web/app/code/core/Mage/Core/Block/Template.php(257): include('/home/wwwroot/l...')
#22 web/app/code/core/Mage/Core/Block/Template.php(294): Mage_Core_Block_Template->fetchView('adminhtml/defau...')
#23 web/app/code/core/Mage/Core/Block/Template.php(307): Mage_Core_Block_Template->renderView()
#24 web/app/code/core/Mage/Adminhtml/Block/Template.php(74): Mage_Core_Block_Template->_toHtml()
#25 web/app/code/core/Mage/Core/Block/Abstract.php(933): Mage_Adminhtml_Block_Template->_toHtml()
#26 web/app/code/core/Mage/Core/Model/Layout.php(580): Mage_Core_Block_Abstract->toHtml()
#27 web/app/code/core/Mage/Core/Controller/Varien/Action.php(397): Mage_Core_Model_Layout->getOutput()
#28 web/app/code/core/Mage/Adminhtml/controllers/Sales/Order/CreateController.php(344): Mage_Core_Controller_Varien_Action->renderLayout()
#29 web/app/code/core/Mage/Core/Controller/Varien/Action.php(428): Mage_Adminhtml_Sales_Order_CreateController->indexAction()
#30 web/app/code/core/Mage/Core/Controller/Varien/Router/Standard.php(262): Mage_Core_Controller_Varien_Action->dispatch('index')
#31 web/app/code/core/Mage/Core/Controller/Varien/Front.php(188): Mage_Core_Controller_Varien_Router_Standard->match(Object(Mage_Core_Controller_Request_Http))
#32 web/app/code/core/Mage/Core/Model/App.php(371): Mage_Core_Controller_Varien_Front->dispatch()
#33 web/app/Mage.php(745): Mage_Core_Model_App->run(Array)
#34 web/index.php(62): Mage::run('', 'store')
blow function for v20.1.0-rc1
public function addStoreLabel($storeId)
{
// if not called previously
if ($this->_addedStoreLabelsFlag === false) {
$adapter = $this->getConnection();
$joinExpression = $adapter
->quoteInto('al.attribute_id = main_table.attribute_id AND al.store_id = ?', (int)$storeId);
$this->getSelect()->joinLeft(
['al' => $this->getTable('eav/attribute_label')],
$joinExpression,
['store_label' => $adapter->getIfNullSql('al.value', 'main_table.frontend_label')]
);
$this->_addedStoreLabelsFlag = $storeId;
} // check that previous call $storeId matches current call
elseif ($this->_addedStoreLabelsFlag !== $storeId) {
throw new Exception('Cannot call addStoreLabel for different store views on the same collection');
}
return $this;
}
this is for 1.9.4.x
public function addStoreLabel($storeId)
{
$adapter = $this->getConnection();
$joinExpression = $adapter
->quoteInto('al.attribute_id = main_table.attribute_id AND al.store_id = ?', (int) $storeId);
$this->getSelect()->joinLeft(
['al' => $this->getTable('eav/attribute_label')],
$joinExpression,
['store_label' => $adapter->getIfNullSql('al.value', 'main_table.frontend_label')]
);
return $this;
}
```````````````````