View Issue Details

IDProjectCategoryView StatusLast Update
0006987OXID eShop (all versions)2.4. Administer productspublic2020-02-28 22:50
Reportersimon.runer 
PrioritynormalSeveritymajorReproducibilityalways
Status acknowledgedResolutionopen 
Product Version6.0.3 
Target VersionFixed in Version 
Summary0006987: Cannot edit product description in subshop (with
DescriptionThe Texteditor gets a disabled textarea in subshops:

<textarea disabled="" id="editor_oxarticles__oxlongdesc" name="oxarticles__oxlongdesc" style="width: 100%; height: 300px; display: none;">

This comes from the function _generateTextEditor() called with $field = 'oxarticles__oxlongdesc'

https://github.com/OXID-eSales/oxideshop_ce/blob/6bbd0b5f7d2d7571638f2644ef5fa5858095d51f/source/Application/Controller/Admin/ArticleMain.php#L98

In EE $field gets later compared in a function named canUpdateField() against entries in $aMultishopArticleFields. These entries are defined without the table name.
We have 'oxlongdesc' in $aMultishopArticleFields but not 'oxarticles__oxlongdesc'
Steps To Reproducesee description
TagsAdmin, Article, EE, Multi Shop, Products, WYSIWYG
ThemeNot defined
BrowserNot defined
PHP VersionNot defined
Database VersionNot defined

Activities

QA

2019-05-31 18:43

administrator   ~0012904

Last edited: 2019-06-03 10:24

View 2 revisions

As the comment of aMultishopArticleFields says "Define oxarticles fields which could be edited individually in subshops."
However the requested field is not in oxarticles but in oxartextends.

In earlier shop versions oxlongdesc was included in the oxarticle.

-MF

simon.runer

2019-06-01 18:41

reporter   ~0012905

Not sure If I got this right. Only fields from oxarticles can/should be added to aMultishopArticleFields and to the table oxfield2shop?
That would mean the article long description cannot be a multishop field?

QA

2019-06-06 16:27

administrator   ~0012910

Correct. Only fields from oxarticles can be added.

But since the long description is still part of the article despite the database design, I acknowledged this as a bug.

simon.runer

2019-06-06 17:31

reporter   ~0012911

So the correct behaviour should be that we can add oxlongdesc to aMultishopArticleFields ?
We have a MultiShop Setup with Oxid 5 and one with Oxi6 and in both we added oxlongdesc to aMultishopArticleFields and it works fine in the frontend for years/month.
If that is not supposed to work and might not work in the future when the bug is fixed, we would defentitely need to know that.

QA

2019-06-07 16:10

administrator   ~0012912

It should be possible to edit the oxlongdesc in sub shops which isnt currently working.
Product management is informed and will decide when it will be fixed.

finnegan

2020-02-28 22:50

reporter   ~0013139

I can confirm this bug.
In EE 5.x with 1 master shop for all articles and several subshops we could edit OXLONGDESC in the subshops separately, although even then the field was _not_ stored in oxarticle, but in oxfield2shop.

After upgrading to EE 6.1.5 this did not work any more.
The problem is that when editing a subshop version of the article OXLONGDESC is correctly written to oxfield2shop but _also_ to oxartextends, thus overwriting the master shop version of OXLONGDESC.

My findings:

In vendor/oxid-esales/oxideshop-ee/Application/Model/Article.php
protected function _update()

Íf you edit a subshop version of an article the if() applies, updates the field2shop table and returns.

Later in vendor/oxid-esales/oxideshop-ce/source/Application/Model/Article.php

in public function save()
$this->_saveArtLongDesc(); is called which updates the master shop version of the OXLONGDESC, which is an error.

The problem, as far as I can see, is that with the new split between EE and CE article class in EE V6.x the function
protected function _skipSaveFields()
is never called when updating the subshop version of an article.

If this function would be called then the _aSkipSaveFields array would contain OXLONGDESC and the master version of OXLONGDESC would not be updated.

In EE 5.x the function _skipSaveFields() was called within _update of the oxarticle class and everything was fine.

Another minor problem is the fact that the possibility to edit field values separately in subshops is only working when you have clicked "Allow individual price for inherited articles" in the "Mall" tab of the subshop configuration. The naming of this checkbox is misleading. For instance in our case we do not allow inherited subshop articles to have different prices from their master shop versions, but we _do_ want to edit OXSHORTDESC and OXLONGDESC in the subshop articles. So the checkbox should be renamed to something like "Allow individual values of fields defined in config.inc".