Developer forum

Forum » Integration » Importing product data in multiple languages

Importing product data in multiple languages

Davy Capiau
Reply

Hi,

I've created an integration in the default language for the basic product information with the Ecom provider.

I need to create these products in 24 other languages. I want to avoid creating 24 more data integrations, and hope it can be done in 1 extra. 

This extra integration doesn't add new information; I just want to create the product in those languages.

The structure of the file is a csv with a header like this:

Productcode;Product name;Submodule code;Price group code; (...)

How can I achieve this?

 


Replies

 
Nicolai Pedersen Dynamicweb Employee
Nicolai Pedersen
Reply

So you have the same product with a different language name in the same CSV? Or do you just have the products once in that CSV and want to import them 24 times in different languages?

If you have different languages in the CSV, you can add the languageid to the CSV file and map it to ProductLanguageID column.

If you only have the products once, there is no need to import them multiple times.

Pls tell more about your use case so we can better guide you. I.e. Why do you need 24 languages? Will you translate the products to 24 languages?

BR Nicolai

 
Davy Capiau
Reply

Hi Nicolai,

I kind of simplified my case and I thought I would figure the rest out. But apparently I just made it less clear, apologies. I'll describe my full situation:

DW Setup:
25 languages:
--> 5 of which are used for 6 e-commerce language layers: EN-int (default), EN-us, NL, DE, FR & ES
--> 20 remaining are necessary for (pdf) assets. We've got the DAM License. The goals is that on an e-commerce product page pdf's are downloadable in all 25 languages.

Product info integration current status:

- 1 integration with the ECOM provider - Creates the products in the PIM Warehouse and assigns it to the correct groups in the default language
- CSV file  - headers contain product names in the 5 e-commerce languages:
Productcode;Product name EN;Product name NL;Product name FR;Product name DE;Procuct name ES;Submodule code;Price group code; (...)

Creation process:

1. Import basic information of product in PIM
2. Use Shared queries to add final information (workflow steps)
3. Publish to channel


Goal:
Step 1 Integration without unnecessary overhead. 

Product doesn't exist yet in other languages

 

 

 
Nicolai Pedersen Dynamicweb Employee
Nicolai Pedersen
Reply
This post has been marked as an answer

Thanks for clarifying - much easier to point you in the right direction.

Be aware that product languages and website languages does not go hand in hand. So in your case you probably are good with 6 ecommerce languages and then 24 website languages.

The website languages will control the DAM and frontend rendering languages - i.e. if you are creating PDF catalogs. Then you publish one of the ecommerce languages to that website language and they can differ. In this way you will i.e. re-use your english ecommerce language in a website language that does not have its own translations from ecommerce.

To setup the integration I see 2 options

  • Add the langauageID as a column to the CSV and all translations is in that CSV and can be done with one job
  • Use one CSV per language and set the languageid as a constant on the integration job and create a job for each language (6 jobs)

BR Nicolai

Votes for this answer: 1
 
Davy Capiau
Reply

Hi Nicolai,

Thanks for clarifying.

I only don't understand the following: " So in your case you probably are good with 6 ecommerce languages and then 24 website languages.".

How I understood it: a pdf is a product asset. It needs to be linked to it on the correct language. So my Italian pdf needs to be linked to the Italian product language layer in PIM. Therefore I need to create it. 

What is wrong in my reasoning and how do I do it correctly?

 
Nicolai Pedersen Dynamicweb Employee
Nicolai Pedersen
Reply

Hi Davy.

The PDF (I guess you mean Publications: https://doc.dynamicweb.com/swift/setup-project/guides/publications) is made of pages in a website. The website has a language (Regional settings: https://doc.dynamicweb.com/documentation-9/content/content/websites#3210), and on the website settings you define which ecommerce languages to publish on to that website: https://doc.dynamicweb.com/documentation-9/content/content/websites#3218

So when you create the actual PDF, it will be pages on the website and you can publish the same ecommerce language to multiple websites.

Makes sense? 

 
Davy Capiau
Reply

Hi Nicolai,

No I don't mean the publications. I mean assets like pdf's (e.g. Technical data sheets) that a customer can download. For example in the screenshot below it's visualised. (It's only missing a language-switch to change the download section to Italian or any other of the 25 languages)

 

 
Nicolai Pedersen Dynamicweb Employee
Nicolai Pedersen
Reply

Yes - that is product assets (aka EcomDetails) and they are attached to ecommerce language. 

If it is only assets like this one, you could maybe find a way to filter them by language that is a little easier.

You might be able to use Asset keywords to add a language code to the PDFs and then in the asset list use the keywords to filter out on the languages in the client

 
Davy Capiau
Reply

Thanks Nicolai

 
Davy Capiau
Reply

Hi Nicolai,

Let's say we decide to keep all the languages in PIM (26). Let's say I won't use your keyword proposal and I want to import a specific pdf and all it's translations in the correct PIM-language. So for example in the Italian language layer you'll see the italian version of the pdf.

Is it possbile to use the image asset-rules in combination with a scheduled taks to import those? When I check the image asset I can't define a rule per language, even though there is an option to checkout 'inherit across language'. When I save it and change to for example the Italian storeview, I can't define a different rule.

How would you do it then?

 
Justin Sjouw Dynamicweb Employee
Justin Sjouw
Reply

Hi Davy,

Yes .. there can be used a Pattern parameter, there insert the "LanguageId" as part of the pattern ..  eg. Filename "2448-0000_EN.pdf" would be matched with "{ProductNumber}_{ProductLanguageId}" .. implemented from DW9.14.6 ..

:-)

Cheers,

Justin

 
Søren Jensen Dynamicweb Employee
Søren Jensen
Reply

Hi Davy,

From release DW9.14.6, there are implemented feature in our "Assets checkin tool", to manage language specific documents

It is made, so there can be used a Pattern parameter, there insert the LanguageId as part of the pattern ..  

eg. Filename "2448-0000_NL.pdf" would be matched with "{ProductNumber}_{ProductLanguageId}", and insert the document on the Language "NL"

/Søren

 

 
Kristian Kirkholt Dynamicweb Employee
Kristian Kirkholt
Reply

Hi Davy

Change the Inheritance Type from "Fallback" to "None".
You will get the non-default language image/document set on the product
Setup matched "{ProductNumber}_{ProductLanguageId}" as Justin and Søren describes.

Kind Regards
Care Support
Kristian Kirkholt

 
Davy Capiau
Reply

Thanks Kristian

 

It works!

 
Lars Hejgaard Sørensen Dynamicweb Employee
Lars Hejgaard Sørensen
Reply
This post has been marked as an answer

Hi Davy,

A small trick for your initial question. If you execute this in the Firehose:

create view EcomProductOtherLanguages as 
select LanguageId, EcomProducts.* from EcomLanguages right outer join ecomproducts on LanguageId <> ProductLanguageId where ProductLanguageId = (select LanguageId from EcomLanguages where LanguageIsDefault = '1')

This will give you a view in the database containing products in all other languages than the default language. You can use this as a Dynamicweb Provider source in an additional activity, where you map the view to the EcomProducts table. You must map the LanguageId on the view to ProductLanguageId in EcomProducts.

If yoou need to run the import repeatedly, you can use the table and column mapping features to decide whether a record or column should be written on insert and/or update.

Br.
Lars

Votes for this answer: 1

 

You must be logged in to post in the forum