New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Five Bugs #115
Comments
Aimeos is unable to replace any meta tags added by other extensions before or afterwards to the head section. Please make sure no other extension adds meta tags for the catalog list and catalog detail page. |
We are still looking for the best routes enhancer configuration. Can you try these rules instead? |
If you've set |
I have a clean Typo3 installation only aimeos as third party extension. the second canonical clearly comes from 'seo', the sysext of typo3. If I deactivate the plugin the second metatag disappears, if I change value in page setting seo tab, canonical url, the metatag changes. Deactivating the sysext seo for my whole site is not an option to me. If you know a typoscript setup to prevent the sysext seo from rendering the canonical url for one page only, I would be really happy, but as far as I know this is not possible. But I read it's possible to replace the canonical. I mentioned yoast_seo, because I think they override it, but I don't have that installed at the moment. |
OK, we will use the new MetaTag API in the next version. Probably also backported to 2019.10 |
Yeah, very great, I didn't read that conversation. I don't want to give a complete result because I need more time to test this, but all first test show great results. The sorting works, the rest aswell and on the fly the catalog sitemap urls are now also beautifully rewritten. For the catalog sitemap of course the error still remains when using url_segments for the category, same as the product sitemap. |
You are completely right, sorry for reporting that, I only had the configuration for the default language, for all other languages until now the site config was enough so I didn't check that, but your solution indeed works well. |
Do you know how to get the language from the current site configuration? Maybe the new SiteFinder class may help |
Yes, as far as I know the Site Finder class is the most up to date method, getSiteByPageId() is one of the easiest solutions for most things. |
This was an Error in my databse, I fixed it, everything works as expected, not errors, sorry for reporting. |
Wow, pretty cool, fast and productive, at least from my point of view. Now that 3 of my issues are solved and I know you have the sitemap/url_segment and canonical thing in mind, you can either close this issue or leave it open until an update with the actual changes comes. It's up to you, but for me things are solved so far. Thanks a lot ;) |
One more thing about sitemap/url_segment that I noticed now. I wrote that the sitemap product and category links that do not match the default language are invalid, because they open up the shop in the wrong language and the segments can't be found in the wrong language. With the new configuration (config.language) I guess it should be enough if the urls are generated with the correct language entry point before the url_segment , then typo3 should recognize the correct language and from there also aimeos. (so I guess parameters are not necessarily needed) |
Done. The commit is d3b4c5f and it's also available in 2019.10.x-dev branch |
Also done in commit 7ac5229 and already available in 2019.10.x-dev branch too |
Wow, that's very cool, the metaTag API works great, no duplicate canonicals anymore ;) config { The language uids match with the ids of the language records mentioned above. Now I added a new language (english) on all of the shop pages and "translated" all plugin elements on those pages, so they equally exist on the german and english page. I also have a "Aimeos Shop - Locale selector" plugin on each page to show me which language is activated in the shop. If I go to the frontend now and switch the language in the typo3 language menu that I have (generated with vhs viewhelper v:page.languagemenu). The wohle language of the site changes which means the url gets /en/ as an entry point to the english site, the header, menus and footer are translated and typo3 gets the translated version of the page, BUT the language of the shop, products and locale selector of the shop stays the same all the time, I have to switch this seperately with the aimeos locale selector to match the typo3 language. The only difference that came up with your change above is that the "default" language of the shop (the language that the shop initially uses on pageload is english, before/if I delete your changes it is german, but non of them change together with the main site language navigation. This is on version 2019.10.x-dev branch of today |
It's not the MetaTag API because there you can only change/remove tags. It's only possible to remove the canonical URL for all pages using this: https://github.com/aimeos/aimeos-typo3/blob/master/ext_localconf.php#L314 |
The site configuration has precedence now over your TS configuration if you have a site configuration, so these lines won't have any effect if your setup. Guess, these lines don't retrieve the actual language but the first language configured in the site configuration: https://github.com/aimeos/aimeos-typo3/blob/master/Classes/Base/Locale.php#L55-L58 |
This is one of the unsolved problems when using URL segments in different languages in the standard configuration where no product IDs are part of the URL. The solution might be to resolve the product name without using the language. |
True that ;) Got it, great solution and it works. |
Alright yes that could be the problem. I'm not the best php developer so I don't know if this is the smartest way to do it, but I successfully wrote the following code to get the current Two letter ISO code. ` $siteConfigurationLanguages = GeneralUtility::makeInstance(SiteFinder::class)->getSiteByPageId($page['uid'])->getConfiguration()['languages'];
I received all languages configured in the site configuration and then checked the languageIds against the sys_language_uid of the current page ($GLOBALS['TSFE']->sys_language_uid). If they match I get the related ISO code which was my need, but you could get any values from that language configuration now. |
Sounds good to me, if the language blocks the product make the product independent of it. If you know how to do it - a good idea. :) |
We would like to use the modern v9 API if possible and got the response that one of these might return the currently used language ID:
Can you please check which one works correctly here in your situation? |
Done: aimeos/aimeos-core@f70a1aa Can you please check if it works for you now? |
At first it didn't so I tried out more things and set up more languages and realized both work correctly, except for the default language, this always turns english, although it is german as earlier described. |
Unfortunately it doesn't, same error behaviour as before. Additionaly a new error happens. If I use the working language switch for non default languages as mentioned above, I can switch the language on the details page, (url-segments are not resolved) and the first article that I open after flushing typo3 cashes will be opened on all further article pages after language change. Let's say I opened article3 after flushing cashes. If I go to the next article and try to switch language on the details page, the URL changes/switches to the article3 url. |
Does |
I had a bit of time today to test and debug things a bit and I found a solution I guess. The problem was not the language ID, so you can leave the code for that in the current dev version untouched, BUT: |
Now after the solution above, again a report about what works correctly now and what not:
The Details View doesn't work completely
but due to debugging, my aimeos installation got a bit messy here and there so I will clean it and then check things again. I tried to get current dev version for everything (aimeos-typo3, aimeos-core, ai-admin-jqadm, ai-admin-jsonadm, ai-client-html, ai-client-jsonapi, ai-controller-frontend, ai-controller-jobs, ai-gettext, ai-typo3) to check things correctly, but when executing the tables update script I get 'Call to private Doctrine\DBAL\Types\Type::__construct() from context Aimeos\MW\Setup\Task\TablesMigrateSiteid' and in the frontend 'Class Aimeos\Client\Html\lface does not exist. Reflection failed'. So I need some time to fix this before I can report about changes again, this will take a while because I don't have lots of time left this month. |
You need to add a new language "de_DE" to the list of languages in Aimeos and use that language in a locale record (both available in the Aimeos backend -> Navigation: Locale). We've added a fallback from "de_DE" to "de" in the future if you haven't set up a locale for "de_DE": |
Oh ok, got it, makes sense sorry for my misunderstanding. Is this written somewhere in the documentation, that the site config locale and aimeos locales have to be exactly the same, I didn't think about that and might be a problem others will get if they're not aware of it. |
It won't be a problem any more starting with the upcoming release in 1-2 weeks. |
The sitemap export for products and categories is working well with URL segments now.
|
That may be related to TYPO3 caching of the menu entries. Can you try this solution: |
Sure I can and will but at the moment I'm in a hurry getting projects finished until the end of february, so I think I can't test it before your next update release (that you mentioned above), sorry for that, but I'll try my best (it's also in my interest to get this work ;) ) |
When I update and try to run the database update script I get an Error |
Seems like a problem of the installed Doctrine DBAL version but has nothing to to with TYPO3 or Aimeos |
Alright, yep in the meantime I tested it offline on a testserver and things are working as far as I can see. Therefore thank you very much for the effort and I'll close this issue now, I consider those things as solved ;) |
Hey,
I've set up a shop with the current aimeos extension 19.10.4 and typo 3 9.5.11.
I checked through the features and encountered a couple of bugs. If I just don't understand how things should work, I'm sorry for that.
But here we go.
1. duplicate canonical url metatag:
Aimeos generates an own correct canonical url metatag on the detail page which is great, but it doesn't replace the canonical metatag set by typo3 (or depending of your setup also yoast_seo, etc.). This leads to duplicate canonical tag with different urls which simply is bad SEO and leads to ranking penalties.
2. url_segment error on language switch:
(I just read https://aimeos.org/help/help-f15/sitemap-urls-with-url-segment-t2694.html#p10701 and agree with this behaviour, invalid url_segment links for different languages and catalog sitemap error). In addition this error also happens if you are in the details view of a product with different url_segments for different languages and you change the language, it doesn't find the product, because it tries to find the old url_segment in the new language.
3. Aimeos List Route enhancer breaks sorting grid/ list and relevance/recent/name/price:
(As already mentioned by happy-coding under a different topic here https://aimeos.org/help/help-f15/scheduler-problem-t2531.html#p10569) With the route enhancer the url is beautiful, but the sorting doesn't work anymore, without the List Route Enhancer the parameters and sorting works. More specific if I delete those lines of the Aimeos List Route Enhancer
routePath: /
_controller: 'Catalog::list'
only a part of the url is beautiful, but the sorting works, so those lines break the sorting for me.
4. aimeos advanced scheduler task - Jobs: Product notification e-mails Error:
This throws the following error for me, not sure if there is something wrong with my database I'll check this again closer, but I already ran the aimeos update script again.
Execution of task "Aimeos Shop advanced scheduler (aimeos)" failed with the following message: SQLSTATE[42S22]: Column not found: 1054 Unknown column 't3feuli.siteid' in 'where clause': SELECT DISTINCT t3feu."uid" AS "customer.id", t3feu."siteid" AS "customer.siteid", t3feu."name" AS "customer.label", t3feu."gender", t3feu."username" AS "customer.code", t3feu."title" AS "customer.title", t3feu."company" AS "customer.company", t3feu."vatid" AS "customer.vatid", t3feu."first_name" AS "customer.firstname", t3feu."last_name" AS "customer.lastname", t3feu."address" AS "customer.address1", t3feu."zip" AS "customer.postal", t3feu."city" AS "customer.city", t3feu."zone" AS "customer.state", tsc."cn_iso_2" AS "customer.countryid", t3feu."language" AS "customer.languageid", t3feu."telephone" AS "customer.telephone", t3feu."email" AS "customer.email", t3feu."fax" AS "customer.telefax", t3feu."www" AS "customer.website", t3feu."longitude" AS "customer.longitude", t3feu."latitude" AS "customer.latitude", t3feu."password" AS "customer.password", t3feu."date_of_birth", t3feu."usergroup" as "groups", t3feu."pid" AS "typo3.pageid", t3feu."disable", t3feu."crdate", t3feu."tstamp" FROM "fe_users" as t3feu LEFT JOIN "static_countries" AS tsc ON t3feu."static_info_country" = tsc."cn_iso_3" WHERE ( ( t3feu."language" = 'en' AND t3feuli."siteid" IN ('1') AND (t3feuli."key" LIKE 'product|watch|%' ESCAPE '#') AND t3feuli."id" IS NOT NULL AND t3feu."disable" = 0 ) ) AND t3feu."deleted" = 0 ORDER BY t3feu."uid" ASC LIMIT 100 OFFSET 0
5. No Bug, rather a feature: Integration with Typo3 language configuration and menu.
At the moment the shop has it's own language logic which is a great thing, but at some point it seems like it would be more comfortable if you could simply use the language menu created with typo3 and the url entry point for the languages. In fact using aimeos on a page translation doesn't work, probably also because translated pages have an own id, etc. However there are things that aimeos doesn't handle with it's language switch like the the global (again SEO), the main site menu language which therefor has to stay the same for all aimeos shop languages etc. I don't know how hard or complex it is to switch to that, but I think using the core functionality as far as possible provides an easier and richer experience in the long term. (I might be wrong ;) )
Maybe some of that makes it into the next update, looking forward to that :)
The text was updated successfully, but these errors were encountered: