I have the below site structure. When you access the site MyWebsite.com by default the page being loaded is Home item under Korea (MyWebsite/Korea/Home).
What I need to do is:
When the site is being access in china the default homepage should be the one under china (MyWebsite/china/Home). Same thing with Japan, when the site is access or browse in japan the default homepage should be the one in Japan(MyWebsite/Japan/Home). Other than this, the default homepage should be the one under in Korea.
How to do this? And what is the best of doing this in Sitecore.
I am experimenting about Geolocation HTML5 API to determine the location. Then redirects to the appropriate page once I know the location. But I am hesitant becuase I am thinking that there maybe a better way of doing this in Sitecore.
Your advice and help is greatly appreciated.
Thanks,
Your options appear to be:
Use a geoIP lookup service in a pipeline to redirect the user based on their location - Maxmind provides a free implementation that will give you the country.
You can change your approach slightly - using geoip to persoanlise the homepage using Sitecore's personalisation engine. This way you have 1 home page, but present different components to a user depending on their location. this is ideal if the content varies but the overall site structure is the same for each site.
If the sites are fundamentally different then you can set them up as separate sites in Sitecore and bind them to different host names i.e mysite.jp, mysite.cn etc. With your current set up you may experience problems with cross links - i.e visitors on the chinese site being able to access korean pages.
The final option (which i believe is now available in sitecore 8) is to have 1 homepage and vary the presentation by language. This was not previously possible as the layout field was shared.
To expand on this option - Sitecore 8 has changed the way that the page layout is created. Previously the __Renderings field was shared across all language versions. This is still the case however there is now the addition of a _FinalRenderings field. If you open an item and look at the presentation > details view from the ribbon you will see two tabs - shared layout and final layout. It is this final layout that can be varied across language versions. If you open the page in page editor then it is this final layout that you are editing. See the following blogs for a more detailed explanation:
http://www.seanholmesby.com/presentation-details-changes-in-sitecore-8-how-renderings-are-stored/
http://roundedcube.com/Blog/2015/exploring-sitecore-8-versioned-layouts
To implement this, open your base homepage - Korean i think in your example and create a new language version in say Japanese (here is a link to a useful tool from the Sitecore marketplace to instantly copy all the content from the Korean version - not sure if it works on 8 though https://www.cognifide.com/blogs/sitecore/quickly-create-new-language-versions-on-your-sitecore-cms/ )
Once you have your Japanese version open the presentation details and start editing the layout. If you now publish and view the Korean page you should see a different layout to the Korean version.
Once you have done this, you will solve your problem by using Sitecore language settings to control your content - if the user changes language, or if you go to www.mysite.com/jp-jp then you should see the Japanese version of the homepage
As #Moorag suggests, a Geo IP service (or local database) is a common way to achieve location based redirection. There are already modules in the Sitecore marketplace to help with this. Here's a good one:
Geiolite Lookup Provider
.. and here are some good posts on the subject:
Sitecore GeoIP Country Resolving - Jump to Lightspeed
Sitecore GeoIP: Helping The First Visit
If you're concerned about the overhead that doing a lookup entails, then a lighter weight option is to try to initially determine the country/language using the user's browser settings which are included as part of the request. This post has the code to achieve it:
Get language and country from a browser in ASP.NET
It's less accurate, but can be a good "first pass" option before going to the Geo IP lookup if it fails.
Related
I have a requirement where user would like to display different content for different states within the same country.To be clear i have added (en-us) language version to an item which would display single content to "Florida" state, now they would like to display different content(Image,title,etc..) for "texas" state how we can achieve this? thanks in advance.
You can achieve this by personalizing your content, not by adding different content for each item using the same language.
To show different content (Images, Title, etc) for each state, you can use Sitecore personalization rules "Out of the box".
One of the approaches you can use, and it is very easy to implement:
Define content for each state, maybe in the Global folder.
Go to experience editor, and personalize the rendering components.
Create new Condition - use the existing rule "Where the City Compares to Specific City".
You can get the list of cities that you can use from this URL: http://www.maxmind.com/GeoIPCity-534-Location.csv Sitecore uses this services.
As Ahmad answer use the personalization rules engine to add conditions that personalize your content based on, but I believe if you are using a Sitecore 8.1 and up you can use Sitecore IP Geolocation service.
Sitecore IP Geolocation provides information about the location and owner of an IP address beyond that provided by a reverse DNS lookup. IP Geolocation information includes the country, state, city, and the registered company name of every visitor.
Adding to #Ahmad's answer.
If you want to use condition like "city is equal to texas" u need to enable Sitecore GeoIP services first. This is a paid service from sitecore which uses Maxmind's GeoIP in the background.
There is one more option, where you can create new languages in sitecore like en-texas and en-florida. Once you created new languages you can use them like normal sitecore languages. So content editors can fill in different content for those languages.
We're developing a new SharePoint 2013 site and we want our users to be able to easily save files to SharePoint. We have about 100 site collections and each represents a Property that we own and contains all the documents related to that Property. Obviously, the easiest way to ensure a new document is created in the correct location is to first navigate to the document library, then click "New Document". Unfortunately, we anticipate most users will create the document first, then want to choose where to save it. Our users are not so computer savvy and are accustomed to file shares.
I've tried using "Connect To Office" but have had mixed results. Ideally, I would like this link to be to the site collection root so the user can see all the document libraries on the site rather than a single document library.
Any tips on using "Connect To Office"? What permissions or GPOs need to be set up so this works smoothly? We have an SSL site and our users are running Win 7,8 & 10 and also use Office 2010 & 2013.
Is there any way to hide the system/admin folders at the root level of the site collection in Explorer View? The site collections are publishing sites, so there are many additional folders and it's difficult to see which are relevant to the users - plus I'd like to hide them to help with security. There are approximately 25 folders that they should not see.
TIA
I have the exact same scenario.
I have had quite good success mapping the root SP site as a mapped drive. Users can easily browse the SP site libraries as they would folders on the network. It was a bit tricky to get it reliable but now is working very well.
Would also like to know the answer to hiding all the publishing system libraries. I tried setting them to hidden in SP Designer without success.
Mike
Assume I have Sitecore website A and an external site B. They use totally different top domains. And both use http protocols.
I added FXM from Site A onto Site B.
Setup a goal C to be triggered when user visits Site B.
In Site A, setup if goal C is triggered, display D on the Site A homepage.
My question is that, if user visits Site A and Site B in one browser. Should user see D when he/she refreshes Site A after visiting Site B?
I tested this: D doesn't display. But I am not sure if it's Sitecore doesn't support it or I set it up wrong.
Basically it comes down to if Sitecore can track the same visitor under different domains.(see below)
Couldn't find relevant information in Sitecore documentations, it mostly talk about only on external sites.
Thanks in advance!
-----------------Some Updates-------------------
I found that the cookie "sc_ext_contact" under Site B domain and "SC_ANALYTICS_GLOBAL_COOKIE" under Site A domain have the same value. So Sitecore can identify the same visitor, it's the goal that is triggered on external site is not being used on Site A?
I also tested that, if goal C is used to define a customization for E to be displayed on Site B. When Site B is visited, E is displayed on Site B.
With the help from Sitecore Support and a bit digging. I've got the following answers:
No, they are not shared by default.
However you can force Sitecore to share the sessions by setting "FXM.ShareSessionsWhenPossible" to true. It's in Sitecore.FXM.config file.
But it comes with a warning:
<!-- FXM SHARE SESSIONS WHEN POSSIBLE
This provides the option to record visits across multiple sites made in the same browser session, to be
recorded in the same analytics interaction. This behavior is limited by the same restrictions as tracking
contacts across sites, so on Safari and IE 8 & 9 page visits cannot be recorded in the same interaction.
The analytics data model does not officially support visits to multiple sites within the same interaction,
so turning this setting on is not recommended.
-->
The restriction is referring to this URL: https://doc.sitecore.net/sitecore_experience_platform/digital_marketing/federated_experience_manager/diagrams/browser_and_session_compatibility_in_fxm
Sitecore elaborated that warning a bit more: every interaction has a property SiteName, it can't take multiple values. So when this is enabled and visit is multi site, it will only be recorded as one site. Therefore analytics reports may be inaccurate.
I am not sure if it affects any other things as well. But for interactions, this is very true. Basically the site will be set to the first site that's visited during the session.
When it's Sitecore Site, it's set in
Sitecore.Analytics.Pipelines.CreateVisits.InitializeWithRequestData
When it's FXM, it's set in
Sitecore.FXM.Pipelines.Tracking.TrackPageVisit.InitializeContextSiteProcessor
Goals from different sites are recorded under one interaction too, but the goal conversion table still display them with the correct site name, so I guess these site data come from other sources, maybe during aggregation process.
Therefore, technically it's not supported by default, but it can be by changing settings, but with risks of inaccurate analytics reports.
I am trying to use Federated Experience Manager with an external website. The static website has a JS beacon, so now I am able to open external page with Experience Editor.
The issue happens when I try to add a placeholder to that external static page (as per guide), parent dropbox do not present, so I am not able to create a placeholder and any other operations FXM allows.
Is that a bug of Sitecore? I am on 8.0 Update 5
I had that issue in past when tried to investigate Sitecore 8 new features. I know it may sound weird, but this happens because your license does not have FMX in it.
If you got you your license.xml file from previous sitecore versions, then FXM would not be there, you need to request new license from Sitecore that has this feature enabled.
Update: The good way to test that is to look beacon file content (ex. in dev. tools) - if you do no have license beacon would just have missing license text without any actual content. You may check what you are actually licensed for from Sitecore menu (or hamburger menu in 8.0+) from Content Editor, then selecting Licenses. If you do not see something like Sitecore.Federated Experience (or similar by sense) then you are definitely out of license for FXM.
Also, it is mentioned in the official Requirements and Limitations article: https://goo.gl/wZfEhQ
I have a customize request from my client in sitecore mobile module.
I want to be on full view site from my mobile on Career page, i am able to do it but any of the link inside career page with having mobile layout in presentation detail is taking that page again to mobile device.
Can we make any customization that maintain the device in cookies so that it keep user on full view site after coming to career page.
Is there any setting we can do in pipeline or session. I just want to be throughout in full view site after coming on career page and no going back to mobile layout. Kindly suggest.
Yes, you can do exactly that. You'd need to update the rule to detect the various devices (which I'm guessing you already have). You can then create a custom condition to check if cookies have been set for the full site(does not need to be a cookie of course, but that'd be the easiest way).
You can find the existing Conditions and Actions here in the path /sitecore/system/Settings/Rules.
To create custom conditions and actions, please read the following article on SitecoreInsight.com
After creating your custom condition, go into your device item again and update the Rule there to only switch to that device when that cookie has not been set.
[edit]
Come to think about it, it might be possible to have your 'go to full site' link appended with a querystring sc_device={GUID of device}. I'm not sure what would take precedence here, the 51degrees rules or Sitecore's cookies... Worth a try though :-)