View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0006595 | OXID ERP Interface | OXID ERP Interface - sub | public | 2017-02-27 10:44 | 2024-04-03 11:06 |
Reporter | michael_keiluweit | Assigned To | |||
Priority | low | Severity | major | Reproducibility | always |
Status | acknowledged | Resolution | open | ||
Product Version | 2.14.1 | ||||
Summary | 0006595: Read methods doesn't support _set tables (language feature) | ||||
Description | All OXERPGet* methods can only handle multilanguage fields until language 7. When the eighth language is created, the shop adds a new table with the naming object_set1. For example oxarticles_set1. It contains only multilanguage fields but with the language number > 7. By reading multilanguage fields above 7, the ERP module will always return the value for language 0 as fallback. The reason is located in the method \oxERPType::_getMultilangualFields which uses always the "normal" table name, instead of the name the possible set table. The specific line is: $aData = oxDb::getInstance()->getTableDescription($this->_sTableName); If you return the value of $aData you will get an array of available fieldnames of the table oxarticles. The set table is ignored and therefore the multilanguages fields > 7 are missing. By changing the line to: $aData = oxDb::getInstance()->getTableDescription($this->getTableName()); you will get an array with all of the multilanguage fields. From 0 to 8 if 8 is the highest language identifier. | ||||
Steps To Reproduce | 1. Shop: Install the Enterprise Edition (currently 5.3.3). 2. Shop: Add the ERP module (currently 2.14.1). 3. Shop: Create 8 languages, regenerate the views and empty the shop tmp folder. 4. Shop: Fill the multilanguage fields for an article title. 5. ERP: Login with language id 8. 6. ERP: Execute the method "OXERPGetArticle for the example article from step 4. 7. ERP: Verify if the title for language 8 will be the value for OXTITLE. It won't. It will be the title for language 0. | ||||
Additional Information | Workaround Edit the method \oxERPType::_getMultilangualFields Replace the line: $aData = oxDb::getInstance()->getTableDescription($this->_sTableName); with: $aData = oxDb::getInstance()->getTableDescription($this->getTableName()); | ||||
Tags | ERP, Internationalization Rework, Product domain and basket rewrite, SOAP | ||||