Hi,
I took a look at source code of R2 SP2 and found nothing which intends to turn the cases of SEO Url to CamelCase. My suspect is that you did not map the SEO url properly, causing the SEO Url to be empty, hence Commerce Manager will auto-generate the SEO Url based on name.
An easy way to check that is make sure one of your product to be named as A Demo Product, but Seo-url is it-is-not-related-to-name.aspx. After importing, if the SEO-Url is changed to A-Demo-Product.aspx, then you need to map to SEO url.
Either case, you can send your CSV file and mapping file to me (quma at episerver.com) for further analysis.
Regards.
/Q
Hi Quan,
Thanks for the reply!!
Excellent, you were right.
The commerce manager is Auto-generating SEO Url based on product name. I have checked as suggested by you.
I have tried shown below scenarios using same mapping file (Product.xml)
1. Insert a new product catalog using CSV: -
Result: - Auto-generating SEO Url based on product name.(Not Working)
2. Update an existing product using CSV: -
Result: - In update case, SEO Url is getting update perfectly according to SEO Url column in CSV.(Working)
My Product into CSV :-
Action,Entry-Type,Product-Code,Category-Code,Product-Name,Available-from,Expires-on,Available,Sort-Order,DisplayTemplate,Meta-Class,Image,Promotion-Banner-Image,Display-Name-(en-GB),Description(en-GB),More-Details(en-GB),Delivery-Returns(en-GB),Size-Guide(en-GB),ProductIndicator1,Indicator-1-Title(en-GB),ProductIndicator2,Indicator-2-Title(en-GB),ProductIndicator3,Indicator-3-Title(en-GB),ProductIndicator4,Indicator-4-Title(en-GB),ProductIndicator5,Indicator-5-Title(en-GB),SEO-URL(en-GB),SEO-Title(en-GB),SEO-Description(en-GB),SEO-Keywords(en-GB)
Insert,Product,588465,CATCOSMETICSANDSKN,My Product,31/01/2014 00:00,31/12/2999 23:59,TRUE,1,ProductTemplate,EIBProduct,588465.jpg,,My Product,<p>My Product description;</p>,<p>My Product more details</p>,,,,,,,,,,,,,my-product-url.aspx,my product title,my product description,"nail art,nail art sets,cosmetics"
Mapping XML is :-
<?xml version="1.0" encoding="windows-1251"?>
<Rule>
<Id>-1</Id>
<InnerClassName>Product</InnerClassName>
<Delimiter auto="yes">,</Delimiter>
<TypeName auto="yes">Entry</TypeName>
<DataFile auto="yes">E:\Product.csv</DataFile>
<TextQualifier auto="yes">"</TextQualifier>
<Encoding auto="yes">Default</Encoding>
<Language auto="yes">en-gb</Language>
<RuleItem>
<SourColumnName>Action</SourColumnName>
<SourColumnType>System.String</SourColumnType>
<DestColumnName>sys_RowAction</DestColumnName>
<DestColumnType>NVarChar</DestColumnType>
<FillType>CopyValue</FillType>
<CustomValue />
<DestColumnSystem>True</DestColumnSystem>
</RuleItem>
<RuleItem>
<SourColumnName>Product-Code</SourColumnName>
<SourColumnType>System.String</SourColumnType>
<DestColumnName>Code</DestColumnName>
<DestColumnType>NVarChar</DestColumnType>
<FillType>CopyValue</FillType>
<CustomValue />
<DestColumnSystem>True</DestColumnSystem>
</RuleItem>
<RuleItem>
<SourColumnName>Product-Name</SourColumnName>
<SourColumnType>System.String</SourColumnType>
<DestColumnName>Name</DestColumnName>
<DestColumnType>NVarChar</DestColumnType>
<FillType>CopyValue</FillType>
<CustomValue />
<DestColumnSystem>True</DestColumnSystem>
</RuleItem>
<RuleItem>
<SourColumnName>Entry-Type</SourColumnName>
<SourColumnType>System.String</SourColumnType>
<DestColumnName>ClassTypeId</DestColumnName>
<DestColumnType>NVarChar</DestColumnType>
<FillType>CopyValue</FillType>
<CustomValue />
<DestColumnSystem>True</DestColumnSystem>
</RuleItem>
<RuleItem>
<SourColumnName>Available-from</SourColumnName>
<SourColumnType>System.String</SourColumnType>
<DestColumnName>StartDate</DestColumnName>
<DestColumnType>DateTime</DestColumnType>
<FillType>CopyValue</FillType>
<CustomValue />
<DestColumnSystem>True</DestColumnSystem>
</RuleItem>
<RuleItem>
<SourColumnName>Expires-on</SourColumnName>
<SourColumnType>System.String</SourColumnType>
<DestColumnName>EndDate</DestColumnName>
<DestColumnType>DateTime</DestColumnType>
<FillType>CopyValue</FillType>
<CustomValue />
<DestColumnSystem>True</DestColumnSystem>
</RuleItem>
<RuleItem>
<SourColumnName>DisplayTemplate</SourColumnName>
<SourColumnType>System.String</SourColumnType>
<DestColumnName>TemplateName</DestColumnName>
<DestColumnType>NVarChar</DestColumnType>
<FillType>CopyValue</FillType>
<CustomValue />
<DestColumnSystem>True</DestColumnSystem>
</RuleItem>
<RuleItem>
<SourColumnName>Available</SourColumnName>
<SourColumnType>System.String</SourColumnType>
<DestColumnName>IsActive</DestColumnName>
<DestColumnType>Bit</DestColumnType>
<FillType>CopyValue</FillType>
<CustomValue />
<DestColumnSystem>True</DestColumnSystem>
</RuleItem>
<RuleItem>
<SourColumnName>Category-Code</SourColumnName>
<SourColumnType>System.String</SourColumnType>
<DestColumnName>CategoryCode</DestColumnName>
<DestColumnType>ShortString</DestColumnType>
<FillType>CopyValue</FillType>
<CustomValue />
<DestColumnSystem>True</DestColumnSystem>
</RuleItem>
<RuleItem>
<SourColumnName>Sort-Order</SourColumnName>
<SourColumnType>System.String</SourColumnType>
<DestColumnName>SortOrder</DestColumnName>
<DestColumnType>Int</DestColumnType>
<FillType>CopyValue</FillType>
<CustomValue />
<DestColumnSystem>True</DestColumnSystem>
</RuleItem>
<RuleItem>
<SourColumnName>SEO-Title(en-GB)</SourColumnName>
<SourColumnType>System.String</SourColumnType>
<DestColumnName>SEO Title</DestColumnName>
<DestColumnType>NVarChar</DestColumnType>
<FillType>CopyValue</FillType>
<CustomValue />
<DestColumnSystem>True</DestColumnSystem>
</RuleItem>
<RuleItem>
<SourColumnName>SEO-URL(en-GB)</SourColumnName>
<SourColumnType>System.String</SourColumnType>
<DestColumnName>SEO Url</DestColumnName>
<DestColumnType>NVarChar</DestColumnType>
<FillType>CopyValue</FillType>
<CustomValue />
<DestColumnSystem>True</DestColumnSystem>
</RuleItem>
<RuleItem>
<SourColumnName>SEO-Description(en-GB)</SourColumnName>
<SourColumnType>System.String</SourColumnType>
<DestColumnName>SEO Description</DestColumnName>
<DestColumnType>NVarChar</DestColumnType>
<FillType>CopyValue</FillType>
<CustomValue />
<DestColumnSystem>True</DestColumnSystem>
</RuleItem>
<RuleItem>
<SourColumnName>SEO-Keywords(en-GB)</SourColumnName>
<SourColumnType>System.String</SourColumnType>
<DestColumnName>SEO Keywords</DestColumnName>
<DestColumnType>NVarChar</DestColumnType>
<FillType>CopyValue</FillType>
<CustomValue />
<DestColumnSystem>True</DestColumnSystem>
</RuleItem>
<RuleItem>
<SourColumnName>Display-Name-(en-GB)</SourColumnName>
<SourColumnType>System.String</SourColumnType>
<DestColumnName>DisplayName</DestColumnName>
<DestColumnType>ShortString</DestColumnType>
<FillType>CopyValue</FillType>
<CustomValue />
<DestColumnSystem>False</DestColumnSystem>
</RuleItem>
<RuleItem>
<SourColumnName>Image</SourColumnName>
<SourColumnType>System.String</SourColumnType>
<DestColumnName>PrimaryImageFileName</DestColumnName>
<DestColumnType>ShortString</DestColumnType>
<FillType>CopyValue</FillType>
<CustomValue />
<DestColumnSystem>False</DestColumnSystem>
</RuleItem>
<RuleItem>
<SourColumnName>Entry-Type</SourColumnName>
<SourColumnType>System.String</SourColumnType>
<DestColumnName>EntryType</DestColumnName>
<DestColumnType>ShortString</DestColumnType>
<FillType>CopyValue</FillType>
<CustomValue />
<DestColumnSystem>False</DestColumnSystem>
</RuleItem>
<RuleItem>
<SourColumnName />
<SourColumnType>System.String</SourColumnType>
<DestColumnName>CategoryCode</DestColumnName>
<DestColumnType>ShortString</DestColumnType>
<FillType>NotUse</FillType>
<CustomValue />
<DestColumnSystem>False</DestColumnSystem>
</RuleItem>
<RuleItem>
<SourColumnName>Promotion-Banner-Image</SourColumnName>
<SourColumnType>System.String</SourColumnType>
<DestColumnName>PromotionBannerImage</DestColumnName>
<DestColumnType>ShortString</DestColumnType>
<FillType>CopyValue</FillType>
<CustomValue />
<DestColumnSystem>False</DestColumnSystem>
</RuleItem>
<RuleItem>
<SourColumnName>Description(en-GB)</SourColumnName>
<SourColumnType>System.String</SourColumnType>
<DestColumnName>Description</DestColumnName>
<DestColumnType>LongHtmlString</DestColumnType>
<FillType>CopyValue</FillType>
<CustomValue />
<DestColumnSystem>False</DestColumnSystem>
</RuleItem>
<RuleItem>
<SourColumnName>More-Details(en-GB)</SourColumnName>
<SourColumnType>System.String</SourColumnType>
<DestColumnName>MoreDetails</DestColumnName>
<DestColumnType>LongHtmlString</DestColumnType>
<FillType>CopyValue</FillType>
<CustomValue />
<DestColumnSystem>False</DestColumnSystem>
</RuleItem>
<RuleItem>
<SourColumnName>Delivery-Returns(en-GB)</SourColumnName>
<SourColumnType>System.String</SourColumnType>
<DestColumnName>DeliveryReturns</DestColumnName>
<DestColumnType>LongHtmlString</DestColumnType>
<FillType>CopyValue</FillType>
<CustomValue />
<DestColumnSystem>False</DestColumnSystem>
</RuleItem>
<RuleItem>
<SourColumnName>Size-Guide(en-GB)</SourColumnName>
<SourColumnType>System.String</SourColumnType>
<DestColumnName>SizeGuide</DestColumnName>
<DestColumnType>LongHtmlString</DestColumnType>
<FillType>CopyValue</FillType>
<CustomValue />
<DestColumnSystem>False</DestColumnSystem>
</RuleItem>
<RuleItem>
<SourColumnName>ProductIndicator1</SourColumnName>
<SourColumnType>System.String</SourColumnType>
<DestColumnName>ProductIndicator1</DestColumnName>
<DestColumnType>ShortString</DestColumnType>
<FillType>CopyValue</FillType>
<CustomValue />
<DestColumnSystem>False</DestColumnSystem>
</RuleItem>
<RuleItem>
<SourColumnName>ProductIndicator2</SourColumnName>
<SourColumnType>System.String</SourColumnType>
<DestColumnName>ProductIndicator2</DestColumnName>
<DestColumnType>ShortString</DestColumnType>
<FillType>CopyValue</FillType>
<CustomValue />
<DestColumnSystem>False</DestColumnSystem>
</RuleItem>
<RuleItem>
<SourColumnName>ProductIndicator3</SourColumnName>
<SourColumnType>System.String</SourColumnType>
<DestColumnName>ProductIndicator3</DestColumnName>
<DestColumnType>ShortString</DestColumnType>
<FillType>CopyValue</FillType>
<CustomValue />
<DestColumnSystem>False</DestColumnSystem>
</RuleItem>
<RuleItem>
<SourColumnName>ProductIndicator4</SourColumnName>
<SourColumnType>System.String</SourColumnType>
<DestColumnName>ProductIndicator4</DestColumnName>
<DestColumnType>ShortString</DestColumnType>
<FillType>CopyValue</FillType>
<CustomValue />
<DestColumnSystem>False</DestColumnSystem>
</RuleItem>
<RuleItem>
<SourColumnName>ProductIndicator5</SourColumnName>
<SourColumnType>System.String</SourColumnType>
<DestColumnName>ProductIndicator5</DestColumnName>
<DestColumnType>ShortString</DestColumnType>
<FillType>CopyValue</FillType>
<CustomValue />
<DestColumnSystem>False</DestColumnSystem>
</RuleItem>
<RuleItem>
<SourColumnName>Indicator-1-Title(en-GB)</SourColumnName>
<SourColumnType>System.String</SourColumnType>
<DestColumnName>Indicator1Title</DestColumnName>
<DestColumnType>ShortString</DestColumnType>
<FillType>CopyValue</FillType>
<CustomValue />
<DestColumnSystem>False</DestColumnSystem>
</RuleItem>
<RuleItem>
<SourColumnName>Indicator-2-Title(en-GB)</SourColumnName>
<SourColumnType>System.String</SourColumnType>
<DestColumnName>Indicator2Title</DestColumnName>
<DestColumnType>ShortString</DestColumnType>
<FillType>CopyValue</FillType>
<CustomValue />
<DestColumnSystem>False</DestColumnSystem>
</RuleItem>
<RuleItem>
<SourColumnName>Indicator-3-Title(en-GB)</SourColumnName>
<SourColumnType>System.String</SourColumnType>
<DestColumnName>Indicator3Title</DestColumnName>
<DestColumnType>ShortString</DestColumnType>
<FillType>CopyValue</FillType>
<CustomValue />
<DestColumnSystem>False</DestColumnSystem>
</RuleItem>
<RuleItem>
<SourColumnName>Indicator-4-Title(en-GB)</SourColumnName>
<SourColumnType>System.String</SourColumnType>
<DestColumnName>Indicator4Title</DestColumnName>
<DestColumnType>ShortString</DestColumnType>
<FillType>CopyValue</FillType>
<CustomValue />
<DestColumnSystem>False</DestColumnSystem>
</RuleItem>
<RuleItem>
<SourColumnName>Indicator-5-Title(en-GB)</SourColumnName>
<SourColumnType>System.String</SourColumnType>
<DestColumnName>Indicator5Title</DestColumnName>
<DestColumnType>ShortString</DestColumnType>
<FillType>CopyValue</FillType>
<CustomValue />
<DestColumnSystem>False</DestColumnSystem>
</RuleItem>
</Rule>
Thanks in advance for your help :)
Shaan
Hi,
The mapping file looks right, but the data might be missing one or more fields. I suggest to test with simpler CSV file, which should have only some basic field (Name, code, SEO url)... to see if it works. I tested on 7.5 and the import works properly. In case it does not work for you, you can file out a support case.
Regards.
/Q
Hi,
Using Commerce Manager R2SP2, I am importing Catalog CSV file and my SEO url is all in lower case, however after import, when i see database all SEO urls are turned into Camel Casing. This is affecting my SEO.
For an example my SEO-Url in CSV was "my-new-product.aspx" was turned to "My-New-Product.aspx". THough when I update same product, it doesnt change the casing.
Is there a work around for this problem? Any help would be greatly appreciated.
Thanks
Shaan