Loading...
Area: Episerver Service API
Applies to versions: 5.3 and higher

Change publish status for a language

Recommendations [hide]

This topic describes how to work with RESTful operations for language versions in the Episerver Service API.

How it works

From Service API 5.3.0, the individual status of a language version can be controlled via the model property PublishStatuses, which is a list of PublishStatus.

Example of PublishStatuses, which sets the individual publish statuses for “en” and “sv” versions.

PublishStatuses = new List<PublishStatus>()
  {
    new PublishStatus()
      {
        IsPublished = true,
        Language = "en",
        StartPublish = now.AddDays(-1),
        StopPublish = now.AddYears(1)
      },
    new PublishStatus()
      {
        IsPublished = false,
        Language = "sv",
        StartPublish = now.AddDays(-1),
        StopPublish = now.AddYears(1)
      }
  }

The PublishStatuses property can be used for nodes and entries.

new Entry
  {
    Code = "Code 3",
    Catalog = "TESTROOTCATALOG",
    EndDate = now.AddYears(1),
    EntryType = "Variation",
    InventoryStatus = "Enabled",
    IsActive = true,
    MetaClass = DefaultEntryMetaClassName,
    Name = "Test",
    StartDate = now.AddDays(-1),
    MetaFields = new List<MetaFieldProperty>
      {
        new MetaFieldProperty
          {
            Name = "Description",
            Type = MetaDataType.LongHtmlString.ToString(),
            Data = new List<MetaFieldData>
              {
                new MetaFieldData
                  {
                    Language="en",
                    Value = "Description"
                  }
              }
          },
        new MetaFieldProperty()
          {
            Name = "DisplayName",
            Type = MetaDataType.ShortString.ToString(),
            Data = new List<MetaFieldData>
              {
                new MetaFieldData()
                  {
                    Language="en",
                    Value = "DisplayName"
                  },
                new MetaFieldData
                  {
                    Language="sv",
                    Value = "DisplayName  in svenska"
                  }
              }
          },
        new MetaFieldProperty
          {
            Name = AnotherMultiLanguageStringMetaFieldName,
            Type = MetaDataType.ShortString.ToString(),
            Data = new List<MetaFieldData>
              {
                new MetaFieldData
                  {
                    Language="EN",
                    Value = "Set with lang key EN for en"
                  },
                new MetaFieldData
                  {
                    Language="Sv",
                    Value = "Set with lang key Sv for sv"
                  }
              }
          },
        Variation = new VariationProperties
          {
            MaxQuantity = 100,
            MinQuantity = 0,
            TaxCategory = "",
            Weight = 5.1,
          },
        Dimension = new DimensionProperties
          {
            Length = 50,
            Height = 60,
            Width = 70
          },
        PublishStatuses = new List<PublishStatus>()
          {
            new PublishStatus()
              {
                IsPublished = true,
                Language = "en",
                StartPublish = now.AddDays(-1),
                StopPublish = now.AddYears(1)
              },
            new PublishStatus()
              {
                IsPublished = false,
                Language = "sv",
                StartPublish = now.AddDays(-2),
                StopPublish = now.AddYears(2)
              }
          }
  }

Example of a returned JSON.

{  
  "IsActive"              : true,
  "MetaFields"            : [  
                              {  
                                "Data" : [  
                                           {  
                                             "Language" : "en",
                                             "Value"    : ""
                                           },
                                           {  
                                             "Language" : "sv",
                                             "Value"    : "Set with lang key Sv for sv"
                                           }
                                         ],
                                "Name" : "AnotherMultilanguageString",
                                "Type" : "ShortString"
                              },
                              {  
                                "Data" : [  
                                           {  
                                             "Language" : "en",
                                             "Value"    : "13.440000000"
                                           },
                                           {  
                                             "Language" : "sv",
                                             "Value"    : "15,230000000"
                                           }
                                         ],
                                "Name" : "DecimalType",
                                "Type" : "Decimal"
                              },
                              {  
                                "Data" : [  
                                           {  
                                             "Language" : "en",
                                             "Value"    : "Description"
                                           },
                                           {  
                                             "Language" : "sv",
                                             "Value"    : "Description"
                                           }
                                         ],
                                "Name" : "Description",
                                "Type" : "LongString"
                              },
                              {  
                                "Data" : [],
                                "Name" : "DictionaryMulti",
                                "Type" : "EnumMultiValue"
                              },
                              {  
                                "Data" : [  
                                           {  
                                             "Language" : "en",
                                             "Value"    : ""
                                           },
                                           {  
                                             "Language" : "sv",
                                             "Value"    : ""
                                           }
                                         ],
                                "Name" : "DictionarySingle",
                                "Type" : "DictionarySingleValue"
                              },
                              {  
                                "Data" : [  
                                           {  
                                             "Language" : "en",
                                             "Value"    : "DisplayName"
                                           },
                                           {  
                                             "Language" : "sv",
                                             "Value"    : "DisplayName in svenska"
                                           }
                                         ],
                                "Name" : "DisplayName",
                                "Type" : "ShortString"
                              },
                              {  
                                "Data" : [  
                                           {  
                                             "Language" : "en",
                                             "Value"    : ""
                                           },
                                           {  
                                             "Language" : "sv",
                                             "Value"    : ""
                                           }
                                         ],
                                "Name" : "IntegerMetaFieldName",
                                "Type" : "Int"
                              },
                              {  
                                "Data" : [  
                                           {  
                                             "Language" : "en",
                                             "Value"    : "hello;world"
                                           },
                                           {  
                                             "Language" : "en",
                                             "Value"    : "hi;there"
                                           },
                                           {  
                                             "Language" : "sv",
                                             "Value"    : "hello;world"
                                           },
                                           {  
                                             "Language" : "sv",
                                             "Value"    : "hi;there"
                                           }
                                         ],
                                "Name" : "AStringDictionaryMetaField",
                                "Type" : "StringDictionary"
                              },
                              {  
                                "Data" : [ ],
                                "Name" : "_ExcludedCatalogEntryMarkets",
                                "Type" : "EnumMultiValue"
                              }
                            ],
  "SeoInformation"        : [  
                              {  
                                "LanguageCode" : "en",
                                "Title"        : null,
                                "Uri"          : "Test-en.aspx",
                                "UriSegment"   : "test",
                                "Description"  : null,
                                "Keywords"     : null
                              },
                              {  
                                "LanguageCode" : "sv",
                                "Title"        : null,
                                "Uri"          : "Test-sv.aspx",
                                "UriSegment"   : "test",
                                "Description"  : null,
                                "Keywords"     : null
                              }
                            ],
  "PublishStatuses"       : [  
                              {  
                                 "Language"     : "en",
                                 "IsPublished"  : true,
                                 "StartPublish" : "2018-11-14T10:24:00.257Z",
                                 "StopPublish"  : "2019-11-15T10:24:00.257Z"
                              },
                              {  
                                 "Language"     : "sv",
                                 "IsPublished"  : false,
                                 "StartPublish" : "2018-11-14T10:24:00.257Z",
                                 "StopPublish"  : "2019-11-15T10:24:00.257Z"
                              }
                            ],
   "Code"                 : "Code 3",
   "Name"                 : "Test",
   "StartDate"            : "2018-11-14T10:24:00.257Z",
   "EndDate"              : "2019-11-15T10:24:00.257Z",
   "MetaClass"            : "DefaultMetadataClass",
   "Catalog"              : "TESTROOTCATALOG",
   "Prices"               : [],
   "EntryType"            : "Variation",
   "ChildCatalogEntries"  : [],
   "InventoryStatus"      : "Enabled",
   "WarehouseInventories" : [],
   "Associations"         : [],
   "Assets"               : [],
   "Nodes"                : [],
   "Variation"            : {  
                              "MinQuantity" : 0.000000000,
                              "MaxQuantity" : 100.000000000,
                              "Weight"      : 5.1,
                              "TaxCategory" : ""
                            },
   "Dimension"            : {  
                              "Length" : 50.0,
                              "Height" : 60.0,
                              "Width"  : 70.0
                            }
}

You can use PublishStatuses in both POST (create) and PUT (update) operations. It will be returned in GET operations.

For POST and PUT, if PublishStatuses is null, it is skipped. It is also possible to update the statuses of some, but not all, languages.

Note the following:

  • If IsActive is set to false, it overrides the IsPublished status of all languages.
  • It is not possible to “unpublish” the master language version. There must be always a published, master language version.
  • It is not possible to "unpublish" a published version. If you have a draft version in a non-master language, set IsPublished to false for that language to keep in draft. If it is published, setting IsPublished to false has no effect. Use StartPublish and StopPublish to expire the content instead.
  • While it is possible to send a list with duplicated languages, only the first matching publish status for a language is used.
  • StartPublish and StopPublish of a master language override StartDate and EndDate.

Related topics

Do you find this information helpful? Please log in to provide feedback.

Last updated: Dec 03, 2018

Recommendations [hide]