11.6.1 Displaying Information Regarding E-Commerce Items: General
■ Displaying Item Prices
You must display pricing information in order to make it easier for users to choose between add-on content and to avoid any confusion with items that are purchased using in-game currency. Consequently, when displaying add-on content, you must get the most recent catalog information from the Nintendo eShop server and display this together with the amount of eCash needed to purchase.
Titles that only use the item download code feature are not required to comply with this guideline.
Contact Nintendo at support@noa.com if you are unable to comply with this guideline.
The term eCash used here is the general term for the currency used on the Nintendo 3DS and later platforms (such as the Nintendo eShop). Note that this is different from the Nintendo Points used with the Wii Shop Channel or Nintendo DSi Shop.
■ Support for Currency Notations
When displaying balances and prices on-screen, applications must display the currency notation appropriately in accordance with the language set in System Settings.
When you use add-on content, or when you use the ECSV library to implement service item features, you must use the nn::ec::CTR::Server::ConvertPrice function to convert price information into the nn::ec::CTR::PriceIndication structure, and then display the price in the following order: prefix, amount, suffix. This conversion allows the currency to be displayed in the appropriate notation for the country settings even if that notation is not supported by the application. In contrast, when you use the eShop REST API to implement service item features, the Nintendo eShop server returns a price that is already formatted to the correct currency notation. In that case, take the returned price and display it without modification in the application.
Correctly display any special characters in balances or prices.
Nintendo recommends using the system fonts when displaying balance and price information. If you use a non-system font, confirm that it has special characters including the euro, pound, and Polish zloty. If those special characters are not available in the font, create characters or create textures to display for those characters.
See section 11.9 Appendix: Example Prices to Use When Checking 'Support for Currency Notations' for examples of countries to check when testing this requirement.
Titles that only use the item download code feature are not required to provide support for currency notations.
■ Distinguishing Between In-Game Currency and eCash
You must clearly distinguish items purchasable with eCash from any items purchasable using in-game currency to make sure that users do not confuse these transactions.
■ Handling Insufficient eCash
If the application supports add-on content, or if the application uses the ECSV library to support the sale of service items, the EC applet detects insufficient balances and gives the user the option to add funds, so the application does not need to implement any handling for insufficient balances.
On the other hand, if the application uses the eShop REST API to support the sale of service items, the application is responsible for detecting insufficient balances. If the function that gets the pre-purchase information returns a negative value for the user's balance, Nintendo recommends using the nn::ec::CTR::EcApplet::RequestAddBalance function to request the user to add enough funds to their balance to make the purchase.
■ Displaying Errors
If an error occurs during the purchase/redemption flow and you need to display the error, display it using the error/EULA applet. For details on what errors must be displayed and how to obtain error codes for the error/EULA applet, see the Function Reference Manual for the ECDK library.
■ Prohibition of Displaying Information that Needs Automatic Updating
Nintendo recommends not displaying anything on applet launch that needs regular updating, such as a clock. This is to prevent any discrepancy in the information displayed, because the application cannot be rendered while the applet is running.
■ What to Display in Account Activity
When you register title names and item names on IMAS (item names are registered in Add-On Content under Information by Language), Nintendo recommends choosing names that make it easy for the user to understand what they have purchased. These names are displayed in the Nintendo eShop's Account Activity and Receipt.
■ Displaying in Compliance with the Specified Commercial Transactions Law [JPN]
In Japan, selling goods using the CTR-ECDK is classified as mail order marketing, which requires displaying the Declaration Based on the Specified Commercial Transactions Law. With the CTR-ECDK, the EC applet takes care of displaying the Declaration Based on the Specified Commercial Transactions Law, so the application does not have to handle this.
If the application uses the eShop REST API, then before calling the purchase confirmation screen applet you must configure on the application side whether it is necessary to display the Declaration Based on the Specified Commercial Transactions Law. If the application targets the Japan market, you must set the showLawBusinessMessage member variable in the nn::ec::CTR::PurchaseInfo structure to true, so that the purchase confirmation screen applet displays the Declaration Based on the Specified Commercial Transactions Law. For all other markets besides Japan, you must set this member variable to false. Nintendo recommends having your independent server be where you determine whether the application needs to display the Declaration. This is because in a future Nintendo eShop server update, Nintendo plans to add a function to the eShop REST API that gets a flag indicating whether the application needs to display the Declaration. If you implement your application to get this information from your independent server from the start, you will be able to smoothly transition to using that function without updating the application itself.
There are several ways to make this determination on the independent server side: for example, one way is to use the unique ID obtained by decoding the independent server's service token.
11.6.1.1 Displaying Item Prices
Guideline Item |
When displaying a list of items, the application must get the most recent catalog information from the Nintendo eShop server and display this together with the amount of eCash needed to purchase. |
---|---|
Software to Be Tested |
Applications that use CTR-ECDK. |
Exceptions |
Applications that only use the item download code feature.
|
Test Method |
|
Pass/Fail Determination |
Passes if the price changed in step 2 is displayed in step 3. |
11.6.1.2 Support for Currency Notations
Guideline Item |
When displaying balances and prices, applications must appropriately display the prefix and suffix for the currency notation on-screen. In addition, the application must correctly display any special characters. |
---|---|
Software to Be Tested |
Applications that display prices or Nintendo eShop balances within the application. |
Test Method |
|
Pass/Fail Determination |
In step 2, the balance and prices are displayed with the correct currency notation. |
11.6.1.3 Distinguishing Between In-Game Currency and eCash
Guideline Item |
Applications must clearly distinguish items purchasable with eCash from any items purchasable using in-game currency. |
---|---|
Software to Be Tested |
Applications that use CTR-ECDK. |
Test Method |
Play through the add-on content purchase flow from beginning to end. |
Pass/Fail Determination |
Passes if items purchased with eCash are clearly distinguishable from any items sold using in-game currency.
|
11.6.1.4 Support for Displaying Errors During Purchase Flow
Guideline Item |
If an error occurs during the purchase/redemption flow, the application must use the error/EULA applet to display any errors for which display is required. |
---|---|
Software to Be Tested |
Applications that use CTR-ECDK. |
Test Method |
|
Pass/Fail Determination |
Passes if in step 2, the application displays an error using the error/EULA applet. |
11.6.1.5 Support for Declaration Based on the Specified Commercial Transactions Law
Guideline Item |
The Declaration Based on the Specified Commercial Transactions Law must be displayed in the purchase confirmation screen applet only for applications for the Japanese market. |
---|---|
Software to Be Tested |
Applications that use the eShop REST API to support the sale of service items. |
Test Method |
Check scenes where the purchase confirmation screen applet is displayed. |
Pass/Fail Determination |
For the Japanese market: Passes if the Declaration Based on Law button is displayed in the purchase confirmation screen applet. |
For markets other than Japan: Passes if the Declaration Based on Law button is not displayed in the purchase confirmation screen applet. |
11.6.2 Prompts to Purchase in the Application and Display of Purchase Flows Within the Application
■ Direct Prompts to Purchase
In applications for the European market, it is prohibited to display any text or play audio that directly prompts users to purchase retail or e-commerce items. Even in applications for markets outside Europe, Nintendo recommends not including any text that prompts users to make purchases.
When judging whether language is directly prompting the user to make a purchase, uses of the imperative form (in English, this is generally when the verb comes at or near the beginning of a sentence as a command) of any verb referring to the action of purchasing are considered direct prompts and are thus prohibited.
Below are some unacceptable examples that directly prompt the user to make a purchase, in contrast with corresponding acceptable examples.
Unacceptable Examples | Acceptable Examples |
---|---|
|
|
■ Scenes that Lead to a Purchase Flow and Scenes Within a Purchase Flow
In applications for all markets other than Japan and Korea, all scenes that lead to a purchase flow must fulfill the following requirements:
-
Must use an icon, user confirmation, or some other indication to clearly differentiate the purchase flow from normal gameplay.
-
Must allow the user to avoid entering the purchase flow, for example by providing a Back button, Cancel button, or some other option to proceed in the application without performing a purchase.
Furthermore, in applications for all markets other than Japan and Korea, all scenes within a purchase flow must allow the user to either back out to the previous step or exit the purchase flow entirely, and all scenes must have an onscreen indication of how to back out or exit.
For example, providing a Back or Cancel button on the touch screen meets both requirements. It is also acceptable to implement a B Button press or some other non-touch screen operation as long as every screen of the purchase flow indicates to the user what that operation is. All screens inside the EC applet meet these requirements by providing a Cancel button on the touch screen, allowing the user to exit at any point. (Although the EC applet does not allow the user to back out or exit while the applet is initializing, this is not a problem.) However, when the application displays scenes within the purchase flow, it is the application’s responsibility to comply with these requirements. If you have questions about the implementation of these requirements for your application, contact Nintendo at support@noa.com.
Applications for the Japanese and Korean markets are not required to comply with any of the above requirements, but Nintendo recommends complying.
See section 11.8 Appendix: Add-On Content Purchase Flow for an example flow which implements two Back buttons: one on the screen preceding the EC applet (allowing the user to avoid entering the purchase flow), and one on the item listing screen (allowing the user to exit the flow before returning to the EC applet).
Even in titles that have already been released, Nintendo recommends the following:
-
Not including language that directly prompts the user to make a purchase
-
Clearly differentiating the purchase flow from normal gameplay
-
Allowing the user to avoid entering the purchase flow
-
Allowing the user to exit the purchase flow at any point and clearly indicating how to exit
However, Nintendo does not require you to use a patch or similar measures to fix titles that are already released.
11.6.2.1 Prohibition of Prompts to Purchase in the Application
Guideline Item |
Applications must not display text or play audio that directly prompts users to make a purchase. |
---|---|
Software to Be Tested |
Applications for the European market that use CTR-ECDK. Note: Nintendo recommends compliance even in applications that have already been released. However, Nintendo does not require developers to use a patch or similar measures to fix titles that are already released. |
Test Method |
Play through all modes of the application from beginning to end. |
Pass/Fail Determination |
Passes if the application does not display text on-screen or play audio that directly prompts the user to make a purchase. |
11.6.2.2 Allowing the User to Avoid the Purchase Flow, and Back Out or Exit the Purchase Flow
Guideline Item |
Applications must clearly differentiate the purchase flow from normal game play and must allow users to avoid entering the purchase flow. Furthermore, the purchase flow must allow users to either back out to the previous step or exit entirely at any point, and must provide onscreen indication of how to back out or exit in every scene of the flow. |
---|---|
Software to Be Tested |
Applications for all markets other than Japan or Korea that use CTR-ECDK. Note: Nintendo recommends compliance even in applications that have already been released. However, Nintendo does not require developers to use a patch or similar measures to fix titles that are already released. |
Test Method |
Check all purchase flows. |
Pass/Fail Determination |
Passes if all of the following conditions are met.
|
11.6.3 Displaying Information Regarding Add-On Content
■ Displaying the Number of Blocks
When displaying add-on content during the purchase/redemption flow, Nintendo recommends that you also display the number of available blocks required to download the content.
■ Indicating that Content Can Be Downloaded
To indicate that add-on content can be downloaded, Nintendo recommends that you display a "Downloadable" label, or have a "Download" button that the user can select to download the content.
Nintendo previously recommended using the term "Redownload" as the indicator, but the recommended term has now changed to match updates to the text in Nintendo eShop and the EC applet.
■ Displaying when the SD Card Has Been Removed
Card applications must monitor for SD Card removal during the purchase/redemption flow and while add-on content is mounted, and display a message to inform the user when the card has been removed, such as "No SD Card inserted."
Alongside this message, Nintendo also recommends displaying a message to turn off the system before inserting an SD Card. After this, do not continue with the add-on content purchase or usage flow. This is because add-on content is saved on an SD Card, and SD Card removal makes it impossible to continue using that content or to proceed with the add-on content purchase. Also note that normal error processing can become impossible if the SD Card is swapped without the application detecting that the SD Card was swapped.
Compliance with this guideline item is not required for downloadable applications, because the system monitors removal of the SD card in that case. Likewise, compliance with this guideline item is not required for patched applications, because in that case the application itself stops functioning properly if the SD card is removed.
11.6.3.1 Handling Removal of the SD Card
Guideline Item |
The application must monitor for the removal of the SD Card, and if it detects that the card has been removed, must display a message notifying the user of this. |
---|---|
Software to Be Tested |
Applications that handle add-on content using CTR-ECDK. |
Exceptions |
Downloadable applications and patched applications. |
Test Method |
|
Pass/Fail Determination |
Passes if in step 2, a message to inform the user, such as "No SD Card inserted," is displayed. |
11.6.4 Display of Remaining Time/Uses of Service Items
You must display the amount of time/uses remaining on any purchased service items in a location somewhere within the application that is easily visible to the user. Nintendo eShop only displays a record of what service items the user has purchased. Your application must handle display of the amount of time or uses remaining on those service items. (To indicate time remaining, it is sufficient to display an expiration date as opposed to a countdown.)
11.6.4.1 Support for Display of Remaining Time/Uses of Service Items
Guideline Item |
It must be possible to check the following from inside the application: the active period (expiration dates) or amount of time/uses remaining on purchased service items. If the application uses consumable tickets to implement a subscription service that has an expiration element, it must display the amount of time remaining as opposed to the number of tickets remaining. |
---|---|
Software to Be Tested |
Applications that support the sale of service items. |
Test Method |
Play through all modes of the application from beginning to end. |
Pass/Fail Determination |
Passes if the software provides a mode in which users can verify the active period (expiration dates) or amount of time/uses remaining on purchased service items. If the application uses consumable tickets to implement a subscription service that has an expiration element, passes if it displays the amount of time remaining as opposed to the number of tickets remaining. |