View Issue Details

IDProjectCategoryView StatusLast Update
0007952OXID eShop (all versions)4.09. SEO, SEO URLpublic2026-05-21 14:43
ReporterMarcelOxid Assigned To 
PrioritynormalSeveritymajorReproducibilityalways
Status acknowledgedResolutionopen 
Summary0007952: oxparams context will be removed from stdUrl after update
DescriptionWhen updating the Seo-URL of a product for a specific category, the context(cnid/mnid/vnid) will be removed from the stdUrl.
index.php?cl=details&anid=05848170643ab0deb9914566391c0c63&cnid=0f41a4463b227c437f6e6bf57b1697c4 --> index.php?cl=details&anid=05848170643ab0deb9914566391c0c63
Steps To Reproduce1. Login to Admin-space and switch to products
2. Create a new product and add a category to it
3. Move to Seo-Tab (-> Seo-Entry will be generated / stdUrl contains category-id)
2. Change and update the Seo-URL

The context from the stdUrl was removed in the DB
Additional InformationThe reason is that the update of the Seo-URL (and also the update of the meta-keywords/description) works is the following:

When the Seo-tab will be opened, methods like SeoEncoderArticle::getArticleMainUri/getArticleUri/getArticleVendorUri/getArticleManufacturerUri() are used which generates the Seo-entry with the stdUrl including the specific context.

Updating the Seo-URL is done in ObjectSeo::save() which executes SeoEncoder::addSeoEntry(). For stdUrl the method $this->getStdUrl which uses Article::getBaseStdLink() will be used. getBaseStdLink just creates the base without the context.

TagsNo tags attached.
ThemeNot defined
BrowserNot defined
PHP VersionNot defined
Database VersionNot defined

Activities

QA

2026-05-20 13:40

administrator   ~0018510

Dear Marcel,

please check the column oxparams.
this contains the category id in your example.

Could you please provide the broader picture why this is should be an issue?
Could you also verify your product version of 7.5?

Best Regards
QA -SG-

MarcelOxid

2026-05-20 15:35

manager   ~0018512

Hallo,

i can verify that the product version is 7.5.
The problem is, that you always expect, that the stdUrl stays the same, because the product and the context didn't changed.
The stdUrl specifies the URL to which the shop-user is redirected when they enter the SEO-URL. Which means the url loose it's context and the shown page isn't context-specific anymore.
So normal product-page will be shown, instead of the category specific product-page.

Kind Regards

QA

2026-05-21 10:15

administrator   ~0018513

Last edited: 2026-05-21 10:16

Hello Marcel,

I have checked the behaviour again in version 7.5 and cannot see any difference there.

Every SEO URL redirects to the main category, as I would expect. See the attached screenshots for Frontend and admin-area. In this case, the URL for the T-shirts category, which has been changed to ‘T-shirt-changed’, redirects to the main category ‘Sunglasses’.

‘oxparams’ is a marker for the main category whose URL is used as the main destination (canonical url). Accordingly, removing parameters that are not used follows a certain logic.
The internal url cannot be configured in the admin area either.

If you wish to make changes, my recommendation would be a module – possibly an OPAL – or to submit a feature request, but in this case with a more detailed description of what should be changed and why, and a clarification of the added value.

---
The main category since 7.4 cannot be set right anymore, see https://bugs.oxid-esales.com/view.php?id=7953
---

Best Regards
QA -SG-
seo_main-category.png (56,121 bytes)   
seo_main-category.png (56,121 bytes)   
seo_backend.png (12,565 bytes)   
seo_backend.png (12,565 bytes)   

MarcelOxid

2026-05-21 12:09

manager   ~0018514

Hello,

and that's exactly what's happening wrong here. Normally the redirecting-link for the "T-Shirts"-Seo-URL redirects to the T-Shirts Kategory and not to the main category (in our case sunglases).
oxparams is not the marker for the main category, it's the context for the Seo-URL. So for "T-Shirts"-Seo-URL it's the id of the T-Shirts-category. And that's were we should redirect to.

After the first generation this works correctly and the stdUrl in the database links to the category specific product (Merchendise/T-Shirts/seotest), but after the update it redirects to the main product (Merchendise/Sonnenbrillen/seotest) which is wrong. oxparams is still the id of the T-Shirts category, so the stdUrl should still link to the category in oxparams, not to the main caegory.

And of course the internal URL (stdUrl) can not be configured, because it's generated automatically and saved in database(oxarticles -> oxstdurl) . But it's wrong generated/overwritten after the update. The code logic which behaves wrong, is already described here in the additional information of this ticket.

King regards

QA

2026-05-21 13:33

administrator   ~0018515

Hi all,
Hi Marcel,

i let the product managment decide what the correct behavoir should be.

Please be aware, that this behavoir was since a long time. not only since 7.5, that is why i removed the product version.
it is kind of documented here:
https://docs.oxid-esales.com/eshop/en/7.4/setup/products/extended-tab.html
"If the product exists in multiple categories, one of them must be set as the main category to avoid duplicate content (DC). Highlight the main category in the right-hand list and click on Set as Main Category."

But maybe this reading is wrong.
according to code comments and naming, this is intended, but maybe it is not clear enough or it is indeed wrong.

Best Regards

QA -SG-

anton.fedurtsya

2026-05-21 14:43

administrator   ~0018516

Hey,

If it would be correct, then why to do so much effort in generating the "correct" url at the beginning at the first place, and then just overwriting it with simple default one on Any update? If its correct to be simple, then the original (first) generation of the seo should be simplified a lot, and drop the category/manufacturer marker from the url.

Regards,
Anton