Closed dawhoo closed 7 years ago
Try without redis active.
Same issue here. Not using Redis.
After clearing cache, the first pagehit shows product level swatch image as expected - second pagehit reverts back to attribute level hex codes. Doesn't matter whether you're on product page or category page.
Sounds like product level swatch images aren't cached properly.
Same here, no Redis or memcache.
erfanimani, could you try and disable cache on your EAV in System>Cache Mangement and if that makes a difference for you? With the EAV cache disabled, the swatches work on all pages for me. Just wondering if maybe we have the same issue or similar issue. Thank you.
Yeah, disabling EAV cache (and page cache) worked for me. Product page worked instantly after disabling. For the category page I had to reindex before it worked. Seems index is also using bad cached EAV swatch data..
@dawhoo This issue might very well have been solved on the develop branch.. I can test this week. I'm using 2.1.7 at the moment.
I've also noticed the divs get a different class
<div class="swatch-option image" option-type="2" for the swatches with images that work.
and
< div class="swatch-option" option-type="3" when the swatches don't work.
Looking into the EAV types and attributes, I checked into the database and noticed, in eav_attribute_option_swatch under "type" there are 3 options, 0 - text, 1 - visual color, 2 - visual image.
The 0 fields have text sizes under value, 1 fields have hex code colors, a few 2 fields have images upload to the swatch istelf. And there's there's a lot of 3 with NULL values.
It's as if the EAV cache turns off the "Use Product Image Fallback" in the attribute settings. Because even the items with div option 3, turn back to div option 2, when the EAV cache is disabled of the cache is flushed.
@erfanimani I just moved to 2.1.7 as well. I'm very new here, do you know where this development branch is and does it mention/show split file changes?
@dawhoo Dev branch is here: https://github.com/magento/magento2/tree/develop (I think it's the default branch of the project).
I think you can just clone the repo and run it. To see changes, you can do a Git diff as per normal. (2.1.7 release is either tagged or a branch).
I have the same problem on 2.1.6, and i am using no redis or varnish cache
Same issue after update 2.1.6 to 2.1.7. [no redis, no memcache, no varnish]
same issue after update from 2.1.5 to 2.1.7 EAV cache disable fix works. My SQL 5.7.18 & PHP 5.6.30
Colors in the DB eav_attribute_option_swatch are all set to site_id=0 with NULL or hex color
Sizes in the DB eeav_attribute_option_swatch are all set to site_id=1 or 2
Color is the DB eav_attribute_label only shows store_id=1 or 2
Color and Size in DB eav_attribute_option_value have store_id=0 or 1 or 3
permissions on all pub folders 02775 and files 02664 with and unmask of 002
Don't know if that has any bearing on the issue, just wanted to put as much information as can
I'm not entirely sure if this is the same, but there was a bug introduced in Magento 2.1.6 and it still exists in 2.1.7 where the cache of the attribute options can contain wrong data if you use multiple storeviews. This was fixed in https://github.com/magento/magento2/pull/9704 But I have the feeling this is probably not 100% exactly the same bug, although it also involves caches and attribute options...
It would be great if someone could create a bugreport using a clean Magento installation with the steps about how to reproduce this bug. You can use the template Magento provides: https://raw.githubusercontent.com/magento/magento2/develop/ISSUE_TEMPLATE.md
In that way this issue might get picked up faster then without steps about how to reproduce this on a clean Magento installation.
@hostep I tried the file mentioned #9704 but it didn't seem to fix the issue for me, however, I may need to upgrade/compile/deploy before I can say that for certain.
Uploaded the new file. Made an error copying it. Flushed Cache and only home page would load and nothing else. Realized my mistake and uploaded the correct file from #9704 Flushed Cache, enabled EAV cache, Flushed Cache and Image Cache and JS/CSS Cache. Reloaded page - swatches all showed up. Navigated to next page and blank swatches or swatches loaded with the hex colors.
I'll try again this evening with a full upgrade/compile/deploy and see if that makes a difference.
I just tested on the latest develop branch and I can't replicate the bug any more. I don't fully understand Magento's branching/release model, but I'm pretty certain that it has already been fixed and will make its way into 2.2.
To clarify, current development branch is 2.2.0-dev
. Can't replicate issue, so fixed in 2.2.0.
@dawhoo: ok, I had the feeling this was another bug, so https://github.com/magento/magento2/pull/9704 most likely won't fix it.
It would still be great if someone could test this on a clean Magento 2.1.7 project to see if the bug still applies and isn't caused by some 3rd party module or theme.
@erfanimani: last weekend I also had to find a commit for a bug which was fixed on develop but not on the 2.1 branch, and I used git bisect
to find the commit which fixed it. It is a lot of work though, you first have to find a commit where it is broken on the develop branch, and then a commit where it works and then let git bisect
do its work. It also involves initializing the database and populating it with test data again and again and again, so this takes many many hours to find the commit. But once the commit where the problem is fixed is found, then it is just a matter of trying to backport that commit to the 2.1-develop branch and then it will be included in one of the next minor 2.1.x releases.
@dawhoo thank you for your feedback. Please, format this issue according to the Issue reporting guidelines: with steps to reproduce, actual result and expected result. As it is much easier to understand and reproduce the problem when the isssue is well-formatted.
@dawhoo Thanks for reporting this issue. I cannot reproduce this issue. Please add more details to your description of the steps you followed when identifying this issue. Screenshots or logs would be helpful, too.
Same problem for me.
Catalog Input type for Store Owner: Visual Swatch Values Required: Yes Update preview image: Yes Use Product Image for Swatch if Possible: Yes
Step to reproduce:
@veloraven Here are steps to reproduce: Magento 2.1.7.
As far as I can tell this is fixed in 2.1.8. I can reproduce it on 2.1.7 + sample data just after changing the 'color' attr to use product image for swatch. I cannot reproduce it on 2.1.8 following the same process. Unknown what change(s) actually resolved it.
Thank you @rhoerr for the testing. Closing this issue
Nexcess VPS SIP 300 - PHP 7.0.17 - SQL: Percona Server: 5.6.35-81.0 - Percona Server (GPL), Release 81.0, Revision c96c427 - magento-unmask: 022 permissions 755/644
Upgrade from 2.1.5 via composer. The usual: upgrade/flush/reindex/mode/compile/deploy which has been tried multiple times with different modules enabled/disabled and narrowed down to the single element - I think.
After upgrade, only the first 'hit' page will show image swatches when all cache modes are enabled.
When "Flush Magento Cache" is used, the next page (product, category, or search) will show the swatch product images. All subsequent pages do not show product image swatches. Those colors with defined colors in Admin via hex code will show, but no product images as swatches.
Swatches without a hex will show a blank image. Investigating code shows no image is being inserted into the div.
If "EAV types and attributes" cache is disabled via backend admin, then all the swatches work as expected. Enable the cache for EAV types and attributes and only the first "hit' page will load the swatches properly.
After many hours searching, I've yet to find the 'fix' for the issue and maybe it's only related to the environment.