Stop cs-cart from adding language to SEO URLs?

I'm creating Brand Variants for Product Features and CS Cart is adding -en to most but not all URLs. When I manually remove it some stick some don't, and some that didn't have it get it. My site is one language so not sure why it's being added to start with?



Anyway to strip existing and prevent future? http://site.com/brand-enhttp://site.com/brand

See the following thread:-



SEO Name Duplicates

Thank you - I ran this query from the forum post:

[color=#000000]SELECT [/color][color=#666600][/color]

[color=#000000]FROM [/color][color=#008800]cscart_seo_names[/color]

[color=#000000]WHERE [/color][color=#008800]name[/color][color=#000000] LIKE [/color][color=#008800]'%new-product%'[/color]



And the issue is interesting - it appears CS-Cart will never allow the same name in a URL even if the URLs are different



An example here:[list=1]

[
][url=“http://site.com/”]http://site.com/[/url][color=#ff0000]name[/color]

[][url=“http://ww.site.com/category1/”]http://ww.site.com/category1/[/url][color=#ff0000]name[/color]

[
][color=#ff0000][color=#222222]The second URL becomes: [/color][/color]

[list=1]

[][color=#ff0000][color=#222222][url=“http://site.com/category1/”]http://site.com/category1/[/url][/color]name-en

or

[color=#222222][url=“http://site.com/category1/”]http://site.com/category1/[/url][/color]name-2 [/color]if the -en version already exists.

[/list]

[/list]

Additonal example[list=1]

[
][url=“http://www.site.com/”]Custom Application Development Software for Business - Salesforce.com [/color][color=#FF0000] ( will become /name-en.html if #2 exists)[/color][color=#FF0000] )[/color]

[*][url=“http://www.site.com/”]Custom Application Development Software for Business - Salesforce.com ( will become /name-en/ if #1 exists) )[/color]

[/list]



Interesting as the URLs are different, the systems seems to only allow each name once no matter what.

Kind of a pain as the store I've inherited has /cat1/brand1, /cat2/brand1, cat3/brand1 and /brand1.html and all three of them are different names with the primary root brand being /brand1-en-3.html

An SEO name is an object in and of itself and is unique by type (product, category, page, etc.). What you do with categories is a setting within the SEO engine and is used for presentation purposes only. since the SEO name is associated with the product and the product can be in multiple categories you would never get the name to have the -en appended for the referenced product. The only way this occurs (using a product SEO name as an example) is if there are more than 1 product that attempt to use the same SEO name.



Might change your query to be something like


SELECT * FROM cscart_seo_names WHERE name LIKE 'product_name%' AND type = 'p'


Note that you might have duplicate entries for different lang_codes or company_ids which further qualify the name as unique.

Can you post the actual SELECT result based on the query above?

Also check that you don't use the same SEO name for a category that you use for a product within that category.

Thanks, I was assuming something about the SEO name might be used in multiple places for a product but my issues on review are with Categories and Entities (Brands).[list=1]

[]A Brand (an entity) URL will be affected if a Category with that name already exists

[
]A Category name will be affected if that Category already exists (even if a sub of another category or section of the site)

[/list]

Example from Brand entities I'm working to create but cannot without SEO modifiers.

1 instance of - name /name/ (type 'c' - category)

1 instance of - name-en /name-en.html (type 'e' - entity)

0 instance of - Products named “name”

Can't digest your description. The names have -en attached when the same name/type/company/language is used. After that, it starts to use numeric suffixes like -1, -2, -3.



It is trying to maintain uniqueness. So suggest you find the overlaps and adjust.

Sorry if I wasn't clear - I'm not understanding why CS-Cart SEO won't allow unique URLs.



My issue is that CS Cart won't allow the following:

http://site.com/category1/subcat1/sony/ (category of Sony)

and

http://site.com/sony.html (entity of Sony)

where there is no other occurrence of Sony in the the 'cscarts_seo_names' table

It should since one is a category and the other a product.

What version of cs-cart?

If on V4, simply submit a bug to the bugtracker. If an earlier version, contact the helpdesk.

Thanks and I appreciate your patience - I'm (a newbie) on v4.0.2

We're all here to learn. Just some of us have been learning longer…



I think you have bug that should be reported. I went to my development V3 and V4 sites and for both of them I can duplicate your behavior. I changed the seo name of the 100g-pants to 'pants' and then changed the seo name for the Men's Clothing category to 'pants'. When I changed the category, it came back as 'pants-en'.



Given that it reproduces in both V3 and V4, I would assume that the helpdesk does not have a fix for it yet. So you should submit it as a bug in the bugtracker. You did a good description so I'd just use the same.

I fail to see this as a bug. You cannot have 2 pages with the same SEO name whether it's a product page, category page, brand/manufacturer page, etc…

I would expect other rules to determine that.

foo.com/pants

is quite different than

foo.com/pants.html

and

foo.com/pants/pants.html

is also unique and so is

foo.com/pants/pants

But in this last case, I can certainly see the conflict when not viewed at a URL level.



So I would think it would depend on what the seo rules are for naming whether the base name should be unique across objects or whether it should be unique among types. It could be sitcky if you can change rules after names are established. This would imply that the name could change at runtime which would be bad (i.e append a suffix).



I can see both sides of the argument but tend to agree with you Tool that it was designed to work as it does… And that will probably be cs-cart's response.

When you create a page, it creates the SEO name based on the page and the page alone and not what url structure you have decided to go with.

And I guess my point is that is a simplistic approach. The seo name is also editable and is many times adjusted versus just leaving the default (based on page name or item name).



It doesn't matter, because it is what it is and I doubt any energy would be put into having it work the way the OP wants it to work (which is technically correct from a purely SEO standpoint). SEO names in the real world are based on URL's, not on objects.

Exactly :-)



I should absolutely be able to have the following (and other systems I’ve worked allow this):

site.com/seo

site.com/seo.html

site.com/cat1/seo

site.com/cat1/seo.html

site.com/cat1/subcat1/seo

etc…



As long as I know why it’s happening with CS-Cart and it’s happening by design (not a bug) then it is what it is, but still suxors for SEO :-(

I have been banging my head on my desk for months trying to deal with this bug. It's one of the most annoying bugs in CSCart and I am very dissapointing that this bug is still there.

It's not a “bug”, it's “working as designed”. What you are experiencing is exactly how CS-Cart designed the SEO addon to work. You cannot have two SEO names with the same value regardless where the SEO name exists (product, category, page, etc) and works completely independent of the SEO URL structure options. They ain't going to fix it since I was advised in V2 that this was “working as designed” and the behaviour still exists in V4, you just need to find inventive ways to get around it, however, this isn't great for SEO either as you end up with unduly long, keyword rich URL's (eg. domain.com/sony.html and domain.com/category/electronics/televisions/sony-televisions).

Unfortunately it also appears when there is only 1 instance. Therefore its not working as designed. I have done full database searches and found that there are no duplicates.



Also when you have a lot of languages, you will run into the problem of having translations of the same product with the same name. It seems logical to me that this should be resolved by using the language prefix like this: /en/product_name

or:/de/product_name

Yet, this becomes /en/product_name-en/

or even:

/en/product_name-en-en

/en/product_name-en.html.html

The desired behavior would work perfectly IFF categories were not allowed to have .html suffix appended. I.e. foo.com/cat1 and foo.com/cat1/prod1.html, not foo.com/cat1.html. So if you eliminated that SEO option for categories, one could have the same name for all different type objects.



As a developer, I'm constantly reminded that just because I designed something a certain way does not mean it is necessarily correct nor what the customer wants (even though it meets the design spec). But then you come to a case like this where there is a diverse (and sometimes conflicting) need.