StoreBroker/IapConfigTemplate.json

// Copyright (C) Microsoft Corporation. All rights reserved.
 
// This configuration file is for use with the StoreBroker PowerShell module.
// Configure details of the In-App Product ("add on") here, as well as the location of resources
// used by the packaging tool.
 
// Inline Comments can be placed in this file using the '//' delimiter.
// The delimiter and any remaining text on that line will be removed.
 
{
    // New-InAppProductSubmissionPackage parameters
    //
    // If you notice one of the parameters you specify to New-InAppProductSubmissionPackage does not change, you can specify it here
    // in order to avoid providing it at runtime. If New-InAppProductSubmissionPackage does not have a parameter it needs, it will
    // check the provided config file for a non-null, non-empty value. The exception to this is -ConfigPath which must
    // always be provided. For information on these parameters see the README.md or run `help New-InAppProductSubmissionPackage -ShowWindow`
    //
    // WARNING: Specifying a parameter at runtime will ignore any value placed in the config file.
 
    "packageParameters": {
 
        // There are two supported layouts for your PDP files:
        // 1. <PDPRootPath>\<lang-code>\...\PDP.xml
        // 2. <PDPRootPath>\<Release>\<lang-code>\...\PDP.xml
        // The only difference between these two is that there is a <Release> directory after the
        // <PDPRootPath> and before the <lang-code> sub-directories.
        //
        // The first layout is generally used when your localization system will be downloading
        // the localized PDP files during your build. In that situation, it's always retrieving
        // the latest version. Alternatively, if the latest localized versions of your PDP
        // files are always stored in the same location, this layout is also for you.
        //
        // On the other hand, if you will be archiving the localized PDP's based on each release
        // to the Store, then the second layout is the one that you should use. In this scenario,
        // you will specify the value of "<Release>" immediately below, or at the commandline.
        //
        // Only specify 'PDPRootPath' here if it does not change.
        // DO NOT use environment variables in the config. If you need to use an environment
        // variable to get to the right path, then you need to specify that path at the commandline
        // instead.
        //
        // File separator '\' must be escaped, i.e. '\\'
        // Ex: \\\\filehare\\Public\\AppPDPs\\MyApp
 
        "PDPRootPath": "",
 
        // If your PDP files are being placed in a directory structure like this:
        // <PDPRootPath>\<Release>\<lang-code>\...\PDP.xml
        // then specify the correct 'Release' here or at runtime.
 
        "Release": "",
 
        // Filenames that SHOULD be processed.
        // Wildcards are allowed, eg "InAppProductDescription*.xml".
        // It is fine to specify both "PDPInclude" and "PDPExclude".
        //
        // Ex: "PDPInclude": [
        // "IapPDP*.xml", <- Comma to separate items
        // "InAppProductDescription.xml" <- No comma for last item, or JSON deserialization will fail
        // ]
 
        "PDPInclude": [
        ],
 
        // Filenames that SHOULD NOT be processed.
        // Wildcards are allowed, eg "InAppProductDescription*.xml".
        // It is fine to specify both "PDPInclude" and "PDPExclude".
        // It is NOT necessary to specify something here, but you can to be more explicit.
        //
        // Ex: "PDPExclude": [
        // "*.xml.lss", <- Comma to separate items
        // "*.xml.lct" <- No comma for last item, or JSON deserialization will fail
        // ]
 
        "PDPExclude": [
        ],
 
        // Languages to be excluded from processing by New-InAppProductSubmissionPackage.
        // New-InAppProductSubmissionPackage will use the filepath of a PDP XML file
        // to identify the language of the metadata. If it sees a match
        // with a lang-code in this list, it will skip processing the file.
        //
        // Ex: "LanguageExclude": [
        // "default", <- Comma to separate items
        // "qps-ploc" <- No comma for last item, or JSON deserialization will fail
        // ],
 
        "LanguageExclude": [
            "default"
        ],
 
        // Your store screenshots must be placed with this structure:
        // <ImagesRootPath>\<Release>\<lang-code>\...\img.png
        // Specify 'ImagesRootPath' here.
        //
        // IMPORTANT: The 'Release' that will be used here is *NOT* the value specified to
        // New-InAppProductSubmissionPackage (nor is it the Release value specified earlier in this config file),
        // but rather the 'Release' attribute at the top of the corresponding PDP file.
        //
        // File separator '\' must be escaped, i.e. '\\'
        // Ex: \\\\fileshare\\Public\\Screenshots\\MyApp
 
        "ImagesRootPath": "",
 
        // Some apps may not localize all of their metadata media (images, trailers, etc..) across all languages.
        // By default, StoreBroker will look in the PDP langcode's subfolder within ImagesRootPath for that
        // language's media content. If the requested filename is not found, StoreBroker packaging will fail.
        // If you specify a fallback language here (e.g. 'en-us'), then if the requested file isn't found in
        // the PDP language's media subfolder, StoreBroker will then look into the fallback language's media
        // subfolder for the exactly same-named image before failing.
 
        "MediaFallbackLanguage": "",
 
        // Full path to a directory where the Packaging Tool can write the .json submission request
        // body and .zip package to upload.
        //
        // File separator '\' must be escaped, i.e. '\\'
        // Ex: "OutPath": "C:\\app\\output"
 
        "OutPath": "",
 
        // Common name to give to the .json and .zip files outputted by the Packaging Tool.
 
        "OutName": ""
    },
 
    // Configure details of the IAP Submission
 
    "iapSubmission": {
 
        // If known, this is the IapId given to your in-app application ("add on") by the Windows Store.
        // This isn't required, but adding this will help protect you from submitting something
        // to the wrong product when working at the commandline.
        //
        // Ex: "iapId": "0ABCDEF12345"
        "iapId": "",
 
        /////////////////////////////////
        // //
        // PUBLISH MODE AND VISIBILITY //
        // //
        /////////////////////////////////
 
        // Publish mode of the submission. One of ["NotSet", "Immediate", "Manual", "SpecificDate"]
 
        "targetPublishMode": "NotSet",
 
        // Publish date-time of the submission if the "targetPublishMode" is specified as "SpecificDate".
        // Date-time format should follow the ISO 8601 standard.
        // Ex: "2000-01-30T00:00:00-08:00"
 
        "targetPublishDate": null,
 
        // Visibility of the add-on. One of ["NotSet", "Public", "Private", "Hidden"]
        //
        // Public: Anyone can find your add-on in the Store.
        // Private: Hide this add-on in the Store. Customers with a direct link to the add-on's listing can still download
        // it, except on Windows 8 and Windows 8.1.
        // Hidden: Hide this add-on and prevent acquisition. Customers with a promotional code can still download it on
        // Windows 10 devices.
 
        "visibility": "NotSet",
 
        ///////////////////////
        // //
        // PROPERTIES //
        // //
        ///////////////////////
 
        // lifetime
        // one of:
        // ["Forever", "OneDay", "ThreeDays", "FiveDays", "OneWeek", "TwoWeeks", "OneMonth", "TwoMonths", "ThreeMonths", "SixMonths", "OneYear"]
 
        "lifetime": "Forever",
 
        // contentType - Regardless of your add-on's product type, you'll also need to indicate the
        // type of content you're offering. For most add-ons, the content type should be "OnlineDownload".
        // If another option from the list seems to describe your add-on better (for example, if you
        // are offering a music download or an e-book), select that option instead.
        //
        // one of:
        // ["NotSet", "BookDownload", "EMagazine", "ENewspaper", "MusicDownload", "MusicStream",
        // "OnlineDataStorage", "VideoDownload", "VideoStream", "Asp", "OnlineDownload"]
 
        "contentType": "NotSet",
 
        // Your app can then query for add-ons that match these words.
        // This feature lets you build screens in your app that can load add-ons without you having to
        // directly specify the product ID in your app's code. You can then change the add-on's keywords
        // anytime, without having to make code changes in your app or submit the app again.
        // Maximum: 10 keywords of up to 30 characters each
        "keywords": [
        ],
 
        // The custom developer data for the add-on (this information was previously called the 'tag').
        // You can use this to provide extra context for your in-app product.
        // Your app can query this value dynamically, and you can adjust the value at any time by
        // updating the info in the add-on's Custom developer data field, without having to make code
        // changes in your app or submit the app again.
        // Maximum: 3000 characters
        // The contents must be provided on one line, but it is possible to specify multiline content using "\r\n".
        // Ex: "tag": "These\r\nare\r\nfour\r\nlines"
        "tag": "",
 
        //////////////////////////////
        // //
        // PRICING AND AVAILABILITY //
        // //
        //////////////////////////////
 
        // Pricing
        //
        // Your add-on will be priced according to the price tier set for "priceId" and will be marketed at
        // that tier for ALL available markets. To set a different price for a specific market, use the
        // "marketSpecificPricings" object. You can also use the "marketSpecificPricings" object to make
        // your add-on "NotAvailable" to a specific market.
        //
        // It is not currently possible to programmatically access or set sales information via the
        // Windows Store Submission API for add-on submissions at this time.
 
        "pricing": {
 
            // Price
            //
            // Set the price of the add-on.
            // The value provided should be a "Tier" and NOT an actual price
            // For a mapping of "Tiers" to prices, refer to https://docs.microsoft.com/en-us/windows/uwp/monetize/manage-add-on-submissions#price-tiers
            // Can also be "Free" or "NotAvailable"
 
            "priceId": "NotAvailable",
 
            // Market Specific Pricing
            //
            // By default, your add-on will be marketed at the price tier set for "priceId" for all possible markets.
            // To set a different price tier for a specific region, add the ("region": "Tier") key-value pair.
            //
            // For a list of supported regions, see https://msdn.microsoft.com/en-us/library/windows/apps/mt148563.aspx
 
            "marketSpecificPricings": {
            }
        },
 
        /////////////////////////////
        // //
        // NOTES FOR CERTIFICATION //
        // //
        /////////////////////////////
 
        // String. Information that helps testers use and understand this submission.
        // Customers won't see this info.
        // Can include information such as test account credentials, steps to access and verify features, etc.
        //
        // The notes must be provided on one line, but it is possible to specify multiline notes using "\r\n".
        // Ex: "notesForCertification": "These\r\nare\r\nfour\r\nlines"
 
        "notesForCertification": ""
    }
}