Search code examples
content-management-systemmigrationepiservercontent-management

EPiServer migrate content from home grown CMS


Hopefully someone can help me, I'm new to EPiServer and have been given a data migration task. We are using the latest version 8.5. I need to migrate content from a clients home grown CMS (that luckily is in a tree like structure) to EPiServer. There doesn't seem to be a whole lot of information about this on the web - perhaps I just don't know the right thing to search for.

It looks like using the EPiServer.ServiceApi might be the route to go but again locating useful documentation is proving difficult.

I was thinking of setting up the client CMS in SQL Server and writing a simple console application to call the EPiServer.ServiceApi inserting the content. If anyone has any information on this or better still and example i would be very grateful.

Thanks,

Dan


Solution

  • If you are just importing content from another CMS I would write a scheduled job in EPiServer:

    http://world.episerver.com/code/dannymurphy/Stoppable-Scheduled-Job-with-feedback/

    That job then uses the standard IContentRepository to create content:

    http://world.episerver.com/documentation/Items/Developers-Guide/EPiServer-CMS/8/Content/Persisting-IContent-instances/

    That way you can run it whenever you want and have access to EPiServers complete API. Also you can see progress of the import through the job status.

    In the job you can read the content as a file in any format you like or directly from the source CMS database or some xml or RSS feed perhaps.

    I have moved content from PHP, Java and .NET CMS this way. In .NET you could even access the source CMS via WCF or SOAP if available.

    The ServiceApi is relatively new and more focused on Commerce products and media assets rather than CMS page and block content so I wouldn't use that.

    There is complete documentation below for the ServiceApi by the way, did you not find it?

    http://world.episerver.com/documentation/Items/EPiServer-Service-API/

    Regarding language management you can read more in the below links:

    http://cjsharp.com/blog/2013/04/11/working-with-localization-and-language-branches-in-episerver-7-mvc/

    http://tedgustaf.com/blog/2010/5/create-a-new-page-language-branch-programmatically-in-episerver/

    Basically you have two options for multiple languages. If the content is just straight translations you should create nine different language versions (branches) of the same page. You can also have multiple sites in an EPiServer installation but that requires 9 separate licenses (and the associated costs).