Price Flow
Last updated
Was this helpful?
Last updated
Was this helpful?
The price flow facilitates the transfer of product price information between ERP systems and Omnitron. This process ensures that prices are accurately synchronized between these systems, providing up-to-date data. The flow can operate in two ways: as inbound or outbound. Inbound price flow means that the flow triggers itself at specific intervals set by the user,such as once every minute, every 1 hour, every day at midnight, every 5th day of a month etc. to read data from the ERP system and write it to Omnitron, ensuring Omnitron has the latest price data. Outbound price flow, on the other hand, involves data being pushed directly to the flow from an external source and then written to Omnitron. This dual capability ensures seamless communication and accurate price management across the entire system.
Inbound Flow: Indicates that the flow will read data from the ERP system. A cron schedule is set up to ensure it runs, for example, every 5 minutes.
Outbound Flow: Signifies that price data will be posted to the flow from the ERP system, skipping the step of reading data from the ERP system, with outbound flows the data is sent to outbound urls found in flow configuration using HTTP POST methods.
Login Step: Handles logging into Omnitron and (if configured) the ERP system. If an error occurs during this step, the details are logged.
Read Data From ERP Step: For inbound flows, price queries are made from the ERP system. Outbound flows proceed directly to the next step.
Script Step (Optional): Transformation operations on the data are performed using Python, if required.
Mapping Step (Optional): Transformation operations on the data are performed using the Jolt Transform library. Further details can be found at the website.
Write Data to Omnitron Step: The incoming data is divided into rows and written to Omnitron. Logs are created for each row. In case of an error, details of the error are logged (e.g., the relevant product is not found in Omnitron). Successful operations are also logged.
Trigger Settings: Configures the key values to be used for single and date-based queries from ERP. “sku” and “modified_dategt” are created by default and are required values. These settings are used in the trigger page to use specific parameters while creating the trigger url. “modified_dategt” value is also used while creating automatic inbound request urls and “sku” value is used on “Fetch Missing” tasks for querying missing skus on ERP.
Adding a new Query Parameter:
Using newly added parameters:
Effects of the custom parameters:
Using with SKU:
Using with Modified Date:
Omnitron API Settings:
Timezone Settings: Timezone used for date-based queries from ERP, this value is used with inbound task requests to modify modified_date__gt
value for a specific timezone. The date time format is following: yyyy-MM-dd'T'HH:mm:ss.SSSSSS
, ex: 2024-12-31T13:30:59.000001
Productization Settings:
Enabled: Fetch missing setting, when enabled, allows fetching products from ERP that have been newly productized but lack price information. The 'fetch missing' functionality is a cron job operating every 4 hours for all enabled flows. It queries omnitron for products with missing price values for the “Price List” entered and triggers the flow with CSVs for the identified products. Since “outbound” flows do not have an endpoint to make a SKU query, this feature can not be used with outbound flows.
Omnitron Identifier Path for ERP: Path for reading products from Omnitron.
Fetch Prices After Productization Date Limit: Determines how many days within which productized products will be queried from Omnitron.
Add Extra Headers as Dict Format: During the price query from ERP, additional headers to be sent.
Price List Key: Key used as a parameter during queries from ERP.
Extra Params: Additional parameters used when ERP request is made, it must be a valid dict if a GET request is made which will be used to send query parameters in the url or it can be used on a POST request in which the extra params value will be used to be sent in request body.
Endpoint URL: URL for reading data from the ERP system.
Dynamic URL Usage:
HTTP Method: GET
or POST
Pagination:
Offset pagination is a method where a fixed number of items are retrieved from a data source in each request, starting from a specified offset. This offset indicates the position from which to begin fetching data.
Seek pagination relies on a unique identifier or a specific value to retrieve subsequent sets of data. Instead of using offsets, it uses a marker or token indicating where the previous set of data ended.
Next field pagination includes a "next" field or token in each server response that points to the next page of data.
This is a base script that can be updated to enable script functionality within the process step.
Scripts can read incoming data from the inputStream
, where the variable input_text
contains a JSON string. This string should be parsed using Python's json
library. Any outgoing data is written using the outputStream.write()
method after converting the relevant Python object back into a JSON string.
Additionally, the script allows for the use of attributes, which provide supplementary information tied to the current execution process. These attributes can be freely accessed or modified throughout the script. For example, the get_attribute()
function is used to read attribute values, while the session.putAttribute()
method is used to write new string attribute values. Each attribute consists of a key-value pair, where the key
uniquely identifies the attribute, and the value
can be referenced in subsequent steps.
Attributes whose keys begin with the prefix log.
will be automatically logged at the end of the execution if a log file is generated, ensuring important information is recorded and can be reviewed later.
Example Script:
Script Testing: The ERP response is placed in the input field, and the script's result along with the written attributes can be viewed in the result field. When the test script is run, attributes like log.script.error
will appear under the "attributes" section in the result panel and should be referenced if any exceptions occur during execution. The script's output content will be found under the result_data
value.
The “Add Attributes” button can be used to simulate incoming, readable, attributes for the script. This feature is useful when an attribute value is read and used in the script. Note that attributes added through the button are only for testing purposes and will not be saved in the flow information—they will be removed when the page is refreshed.
Example Mapping:
Expected Output:
Mapping Testing: The response from the script is placed in the input field, and the result of the mapping is viewed in the result field.
POST
Write Data to OmnitronPath: /api/i1/product_price/bulk_upsert/
Example POST request from Integrator to Omnitron:
In outbound flows, triggers will be configured to send a POST request to the URL specified in the "Outbound Request Url" setting under the Configuration card. The content of the POST request will include JSON data containing details such as SKU, price currency type, price list ID, price, and tax rate for each product.
Expected Payload:
Omnitron Price List ID: Information about the price list ID to be updated in Omnitron, this information should be fetched from Omnitron, go to Products and Catalogs, Price List then open the price list page, flow is supposed to update, last digits on the URL of the page will be price list id, ex: in this example price list id is “1”. This value is also used with the “Fetch Missing” task to find missing skus in the price list.
Domain Url: Omnitron's domain URL, example: .
Dynamic URLs are used when the url structure, path changes based on different conditions or if the url doesn’t fit a standard REST Api structure. In the example below, the url changes if the request is going to be a “date” based query or “sku” based query and at the same time the api requires the erp token to be in the Url itself. Using language it is possible to change the request url in the run time based on conditions and expressions written in the URL field.
Details can be found at the website. Since this is the final step where input data can be transformed, the flow requires the following output at this stage to function correctly.