Viviot.Api

<back to all web services

UpdateServiceProducts

Requires Authentication
Requires any of the roles:Admin, TenantAdmin, MarketplaceAdmin
The following routes are available for this service:
PUT/service/productsUpdates a service product list.
UpdateServiceProducts Parameters:
NameParameterData TypeRequiredDescription
ServiceIdbodystringYesService Id (GUID)
ServiceTypebodyServiceTypeYesService type (reservation, request, external)

Allowable Values

  • Reservation
  • Request
  • External
  • Ticket
ProductsbodyList<ServiceProductDto>NoList of service products.
BaseRequest Parameters:
NameParameterData TypeRequiredDescription
VersionformintegerNoApi version
ServiceType Enum:
NameValue
Reservation1
Request2
External3
Ticket4
ServiceProductDto Parameters:
NameParameterData TypeRequiredDescription
IdformGuid?No
NameformstringNo
DescriptionformstringNo
UnitPriceformdecimal?No
VATPercentageformdecimal?No
ImageformImageDtoNo
ExternalIdformstringNo
ReservationDataformServiceProductReservationDtoNo
RequestDataformServiceProductRequestDtoNo
ExternalDataformServiceProductExternalDtoNo
TicketDataformServiceProductTicketDtoNo
ImageDto Parameters:
NameParameterData TypeRequiredDescription
FileNameformstringNo
ContentformstringNo
MimeTypeformstringNo
ServiceProductReservationDto Parameters:
NameParameterData TypeRequiredDescription
IdformGuid?No
AccessTemplateGroupIdformGuid?No
AccessTemplateIdformGuid?No
AutoAssignAccessTemplateformbool?No
ServiceProductRequestDto Parameters:
NameParameterData TypeRequiredDescription
IdformGuid?No
OptionsformList<string>No
AllowCommentsformboolNo
ApprovedTemplateformstringNo
DeniedTemplateformstringNo
ProcessingTemplateformstringNo
ServiceProductExternalDto Parameters:
NameParameterData TypeRequiredDescription
IdformGuid?No
ServiceUrlformstringNo
Latitudeformdecimal?No
Longitudeformdecimal?No
Ratingformdecimal?No
ServiceProductTicketDto Parameters:
NameParameterData TypeRequiredDescription
IdformGuid?No
AccessTemplateIdformGuidNo
ServiceResponse Parameters:
NameParameterData TypeRequiredDescription
DataformServiceViewNo
BaseResponse Parameters:
NameParameterData TypeRequiredDescription
ResponseStatusformResponseStatusNo
ServiceView Parameters:
NameParameterData TypeRequiredDescription
IdformGuidNo
OrganizationIdformGuidNo
ServiceTypeformServiceTypeNo
NameformstringNo
DescriptionformstringNo
SubTitleformstringNo
ImageUrlformstringNo
IsPublicformboolNo
RequireConfirmationformbool?No
RequirePaymentformbool?No
Latitudeformdecimal?No
Longitudeformdecimal?No
CurrencyformCurrencyDtoNo
VATPercentageformdecimal?No
ProductsformList<ServiceProductView>No
AddonsformList<ServiceAddonDto>No
TimeOptionformServiceTimeOptionDtoNo
PersonOptionformServicePersonOptionDtoNo
ProvidersformDictionary<string, Guid>No
OrganizationformOrganizationDtoNo
CurrencyDto Parameters:
NameParameterData TypeRequiredDescription
IdformGuidNo
NameformstringNo
CodeformstringNo
SymbolformstringNo
ServiceProductView Parameters:
NameParameterData TypeRequiredDescription
IdformGuidNo
NameformstringNo
DescriptionformstringNo
UnitPriceformdecimal?No
MinimalPriceformdecimal?No
VATPercentageformdecimal?No
ImageUrlformstringNo
ExternalIdformList<string>No
ReservationDataformServiceProductReservationDtoNo
RequestDataformServiceProductRequestDtoNo
ExternalDataformServiceProductExternalDtoNo
TicketDataformServiceProductTicketDtoNo
ServiceAddonDto Parameters:
NameParameterData TypeRequiredDescription
IdformGuid?No
NameformstringNo
UnitPriceformdecimal?No
VATPercentageformdecimal?No
MaxQuantityformint?No
ExternalIdformstringNo
ServiceTimeOptionDto Parameters:
NameParameterData TypeRequiredDescription
IdformGuid?No
TypeformServiceTimeOptionTypeNo
DailyOptionsformTimeDailyDtoNo
TimespanOptionsformTimespanDtoNo
ServiceTimeOptionType Enum:
NameValue
Daily0
Timespan1
TimeDailyDto Parameters:
NameParameterData TypeRequiredDescription
CheckinformTimeSpan?No
CheckoutformTimeSpan?No
TimespanDto Parameters:
NameParameterData TypeRequiredDescription
MinDurationformintNo
MaxDurationformintNo
Incrementformint?No
IncrementPriceMultiplierformdecimal?No
ServicePersonOptionDto Parameters:
NameParameterData TypeRequiredDescription
IdformGuid?No
CanSelectChildrenformboolNo
MaxAdultCountformint?No
MaxChildrenCountformint?No
AdultPriceMultiplierformdecimalNo
ChildPriceMultiplierformdecimalNo
OrganizationDto Parameters:
NameParameterData TypeRequiredDescription
IdformGuid?No
CodeformstringNo

To override the Content-type in your clients, use the HTTP Accept Header, append the .jsv suffix or ?format=jsv

HTTP + JSV

The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.

PUT /service/products HTTP/1.1 
Host: api.4spaces.io 
Accept: text/jsv
Content-Type: text/jsv
Content-Length: length

{
	serviceId: 00000000000000000000000000000000,
	serviceType: 1,
	products: 
	[
		{
			id: 00000000000000000000000000000000,
			name: String,
			description: String,
			unitPrice: 0,
			vatPercentage: 0,
			image: 
			{
				fileName: String,
				content: String,
				mimeType: String
			},
			externalId: String,
			reservationData: 
			{
				id: 00000000000000000000000000000000,
				accessTemplateGroupId: 00000000000000000000000000000000,
				accessTemplateId: 00000000000000000000000000000000,
				autoAssignAccessTemplate: False
			},
			requestData: 
			{
				id: 00000000000000000000000000000000,
				options: 
				[
					String
				],
				allowComments: False,
				approvedTemplate: String,
				deniedTemplate: String,
				processingTemplate: String
			},
			externalData: 
			{
				id: 00000000000000000000000000000000,
				serviceUrl: String,
				latitude: 0,
				longitude: 0,
				rating: 0
			},
			ticketData: 
			{
				id: 00000000000000000000000000000000,
				accessTemplateId: 00000000000000000000000000000000
			}
		}
	],
	version: 0
}
HTTP/1.1 200 OK
Content-Type: text/jsv
Content-Length: length

{
	data: 
	{
		id: 00000000000000000000000000000000,
		organizationId: 00000000000000000000000000000000,
		serviceType: 1,
		name: String,
		description: String,
		subTitle: String,
		imageUrl: String,
		isPublic: False,
		requireConfirmation: False,
		requirePayment: False,
		latitude: 0,
		longitude: 0,
		currency: 
		{
			id: 00000000000000000000000000000000,
			name: String,
			code: String,
			symbol: String
		},
		vatPercentage: 0,
		products: 
		[
			{
				id: 00000000000000000000000000000000,
				name: String,
				description: String,
				unitPrice: 0,
				minimalPrice: 0,
				vatPercentage: 0,
				imageUrl: String,
				externalId: 
				[
					String
				],
				reservationData: 
				{
					id: 00000000000000000000000000000000,
					accessTemplateGroupId: 00000000000000000000000000000000,
					accessTemplateId: 00000000000000000000000000000000,
					autoAssignAccessTemplate: False
				},
				requestData: 
				{
					id: 00000000000000000000000000000000,
					options: 
					[
						String
					],
					allowComments: False,
					approvedTemplate: String,
					deniedTemplate: String,
					processingTemplate: String
				},
				externalData: 
				{
					id: 00000000000000000000000000000000,
					serviceUrl: String,
					latitude: 0,
					longitude: 0,
					rating: 0
				},
				ticketData: 
				{
					id: 00000000000000000000000000000000,
					accessTemplateId: 00000000000000000000000000000000
				}
			}
		],
		addons: 
		[
			{
				id: 00000000000000000000000000000000,
				name: String,
				unitPrice: 0,
				vatPercentage: 0,
				maxQuantity: 0,
				externalId: String
			}
		],
		timeOption: 
		{
			id: 00000000000000000000000000000000,
			type: 0,
			dailyOptions: 
			{
				checkin: PT0S,
				checkout: PT0S
			},
			timespanOptions: 
			{
				minDuration: 0,
				maxDuration: 0,
				increment: 0,
				incrementPriceMultiplier: 0
			}
		},
		personOption: 
		{
			id: 00000000000000000000000000000000,
			canSelectChildren: False,
			maxAdultCount: 0,
			maxChildrenCount: 0,
			adultPriceMultiplier: 0,
			childPriceMultiplier: 0
		},
		providers: 
		{
			String: 00000000000000000000000000000000
		},
		organization: 
		{
			id: 00000000000000000000000000000000,
			code: String
		}
	},
	responseStatus: 
	{
		errorCode: String,
		message: String,
		stackTrace: String,
		errors: 
		[
			{
				errorCode: String,
				fieldName: String,
				message: String,
				meta: 
				{
					String: String
				}
			}
		],
		meta: 
		{
			String: String
		}
	}
}