@springtree/eva-core
Version:
The EVA core typings
1,152 lines (980 loc) • 29.3 kB
TypeScript
declare module EVA.PIM {
export namespace Errors {
export namespace ProductSearchSynonyms {
export const InvalidSynonymRule = 'ProductSearchSynonyms:InvalidRule';
}
export namespace ProductExcelServices {
export const MissingHeaderRow = 'ProductExcelServices:MissingHeaderRow';
export const UnitOfMeasureNotFound = 'ProductExcelServices:UnitOfMeasureNotFound';
export const ProductNotFound = 'ProductExcelServices:ProductNotFound';
export const InvalidUnitOfMeasureQuantity = 'ProductExcelServices:InvalidUnitOfMeasureQuantity';
export const DuplicateBarcode = 'ProductExcelServices:DuplicateBarcode';
export const InvalidBarcode = 'ProductExcelServices:InvalidBarcode';
}
}
export interface GetProductByID {
ID: number;
}
export interface GetProductByIDResponse {
ID: number;
BackendID: string;
CustomID: string;
PrimitiveName: string;
TypeID: number;
TaxCodeID: number;
Error: EVA.Core.ServiceError;
}
export interface UpdateProduct {
ID: number;
BackendID?: string;
CustomID?: string;
PrimitiveName?: string;
TypeID: number;
TaxCodeID: number;
}
/**
* Replaces all search synonyms for a given LanguageID/CountryID with the provided ones.
* Any synonyms not present in the request but that currently exist will be deleted.
*
* ## Rules
* The `Rule` must be formatted according to [what Elasticsearch accepts](https://www.elastic.co/guide/en/elasticsearch/reference/current/analysis-synonym-tokenfilter.html#_solr_synonyms):
*
* - Comma-separated values: `jump, leap, hop` causes any of the matched terms to be replaced by all of the terms.
* - Arrow notation: `britain=>england` causes the left side to be replaced by the right side.
*
* To create a synonym, a `LanguageID` is required, but `CountryID` is optional.
* Non-country specific synonyms are merged into the resulting list of synonyms when requesting synonyms for any country for that language.
*/
export interface ReplaceProductSearchSynonyms {
Rules: string[];
LanguageID: string;
CountryID?: string;
}
/**
* Gets all currently created search synonyms for the provided LanguageID (required) and CountryID (optional).
*/
export interface GetProductSearchSynonyms {
LanguageID: string;
CountryID?: string;
}
export interface GetProductSearchSynonymsResponse {
Result: ProductSearchSynonym[];
Error: EVA.Core.ServiceError;
}
export interface ProductSearchSynonym {
ID: number;
Rule: string;
LanguageID: string;
CountryID: string;
}
export interface ApplyRevision {
RevisionID: number;
}
export interface CreateRevision {
ApplicationID: number;
Name?: string;
}
export interface CreateRevisionResponse {
Result: CreatedRevision;
Error: EVA.Core.ServiceError;
}
export interface CreatedRevision {
ID: number;
Name: string;
ApplicationID: number;
}
export interface DeleteRevision {
ID: number;
}
export interface GetRevisionStatus {
RevisionID: number;
}
export interface GetRevisionStatusResponse {
Status: RevisionProgress;
Error: EVA.Core.ServiceError;
}
export interface RevisionProgress {
TotalItems: number;
HandledItems: number;
State: ProductCompositionProgressState;
Progress?: number;
ValidationErrors: number;
}
export const enum ProductCompositionProgressState {
None = 0,
Composing = 1,
PostProcessing = 2,
Publishing = 3,
Complete = 4
}
export interface ListRevisions {
PageConfig?: EVA.Core.PageConfig;
}
export interface ListRevisionsResponse {
Result: EVA.Core.PagedResult<RevisionDto>;
Error: EVA.Core.ServiceError;
}
export interface RevisionDto {
ID: number;
Name: string;
ApplicationID: number;
Status: RevisionStatus;
AppliedOn?: string;
CreatedBy: ListRevisionUser;
CreationTime?: string;
}
export const enum RevisionStatus {
Open = 1,
Applied = 2,
Inactive = 4,
InProgress = 8
}
export interface ListRevisionUser {
FullName: string;
}
export interface ListRevisionValidationErrors {
RevisionID: number;
Offset: number;
Cursor: number;
}
export interface ListRevisionValidationErrorsResponse {
Offset: number;
Cursor: number;
Errors: { [key: string]: any }[];
Error: EVA.Core.ServiceError;
}
export interface CreateNewSearchDataIndex {
DeleteOldIndex: boolean;
}
export interface RequestReindexSearchData {
Script?: string;
LanguageID?: string;
CountryID?: string;
ApplyProductSearchConfiguration: boolean;
}
export interface RequestReindexSearchDataResponse {
Error: EVA.Core.ServiceError;
}
export interface AddReferenceDataToProduct {
ProductID: number;
Data?: { [key: string]: any };
Name?: string;
}
/**
* Creates a new Product, given at least your `PrimitiveName` and `ProductType`.
*
* - [x] Given `PrimitiveName` is a name for the product to help you recognise it, but is rarely exposed to users or customers. This property does not support localization or translations!
* - [x] The `ProductType` is a flag enumeration value with one ore more of the following possible values;
*
* * `0` None
* * `1` Stock
* * `4` Marketing
* * `8` Gift Card
* * `16` Service
* * `64` Custom Pricing
* * `128` External
* * `256` Order Costs
* * `512` System Generated
* * `1024` Product Set
* * `2048` Bundle Product
* * `16384` Configurable
* * `32768` Supplier Product
*
* Optionally, you can supply some additional information;
*
* - [] `BackendID` is a number to help you identify this product. **Unique per `OrganizationUnitID` and `BackendSystemID`.**
* - [] `BackendSystemID` is a string value to idenfity the source this product originated from - can be anything.
* - [] `OrganizationUnitID` is the Organization Unit this product is linked to, or `null` when this is a generic EVA product.
* - [] `CustomID` is a string value to help you identify this product, without any constraints, but indexed for optimal performance.
* - [] `TaxCodeID` is an integer value indicating either `High`, `Low`, `Zero` or `Exempt` rates (unless modified by plugins) - defaults to `High`.
* - [] `BrandID` to link it to any `Brand` entity.
*/
export interface CreateProduct {
PrimitiveName: string;
ProductType: EVA.Core.ProductTypes;
BrandID: number;
BackendID?: string;
BackendSystemID?: string;
OrganizationUnitID: number;
CustomID?: string;
TaxCodeID: number;
}
export interface CreateProductResponse {
ID: number;
Error: EVA.Core.ServiceError;
}
/**
* Modifies given product by its `ID` for a specific `RevisionID`.
*
* The `Edits` is a list of `ProductEdit` objects, that defines some `Content` and the `LanguageID`, `CountryID` and `LayerID` it applies to. The `Content` is a Json object with key-value pairs that holds
* product information. The keys are simple strings, but the value can be a scalar value (like an int or string), an array of scalar values or an array of objects.
*
* A `Revision` is a versioning container in which one or more product modifications are buffered. The changes to the product do not apply directly, but instead are stored in this `Revision` until it is
* ready to be published. Also see the `CreateRevision` and `ApplyRevision` services. When omitted, a new 'quick' `Revision` is created and used here.
*
* A `Layer` is a hierarchical solution to building product data. Every layer has its own `Level`, where the bottom layers will be overwritten by higher layers for colliding properties. A `Layer` has a
* `Revision`. Also see the `CreateLayer` service. When omitted, a new 'quick' `Layer` is created and used here.
*/
export interface EditProduct {
ID: number;
RevisionID: number;
Edits: ProductEdit[];
}
export interface ProductEdit {
LayerID: number;
Content: { [key: string]: any };
LanguageID: string;
CountryID: string;
}
/**
* Retrieves a `Product` with detailed information per `Layer`, from the given `ID` and `RevisionID` parameter.
*
* In the response, `Content` is a Json formatted object containing key-value pair data, where the keys are simple strings and the value can be a scalar value (like an int or string), an array of scalar
* values or an array of objects.
*
* The `Types` property in the response data holds meta-data information about the property keys used in the `Content` object like property name, group and (of course) data type.
*
* :point_right: Use the `GetProductForQuickEditByID` service when you want to apply all published `Revision`'s and only need the compressed `Layer` version of `Content`.
*/
export interface GetProductForEditByID {
ID: number;
RevisionID: number;
}
export interface GetProductForEditByIDResponse {
ID: number;
CatalogID: number;
DisplayValue: string;
LayersWithContent: LayerWithContentDto[];
Types: { [key: string]: { [key: string]: any } };
Error: EVA.Core.ServiceError;
}
export interface LayerWithContentDto {
ID: number;
Name: string;
Level: number;
ApplicationID: number;
LanguageID: string;
CountryID: string;
Content: { [key: string]: any };
Description: string;
DisplayValue: string;
}
/**
* Retrieves a `Product` with detailed information, based on all currently applied `Revision`'s and the `Layer` data compressed into a single truth, from the given `ID` parameter.
*
* In the response, `Content` is a Json formatted object containing key-value pair data, where the keys are simple strings and the value can be a scalar value (like an int or string), an array of scalar
* values or an array of objects.
*
* The `Types` property in the response data holds meta-data information about the property keys used in the `Content` object like property name, group and (of course) data type.
*
* :point_right: Use the `GetProductForEditByID` service when you want to specify the `Revision` to apply and receive per-layer `Content`.
*/
export interface GetProductForQuickEditByID {
ID: number;
}
export interface GetProductForQuickEditByIDResponse {
ID: number;
CatalogID: number;
DisplayValue: string;
Content: { [key: string]: any };
Types: { [key: string]: { [key: string]: any } };
Error: EVA.Core.ServiceError;
}
export interface GetReferenceDataForProduct {
ProductID: number;
}
export interface GetReferenceDataForProductResponse {
Data: { [key: string]: { [key: string]: any } };
Error: EVA.Core.ServiceError;
}
export interface GenerateProductExcelSample {
}
export interface DownloadProductExcel {
}
export interface UploadProductExcel {
Data?: number[];
}
export interface UploadProductExcelResponse {
Error: EVA.Core.ServiceError;
}
export interface UploadProductContentExcel {
LanguageID?: string;
Data?: number[];
}
export interface UploadProductContentExcelResponse {
Error: EVA.Core.ServiceError;
}
export interface GenerateProductContentExcelSample {
}
export interface ExportProductContentExcel {
Query?: string;
Filters?: { [key: string]: EVA.Core.FilterModel };
IncludedFields?: string[];
}
export interface UploadProductBarcodeExcel {
Data?: number[];
}
export interface UploadProductBarcodeExcelResponse {
Error: EVA.Core.ServiceError;
}
export interface GenerateProductBarcodeExcelSample {
}
/**
* Create a new ProductPropertyType
*/
export interface CreateProductPropertyType {
TypeID: string;
CategoryID: string;
DataType: ProductPropertyTypeDataTypes;
SearchType: ProductPropertyTypeSearchTypes;
IsArray: boolean;
IsEnum: boolean;
EditFunctionality?: string;
}
export const enum ProductPropertyTypeDataTypes {
None = 0,
Integer = 1,
Double = 2,
Boolean = 3,
String = 4,
Blob = 5,
Date = 6,
RichText = 7
}
export const enum ProductPropertyTypeSearchTypes {
None = 0,
Keyword = 1,
Text = 2,
IsHidden = 4
}
export interface EditProductPropertyType {
ID?: string;
RevisionID: number;
Edits: ProductPropertyTypeEdit[];
SearchType: ProductPropertyTypeSearchTypes;
}
export interface ProductPropertyTypeEdit {
LayerID: number;
Content: { [key: string]: any };
}
export interface EditProductPropertyTypeResponse {
Error: EVA.Core.ServiceError;
}
export interface GetAvailableEnumValuesForProductPropertyType {
TypeID?: string;
}
export interface GetAvailableEnumValuesForProductPropertyTypeResponse {
Values: { [key: number]: string };
Error: EVA.Core.ServiceError;
}
export interface GetProductPropertyTypeByID {
ID?: string;
RevisionID: number;
}
export interface GetProductPropertyTypeByIDResponse {
ID: string;
CatalogID: number;
LayersWithContent: LayerWithContentDto[];
CategoryID: string;
Error: EVA.Core.ServiceError;
}
export interface ListProductPropertyTypes {
PageConfig?: EVA.Core.PageConfig;
}
export interface ListProductPropertyTypesResponse {
Result: EVA.Core.PagedResult<ListProductPropertyTypesDto>;
Error: EVA.Core.ServiceError;
}
export interface ListProductPropertyTypesDto {
ID: string;
/**
* @deprecated Replaced with DisplayName
*/
Name: string;
DisplayName: string;
CategoryID: string;
/**
* @deprecated Replaced with CategoryDisplayName
*/
CategoryName: string;
CategoryDisplayName: string;
DataType: ProductPropertyTypeDataTypes;
}
export interface PreviewProductPropertyType {
ID?: string;
RevisionID: number;
Edits: ProductPropertyTypeEdit[];
}
export interface PreviewProductPropertyTypeResponse {
Result: { [key: string]: any };
Error: EVA.Core.ServiceError;
}
export interface GetProductPropertyTypeEnumValueByID {
ID: number;
}
export interface GetProductPropertyTypeEnumValueByIDResponse {
ID: number;
ProductPropertyTypeID: string;
CatalogID: number;
Identifier: number;
Value: string;
LanguageID: string;
CountryID: string;
Error: EVA.Core.ServiceError;
}
export interface CreateProductPropertyTypeEnumValue {
ProductPropertyTypeID?: string;
Identifier: number;
Value?: string;
LanguageID?: string;
CountryID?: string;
}
export interface CreateProductPropertyTypeEnumValueResponse {
ID: number;
Error: EVA.Core.ServiceError;
}
export interface UpdateProductPropertyTypeEnumValue {
ID: number;
Identifier: number;
Value?: string;
LanguageID?: string;
CountryID?: string;
}
export interface DeleteProductPropertyTypeEnumValue {
ID: number;
}
export interface ListProductPropertyTypeEnumValues {
PageConfig?: EVA.Core.PageConfig;
}
export interface ListProductPropertyTypeEnumValuesResponse {
Result: EVA.Core.PagedResult<ProductPropertyTypeEnumValueDto>;
Error: EVA.Core.ServiceError;
}
export interface ProductPropertyTypeEnumValueDto {
ID: number;
ProductPropertyTypeID: string;
Identifier: number;
Value: string;
LanguageID: string;
CountryID: string;
}
export interface SearchProductPropertyTypes {
Query?: string;
PageConfig?: EVA.Core.PageConfig;
}
export interface SearchProductPropertyTypesResponse {
Result: EVA.Core.PagedResult<{ [key: string]: any }>;
Error: EVA.Core.ServiceError;
}
export interface CreateProductPropertyCategory {
CategoryID?: string;
EditFunctionality?: string;
}
export interface CreateProductPropertyCategoryResponse {
Error: EVA.Core.ServiceError;
}
export interface EditProductPropertyCategory {
ID?: string;
RevisionID: number;
Edits: ProductPropertyCategoryEdit[];
}
export interface ProductPropertyCategoryEdit {
LayerID: number;
Content: { [key: string]: any };
}
export interface EditProductPropertyCategoryResponse {
Error: EVA.Core.ServiceError;
}
export interface GetProductPropertyCategoryByID {
ID?: string;
RevisionID: number;
}
export interface GetProductPropertyCategoryByIDResponse {
ID: string;
CatalogID: number;
LayersWithContent: LayerWithContentDto[];
Error: EVA.Core.ServiceError;
}
export interface ListProductPropertyCategories {
PageConfig?: EVA.Core.PageConfig;
}
export interface ListProductPropertyCategoriesResponse {
Result: EVA.Core.PagedResult<ListProductPropertyCategoriesDto>;
Error: EVA.Core.ServiceError;
}
export interface ListProductPropertyCategoriesDto {
ID: string;
/**
* @deprecated Replaced with DisplayName
*/
Name: string;
DisplayName: string;
}
export interface PreviewProductPropertyCategory {
ID?: string;
RevisionID: number;
Edits: ProductPropertyCategoryEdit[];
}
export interface PreviewProductPropertyCategoryResponse {
Result: { [key: string]: any };
Error: EVA.Core.ServiceError;
}
/**
* Returns the AssortmentContentCultures
*/
export interface GetAssortmentContentCultures {
}
export interface GetAssortmentContentCulturesResponse {
ContentCultures: AssortmentContentCulture[];
Error: EVA.Core.ServiceError;
}
export interface AssortmentContentCulture {
AssortmentID: number;
AssortmentName: string;
CultureID: string;
LanguageID: string;
CountryID: string;
}
/**
* Creates a new AssortmentContentCulture.
* If it already exists, nothing will be done.
*/
export interface CreateAssortmentContentCulture {
AssortmentID: number;
LanguageID?: string;
CountryID?: string;
}
/**
* Deletes an existing AssortmentContentCulture. If there are any existing mappings to this ContentCulture, they will also be deleted.
*/
export interface DeleteAssortmentContentCulture {
AssortmentID: number;
LanguageID?: string;
CountryID?: string;
}
/**
* Returns the current ContentCultureMapping.
*/
export interface ListContentCultureMapping {
PageConfig?: EVA.Core.PageConfig<ContentCultureMappingFilter>;
}
export interface ContentCultureMappingFilter {
SourceLanguageID: string;
SourceCountryID: string;
ContentLanguageID: string;
ContentCountryID: string;
}
export interface ListContentCultureMappingResponse {
Result: EVA.Core.PagedResult<ContentCultureMappingDto>;
Error: EVA.Core.ServiceError;
}
export interface ContentCultureMappingDto {
ID: number;
SourceLanguageID: string;
SourceCountryID: string;
ContentCultureID: string;
ContentLanguageID: string;
ContentCountryID: string;
}
/**
* Creates a new ContentCultureMapping for the current application.
*/
export interface CreateContentCultureMapping {
SourceLanguageID?: string;
SourceCountryID?: string;
ContentLanguageID: string;
ContentCountryID: string;
}
/**
* Deletes an existing ContentCultureMapping.
*/
export interface DeleteContentCultureMapping {
ID: number;
}
export interface ListApplicationCultures {
}
export interface ListApplicationCulturesResponse {
Result: ListApplicationContentCulture[];
Error: EVA.Core.ServiceError;
}
export interface ListApplicationContentCulture {
ApplicationID: number;
LanguageID: string;
CountryID: string;
Culture: string;
}
export interface CreateLayer {
ApplicationID: number;
CountryID?: string;
Description?: string;
LanguageID?: string;
Level: number;
Name?: string;
}
export interface CreateLayerResponse {
Result: CreatedLayer;
Error: EVA.Core.ServiceError;
}
export interface CreatedLayer {
ID: number;
Name: string;
ApplicationID: number;
Description: string;
Level: number;
CountryID: string;
}
export interface GetLayerByID {
ID: number;
}
export interface GetLayerByIDResponse {
Layer: LayerDto;
Error: EVA.Core.ServiceError;
}
export interface LayerDto {
ID: number;
Description: string;
Level: number;
ApplicationID: number;
LanguageID: string;
CatalogID: number;
Name: string;
CountryID: string;
Type: ContentLayerTypes;
}
export const enum ContentLayerTypes {
UserLayer = 0,
SystemLayer = 1
}
export interface ListLayers {
PageConfig?: EVA.Core.PageConfig;
}
export interface ListLayersResponse {
Result: EVA.Core.PagedResult<LayerDto>;
Error: EVA.Core.ServiceError;
}
export interface UpdateLayer {
ID: number;
Name?: string;
Description?: string;
Level: number;
}
/**
* Creates a search strategy for the provided LanguageID and CountryID (both are optional).
*
* All parts of the `Strategy` field are optional.
*/
export interface CreateProductSearchStrategy {
CountryID?: string;
LanguageID?: string;
Name: string;
Code?: string;
Strategy: ProductSearchStrategyModel;
}
export interface ProductSearchStrategyModel {
Condition: StrategyCondition;
Scoring: ScoringStrategy;
Sorting: SortingStrategy;
Query: QueryStrategy;
}
export interface StrategyCondition {
Query: QueryCondition;
Filters: FilterCondition[];
}
export interface QueryCondition {
Text: string;
Type: QueryConditionTypes;
}
export const enum QueryConditionTypes {
Equals = 0,
Contains = 1,
StartsWith = 2
}
export interface FilterCondition {
ProductPropertyTypeID: string;
FilterValue: string;
}
export interface ScoringStrategy {
ScoreMode: ScoreModes;
BoostMode: BoostMode;
ScoringFunctions: ScoringFunction[];
MaxBoost: number;
MinScore: number;
StockScoring: StockScoringStrategy;
}
export const enum ScoreModes {
Multiply = 0,
Sum = 1,
Average = 2,
First = 3,
Max = 4,
Min = 5
}
export const enum BoostMode {
Multiply = 0,
Replace = 1,
Sum = 2,
Average = 3,
Max = 4,
Min = 5
}
export interface ScoringFunction {
Type: ScoringFunctionTypes;
Options: { [key: string]: any };
Weight: number;
}
export const enum ScoringFunctionTypes {
FieldValueFactor = 0,
Script = 1
}
export interface StockScoringStrategy {
AdjustScoreByStock: boolean;
BoostAmount: number;
Type: StockStrategyTypes;
}
export const enum StockStrategyTypes {
CurrentOrganizationUnit = 0,
Suppliers = 1
}
export interface SortingStrategy {
Sort: SortingStrategySort[];
StockSorting: StockSortingStrategy;
}
export interface SortingStrategySort {
Order: SortingStrategyOrder;
Script: SortingStrategySortScript;
Field: string;
MissingValue: any;
}
export const enum SortingStrategyOrder {
Ascending = 0,
Descending = 1
}
export interface SortingStrategySortScript {
Type: SortingScriptType;
Source: string;
Language: string;
}
export const enum SortingScriptType {
Number = 0,
String = 1
}
export interface StockSortingStrategy {
SortByStock: boolean;
Type: StockStrategyTypes;
}
export interface QueryStrategy {
Queries: MultiMatchQuery[];
MinimumShouldMatch: string;
StockFilter: StockFilterStrategy;
}
export interface MultiMatchQuery {
Type: MultiMatchType;
Slop: number;
Fuzziness: MultiMatchFuzziness;
Operator: MatchOperator;
Boost: number;
RequirementType: QueryRequirementType;
PropertiesToSearch: ProductPropertyTypeToSearch[];
Analyzer: string;
MinimumShouldMatch: string;
}
export const enum MultiMatchType {
BestFields = 0,
MostFields = 1,
CrossFields = 2,
Phrase = 3,
PhrasePrefix = 4
}
export interface MultiMatchFuzziness {
EditDistance: number;
PrefixLength: number;
MaxExpansions: number;
}
export const enum MatchOperator {
And = 0,
Or = 1
}
export const enum QueryRequirementType {
Must = 0,
Should = 1
}
export interface ProductPropertyTypeToSearch {
ID: string;
Boost?: number;
}
export interface StockFilterStrategy {
FilterByStock: boolean;
Type: StockStrategyTypes;
}
/**
* Updates a search strategy, replacing the current strategy with the one provided and setting the LanguageID/CountryID
* to the provided ones (both are optional).
*
* All parts of the `Strategy` field are optional.
*/
export interface UpdateProductSearchStrategy {
ID: number;
CountryID?: string;
LanguageID?: string;
Name?: string;
Code?: string;
Strategy: ProductSearchStrategyModel;
}
/**
* Deletes a search strategy by the provided ID.
*/
export interface DeleteProductSearchStrategy {
ID: number;
}
/**
* Retrieves a paged list of search strategies, optionally filtered by a CountryID or LanguageID.
*/
export interface ListProductSearchStrategies {
PageConfig?: EVA.Core.PageConfig<ListProductSearchStrategiesFilter>;
}
export interface ListProductSearchStrategiesFilter {
LanguageID: string;
CountryID: string;
}
export interface ListProductSearchStrategiesResponse {
Result: EVA.Core.PagedResult<ListProductSearchStrategyItem>;
Error: EVA.Core.ServiceError;
}
export interface ListProductSearchStrategyItem {
ID: number;
CatalogID: number;
LanguageID: string;
CountryID: string;
Name: string;
Code: string;
TypeID: number;
Type: ProductSearchStrategyTypes;
OrganizationUnitTypeID: number;
OrganizationUnitType: EVA.Core.OrganizationUnitTypes;
Strategy: ProductSearchStrategyModel;
SerializedStrategy: string;
}
export const enum ProductSearchStrategyTypes {
Full = 0,
Partial = 1
}
/**
* Creates a ProductSearchConfiguration for your current Catalog if it doesn't exist, or replaces the existing one.
* All properties on the configuration are optional.
*/
export interface CreateOrReplaceProductSearchConfiguration {
Configuration?: ProductSearchConfigurationModel;
}
export interface ProductSearchConfigurationModel {
Analyzers: Analyzer[];
TokenFilters: TokenFilter[];
CharFilters: CharFilter[];
ProductPropertyTypes: ProductPropertyTypeConfiguration[];
DisableSynonyms: boolean;
IndexPipelineScript: string;
}
export interface Analyzer {
Name: string;
LanguageID: string;
CountryID: string;
Type: string;
Tokenizer: string;
Filters: string[];
CharFilters: string[];
}
export interface TokenFilter {
Name: string;
LanguageID: string;
CountryID: string;
Type: string;
Options: { [key: string]: any };
}
export interface CharFilter {
Name: string;
LanguageID: string;
CountryID: string;
Type: string;
Options: { [key: string]: any };
}
export interface ProductPropertyTypeConfiguration {
Name: string;
LanguageID: string;
CountryID: string;
Analyzer: string;
SearchAnalyzer: string;
CopyTo: string;
}
export interface IHasCulture {
LanguageID: string;
CountryID: string;
}
/**
* Retrieves the ProductSearchConfiguration for your current Catalog, or an empty one if it doesn't exist.
*/
export interface GetProductSearchConfiguration {
}
export interface GetProductSearchConfigurationResponse {
Configuration: ProductSearchConfigurationModel;
Error: EVA.Core.ServiceError;
}
export interface CreateBrand {
BackendID?: string;
Name?: string;
}
export interface GetBrand {
ID: number;
}
export interface GetBrandResponse {
Result: BrandDto;
Error: EVA.Core.ServiceError;
}
export interface BrandDto {
ID: number;
Name: string;
BackendID: string;
}
export interface UpdateBrand {
ToUpdate?: BrandDto;
}
/**
* Compose ALL the products, use with caution.
*/
export interface ComposeAllProducts {
LanguageIDs: string[];
}
export interface ComposeResponse {
UID: string;
Error: EVA.Core.ServiceError;
}
/**
* Composes all the products that have been affected in `RevisionID`.
*/
export interface ComposeRevision {
RevisionID: number;
LanguageIDs: string[];
}
/**
* Composes the given set of products
*/
export interface ComposeProducts {
ProductIDs: number[];
LanguageIDs: string[];
}
export interface ComposePropertyTypes {
}
/**
* Returns the progress of a composition session. `RevisionID` is preferred over the `UID` and
* of of both is required.
*/
export interface GetCompositionProgress {
RevisionID: number;
UID?: string;
}
export interface GetCompositionProgressResponse {
State: ProductCompositionProgressState;
Current: number;
Total: number;
Progress?: number;
Error: EVA.Core.ServiceError;
}
}