# Omnia 2.0 API The Omnia 2.0 API is RESTful and provides access to the backend of Omnia 2.0 and Pricemonitor. It is used to manage products, offers, contracts, and more. This API supports both public endpoints for customer integration and internal endpoints for platform management. All endpoints are authenticated using either Basic Authentication or JWT Bearer tokens. This is the API powering Omnia 2.0 and Pricemonitor, containing operations that can also be used directly by customers from their own systems. Version: 0.0.7224 License: Omnia Retail API license ## Servers Production API ``` https://api.patagona.de ``` ## Security ### BasicAuth HTTP Basic Authentication using username and password. **Usage:** Include the `Authorization` header with value `Basic ` **Example:** `Authorization: Basic dXNlcm5hbWU6cGFzc3dvcmQ=` Type: http Scheme: basic ### BearerAuth JWT Bearer Token Authentication for session-based access. **Usage:** Include the `Authorization` header with value `Bearer ` **Example:** `Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...` **Note:** JWT tokens are typically obtained through the authentication endpoints. Type: http Scheme: bearer Bearer Format: JWT ## Download OpenAPI description [Omnia 2.0 API](https://api-docs.omniaretail.dev/_spec/api/omnia.yaml) ## Products Management Operations to manage your products. # Import products We have two options: Either you provide the products as [JSON](#operation/postProductsImportVendorV3) or as [CSV](#operation/putProductsImportVendorV3). The product import via [JSON](#operation/postProductsImportVendorV3) is recommended. Notes: - When importing products, you need to provide an unique product identifier. We only allow importing products when they can be uniquely identified. In the very past we solely relied on GTIN for that, but not all customers have a GTIN. So we introduced the generic concept of the unique product identifier. - When importing products, you can additionally provide _tags_. These tags are key/value pairs (custom fields) which can be used to categorize your products: E.g. you could add the brand of the product.
The tag names need to be unique and non-empty. - In some endpoints we use caching for up to 5 minutes. So your newly imported products might need up to 5 minutes to get visible. - Timing is important: It's recommended to import products during a period when no monitorings are scheduled. Otherwise, the monitoring does not cover the most recently added products. A subsequent monitoring run will cover the previously added products. ## Recommended tags To get the most value out of the Omnia 2.0 insights dashboards, we recommend to include the following tag-keys in your imports. These product attributes can be used to drill-down into market and pricing insights. | Key | Description of value | | ---- | ------------------- | | brand | Values should include the brand of the respective product | | sku | If available, you can also include the stock keeping unit identifier | | amountInStock | If available, you can also include the current stock level of each product | | topCategory | Your product categories, highest level | | midCategory | Your product categories, mid level | | lowCategory | Your product categories, lowest level | | purchasePrice | The purchase price of your product | | imageUrl | A url containing an image of your product | | logisticalCost | The logistical cost of your product | | recommendSellingPrice | The manufacturer suggested retail price or recommended retail price of your product | | vat | The Value Added Tax (VAT) for your product | Notes: - These fields are not mandatory for a successful import. They are optional, but recommended, to get the most value out of the insights in the UI of Omnia 2.0. If you intend to use them in the recommended way - The keys for the tags are case sensitive, so specify exactly as above. ## Import products via JSON (recommended) The preferred way to import products via API is via [JSON](#operation/postProductsImportVendorV3). This operation adds products to our system using _upsert_ (insert or update). It needs to be used in conjunction with a timestamp-based [product deletion operation](#operation/deleteProducts). The delete makes sure that old products, which are not part of your assortment anymore, are dropped from the system. Typical usage pattern: 1. Remember the current time in UTC 2. [Add products in chunks](#operation/postProductsImportVendorV3). Recommended chunk size: 1,000 products 3. [Delete old products](#operation/deleteProducts) that are not needed in the system anymore by the timestamp from step 1 minus some extra buffer, e.g. one minute. ## Import products via CSV (not recommended) In order to provide products to our system you can send a CSV file via [this operation](#operation/putProductsImportVendorV3). This endpoint deactivates all current products and activates the ones which are provided via CSV. This creates a "task" at our side. Tasks are processed asynchronously. Typically, a big product import with 500K products takes 5-10 minutes. The mentioned endpoint returns a task id and a url where you can check the task state. Possible task states are: pending, executing, failed and succeeded. The last two states are representing a completed task. The task itself contains more details about how many products could get imported, which ones failed plus a preview failure list. When the product import successfully completed then the previously imported products have been deleted and only the ones which you have provided via CSV file are active in our system. # Query products Use [this operation](#operation/queryProductsVendorV3) to retrieve products via a query you specify in the request. It supports returning paged results. We recommend to retrieve with a page size of up to 10,000 products. # Get all products Use [the query operation](#operation/queryProductsVendorV3) and just omit the query filter in the request. Results are paginated. A page size of at most 10,000 is recommended. # Determine internal product ids from your product ids Our system uses internal product ids that are distinct from your products ids. These internal product ids are sometimes referred to as _pricemonitor_ product ids. Often API operations require internal product ids to be specified. So you may need to map your product id onto our internal product id. There are two options: - Either you store the internal product ids after [importing products](#operation/postProductsImportVendorV3) into our system. The import operation returns the internal product ids for each imported product. - Or you map product ids on the fly when you need to by [querying](#operation/queryProductsVendorV3) specifying your product ids in the query. It's recommended to specify 1,000 product ids at once. ### Add products in bulk (JSON) - [POST /api/v3/vendor/contracts/{contractId}/products](https://api-docs.omniaretail.dev/api/omnia/products/postproductsimportvendorv3.md): This operation is used to import products into the system from JSON formatted data: Products that are already present will be updated and new products will be added. Identification of the products is done based on the identifying attributes, which need to be provided via the request body.Note: This endpoint should be used in conjunction with: DELETE /api/v3/vendor/contracts/{contractId}/products. Procedure: 1. Add your products in bulks with multiple requests via this endpoint. 2. Send a DELETE request to /api/v3/vendor/contracts/{contractId}/products and set the parameter updatedMax to a date which is older or equal to your first request from step 1. ### Add products in bulk (CSV) - [PUT /api/v3/vendor/contracts/{contractId}/products](https://api-docs.omniaretail.dev/api/omnia/products/putproductsimportvendorv3.md): This operation is used to import products into the system from CSV formatted data. This process is represented by a task, which is processed asynchronously. In the response you will receive a url which is used to check the status of the import process. When the process is done all products in csv file from the request body will be in the pricemonitor. Products that were already present before have been updated and new products have been added. Warning: All products that were in the pricemonitor before but are not present in the new import will be deleted. Identification of the products is done based on the identifying attributes (see parameter: patagona-product-identifying-attributes) Note: It is recommended to use the JSON variant to add products as it works synchronously and more efficient. ### Delete products - [DELETE /api/v3/vendor/contracts/{contractId}/products](https://api-docs.omniaretail.dev/api/omnia/products/deleteproducts.md): Delete all products or delete products by a last updated timestamp and/or a tag. Avoid any product import requests concurrently with DELETE requests to prevent potential issues. ### Return the extended tags for the given product - [GET /api/v3/vendor/contracts/{contractId}/products/{productId}/extendedtags](https://api-docs.omniaretail.dev/api/omnia/products/getextendedtags.md) ### Get monitoring status of queried products - [GET /api/v3/vendor/contracts/{contractId}/products/monitoringstatus](https://api-docs.omniaretail.dev/api/omnia/products/getproductmonitoringstatusvendorv3.md) ### Get price recommendations for one product - [GET /api/v3/vendor/contracts/{contractId}/products/{productId}/pricerecommendationhistory](https://api-docs.omniaretail.dev/api/omnia/products/getproductpricerecommendationhistory.md): This endpoint returns all price recommendations for one product within a given time range. ### Query products of a contract - [POST /api/v3.1/vendor/contracts/{contractId}/products/query](https://api-docs.omniaretail.dev/api/omnia/products/queryproductsvendorv3.md): This endpoint can be used for querying either all products or certain products by the 'customerProductId' or 'productId'. ### Get Amazon Buy Box statistics for time range - [GET /api/v3/vendor/contracts/{contractId}/products/amazon/buybox/stats](https://api-docs.omniaretail.dev/api/omnia/products/getamazonbuyboxproductstatsv3.md): Provides latest Amazon Buy Box statistics, i.e., whether a - product is in Amazon Buy Box for Prime users - product is in Amazon Buy Box for Non-Prime users per product per Amazon domain for a given time range. ### Get all products for a contract (deprecated) - [GET /api/2/v/contracts/{contractId}/products](https://api-docs.omniaretail.dev/api/omnia/products/getproducts.md): This endpoint is deprecated and should no longer be used. Retrieves all products for a contract without pagination support. This endpoint has performance limitations and lacks proper pagination. Use the newer product query endpoints instead. The parameter is required but poorly documented in this legacy version. ### Get price recommendations for one product - [GET /api/v3/vendor/contracts/{contractId}/products/{productId}/pricerecommendationhistory](https://api-docs.omniaretail.dev/api/omnia/pricerecommendations/getproductpricerecommendationhistory.md): This endpoint returns all price recommendations for one product within a given time range. ## Price Recommendations Operations to get price recommendations calculated by our system. # Price recommendations and multiple domains > Note: > 1. Internally the system calculates a price recommendation for every domain > 2. As aggregation the system then provides the cheapest price recommendation > > Within the price recommendations we are providing a field called `relevantDomain`. This field contains from which domain the price recommendation originates. # Retrieve price recommendations ## Getting all price recommendations You can get all price recommendations via [this operation](#operation/getPriceRecommendation). It's a paginated endpoint, so you have to request multiple pages. See [pagination](#section/Pagination). Recommended page size is 1000. It's important that you define a timerange (by providing `startTime` and `endTime` parameters) in order to guarantee a stable pagination. This endpoint returns the most recent price recommendations per product and domain: This means that price recommendations from older price calculation runs within the provided timerange are ignored. ### Get price recommendations for one product - [GET /api/v3/vendor/contracts/{contractId}/products/{productId}/pricerecommendationhistory](https://api-docs.omniaretail.dev/api/omnia/products/getproductpricerecommendationhistory.md): This endpoint returns all price recommendations for one product within a given time range. ### Get price recommendations for time range - [GET /api/2/v/contracts/{contractId}/result/pricerecommendations](https://api-docs.omniaretail.dev/api/omnia/pricerecommendations/getpricerecommendation.md): Retrieves all price recommendations for a contract within the specified time range. This endpoint returns algorithmic pricing recommendations based on market analysis, competitor pricing, and configured pricing strategies. Only the most recent recommendations are returned when multiple recommendations exist for the same product. - Paginated results for efficient data retrieval - Optional product tag inclusion - Configurable time range filtering - Real-time market-based recommendations ### Get price recommendations for one product - [GET /api/v3/vendor/contracts/{contractId}/products/{productId}/pricerecommendationhistory](https://api-docs.omniaretail.dev/api/omnia/pricerecommendations/getproductpricerecommendationhistory.md): This endpoint returns all price recommendations for one product within a given time range. ## Offers Operations to get and manage offers. # Provide offers for custom sources Use [this operation](#operation/postOffersInABulkVendorV2) to provide external offers for your products to our system. It serves as an alternative to our automatic [domain-wise](#tag/domains) market data monitoring. To use this operation, you need Omnia's internal product IDs. See [how to determine internal product IDs](#tag/products). ## Example Here is an example of a JSON body to provide one offer for one product via API.
Click to expand ``` json [{ "productId": "67784570", "creationDate": "2024-06-11T00:15:07.099Z", "domain": "google.de", "offers": [{ "vendorName": "amazon.de", "vendorDomainId": 1, "url": "https://www.amazon.de/-/en/dp/013142467X/", "price": 58.84, "deliveryCosts": 9.95, "currency": "EUR", "id": "636354d0-c865-4c56-84b3-bd9172e826aa", "productName": "Test item", "attributes": [{ "key": "size", "value": "L" }], "maxDeliveryHours": 48, "minDeliveryHours": 12, "retrievalDate": "2024-06-11T10:50:45.659Z", "availability": true }] }] ```
## How It Works This endpoint allows you to submit market data ("offers") for your products in bulk. Offers are submitted as *snapshots*. A **snapshot** is defined as: - a product - a domain (where the offers come from) - a timestamp - and a complete list of corresponding offers at that moment Snapshots form a **linear history** per product and domain. That means: - You can only submit **newer** snapshots than the ones already stored. - Each snapshot must contain **all** relevant offers for that product + domain at that timestamp. - This endpoint is **append-only** - no edits or deletions of past offers are allowed. Internally, only the most recent snapshot is considered per product + domain, e.g., for price calculation or analytics. Snapshots are processed immediately after being accepted. ## When to Send Offers - A regular daily import is a solid default. - Ideally submit offers before a price calculation tasks runs to ensure that recommended prices are based on up-to-date data. - Real-time ingestion is supported. ## Best Practices - Send up to **1,000 snapshots per request**. - Check if all snapshots are processed successfully by [analyzing the response](#response-interpretation). - Avoid single-snapshot requests if possible - batch requests are typically more efficient and faster. - Deduplicate and validate on the client side if possible. - Only include complete snapshots (i.e. all relevant offers for the product and domain at that time). - Avoid sending duplicate snapshots (e.g. previously stored ones), as they will be rejected. ## Response Interpretation Analyzing the response helps you quickly spot and fix invalid snapshots. Since each snapshot is validated separately, some may be accepted while others are rejected. Responses follow the same order as your input, so you can match and debug them easily. The response is an array with one result per snapshot, matching the order of your input. Each item is either: - `true`: Snapshot accepted and stored. - An `ApiErrorResponse` object with details about the failure. This allows you to match (`zip`) each response to your original input array. Common reasons for rejection: - Product not part of the contract - Snapshot is older than what’s already stored - Conflicting snapshots submitted in same request - Invalid domain format - Duplicate offer IDs - Negative price or delivery costs ## What Is a Domain?
Click to expand A **domain** is the origin of the offers. It refers to a website name - not a full URL. For example, in `https://example.com/page`, the domain is `example.com`. Expected format: - Only use lowercase letters (`a–z`), digits (`0–9`), periods (`.`), and hyphens (`-`) - Each label (part between periods) must: - Be 1-63 characters long - Start and end with an alphanumeric character - Not contain consecutive periods - Not start or end with a hyphen - Total domain length must not exceed 255 characters **Examples**: Valid: `example.com`, `shop.example.co.uk` Invalid: `-example.com`, `example..com`, `example_.com`, `example-.com`
# Retrieve offers Use [this operation](#operation/getOffersVendorV3) to get all offers for a contract. It's a paginated endpoint, so you have to scroll through all offers. It's important that you define a timerange (by providing `startDate` and `endDate` parameters) in order to guarantee a stable pagination. This endpoint returns the most recent offers per product and domain: This means that offers from older monitoring runs within the provided timerange are ignored. ## Continuously retrieving offers For continuously getting market data we recommend the following usage pattern: Get the offers for the last 15 minutes with a time offset of 15 minutes. | Runtime Timestamp | startDate | endDate | | ----------------- | --------- | ------- | | 12:00 | 11:30 | 11:45 | | 12:15 | 11:45 | 12:00 | | 12:30 | 12:00 | 12:15 | | … | > Note: The time offset is important since offers are not immediately visible via the API. Sometimes there is a slight delay in offer storing. ### Get offers for timerange - [GET /api/v3/vendor/contracts/{contractId}/offers](https://api-docs.omniaretail.dev/api/omnia/offers/getoffersvendorv3.md): Returns the newest offers for a given time range. ### Query offers [vendor] - [POST /api/v3/vendor/contracts/{contractId}/offers/query](https://api-docs.omniaretail.dev/api/omnia/offers/queryoffersvendorv3.md): Supports complex queries for offers. ### Query offer statistics per product - [POST /api/v3.1/vendor/contracts/{contractId}/offers/stats/query](https://api-docs.omniaretail.dev/api/omnia/offers/queryoffersstatsvendorv31.md): This endpoint can be used to query offer statistics (e.g. offer count, average price) grouped by product. Only the most recent market data is considered per product and domain. ### Add offers in bulk - [POST /api/2/v/contracts/{contractId}/offers](https://api-docs.omniaretail.dev/api/omnia/offers/postoffersinabulkvendorv2.md): This endpoint can be used to provide external offers to Omnia 2.0. It's a bulk endpoint which accepts an array of individual POST offers requests each based on a "snapshot" - a unique combination of product, domain, and timestamp for a list of offers. Validation rules before storage: 1. The product must exist in the contract. 2. Only snapshots newer than those already stored will be accepted. 3. Each domain must use a consistent currency. 4. Duplicate snapshots in the same request are stored once. 5. Conflicting snapshots for the same product + domain + timestamp are all rejected. 6. Offer IDs must be unique across all offers. 7. The domain field must not be empty. 8. Offer prices must be ≥ 0.01, delivery costs must be ≥ 0. ## Feeds Management Manage your data-feeds. ### Get all feeds - [GET /api/2/v/contracts/{contractId}/feeds](https://api-docs.omniaretail.dev/api/omnia/feeds/getfeeds.md): Feeds can contain offer-related information such as price recommendations. They can be configured to match individual demands. ### Find feed by ID - [GET /api/2/v/contracts/{contractId}/feeds/{feedId}](https://api-docs.omniaretail.dev/api/omnia/feeds/getfeed.md): A feed can contain offer-related information such as price recommendations. Feeds can be configured to match individual demands. ### Dismiss already fetched feed-entries - [DELETE /api/2/v/contracts/{contractId}/feeds/{feedId}/export/delta](https://api-docs.omniaretail.dev/api/omnia/feeds/excludefetchedfeeddata.md): Dismiss already fetched feed-entries, so they will not be part of future responses. ### Retrieve all feed-entries after last request - [GET /api/2/v/contracts/{contractId}/feeds/{feedId}/export/delta/{fileName}](https://api-docs.omniaretail.dev/api/omnia/feeds/getfeedexportdelta.md): In contrast of normal feeds, feed-deltas return only results, that are new since the last (DELETE-)request. ### Export feed data - [GET /api/2/v/contracts/{contractId}/feeds/{feedId}/export/{fileName}](https://api-docs.omniaretail.dev/api/omnia/feeds/getfeedexport.md): Downloads a file containing all the data from the specified feed. Feeds are price recommendation centric and can be enriched with offer or product information. The export format (JSON or CSV) is determined by the request's Accept header. ## Logs Management Operations to store log messages in the system. You can integrate this API into your own system and publish integration logs to the system so that Omnia Retail can analyze them. ### Store log messages - [POST /api/v3/log/messages](https://api-docs.omniaretail.dev/api/omnia/logs/postlogmessages.md): Stores log messages in the platform. This endpoint aims to improve the API integration process. ## Company Management Operations for managing company entities, including creation, retrieval, and contract management. ### Create company - [POST /api/2/companies](https://api-docs.omniaretail.dev/api/omnia/companies/createcompany.md): Allows users without a company to create a new company. ### Get all contracts for company - [GET /api/2/companies/{companyId}/contracts](https://api-docs.omniaretail.dev/api/omnia/companies/getcompanycontracts.md): Get all contracts for the given company. ### Add contract for company - [POST /api/2/companies/{companyId}/contracts](https://api-docs.omniaretail.dev/api/omnia/companies/addcompanycontract.md): Add a contract for the given company. ## Orders Management Operations for managing orders, including bulk order imports and order tracking. ### Add orders in bulk - [POST /api/2/v/contracts/{contractId}/orders](https://api-docs.omniaretail.dev/api/omnia/orders/postorders.md): Imports multiple orders for a specific contract in a single operation. This endpoint supports bulk order processing to efficiently manage large volumes of order data. All orders in the request are processed atomically. ### Delete all orders - [DELETE /api/v3/vendor/contracts/{contractId}/orders](https://api-docs.omniaretail.dev/api/omnia/orders/deleteorders.md): Delete all orders for this contract. ### PUT orders in bulk - [PUT /api/v3/vendor/contracts/{contractId}/orders](https://api-docs.omniaretail.dev/api/omnia/orders/putordersv3.md): Saves orders in bulk. If an orderId was already used by this contract this order and all it's order-items will be overwritten. - the of the request body must be "3" - requests must not contain duplicated - the number of orders in one request must not exceed 10,000 - each order must have at least one item - the fields should correspond to a of a product definition inside the contract ### Get all orders - [GET /api/v3/vendor/contracts/{contractId}/orders](https://api-docs.omniaretail.dev/api/omnia/orders/getordersvendorv3.md): Returns all orders for a given contract. ### Query order statistics per product - [POST /api/v3/vendor/contracts/{contractId}/orders/stats/query](https://api-docs.omniaretail.dev/api/omnia/orders/queryordersstatsvendorv3.md): This endpoint can be used to query order statistics grouped by product. ### Delete orders by query - [POST /api/v3/vendor/contracts/{contractId}/orders/delete/query](https://api-docs.omniaretail.dev/api/omnia/orders/deleteordersbyqueryvendorv3.md): This endpoint can be used to delete customer orders by an order query ## Settings Management Operations to manage the settings of contracts. Only a limited number of these operations are available to customers directly. # Callbacks You can register HTTP(S) callbacks in Omnia 2.0, which function as webhooks. Callbacks are triggered at the contract level when specific events occur within the system. Please note that multiple parties can register callbacks, so when modifying callbacks, you must ensure that you do not overwrite or delete callbacks registered by other parties. We strongly recommend including a unique name for each callback to help you identify them later. Callbacks are executed asynchronously as [tasks](#tag/tasks) within our system. To monitor the execution of these callbacks, you can track the corresponding tasks with the task type backend.tasks.pricemonitor.callback. For added security, you can register a token with your callback and/or whitelist our IP range to ensure secure communication. ### Set domains for contract - [PUT /api/2/v/contracts/{contractId}/settings/domains](https://api-docs.omniaretail.dev/api/omnia/settings/putdomains.md) ### Get callbacks - [GET /api/2/v/contracts/{contractId}/settings/callbacks](https://api-docs.omniaretail.dev/api/omnia/settings/getcallbacksvendorv2.md): Retrieve all callbacks for the given contract. ### Update callbacks - [PUT /api/2/v/contracts/{contractId}/settings/callbacks](https://api-docs.omniaretail.dev/api/omnia/settings/putcallbacksvendorv2.md): Create or update callbacks for the given contract. This is used to upsert (insert or update) all callbacks at once. Keep in mind that callbacks can be used by multiple parties (Omnia internal, Omnia Plugins, Users). It's strongly recommended to provide your callbacks with a unique name to easily identify them later. To update a single callback, you must also provide all other callbacks to ensure no callbacks from other parties are lost. To delete all callbacks, you can provide an empty list. ## Tasks Management Operations to view and manage the tasks running in the platform. Customers can only view tasks. # What tasks are Tasks are asynchronously handled jobs in our system, like price calculation or monitoring jobs. You can use [this operation to find tasks for a contract](#operation/getTasksVendorV2). # Price calculation tasks A use case for the find tasks operation is to get the most recent completed price calculation task to see if it was successful or failed. And if it failed, what the failures were. ### Finding most recent price calculation tasks If you want to find the most recent completed price calculation task you need the following query parameters: ``` limit=1 includeFailures=true taskTypeFilter=backend.tasks.pricemonitor.offers.preprocessing taskState=succeeded,failed // this only returns completed tasks. Currently running tasks are ignored ``` Optional: You might want to adjust the queried timerange and specify `minCreationDate` and `maxCreationDate`. By default all tasks ever are queried. It can happen that there no price calculation has been run yet, then an empty list of tasks is returned. Apart from that these are the possible task states: | Task state | Description | | ---------- | ----------- | | succeeded | At least for one product a price calculation has been calculated | | failed | Either all price calculations for every product failed OR the whole price calculation process failed due to an unexpected error | If there are price calculation failures on a product level, you find the dedicated failures in the failures array of the task. Be aware: at most 1000 failures are returned. If you want to have statistics for how many products a price has been calculated and how many price calculations failed on product level, then please take a look at the `result.operations.` fields in the response. When a task completely fails then the response also provides a `failureCode` that is of interest. ### Example Responses #### Successful task
Click to expand ``` json { "state":"succeeded", "data":{ "startTimestamp":"2023-05-08T14:40:00.213Z" }, "result":{ "operations":{ "successful":28444, "failed":0, "total":28444 } }, "contractId":"gj8qu6", "failures":[ ], "creationDate":"2023-05-08T15:41:46.545Z", "taskType":"backend.tasks.pricemonitor.offers.preprocessing", "finishDate":"2023-05-08T15:44:58.853Z", "userId":2156, "startDate":"2023-05-08T15:41:46.555Z", "taskId":"gj8qu6:1e318eee-3217-4ee7-a380-c6312935dcd1" } ```
#### Successful task with failures for some products
Click to expand ``` json { "state":"succeeded", "data":{ "startTimestamp":"2023-05-07T10:05:00.230Z" }, "result":{ "operations":{ "successful":2737, "failed":24, "total":2761 } }, "contractId":"f8kfq5", "failures":[ { "messageId":"ProcessingFailure", "attributes":{ "productId":"57282163", "exceptionMessage":"Can't modify min price to 21.6 since it violates the current boundary PriceBoundary(24.00,24.00)" } }, { "messageId":"ProcessingFailure", "attributes":{ "productId":"57316814", "exceptionMessage":"Can't modify min price to 35.1 since it violates the current boundary PriceBoundary(35.15,39.00)" } }, { "messageId":"ProcessingFailure", "attributes":{ "productId":"57282223", "exceptionMessage":"Can't modify min price to 35.1 since it violates the current boundary PriceBoundary(35.15,39.00)" } }, { "messageId":"ProcessingFailure", "attributes":{ "productId":"57282324", "exceptionMessage":"Can't modify min price to 31.5 since it violates the current boundary PriceBoundary(32.18,35.00)" } }, { "messageId":"ProcessingFailure", "attributes":{ "productId":"57282861", "exceptionMessage":"Can't modify min price to 35.1 since it violates the current boundary PriceBoundary(35.15,39.00)" } }, { "messageId":"ProcessingFailure", "attributes":{ "productId":"57282118", "exceptionMessage":"Can't modify min price to 26.1 since it violates the current boundary PriceBoundary(27.73,29.00)" } }, { "messageId":"ProcessingFailure", "attributes":{ "productId":"57282152", "exceptionMessage":"Can't modify min price to 35.1 since it violates the current boundary PriceBoundary(35.15,39.00)" } }, { "messageId":"ProcessingFailure", "attributes":{ "productId":"57316468", "exceptionMessage":"Can't modify min price to 521.1 since it violates the current boundary PriceBoundary(529.00,579.00)" } }, { "messageId":"ProcessingFailure", "attributes":{ "productId":"57282300", "exceptionMessage":"Can't modify min price to 4769.1 since it violates the current boundary PriceBoundary(4916.84,5299.00)" } }, { "messageId":"ProcessingFailure", "attributes":{ "productId":"57317261", "exceptionMessage":"Can't modify min price to 125.10000000000001 since it violates the current boundary PriceBoundary(129.00,139.00)" } }, { "messageId":"ProcessingFailure", "attributes":{ "productId":"57282345", "exceptionMessage":"Can't modify min price to 1205.1000000000001 since it violates the current boundary PriceBoundary(1299.00,1339.00)" } }, { "messageId":"ProcessingFailure", "attributes":{ "productId":"57282464", "exceptionMessage":"Can't modify min price to 152.1 since it violates the current boundary PriceBoundary(162.84,169.00)" } }, { "messageId":"ProcessingFailure", "attributes":{ "productId":"57282168", "exceptionMessage":"Can't modify min price to 836.1 since it violates the current boundary PriceBoundary(899.00,929.00)" } }, { "messageId":"ProcessingFailure", "attributes":{ "productId":"57282165", "exceptionMessage":"Can't modify min price to 1205.1000000000001 since it violates the current boundary PriceBoundary(1299.00,1339.00)" } }, { "messageId":"ProcessingFailure", "attributes":{ "productId":"57282895", "exceptionMessage":"Can't modify min price to 1205.1000000000001 since it violates the current boundary PriceBoundary(1299.00,1339.00)" } }, { "messageId":"ProcessingFailure", "attributes":{ "productId":"57282307", "exceptionMessage":"Can't modify min price to 1205.1000000000001 since it violates the current boundary PriceBoundary(1299.00,1339.00)" } }, { "messageId":"ProcessingFailure", "attributes":{ "productId":"57282002", "exceptionMessage":"Can't modify min price to 332.1 since it violates the current boundary PriceBoundary(349.00,369.00)" } }, { "messageId":"ProcessingFailure", "attributes":{ "productId":"57282399", "exceptionMessage":"Can't modify min price to 1025.1000000000001 since it violates the current boundary PriceBoundary(1099.00,1139.00)" } }, { "messageId":"ProcessingFailure", "attributes":{ "productId":"57282374", "exceptionMessage":"Can't modify min price to 1025.1000000000001 since it violates the current boundary PriceBoundary(1099.00,1139.00)" } }, { "messageId":"ProcessingFailure", "attributes":{ "productId":"57282694", "exceptionMessage":"Can't modify min price to 836.1 since it violates the current boundary PriceBoundary(899.00,929.00)" } }, { "messageId":"ProcessingFailure", "attributes":{ "productId":"57282155", "exceptionMessage":"Can't modify min price to 836.1 since it violates the current boundary PriceBoundary(899.00,929.00)" } }, { "messageId":"ProcessingFailure", "attributes":{ "productId":"57282271", "exceptionMessage":"Can't modify min price to 836.1 since it violates the current boundary PriceBoundary(899.00,929.00)" } }, { "messageId":"ProcessingFailure", "attributes":{ "productId":"57282087", "exceptionMessage":"Can't modify min price to 1025.1000000000001 since it violates the current boundary PriceBoundary(1099.00,1139.00)" } }, { "messageId":"ProcessingFailure", "attributes":{ "productId":"57282489", "exceptionMessage":"Can't modify min price to 1025.1000000000001 since it violates the current boundary PriceBoundary(1099.00,1139.00)" } } ], "creationDate":"2023-05-09T10:05:00.230Z", "taskType":"backend.tasks.pricemonitor.offers.preprocessing", "finishDate":"2023-05-09T10:05:20.095Z", "userId":2156, "startDate":"2023-05-09T10:05:00.238Z", "taskId":"f8kfq5:44680e2e-2458-4a64-b8a4-edfd5fb2517f" } ```
#### Failed task with failures for all products
Click to expand ``` json { "state":"failed", "data":{ "startTimestamp":"2023-05-09T04:00:02.974Z" }, "result":{ "operations":{ "successful":0, "failed":93, "total":93 } }, "failureCode":"user.preprocessing.strategy.failure", "contractId":"tujamm", "failures":[ { "messageId":"ProcessingFailure", "attributes":{ "productId":"88673055", "exceptionMessage":"Can't modify max price to 0.0 since it violates the current boundary PriceBoundary(358.6128,1000000.00)" } }, { "messageId":"ProcessingFailure", "attributes":{ "productId":"68328105", "exceptionMessage":"Can't modify max price to 15.6975 since it violates the current boundary PriceBoundary(15.743,2701.87)" } }, { "messageId":"ProcessingFailure", "attributes":{ "productId":"68328438", "exceptionMessage":"Can't modify max price to 62.947500000000005 since it violates the current boundary PriceBoundary(68.614,2701.87)" } }, { "messageId":"ProcessingFailure", "attributes":{ "productId":"68328838", "exceptionMessage":"Can't modify max price to 9.397499999999999 since it violates the current boundary PriceBoundary(11.793600000000001,2701.87)" } }, { "messageId":"ProcessingFailure", "attributes":{ "productId":"67356778", "exceptionMessage":"Can't modify max price to 555.45 since it violates the current boundary PriceBoundary(667.3758,1049.0)" } }, { "messageId":"ProcessingFailure", "attributes":{ "productId":"78763642", "exceptionMessage":"Can't modify max price to 335.9475 since it violates the current boundary PriceBoundary(402.94800000000004,2701.87)" } }, { "messageId":"ProcessingFailure", "attributes":{ "productId":"67356961", "exceptionMessage":"Can't modify max price to 1154.9895000000001 since it violates the current boundary PriceBoundary(1340.1752000000001,2199.0)" } }, { "messageId":"ProcessingFailure", "attributes":{ "productId":"68329414", "exceptionMessage":"Can't modify max price to 12.5475 since it violates the current boundary PriceBoundary(17.654,2701.87)" } }, { "messageId":"ProcessingFailure", "attributes":{ "productId":"78763669", "exceptionMessage":"Can't modify max price to 10.4475 since it violates the current boundary PriceBoundary(15.2152,2701.87)" } }, { "messageId":"ProcessingFailure", "attributes":{ "productId":"68328448", "exceptionMessage":"Can't modify max price to 98.64750000000001 since it violates the current boundary PriceBoundary(102.284,2701.87)" } }, { "messageId":"ProcessingFailure", "attributes":{ "productId":"68756226", "exceptionMessage":"Can't modify max price to 131.19750000000002 since it violates the current boundary PriceBoundary(152.3158,2701.87)" } }, { "messageId":"ProcessingFailure", "attributes":{ "productId":"68328748", "exceptionMessage":"Can't modify max price to 4.1475 since it violates the current boundary PriceBoundary(4.2042,2701.87)" } }, { "messageId":"ProcessingFailure", "attributes":{ "productId":"87832326", "exceptionMessage":"Can't modify max price to 12.5475 since it violates the current boundary PriceBoundary(16.1252,2701.87)" } }, { "messageId":"ProcessingFailure", "attributes":{ "productId":"68329058", "exceptionMessage":"Can't modify max price to 2.0475 since it violates the current boundary PriceBoundary(2.0566,2701.87)" } }, { "messageId":"ProcessingFailure", "attributes":{ "productId":"68328749", "exceptionMessage":"Can't modify max price to 8.3475 since it violates the current boundary PriceBoundary(12.1394,2701.87)" } }, { "messageId":"ProcessingFailure", "attributes":{ "productId":"68329108", "exceptionMessage":"Can't modify max price to 46.14750000000001 since it violates the current boundary PriceBoundary(47.502,2701.87)" } }, { "messageId":"ProcessingFailure", "attributes":{ "productId":"67356678", "exceptionMessage":"Can't modify max price to 418.95000000000005 since it violates the current boundary PriceBoundary(508.5262000000001,789.99)" } }, { "messageId":"ProcessingFailure", "attributes":{ "productId":"79044179", "exceptionMessage":"Can't modify max price to 16.7475 since it violates the current boundary PriceBoundary(19.747,2701.87)" } }, { "messageId":"ProcessingFailure", "attributes":{ "productId":"68328597", "exceptionMessage":"Can't modify max price to 125.9475 since it violates the current boundary PriceBoundary(130.13,2701.87)" } }, { "messageId":"ProcessingFailure", "attributes":{ "productId":"78763724", "exceptionMessage":"Can't modify max price to 12.600000000000001 since it violates the current boundary PriceBoundary(14.7056,2701.87)" } }, { "messageId":"ProcessingFailure", "attributes":{ "productId":"68328344", "exceptionMessage":"Can't modify max price to 62.947500000000005 since it violates the current boundary PriceBoundary(63.7,2701.87)" } }, { "messageId":"ProcessingFailure", "attributes":{ "productId":"78762366", "exceptionMessage":"Can't modify max price to 1101.45 since it violates the current boundary PriceBoundary(1397.4142,1649.0)" } }, { "messageId":"ProcessingFailure", "attributes":{ "productId":"84641852", "exceptionMessage":"Can't modify max price to 31.4475 since it violates the current boundary PriceBoundary(39.13,2701.87)" } }, { "messageId":"ProcessingFailure", "attributes":{ "productId":"78763514", "exceptionMessage":"Can't modify max price to 272.9475 since it violates the current boundary PriceBoundary(292.929,2701.87)" } }, { "messageId":"ProcessingFailure", "attributes":{ "productId":"78762367", "exceptionMessage":"Can't modify max price to 99.75 since it violates the current boundary PriceBoundary(103.77640000000001,139.99)" } }, { "messageId":"ProcessingFailure", "attributes":{ "productId":"68327996", "exceptionMessage":"Can't modify max price to 68.1975 since it violates the current boundary PriceBoundary(71.8354,2701.87)" } }, { "messageId":"ProcessingFailure", "attributes":{ "productId":"68373053", "exceptionMessage":"Can't modify max price to 19.8975 since it violates the current boundary PriceBoundary(20.4932,2701.87)" } }, { "messageId":"ProcessingFailure", "attributes":{ "productId":"68865365", "exceptionMessage":"Can't modify max price to 488.25 since it violates the current boundary PriceBoundary(560.7420000000001,869.99)" } }, { "messageId":"ProcessingFailure", "attributes":{ "productId":"68328261", "exceptionMessage":"Can't modify max price to 57.697500000000005 since it violates the current boundary PriceBoundary(75.69380000000001,2701.87)" } }, { "messageId":"ProcessingFailure", "attributes":{ "productId":"68373051", "exceptionMessage":"Can't modify max price to 2.0475 since it violates the current boundary PriceBoundary(3.6946,2701.87)" } }, { "messageId":"ProcessingFailure", "attributes":{ "productId":"78762370", "exceptionMessage":"Can't modify max price to 2623.9500000000003 since it violates the current boundary PriceBoundary(3310.7984,3799.0)" } }, { "messageId":"ProcessingFailure", "attributes":{ "productId":"78764192", "exceptionMessage":"Can't modify min price to 0.0 since it violates the current boundary PriceBoundary(0.01,1000000.00)" } }, { "messageId":"ProcessingFailure", "attributes":{ "productId":"67356770", "exceptionMessage":"Can't modify max price to 523.95 since it violates the current boundary PriceBoundary(606.2420000000001,949.99)" } }, { "messageId":"ProcessingFailure", "attributes":{ "productId":"68566764", "exceptionMessage":"Can't modify max price to 3.0975 since it violates the current boundary PriceBoundary(3.5126,2701.87)" } }, { "messageId":"ProcessingFailure", "attributes":{ "productId":"82558573", "exceptionMessage":"Can't modify max price to 13.5975 since it violates the current boundary PriceBoundary(22.677200000000003,2701.87)" } }, { "messageId":"ProcessingFailure", "attributes":{ "productId":"71348897", "exceptionMessage":"Can't modify max price to 110.25 since it violates the current boundary PriceBoundary(130.40300000000002,159.99)" } }, { "messageId":"ProcessingFailure", "attributes":{ "productId":"67356779", "exceptionMessage":"Can't modify max price to 523.95 since it violates the current boundary PriceBoundary(597.324,929.99)" } }, { "messageId":"ProcessingFailure", "attributes":{ "productId":"78763130", "exceptionMessage":"Can't modify max price to 262.4475 since it violates the current boundary PriceBoundary(297.479,2701.87)" } }, { "messageId":"ProcessingFailure", "attributes":{ "productId":"68328608", "exceptionMessage":"Can't modify max price to 15.6975 since it violates the current boundary PriceBoundary(18.436600000000002,2701.87)" } }, { "messageId":"ProcessingFailure", "attributes":{ "productId":"67356767", "exceptionMessage":"Can't modify max price to 450.45000000000005 since it violates the current boundary PriceBoundary(484.66600000000005,759.99)" } }, { "messageId":"ProcessingFailure", "attributes":{ "productId":"68328114", "exceptionMessage":"Can't modify max price to 62.947500000000005 since it violates the current boundary PriceBoundary(65.52,2701.87)" } }, { "messageId":"ProcessingFailure", "attributes":{ "productId":"88113739", "exceptionMessage":"Can't modify max price to 2.0475 since it violates the current boundary PriceBoundary(26.499200000000002,2701.87)" } }, { "messageId":"ProcessingFailure", "attributes":{ "productId":"82891765", "exceptionMessage":"Can't modify max price to 104.9475 since it violates the current boundary PriceBoundary(164.10940000000002,2701.87)" } }, { "messageId":"ProcessingFailure", "attributes":{ "productId":"67356775", "exceptionMessage":"Can't modify max price to 498.75 since it violates the current boundary PriceBoundary(570.9522,889.99)" } }, { "messageId":"ProcessingFailure", "attributes":{ "productId":"67357075", "exceptionMessage":"Can't modify max price to 82.95 since it violates the current boundary PriceBoundary(100.71880000000002,119.99)" } }, { "messageId":"ProcessingFailure", "attributes":{ "productId":"68328424", "exceptionMessage":"Can't modify max price to 141.6975 since it violates the current boundary PriceBoundary(202.02,2701.87)" } }, { "messageId":"ProcessingFailure", "attributes":{ "productId":"67356784", "exceptionMessage":"Can't modify max price to 119.7 since it violates the current boundary PriceBoundary(144.01659999999998,169.99)" } }, { "messageId":"ProcessingFailure", "attributes":{ "productId":"78763163", "exceptionMessage":"Can't modify max price to 57.697500000000005 since it violates the current boundary PriceBoundary(58.80420000000001,2701.87)" } }, { "messageId":"ProcessingFailure", "attributes":{ "productId":"78763355", "exceptionMessage":"Can't modify max price to 15.6975 since it violates the current boundary PriceBoundary(16.616600000000002,2701.87)" } }, { "messageId":"ProcessingFailure", "attributes":{ "productId":"78762365", "exceptionMessage":"Can't modify max price to 681.45 since it violates the current boundary PriceBoundary(883.2278000000001,989.99)" } }, { "messageId":"ProcessingFailure", "attributes":{ "productId":"79044161", "exceptionMessage":"Can't modify max price to 9.397499999999999 since it violates the current boundary PriceBoundary(2682.6800000000003,2701.87)" } }, { "messageId":"ProcessingFailure", "attributes":{ "productId":"79809361", "exceptionMessage":"Can't modify max price to 16.7475 since it violates the current boundary PriceBoundary(21.2394,2701.87)" } }, { "messageId":"ProcessingFailure", "attributes":{ "productId":"67356786", "exceptionMessage":"Can't modify max price to 488.25 since it violates the current boundary PriceBoundary(560.7420000000001,879.99)" } }, { "messageId":"ProcessingFailure", "attributes":{ "productId":"68329134", "exceptionMessage":"Can't modify max price to 16.7475 since it violates the current boundary PriceBoundary(32.123,2701.87)" } }, { "messageId":"ProcessingFailure", "attributes":{ "productId":"68328205", "exceptionMessage":"Can't modify max price to 102.84750000000001 since it violates the current boundary PriceBoundary(119.70139999999999,2701.87)" } }, { "messageId":"ProcessingFailure", "attributes":{ "productId":"78763330", "exceptionMessage":"Can't modify max price to 5.197500000000001 since it violates the current boundary PriceBoundary(8.5722,2701.87)" } }, { "messageId":"ProcessingFailure", "attributes":{ "productId":"78763539", "exceptionMessage":"Can't modify max price to 125.9475 since it violates the current boundary PriceBoundary(133.2968,2701.87)" } }, { "messageId":"ProcessingFailure", "attributes":{ "productId":"78763512", "exceptionMessage":"Can't modify max price to 24.0975 since it violates the current boundary PriceBoundary(31.668,2701.87)" } }, { "messageId":"ProcessingFailure", "attributes":{ "productId":"68328857", "exceptionMessage":"Can't modify max price to 31.4475 since it violates the current boundary PriceBoundary(37.1826,2701.87)" } }, { "messageId":"ProcessingFailure", "attributes":{ "productId":"78762372", "exceptionMessage":"Can't modify max price to 114.45 since it violates the current boundary PriceBoundary(145.16320000000002,169.99)" } }, { "messageId":"ProcessingFailure", "attributes":{ "productId":"68328455", "exceptionMessage":"Can't modify max price to 136.4475 since it violates the current boundary PriceBoundary(192.37400000000002,2701.87)" } }, { "messageId":"ProcessingFailure", "attributes":{ "productId":"68647965", "exceptionMessage":"Can't modify max price to 26.1975 since it violates the current boundary PriceBoundary(27.937,2701.87)" } }, { "messageId":"ProcessingFailure", "attributes":{ "productId":"67356782", "exceptionMessage":"Can't modify max price to 376.95 since it violates the current boundary PriceBoundary(397.54260000000005,619.99)" } }, { "messageId":"ProcessingFailure", "attributes":{ "productId":"79431469", "exceptionMessage":"Can't modify max price to 15.6975 since it violates the current boundary PriceBoundary(31.8136,2701.87)" } }, { "messageId":"ProcessingFailure", "attributes":{ "productId":"78763460", "exceptionMessage":"Can't modify max price to 38.79750000000001 since it violates the current boundary PriceBoundary(134.64360000000002,2701.87)" } }, { "messageId":"ProcessingFailure", "attributes":{ "productId":"78763601", "exceptionMessage":"Can't modify max price to 29.3475 since it violates the current boundary PriceBoundary(29.9936,2701.87)" } }, { "messageId":"ProcessingFailure", "attributes":{ "productId":"67356833", "exceptionMessage":"Can't modify max price to 523.95 since it violates the current boundary PriceBoundary(617.9264,959.99)" } }, { "messageId":"ProcessingFailure", "attributes":{ "productId":"68044131", "exceptionMessage":"Can't modify max price to 292.95 since it violates the current boundary PriceBoundary(364.6734,419.99)" } }, { "messageId":"ProcessingFailure", "attributes":{ "productId":"74301166", "exceptionMessage":"Can't modify max price to 166.95000000000002 since it violates the current boundary PriceBoundary(221.40300000000002,9999.0)" } }, { "messageId":"ProcessingFailure", "attributes":{ "productId":"68329019", "exceptionMessage":"Can't modify max price to 6.2475000000000005 since it violates the current boundary PriceBoundary(12.776399999999999,2701.87)" } }, { "messageId":"ProcessingFailure", "attributes":{ "productId":"67356722", "exceptionMessage":"Can't modify max price to 866.25 since it violates the current boundary PriceBoundary(1092.8736000000001,1249.0)" } }, { "messageId":"ProcessingFailure", "attributes":{ "productId":"78764189", "exceptionMessage":"Can't modify max price to 52.447500000000005 since it violates the current boundary PriceBoundary(56.27440000000001,2701.87)" } }, { "messageId":"ProcessingFailure", "attributes":{ "productId":"78764000", "exceptionMessage":"Can't modify max price to 2.0475 since it violates the current boundary PriceBoundary(5.6602,2701.87)" } }, { "messageId":"ProcessingFailure", "attributes":{ "productId":"67356768", "exceptionMessage":"Can't modify max price to 488.25 since it violates the current boundary PriceBoundary(560.924,879.99)" } }, { "messageId":"ProcessingFailure", "attributes":{ "productId":"68329149", "exceptionMessage":"Can't modify max price to 20.9475 since it violates the current boundary PriceBoundary(23.0958,2701.87)" } }, { "messageId":"ProcessingFailure", "attributes":{ "productId":"82278909", "exceptionMessage":"Can't modify max price to 69.2475 since it violates the current boundary PriceBoundary(114.66000000000001,2701.87)" } }, { "messageId":"ProcessingFailure", "attributes":{ "productId":"68647966", "exceptionMessage":"Can't modify max price to 26.1975 since it violates the current boundary PriceBoundary(27.937,2701.87)" } }, { "messageId":"ProcessingFailure", "attributes":{ "productId":"78763897", "exceptionMessage":"Can't modify max price to 16.7475 since it violates the current boundary PriceBoundary(17.1444,2701.87)" } }, { "messageId":"ProcessingFailure", "attributes":{ "productId":"75351547", "exceptionMessage":"Can't modify max price to 109.2 since it violates the current boundary PriceBoundary(128.856,239.99)" } }, { "messageId":"ProcessingFailure", "attributes":{ "productId":"78763641", "exceptionMessage":"Can't modify max price to 52.447500000000005 since it violates the current boundary PriceBoundary(60.06,2701.87)" } }, { "messageId":"ProcessingFailure", "attributes":{ "productId":"68328459", "exceptionMessage":"Can't modify max price to 36.697500000000005 since it violates the current boundary PriceBoundary(45.427200000000006,2701.87)" } }, { "messageId":"ProcessingFailure", "attributes":{ "productId":"68328752", "exceptionMessage":"Can't modify max price to 20.9475 since it violates the current boundary PriceBoundary(22.8592,2701.87)" } }, { "messageId":"ProcessingFailure", "attributes":{ "productId":"78763678", "exceptionMessage":"Can't modify max price to 204.6975 since it violates the current boundary PriceBoundary(278.46000000000004,2701.87)" } }, { "messageId":"ProcessingFailure", "attributes":{ "productId":"74301169", "exceptionMessage":"Can't modify max price to 261.45 since it violates the current boundary PriceBoundary(327.63640000000004,389.99)" } }, { "messageId":"ProcessingFailure", "attributes":{ "productId":"68329012", "exceptionMessage":"Can't modify max price to 20.9475 since it violates the current boundary PriceBoundary(23.605400000000003,2701.87)" } }, { "messageId":"ProcessingFailure", "attributes":{ "productId":"78763855", "exceptionMessage":"Can't modify max price to 13.5975 since it violates the current boundary PriceBoundary(17.672200000000004,2701.87)" } }, { "messageId":"ProcessingFailure", "attributes":{ "productId":"81749897", "exceptionMessage":"Can't modify max price to 292.95 since it violates the current boundary PriceBoundary(326.5262,529.99)" } }, { "messageId":"ProcessingFailure", "attributes":{ "productId":"67357159", "exceptionMessage":"Can't modify max price to 156.45000000000002 since it violates the current boundary PriceBoundary(225.8074,229.99)" } }, { "messageId":"ProcessingFailure", "attributes":{ "productId":"67356769", "exceptionMessage":"Can't modify max price to 603.75 since it violates the current boundary PriceBoundary(692.3462000000001,1089.0)" } }, { "messageId":"ProcessingFailure", "attributes":{ "productId":"68329423", "exceptionMessage":"Can't modify max price to 10.4475 since it violates the current boundary PriceBoundary(10.92,2701.87)" } }, { "messageId":"ProcessingFailure", "attributes":{ "productId":"68327990", "exceptionMessage":"Can't modify max price to 146.9475 since it violates the current boundary PriceBoundary(148.3664,2701.87)" } }, { "messageId":"ProcessingFailure", "attributes":{ "productId":"67356697", "exceptionMessage":"Can't modify max price to 1395.45 since it violates the current boundary PriceBoundary(1826.7340000000002,1999.0)" } }, { "messageId":"ProcessingFailure", "attributes":{ "productId":"87832348", "exceptionMessage":"Can't modify max price to 10.4475 since it violates the current boundary PriceBoundary(15.834,2701.87)" } } ], "creationDate":"2023-05-09T04:00:53.558Z", "taskType":"backend.tasks.pricemonitor.offers.preprocessing", "finishDate":"2023-05-09T04:00:59.213Z", "userId":2156, "startDate":"2023-05-09T04:00:54.677Z", "taskId":"tujamm:49329f97-62ff-4c65-89af-062432e82095" } ```
#### Unexpected failed task
Click to expand ``` json { "state":"failed", "data":{ "startTimestamp":"2023-05-09T08:00:01.217Z" }, "failureCode":"pricemonitor.uncategorized.failure", "contractId":"97j8f7", "failures":[ { "messageId":"backend.tasks.pricemonitor.offers.preprocessing.unknownFailure", "attributes":{ "error":"backend.tasks.pricemonitor.offers.preprocessing.unknownFailure", "exception":"scala.MatchError", "exceptionMessage":"null" } } ], "creationDate":"2023-05-09T09:09:18.888Z", "taskType":"backend.tasks.pricemonitor.offers.preprocessing", "finishDate":"2023-05-09T09:09:19.010Z", "userId":2156, "startDate":"2023-05-09T09:09:18.898Z", "taskId":"97j8f7:9a026a7a-5195-4cc4-b6b5-ceeb8cb431fa" } ```
### Find tasks for contract [vendor] - [GET /api/2/v/contracts/{contractId}/tasks](https://api-docs.omniaretail.dev/api/omnia/tasks/gettasksvendorv2.md): The search can be narrowed down by providing the IDs of the tasks, separated by comma ### Get task - [GET /api/2/v/contracts/{contractId}/tasks/{taskId}](https://api-docs.omniaretail.dev/api/omnia/tasks/gettaskvendorv2.md): Finds a task with the specified id for the given contract. ## Strategies Management Operations to view and manage pricing strategies. ### Get all strategy versions metadata for contract - [GET /api/v3/vendor/contracts/{contractId}/settings/pricingstrategies/history](https://api-docs.omniaretail.dev/api/omnia/strategy/getpricingstrategyhistory.md): Retrieves a list of metadata for all pricing strategy versions associated with a specific contract. This endpoint provides version history information including creation dates, modification timestamps, and strategy metadata for tracking changes over time. ## Domains Operations to view all supported domains. A domain is an external datasource or website that contains information about offers for products for sale. Information like product characteristics and sales characterics like price, stock level and delivery times and costs. ### Get all available domains - [GET /api/v3/domains](https://api-docs.omniaretail.dev/api/omnia/domains/getalldomainsv3.md): Retrieves all domains supported by the system for market data collection. Each domain includes: - Available offer sources for market data collection - Configuration parameters Only domains with the offer source are supported out-of-the-box by the monitoring pipeline. ## Plugin Registration Operations to view and manage registered plugins for system integration. ### Get plugin registration for contract - [GET /api/v3/vendor/contracts/{contractId}/plugin](https://api-docs.omniaretail.dev/api/omnia/pluginregistration/getpluginregistration.md): Return the plugin registration for the given contract. ### Create/update plugin registration for contract - [PUT /api/v3/vendor/contracts/{contractId}/plugin](https://api-docs.omniaretail.dev/api/omnia/pluginregistration/putpluginregistration.md): Create and/or update the plugin registration for given contract. ### Delete plugin registration for contract - [DELETE /api/v3/vendor/contracts/{contractId}/plugin](https://api-docs.omniaretail.dev/api/omnia/pluginregistration/deletepluginregistration.md): Delete the plugin registration for the given contract.