openapi: 3.0.4 info: title: VirtoCommerce.Cart Catalog Store API version: v1 description: Easily manage your products, categories, variations, and properties tags: - name: Store description: Multi store management with individual store settings paths: /api/store-authentication-schemes/{storeId}: get: tags: - Store operationId: StoreAuthenticationScheme_Get parameters: - name: storeId in: path required: true schema: type: string responses: '200': description: OK content: text/plain: schema: type: array items: $ref: '#/components/schemas/StoreAuthenticationScheme' application/json: schema: type: array items: $ref: '#/components/schemas/StoreAuthenticationScheme' text/json: schema: type: array items: $ref: '#/components/schemas/StoreAuthenticationScheme' '401': description: Unauthorized '403': description: Forbidden security: - oauth2: - store:read - api_key: - store:read - api_key_header: - store:read - http-signature: - store:read - basic: - store:read x-virtocommerce-module-id: VirtoCommerce.Store put: tags: - Store operationId: StoreAuthenticationScheme_Update parameters: - name: storeId in: path required: true schema: type: string requestBody: content: application/json-patch+json: schema: type: array items: $ref: '#/components/schemas/StoreAuthenticationScheme' application/json: schema: type: array items: $ref: '#/components/schemas/StoreAuthenticationScheme' text/json: schema: type: array items: $ref: '#/components/schemas/StoreAuthenticationScheme' responses: '204': description: No Content '401': description: Unauthorized '403': description: Forbidden security: - oauth2: - store:update - api_key: - store:update - api_key_header: - store:update - http-signature: - store:update - basic: - store:update x-virtocommerce-module-id: VirtoCommerce.Store /api/stores/search: post: tags: - Store summary: Search stores operationId: StoreModule_SearchStores requestBody: content: application/json-patch+json: schema: allOf: - $ref: '#/components/schemas/StoreSearchCriteria' application/json: schema: allOf: - $ref: '#/components/schemas/StoreSearchCriteria' text/json: schema: allOf: - $ref: '#/components/schemas/StoreSearchCriteria' responses: '200': description: OK content: text/plain: schema: $ref: '#/components/schemas/StoreSearchResult' application/json: schema: $ref: '#/components/schemas/StoreSearchResult' text/json: schema: $ref: '#/components/schemas/StoreSearchResult' '401': description: Unauthorized '403': description: Forbidden security: - oauth2: [] - api_key: [] - api_key_header: [] - http-signature: [] - basic: [] x-virtocommerce-module-id: VirtoCommerce.Store /api/stores/{id}: get: tags: - Store summary: Get store by id operationId: StoreModule_GetStoreById parameters: - name: id in: path description: Store id required: true schema: type: string - name: responseGroup in: query description: Response group schema: type: string responses: '200': description: OK content: text/plain: schema: $ref: '#/components/schemas/Store' application/json: schema: $ref: '#/components/schemas/Store' text/json: schema: $ref: '#/components/schemas/Store' '401': description: Unauthorized '403': description: Forbidden security: - oauth2: [] - api_key: [] - api_key_header: [] - http-signature: [] - basic: [] x-virtocommerce-module-id: VirtoCommerce.Store patch: tags: - Store summary: Partial update for the specified store by id operationId: StoreModule_PatchStore parameters: - name: id in: path description: Store id required: true schema: type: string requestBody: description: JsonPatchDocument object with fields to update content: application/json-patch+json: schema: type: array items: $ref: '#/components/schemas/Operation' application/json: schema: type: array items: $ref: '#/components/schemas/Operation' text/json: schema: type: array items: $ref: '#/components/schemas/Operation' responses: '204': description: No Content '401': description: Unauthorized '403': description: Forbidden security: - oauth2: [] - api_key: [] - api_key_header: [] - http-signature: [] - basic: [] x-virtocommerce-module-id: VirtoCommerce.Store /api/stores/outer/{outerId}: get: tags: - Store summary: Gets store by outer id. description: Gets store by outer id (integration key) with full information loaded operationId: StoreModule_GetStoreByOuterId parameters: - name: outerId in: path description: Store outer id required: true schema: type: string - name: responseGroup in: query description: Response group schema: type: string responses: '200': description: OK content: text/plain: schema: $ref: '#/components/schemas/Store' application/json: schema: $ref: '#/components/schemas/Store' text/json: schema: $ref: '#/components/schemas/Store' '401': description: Unauthorized '403': description: Forbidden security: - oauth2: [] - api_key: [] - api_key_header: [] - http-signature: [] - basic: [] x-virtocommerce-module-id: VirtoCommerce.Store /api/stores: post: tags: - Store summary: Create store operationId: StoreModule_CreateStore requestBody: description: Store content: application/json-patch+json: schema: allOf: - $ref: '#/components/schemas/Store' application/json: schema: allOf: - $ref: '#/components/schemas/Store' text/json: schema: allOf: - $ref: '#/components/schemas/Store' responses: '200': description: OK content: text/plain: schema: $ref: '#/components/schemas/Store' application/json: schema: $ref: '#/components/schemas/Store' text/json: schema: $ref: '#/components/schemas/Store' '401': description: Unauthorized '403': description: Forbidden security: - oauth2: - store:create - api_key: - store:create - api_key_header: - store:create - http-signature: - store:create - basic: - store:create x-virtocommerce-module-id: VirtoCommerce.Store put: tags: - Store summary: Update store operationId: StoreModule_UpdateStore requestBody: description: Store content: application/json-patch+json: schema: allOf: - $ref: '#/components/schemas/Store' application/json: schema: allOf: - $ref: '#/components/schemas/Store' text/json: schema: allOf: - $ref: '#/components/schemas/Store' responses: '204': description: No Content '401': description: Unauthorized '403': description: Forbidden security: - oauth2: [] - api_key: [] - api_key_header: [] - http-signature: [] - basic: [] x-virtocommerce-module-id: VirtoCommerce.Store delete: tags: - Store summary: Delete stores operationId: StoreModule_DeleteStore parameters: - name: ids in: query description: Ids of store that needed to delete schema: type: array items: type: string responses: '204': description: No Content '401': description: Unauthorized '403': description: Forbidden security: - oauth2: [] - api_key: [] - api_key_header: [] - http-signature: [] - basic: [] x-virtocommerce-module-id: VirtoCommerce.Store /api/stores/send/dynamicnotification: post: tags: - Store summary: Send dynamic notification (contains custom list of properties) to store or administrator email operationId: StoreModule_SendDynamicNotificationToStoreEmail requestBody: description: '' content: application/json-patch+json: schema: allOf: - $ref: '#/components/schemas/SendDynamicNotificationRequest' application/json: schema: allOf: - $ref: '#/components/schemas/SendDynamicNotificationRequest' text/json: schema: allOf: - $ref: '#/components/schemas/SendDynamicNotificationRequest' responses: '204': description: No Content '401': description: Unauthorized '403': description: Forbidden security: - oauth2: [] - api_key: [] - api_key_header: [] - http-signature: [] - basic: [] x-virtocommerce-module-id: VirtoCommerce.Store /api/stores/{storeId}/accounts/{id}/loginonbehalf: get: tags: - Store summary: Check if given contact has login on behalf permission operationId: StoreModule_GetLoginOnBehalfInfo parameters: - name: storeId in: path description: Store ID required: true schema: type: string - name: id in: path description: Contact ID required: true schema: type: string responses: '200': description: OK content: text/plain: schema: $ref: '#/components/schemas/LoginOnBehalfInfo' application/json: schema: $ref: '#/components/schemas/LoginOnBehalfInfo' text/json: schema: $ref: '#/components/schemas/LoginOnBehalfInfo' '401': description: Unauthorized '403': description: Forbidden security: - oauth2: [] - api_key: [] - api_key_header: [] - http-signature: [] - basic: [] x-virtocommerce-module-id: VirtoCommerce.Store /api/stores/allowed/{userId}: get: tags: - Store summary: Returns list of stores which user can sign in operationId: StoreModule_GetUserAllowedStores parameters: - name: userId in: path description: '' required: true schema: type: string responses: '200': description: OK content: text/plain: schema: type: array items: $ref: '#/components/schemas/Store' application/json: schema: type: array items: $ref: '#/components/schemas/Store' text/json: schema: type: array items: $ref: '#/components/schemas/Store' '401': description: Unauthorized '403': description: Forbidden security: - oauth2: [] - api_key: [] - api_key_header: [] - http-signature: [] - basic: [] x-virtocommerce-module-id: VirtoCommerce.Store /api/stores/{id}/public-settings: get: tags: - Store operationId: StoreModule_GetStorePublicSettingsById parameters: - name: id in: path required: true schema: type: string responses: '200': description: OK content: text/plain: schema: type: array items: $ref: '#/components/schemas/ModulePublicStoreSettings' application/json: schema: type: array items: $ref: '#/components/schemas/ModulePublicStoreSettings' text/json: schema: type: array items: $ref: '#/components/schemas/ModulePublicStoreSettings' x-virtocommerce-module-id: VirtoCommerce.Store components: schemas: StoreState: enum: - Open - Closed - RestrictedAccess type: string SeoInfo: type: object properties: name: type: string nullable: true semanticUrl: type: string nullable: true outline: type: string nullable: true pageTitle: type: string nullable: true metaDescription: type: string nullable: true imageAltDescription: type: string nullable: true metaKeywords: type: string nullable: true storeId: type: string nullable: true organizationId: type: string nullable: true objectId: type: string nullable: true objectType: type: string nullable: true isActive: type: boolean languageCode: type: string nullable: true createdDate: type: string format: date-time modifiedDate: type: string format: date-time nullable: true createdBy: maxLength: 64 minLength: 0 type: string nullable: true modifiedBy: maxLength: 64 minLength: 0 type: string nullable: true id: type: string nullable: true additionalProperties: false DynamicPropertyValueType: enum: - Undefined - ShortText - LongText - Integer - Decimal - DateTime - Boolean - Html - Image type: string Store: type: object properties: name: type: string nullable: true description: type: string nullable: true storeState: allOf: - $ref: '#/components/schemas/StoreState' description: Store current state (Open, Closed, RestrictedAccess) timeZone: type: string nullable: true country: type: string nullable: true region: type: string nullable: true defaultLanguage: type: string nullable: true defaultCurrency: type: string nullable: true catalog: type: string description: Catalog id used as primary store catalog nullable: true creditCardSavePolicy: type: boolean url: type: string description: Store storefront url nullable: true secureUrl: type: string description: Store storefront https url nullable: true email: type: string description: Primary store contact email can be used for store event notifications and for feed back nullable: true adminEmail: type: string nullable: true emailName: type: string nullable: true adminEmailName: type: string nullable: true displayOutOfStock: type: boolean outerId: type: string nullable: true mainFulfillmentCenterId: type: string description: Primary (default) fulfillment center id nullable: true additionalFulfillmentCenterIds: type: array items: type: string description: Alternate fulfillment centers ids nullable: true mainReturnsFulfillmentCenterId: type: string description: Primary (default) fulfillment center for order return nullable: true returnsFulfillmentCenterIds: type: array items: type: string description: Alternate fulfillment centers for order return nullable: true languages: type: array items: type: string description: All store supported languages nullable: true currencies: type: array items: type: string description: All store supported currencies nullable: true trustedGroups: type: array items: type: string description: All store trusted groups (group of stores that shared the user logins) nullable: true seoObjectType: type: string nullable: true readOnly: true seoInfos: type: array items: $ref: '#/components/schemas/SeoInfo' nullable: true objectType: type: string nullable: true readOnly: true dynamicProperties: type: array items: $ref: '#/components/schemas/DynamicObjectProperty' nullable: true settings: type: array items: $ref: '#/components/schemas/ObjectSettingEntry' nullable: true typeName: type: string nullable: true readOnly: true scopes: type: array items: type: string nullable: true createdDate: type: string format: date-time modifiedDate: type: string format: date-time nullable: true createdBy: maxLength: 64 minLength: 0 type: string nullable: true modifiedBy: maxLength: 64 minLength: 0 type: string nullable: true id: type: string nullable: true additionalProperties: false DynamicPropertyObjectValue: type: object properties: objectType: type: string nullable: true objectId: type: string nullable: true locale: type: string nullable: true value: type: object nullable: true valueId: type: string nullable: true valueType: allOf: - $ref: '#/components/schemas/DynamicPropertyValueType' propertyId: type: string nullable: true propertyName: type: string nullable: true additionalProperties: false DynamicObjectProperty: type: object properties: objectId: type: string nullable: true values: type: array items: $ref: '#/components/schemas/DynamicPropertyObjectValue' nullable: true name: type: string nullable: true description: type: string nullable: true objectType: type: string nullable: true isArray: type: boolean isDictionary: type: boolean isMultilingual: type: boolean isRequired: type: boolean displayOrder: type: integer format: int32 nullable: true valueType: allOf: - $ref: '#/components/schemas/DynamicPropertyValueType' displayNames: type: array items: $ref: '#/components/schemas/DynamicPropertyName' nullable: true createdDate: type: string format: date-time modifiedDate: type: string format: date-time nullable: true createdBy: maxLength: 64 minLength: 0 type: string nullable: true modifiedBy: maxLength: 64 minLength: 0 type: string nullable: true id: type: string nullable: true additionalProperties: false LoginOnBehalfInfo: type: object properties: userName: type: string nullable: true canLoginOnBehalf: type: boolean additionalProperties: false description: Represent result for checking of possibility login on behalf request StoreAuthenticationScheme: type: object properties: storeId: type: string nullable: true name: type: string nullable: true displayName: type: string nullable: true isActive: type: boolean position: type: integer format: int32 createdDate: type: string format: date-time modifiedDate: type: string format: date-time nullable: true createdBy: maxLength: 64 minLength: 0 type: string nullable: true modifiedBy: maxLength: 64 minLength: 0 type: string nullable: true id: type: string nullable: true additionalProperties: false SortInfo: type: object properties: sortColumn: type: string nullable: true sortDirection: allOf: - $ref: '#/components/schemas/SortDirection' additionalProperties: false StoreSearchCriteria: type: object properties: storeStates: type: array items: $ref: '#/components/schemas/StoreState' nullable: true fulfillmentCenterIds: type: array items: type: string nullable: true domain: type: string nullable: true responseGroup: type: string nullable: true objectType: type: string nullable: true objectTypes: type: array items: type: string nullable: true objectIds: type: array items: type: string nullable: true keyword: type: string nullable: true searchPhrase: type: string nullable: true languageCode: type: string nullable: true sort: type: string nullable: true sortInfos: type: array items: $ref: '#/components/schemas/SortInfo' nullable: true readOnly: true skip: type: integer format: int32 take: type: integer format: int32 additionalProperties: false Operation: type: object properties: value: type: object nullable: true path: type: string nullable: true op: type: string nullable: true from: type: string nullable: true additionalProperties: false StoreSearchResult: type: object properties: totalCount: type: integer format: int32 results: type: array items: $ref: '#/components/schemas/Store' nullable: true additionalProperties: false SettingValueType: enum: - ShortText - LongText - Integer - Decimal - DateTime - Boolean - SecureString - Json - PositiveInteger type: string ModulePublicStoreSettings: type: object properties: moduleId: type: string nullable: true settings: type: array items: $ref: '#/components/schemas/PublicStoreSetting' nullable: true additionalProperties: false DynamicPropertyName: type: object properties: locale: type: string nullable: true name: type: string nullable: true additionalProperties: false SortDirection: enum: - Ascending - Descending type: string ObjectSettingEntry: type: object properties: itHasValues: type: boolean readOnly: true objectId: type: string nullable: true objectType: type: string nullable: true isReadOnly: type: boolean value: type: object nullable: true id: type: string nullable: true restartRequired: type: boolean moduleId: type: string nullable: true groupName: type: string nullable: true name: type: string nullable: true displayName: type: string nullable: true isRequired: type: boolean isHidden: type: boolean isPublic: type: boolean valueType: allOf: - $ref: '#/components/schemas/SettingValueType' allowedValues: type: array items: type: object nullable: true defaultValue: type: object nullable: true isDictionary: type: boolean isLocalizable: type: boolean tenant: type: string nullable: true additionalProperties: false PublicStoreSetting: type: object properties: name: type: string nullable: true value: type: object nullable: true additionalProperties: false SendDynamicNotificationRequest: type: object properties: storeId: type: string nullable: true type: type: string nullable: true fields: type: object additionalProperties: type: string nullable: true nullable: true language: type: string nullable: true additionalProperties: false securitySchemes: oauth2: type: oauth2 description: OAuth2 Resource Owner Password Grant flow flows: password: tokenUrl: /connect/token scopes: {} clientCredentials: tokenUrl: /connect/token scopes: {} api_key: type: apiKey description: API Key authentication name: api_key in: query api_key_header: type: apiKey description: API Key authentication (alternative via header) name: api_key in: header http-signature: type: http description: HTTP Signature authentication using Authorization header scheme: signature basic: type: http description: Basic authentication using username and password scheme: basic