# Hepsiburada Marketplace Setup Configurations

## <mark style="color:red;">1. Installing the Marketplace Dashboard Application on ACC</mark> <a href="#gjdgxs" id="gjdgxs"></a>

The Marketplace Dashboard application needs to be installed on ACC. To do this, the user should log in to[ https://console.akinoncloud.com](https://console.akinoncloud.com/) using their username and password.

After logging in, go to the App-Store from the menu, select Hepsiburada, then choose the relevant project and proceed with the installation.

![](https://2911598027-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FlQinVPnOffBiOp126ldR%2Fuploads%2Fgit-blob-fa0339b6460c2ef8f631c7345df8d0e5ab5d6aa0%2F3.png?alt=media)

Following the installation process, navigate to My Applications from the left menu, select the relevant application, and enter the application page. Once the necessary build and deployment steps are completed, the Hepsiburada application will appear in the left menu of Omnitron.

After the installation, the database and tables will be created.

![](https://2911598027-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FlQinVPnOffBiOp126ldR%2Fuploads%2Fgit-blob-63e9c5349358b31a4b076f0c54711967a6eacb51%2F4.png?alt=media)

After successful setup, Schema Update flow runs automatically to deploy default channel settings.

## <mark style="color:red;">2. Defining the Sales Channel</mark> <a href="#id-30j0zll" id="id-30j0zll"></a>

Once the deployment of the application is completed on ACC, a sales channel will be automatically created in Omnitron. The fields within this sales channel need to be filled out.

The sales channel can be accessed through Omnitron > Settings > Sales Channels.

<table><thead><tr><th>Field Name</th><th width="267.32421875">Description</th><th>Example</th><th>Information</th><th>Requirement</th></tr></thead><tbody><tr><td><strong>Channel Name</strong></td><td>Sales Channel Name</td><td>Hepsiburada</td><td>Automatically created.</td><td>Required (should not be changed)</td></tr><tr><td><strong>Catalog Name</strong></td><td>Catalog Name Created for Hepsiburada *May vary from brand to brand</td><td>Hepsiburada</td><td>Automatically created.</td><td>Required</td></tr><tr><td><strong>Channel Type</strong></td><td><p>Channel Type</p><p>*All sales channel types are listed in a dropdown in Omnitron.</p></td><td>Sales Channel</td><td>Automatically created.</td><td>Required (should not be changed)</td></tr><tr><td><strong>Status</strong></td><td>The sales channel will not function until it is activated.</td><td>Inactive</td><td>By default, it is set to inactive (it needs to be activated).</td><td>Required</td></tr><tr><td><strong>Schema Type</strong></td><td><p>The <strong>Sales Channel Settings</strong> define the information that needs to be stored for the sales channel. The required information for the operation of this sales channel is brought into Omnitron as a form. A schema containing the minimum necessary information for the sales channel to function is automatically created. You can also add additional information you want to store here (for example, details needed for the ERP integration of the sales channel).</p><p>The key-value information that will be included in the <strong>Channel Config</strong> is provided here. In the value section, the dictionary includes <strong>key</strong>, <strong>label</strong>, <strong>required</strong>, and <strong>data_type</strong>.</p><p><strong>key</strong> → Indicates the key through which the information will be accessed in the channel config.</p><p><strong>label</strong> → Specifies how the information will appear in the form on the Omnitron Sales Channel Settings interface.</p><p><strong>required</strong> → Indicates whether the value is mandatory (true/false).</p><p><strong>data_type</strong> → Specifies the data type of the value (list, text, integer, bool, json).</p></td><td><p>{</p><p>"store_code": {</p><p>"key": "StoreCode",</p><p>"label": "Mağaza Kodu",</p><p>"required": false,</p><p>"data_type": "text"</p><p>},</p><p>"base_url": {</p><p>"key": "base_url",</p><p>"label": "Base Url",</p><p>"required": true,</p><p>"data_type": "text"</p><p>}</p><p>}</p></td><td>The default information has been automatically filled in.</td><td><strong>Required</strong> (Additions can be made, but existing fields should not be changed).</td></tr><tr><td><strong>Base Url</strong></td><td>The Hepsiburada API URL is used for category retrieval operations.</td><td>https://mpop.hepsiburada.com</td><td>It is pre-filled by default.</td><td>Required</td></tr><tr><td><strong>OMS Url</strong></td><td>The Hepsiburada API URL is used for order processing operations.</td><td>https://oms-external.hepsiburada.com</td><td>It is pre-filled by default.</td><td>Required</td></tr><tr><td><strong>Listing Url</strong></td><td>The Hepsiburada API URL is used for product, stock, or price operations.</td><td>https://listing-external.hepsiburada.com</td><td>It is pre-filled by default.</td><td>Required</td></tr><tr><td><strong>Username</strong></td><td>The <strong>merchant ID</strong> for the Hepsiburada API is the information provided by Hepsiburada for the seller.</td><td>******************</td><td>It can be obtained by contacting Hepsiburada.</td><td>Required</td></tr><tr><td><strong>Password</strong></td><td>The password for the Hepsiburada API is the information provided by Hepsiburada for the seller.</td><td>******************</td><td>It can be obtained by contacting Hepsiburada.</td><td>Required</td></tr><tr><td><strong>Merchant Id</strong></td><td><p>The <strong>merchant ID</strong> for the Hepsiburada API is the information assigned to the seller by Hepsiburada.</p><p>It can be obtained by contacting Hepsiburada.</p></td><td>******************</td><td>It can be obtained by contacting Hepsiburada.</td><td>Required</td></tr><tr><td><strong>User Agent</strong></td><td>The <strong>User Agent</strong> information assigned by Hepsiburada is:</td><td>akinon_dev</td><td>It is determined by contacting Hepsiburada.</td><td>Required</td></tr><tr><td><strong>Category Ids</strong></td><td>The main category IDs to be used via the Hepsiburada API at the endpoint<a href="https://mpop-sit.hepsiburada.com/product/api/categories/get-all-categories"> https://mpop-sit.hepsiburada.com/product/api/categories/get-all-categories</a> are checked and added here.</td><td><p>368234234</p><p>234324322</p></td><td>It is pre-filled as empty by default. (This information is obtained from Hepsiburada.)</td><td>Required</td></tr><tr><td><strong>Feature Flags</strong></td><td>It allows the activation or deactivation of running processes. The key point to note here is that, even if the related process will not run, it must still be added here as false. (Detailed information about feature flags is provided in Section 9 under the “Feature Flags” heading below.)</td><td><p>{</p><p>"get_orders": true,</p><p>"get_cancel_orders": true,</p><p>"get_refund_orders": false,</p><p>"send_invoice_link": true,</p><p>"send_delete_products": true</p><p>}</p></td><td>By default, all flags are set to <strong>false</strong>.</td><td>Required</td></tr><tr><td><strong>Use Neighborhood</strong></td><td>Whether the neighborhood information will be used in the address data when creating an order is determined by this setting. If active, the neighborhood information in the delivery and invoice addresses of the order will be processed during the address creation step in Omnitron.</td><td>Inactive</td><td>It is pre-filled as inactive by default. If the company's system requires neighborhood information, this field should be activated.</td><td>Optional</td></tr><tr><td><strong>Use Hb Tracking Number</strong></td><td>Whether the barcode information retrieved by Hepsiburada will be used as the tracking number when creating an order is determined by this setting. If active, the barcode information from the Hepsiburada package will be processed as the tracking number for the relevant order.</td><td>Inactive</td><td>It is pre-filled as inactive by default.</td><td>Optional</td></tr><tr><td><strong>Refund Reason Mapping</strong></td><td>The <strong>return reason</strong> information on Hepsiburada is matched with the return reason information in Omnitron for the return process. Here, the <strong>key</strong> refers to the reason value on Hepsiburada (this value can be found under the "Reason" field in the <strong>Request Detail Listing</strong> section on Hepsiburada), and the <strong>value</strong> refers to the reason ID in Omnitron. (The ID information can be retrieved using the endpoint: {omnitron_url}/api/v1/channel/{channel_id}/cancellation_reasons/?cancellation_type=refund&#x26;is_active=true.)</td><td><p>{</p><p>“PoorQuality”:”7” , “SizeTooLarge”: “11”</p><p>}</p></td><td>By default, this is left empty. (When left empty, the return reasons will be populated with the "Default Reason Id" information in the previous step when the return information is retrieved from Hepsiburada.)</td><td>Optional</td></tr><tr><td><strong>Default Reason Id</strong></td><td>If the reason ID in the return data retrieved from Hepsiburada is not listed in the Refund Reason Mapping, the Omnitron refund reason ID entered here will be used to pull the refund data and write it to Omnitron. (The ID information can be retrieved using the endpoint: {omnitron_url}/api/v1/channel/{channel_id}/cancellation_reasons/?cancellation_type=refund&#x26;is_active=true.)</td><td>5</td><td>By default, this is left empty.</td><td>Required</td></tr><tr><td><strong>Refund Start Date</strong></td><td>This is the initial start date for when returns will begin to be retrieved. The format is "yyyy-MM-ddTHH:mm:ssZ".</td><td>2024-12-01T10:00:00Z</td><td>By default, this is left empty.</td><td>Optional</td></tr><tr><td><strong>Orders Refundable Days</strong></td><td>This is the number of days within which an order can be returned after its creation date.</td><td>15</td><td>It is pre-set to 15 days by default.</td><td><strong>Optional</strong> (If left empty, the default is 15 days).</td></tr><tr><td><strong>Failed Integration</strong></td><td>Records with errors during the integration process are temporarily delayed with a penalty. (For detailed information, refer to Section 3: Failed Integration Settings below).</td><td><p>{</p><p>"order": {</p><p>"RETRY_INTERVAL": 28800,</p><p>"EXPIRATION_DATE": 57601,</p><p>"MAX_RETRY_COUNT": 3</p><p>},</p><p>"DEFAULT": {</p><p>"RETRY_INTERVAL": 28800,</p><p>"EXPIRATION_DATE": 57601,</p><p>"MAX_RETRY_COUNT": 2</p><p>},</p><p>"product": {</p><p>"RETRY_INTERVAL": 28800,</p><p>"EXPIRATION_DATE": 57601,</p><p>"MAX_RETRY_COUNT": 2</p><p>},</p><p>"productprice": {</p><p>"RETRY_INTERVAL": 28800,</p><p>"EXPIRATION_DATE": 57601,</p><p>"MAX_RETRY_COUNT": 2</p><p>},</p><p>"productstock": {</p><p>"RETRY_INTERVAL": 28800,</p><p>"EXPIRATION_DATE": 57601,</p><p>"MAX_RETRY_COUNT": 2</p><p>},</p><p>"sent_to_remote": {</p><p>"EXPIRATION_HOUR": 6</p><p>}</p><p>}</p></td><td>It is pre-filled by default.</td><td>Required</td></tr><tr><td><strong>Erp Code</strong></td><td>The sales channel code is defined for Hepsiburada in the brand.</td><td>TY</td><td>It is pre-filled as empty by default.</td><td>Optional</td></tr><tr><td><strong>Send Shipping Info</strong></td><td>This setting determines whether Hepsiburada or the brand will manage the shipping process.</td><td>Inactive</td><td>It is pre-filled as inactive by default. (If inactive or not selected, Hepsiburada manages the shipping process. If active, the brand manages the shipping process.)</td><td>Optional</td></tr><tr><td><strong>Order Number Format</strong></td><td>When pulling order data from Hepsiburada to Omnitron, the order number will be set according to this format. If this value is left empty, the order will be written to Omnitron with the default order number format: <strong>"{orderNumber}-{id}"</strong>.</td><td>HB-{orderNumber}-{id}</td><td>It is pre-filled as empty by default.</td><td>Optional</td></tr><tr><td><strong>Cancellation Reason Id</strong></td><td>This is the information about which reason ID will be used to write canceled orders to Omnitron when retrieved from Hepsiburada. (The ID information can be obtained using the endpoint: {omnitron_url}/api/v1/channel/{channel_id}/cancellation_reasons/?cancellation_type=cancel&#x26;is_active=true)</td><td>4</td><td>It is pre-filled as empty by default.</td><td>Required</td></tr><tr><td><strong>Attribute Set Strategy</strong></td><td>This is the strategy setting that determines which attribute set the products belong to.</td><td>CategoryNode</td><td>It is pre-filled by default.</td><td><strong>Required</strong> (Should not be changed).</td></tr><tr><td><strong>Use Channel Id In Address Mapping</strong></td><td>If the brand desires, this field can be activated to perform address mapping operations on a channel basis. If this field is activated, the channel ID will be added in front of the address data during the mapping process, and searches will be performed using the <strong>sales channel filter</strong> with the <strong>channelId_address</strong> information.</td><td>Inactive</td><td>It is pre-filled as inactive by default.</td><td>Optional</td></tr><tr><td><strong>Buffer Stock</strong></td><td>This is the value to be deducted from the product's current stock when sending stock data to Hepsiburada. If no value is entered, the product's current stock will be sent to Hepsiburada.</td><td>3</td><td>It is pre-filled as empty by default.</td><td>Optional</td></tr><tr><td><strong>Shipping Provider</strong></td><td><p>The mapping required to feed the tracking URL in the Order update flow will be entered in this field. Here, the tracking_number information will be adjusted to match the order_number and tracking number. This allows the automatic creation of the tracking URL.</p><p><strong>Special Cases:</strong></p><p><strong>Ptt</strong>:<br>The tracking number information is separated by a "-" where the part before the "-" is the barcode and the part after is the GUID. The URL is then created as:<br>"barkod=${barkod}&#x26;barkod_guid=${barkod_guid}"</p><p><strong>Loomis:</strong><br>The tracking number is separated by a "-" and, within the provided mapping, the part before the "-" is used to extract the URL information from the tracking URL.<br>For example, for an order with the tracking number "tur-1234566", the mapping for the tur key in the tracking URL might look like this:</p><p>{</p><p>"loomis": {</p><p>"tracking_url": {</p><p>"tur": "https://xxx.com?tracking_number={tracking_number}"</p><p>}</p><p>}</p><p>}</p></td><td><p>{</p><p>"aras": {</p><p>"tracking_url": "https://kargotakip.araskargo.com.tr/mainpage.aspx?code={tracking_number}",</p><p>"tracking_url_by_tracking_number": ""</p><p>},</p><p>"k_gelsin": {</p><p>"tracking_url": "https://esube.kolaygelsin.com/shipments?trackingId={tracking_number}",</p><p>"tracking_url_by_tracking_number": ""</p><p>},</p><p>"hbexpress": {</p><p>"tracking_url": "https://www.hepsijet.com/gonderi-takibi/{tracking_number}",</p><p>"tracking_url_by_tracking_number": ""</p><p>}</p><p>}</p></td><td>It is pre-filled as empty by default.</td><td>Optional</td></tr><tr><td><strong>Cargo Company Mapping</strong></td><td>With this mapping, the shipping information received from Hepsiburada is mapped, determining which shipping company it corresponds to on the Omnitron side. The list of shipping companies can be obtained from the following endpoint:<br><a href="https://developers.hepsiburada.com/hepsiburada/reference/get_cargofirms-merchantid">https://developers.hepsiburada.com/hepsiburada/reference/get_cargofirms-merchantid</a>.</td><td><p>{</p><p>"hepsijet": 3,</p><p>"default": 1</p><p>}</p></td><td>It is pre-filled as empty by default.</td><td>Required</td></tr><tr><td><strong>Cancellation Reason Mapping</strong></td><td>With the mapping in this field, the cancellation reasons received from Hepsiburada are matched with the defined reasons. When a match is made, cancellations are processed with the corresponding reason.</td><td><p>{</p><p>"Other": 3</p><p>}</p></td><td>It is pre-filled as empty by default.</td><td>Optional</td></tr><tr><td><strong>Automatic Packing</strong></td><td>When this field is activated, orders are automatically packaged if Hepsiburada's packaging process has not been performed. This process occurs before the order retrieval step in the Marketplace Dashboard application.</td><td>True</td><td>It is pre-filled as empty by default.</td><td>Optional</td></tr><tr><td><strong>Check Hepsijet Format Type</strong></td><td>This field is used to specify the format of the <strong>cargo label</strong>.</td><td>png</td><td>It is pre-filled as empty by default.</td><td>Optional</td></tr><tr><td><strong>Billing Address Same As Shipping</strong></td><td>If this field is active, in <strong>micro export orders</strong>, the invoice and delivery addresses will be written to Omnitron as the same. Additionally, the invoice address information from the Hepsiburada order will be written to the order's <strong>extra_field</strong>.</td><td>False</td><td>It is pre-filled as empty by default.</td><td>Optional</td></tr><tr><td><strong>Mağaza Hesabı Kargo Firması</strong></td><td><p>If a shipping company is entered in this field, the shipping company information will be included along with the package details in the automatic packaging process. This process will occur if <strong>Automatic Packing</strong> is active. The list of shipping companies can be found in the documentation at:</p><p><a href="https://developers.hepsiburada.com/hepsiburada/reference/siparis-entegrasyonu-onemli-bilgiler#kalem-veya-kalemleri-paketleme">Hepsiburada Shipping Integration Documentation</a>. The <strong>short name</strong> from the documentation should be entered here.</p></td><td>YK</td><td>It is pre-filled as empty by default.</td><td>Optional</td></tr><tr><td><strong>Use Cargo Label</strong></td><td>The decision of whether the <strong>cargo label</strong> field will be filled in the order retrieval step can be determined by activating or deactivating this field.</td><td>False</td><td>It is pre-filled as empty by default.</td><td>Optional</td></tr><tr><td><strong>Send Cancellation Reason ID</strong></td><td><p>The Hepsiburada cancellation/return ID can be one of the following integer values:</p><ul><li>80: "WrongPrice"</li><li>83: "MerchantCanNotBeSupplied"</li></ul></td><td>4</td><td>It is pre-filled as empty by default.</td><td>Optional</td></tr><tr><td><strong>Shipping Address Label Mapping</strong></td><td>As part of the update warehouse process, it ensures that the <code>erp_code</code> field in the request sent by OMS is correctly mapped in the request to be sent to the Hepsiburada Marketplace.</td><td><p>{</p><p>“HBS”: “122”</p><p>}</p></td><td>{}</td><td>Optional</td></tr><tr><td><strong>Product Shipping Info Extra Data</strong></td><td>It is the field where additional data (other than <strong>hepsiburadaSku</strong>, <strong>merchantSku</strong>, and <strong>dispatchTime</strong>) to be sent for product shipping info in the product update flow is entered. The fields can be checked at <a href="https://developers.hepsiburada.com/hepsiburada/reference/listing-teslimat-g%C3%BCncelleme">this link</a>.</td><td>{<br>“claimAddressLabel”: “IKINCIL”<br>}</td><td>{}</td><td>Optional</td></tr></tbody></table>

### <mark style="color:red;">2.1 Flows that run automatically after channel settings are saved</mark> <a href="#postsetup" id="postsetup"></a>

When certain fields in the channel settings are saved or updated, a sequence of maintenance flows is automatically queued. These flows prepare the channel for correct product and attribute operations. Manual triggering is NOT required (visible on the Monitoring / Logs screen).

**When Category Ids are added or changed** (the `Category Ids` field in the channel config):

1. **Category Node** – Fetches the full category tree for each newly added root category.
2. **Category Attributes** – Fetches attribute definitions belonging to the fetched categories.

Both flows are started automatically (The more category entries there are, the longer the Category Attributes process will take). Product mapping should ONLY begin after Category Node and Category Attributes flows have completed successfully.

**Operational notes & quick checks:**

* No CSV or manual trigger is needed for the above maintenance flows.
* If one of the flows does not appear or ends in error, check Monitoring > Logs (filter by flow name). Re‑save the channel settings if necessary; if the issue persists contact support.
* Avoid re‑saving the channel repeatedly.

**Ready for next steps:** Proceed to Section 4 once the Category Node and Category Attributes flows show success in Logs.

## <mark style="color:red;">3. Failed Integration Setting</mark> <a href="#id3ai0cixnys" id="id3ai0cixnys"></a>

Records that encounter errors in the integration process are temporarily put on hold (penalty). The values for `RETRY_INTERVAL` and `EXPIRATION_DATE` are durations expressed in seconds.

* `RETRY_INTERVAL`: Wait time (seconds) before the next retry attempt.
* `EXPIRATION_DATE`: Total duration (seconds) added to the first failure time. After this duration the resulting absolute timestamp (`expiration_date`) is passed, no further retries occur. This is a duration, not a stored absolute timestamp.
* `MAX_RETRY_COUNT`: Upper limit of total allowed attempts for a single failed record (including the first failed attempt). Condition check: `retry_count < MAX_RETRY_COUNT`.
* `sent_to_remote.EXPIRATION_HOUR`: In channel configuration (`FAILED_INTEGRATION.sent_to_remote.EXPIRATION_HOUR`), the maximum hour window during which the remote system (Hepsiburada) response is awaited. `BatchRequest` entries still in `sent_to_remote` or ongoing beyond this window are marked fail (see `finalize_sent_to_remote_batch_requests`).

`EXPIRATION_DATE` and `MAX_RETRY_COUNT` jointly restrict retry behavior:

* `MAX_RETRY_COUNT`: Stops retries once the limit is reached even if time remains.
* `EXPIRATION_DATE`: Stops retries once the time window has elapsed even if the count limit is not reached.

Effective retry condition: `(retry_count < MAX_RETRY_COUNT) AND (expiration_date is None OR current_time < expiration_date)`.

An integration is eligible for retry only if `retry_count < MAX_RETRY_COUNT` and (if set) current time is before `expiration_date`. Retries stop when either the maximum attempt count is reached or the end timestamp is passed.

**Adjusting values based on error volume:** For high error rate processes (e.g. frequently failing product or stock updates), use lower `RETRY_INTERVAL`, `MAX_RETRY_COUNT`, and `EXPIRATION_DATE` so faulty records do not remain long and block others. For low error rates, increase these to allow more retry chances. Optimize according to operational needs and error analysis. In critical flows, as error volume rises, aggressively reduce retry duration and count to preserve stability.

Changes to these values apply to subsequently created `FailedIntegration` records. Example: if a SKU stock update fell into penalty with a 3‑hour interval and the interval is changed to 2 hours, the existing record still retries after 3 hours; if it fails again the new record uses the 2‑hour interval.

Default Format:

```{
  "order":
  {
    "RETRY_INTERVAL": 28800,
    "EXPIRATION_DATE": 57601,
    "MAX_RETRY_COUNT": 3
  },
  "DEFAULT":
  {
    "RETRY_INTERVAL": 28800,
    "EXPIRATION_DATE": 57601,
    "MAX_RETRY_COUNT": 3
  },
  "product":
  {
    "RETRY_INTERVAL": 28800,
    "EXPIRATION_DATE": 57601,
    "MAX_RETRY_COUNT": 3
  },
  "productprice":
  {
    "RETRY_INTERVAL": 28800,
    "EXPIRATION_DATE": 57601,
    "MAX_RETRY_COUNT": 3
  },
  "productstock":
  {
    "RETRY_INTERVAL": 28800,
    "EXPIRATION_DATE": 57601,
    "MAX_RETRY_COUNT": 3
  },
  "sent_to_remote":
  {
    "EXPIRATION_HOUR": 1
  }
}
```

Example for product settings when product count is between 100–10,000:

```
  ...
  "product":
  {
    "RETRY_INTERVAL": 28800,
    "EXPIRATION_DATE": 57601,
    "MAX_RETRY_COUNT": 2
  }
  ...
```

If product count is between 100,000–1,000,000:

```
  ...
  "product":
  {
    "RETRY_INTERVAL": 57600,
    "EXPIRATION_DATE": 105200,
    "MAX_RETRY_COUNT": 4
  }
  ...
```

**For example:** If a product hits an error while sending to Hepsiburada (missing stock, price data, incomplete mapping, not found, or no response from Hepsiburada within the `sent_to_remote` time), the record is penalized under the current failed integration settings and will not be resent during the penalty window. Additionally, `BatchRequest` entries awaiting remote response that exceed `sent_to_remote.EXPIRATION_HOUR` without a reply are automatically marked fail. This prevents errored or unresponsive operations from blocking healthy records.

## <mark style="color:red;">4. Category Tree Retrieval and Attribute Creation for Sales Channel</mark> <a href="#id-3znysh7" id="id-3znysh7"></a>

The category tree is pulled based on the **Category Ids** added within the sales channel.

Once the category tree is pulled into Omnitron, it can be viewed by selecting **Hepsiburada** under **Sales Channels**, and then navigating to the **Category Management** section.

<figure><img src="https://2911598027-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FlQinVPnOffBiOp126ldR%2Fuploads%2Fgit-blob-17dc176465d3801feedfd1d1897bf66b698ec8d9%2F5.png?alt=media" alt=""><figcaption></figcaption></figure>

Once this process is successfully completed (it can be tracked through logs), the flow that retrieves the attributes will be triggered. After the attribute-related processes are finished (for example, the **Brands flow** has been successfully executed), the next steps can proceed.

## <mark style="color:red;">5. Marketplace Mapping</mark> <a href="#id-2et92p0" id="id-2et92p0"></a>

Once the category tree retrieval step is completed, the user must perform category mappings through the **Mapper**.

The **Akinon Mapper** function in Omnitron allows users to configure and manage the attribute values of the products they want to sell on marketplace sales channels according to the marketplace requirements. Additionally, it provides the ability to check whether the attributes and their values are correct before the products go live for sale.

<figure><img src="https://2911598027-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FlQinVPnOffBiOp126ldR%2Fuploads%2Fgit-blob-1389a8dcd9a1d2b94a3bf7e341f5d8cc027d5ff8%2F6.png?alt=media" alt=""><figcaption></figcaption></figure>

![](https://2911598027-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FlQinVPnOffBiOp126ldR%2Fuploads%2Fgit-blob-351a21edf8a003c8b3edb498ef2b8e922aa09dd6%2F7.png?alt=media)

You can find the detailed documentation regarding the **Mapper** and the necessary configurations to be made in the **Mapper** in [Mapper](https://app.gitbook.com/s/IbwGN7KwvYi0iLbjtnXz/omnitron/sales-channels/sales-channel-settings/how-to-manage-marketplace-mapping-in-omnitron) tutorial.

## <mark style="color:red;">6. Adding Products to the Category Tree</mark> <a href="#tyjcwt" id="tyjcwt"></a>

Products must be added to the relevant category tree on the Hepsiburada side. Each product should only be added to one category. Otherwise, an error may occur during submission on Hepsiburada.

<figure><img src="https://2911598027-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FlQinVPnOffBiOp126ldR%2Fuploads%2Fgit-blob-5e001079da97893b951b75c61a993a69b4595e5b%2F8.png?alt=media" alt=""><figcaption></figcaption></figure>

{% hint style="warning" %}
The number of photos for the products to be sent must not exceed 10.
{% endhint %}

## <mark style="color:red;">7. Screen Overview</mark> <a href="#id-3dy6vkm" id="id-3dy6vkm"></a>

When the Hepsiburada marketplace application is installed on the relevant brand's Omnitron, it will appear as **Hepsiburada** in the left-side menu.

![](https://2911598027-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FlQinVPnOffBiOp126ldR%2Fuploads%2Fgit-blob-4248e251b55a03e0d7e8b989a15488409f0d998d%2F9.png?alt=media)

### 7.1. Dashboard Screen <a href="#id-1t3h5sf" id="id-1t3h5sf"></a>

The dashboard data related to the Hepsiburada marketplace application is available on this screen.

![](https://2911598027-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FlQinVPnOffBiOp126ldR%2Fuploads%2Fgit-blob-0113f5a646fceb298628ebecfc22498945da17f0%2F10.png?alt=media)

1. **TOTAL SKU IN CATALOG**\
   The number of SKUs of type “simple” and with active status that are included in the relevant catalog.
2. **NUMBER OF SKUs ON SALE**\
   The number of SKUs that have been sent to the marketplace and are currently on sale.
3. **TOTAL SKU DIFFERENCE**\
   The number of SKUs that are included in the catalog but are not on sale in the marketplace.\
   This section compares the products considered saleable in Omnitron with those listed in the marketplace.\
   In this comparison, products that have a price in Omnitron, stock greater than zero, a category, a product image, and are listed in the catalog are taken into account.
4. **NUMBER OF SKUs WITH PRICE DIFFERENCES (CORRECTED)**\
   The number of SKUs with price differences between Omnitron and the Marketplace.\
   If a price discrepancy is detected, a separate task is executed to correct the differences.
5. **TOTAL STOCK IN CATALOG**\
   The total stock quantity of all products in the Marketplace catalog.
6. **TOTAL STOCK ON SALE**\
   The total stock quantity of products that are currently on sale in the marketplace.
7. **TOTAL STOCK DIFFERENCE**\
   The stock quantity of products that are in the catalog but not listed for sale in the marketplace.
8. **NUMBER OF SKUs WITH STOCK DIFFERENCES**\
   The number of SKUs with stock differences between Omnitron and the Marketplace.\
   If a discrepancy exists, a separate task is executed to resolve the differences.

### 7.2. Monitoring Screen <a href="#id-4d34og8" id="id-4d34og8"></a>

The screen where logs and reports are located.

<figure><img src="https://2911598027-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FlQinVPnOffBiOp126ldR%2Fuploads%2Fgit-blob-11c2c775be2d039e1b791b43d867fda8f2cead6a%2F11.png?alt=media" alt=""><figcaption></figcaption></figure>

#### **7.2.1. Log Screen** <a href="#id-2s8eyo1" id="id-2s8eyo1"></a>

The logs of the flows are located on this screen.

<figure><img src="https://2911598027-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FlQinVPnOffBiOp126ldR%2Fuploads%2Fgit-blob-29c9738b642bb09381773c5a71f785d36685b4c8%2F12.png?alt=media" alt=""><figcaption></figcaption></figure>

* **Category Node**\
  The flow that pulls the full category tree structure, based on the main categories defined in the channel settings, into Omnitron.
* **Category Attribute and Values**\
  The flow that pulls category attributes and their values defined in the channel settings into Omnitron.
* **Default Attributes**\
  The flow that prepares predefined fields (e.g., remote\_id, title, etc.) for the mapping process during product submission.
* **Product Create**\
  The flow that sends newly entered products in Omnitron to the marketplace.
* **Product Update**\
  The flow that sends updated products in Omnitron to the marketplace.
* **Product Delete**\
  The flow that removes products deleted from the Omnitron catalog from sale in the marketplace.
* **Stock**\
  The flow that sends updated stock information of products with stock changes in Omnitron to the marketplace.
* **Price**\
  The flow that sends updated price information of products with price changes in Omnitron to the marketplace.
* **Order Create**\
  The flow that pulls orders from the marketplace into Omnitron.
* **Order Update**\
  The flow that updates the order status, invoice, and tracking number in the marketplace based on changes in Omnitron.
* **Order Cancel**\
  The flow that updates the status in Omnitron for orders canceled in the marketplace.
* **Order Refund**\
  The flow that updates the status in Omnitron for orders refunded in the marketplace.
* **Updated Orders**\
  The flow that updates the status in Omnitron for orders whose status has changed in the marketplace.
* **Split Packages**\
  The flow that sends package-splitting requests from Omnitron or another OMS system to the marketplace.
* **Approve Refunds**\
  The flow that sends approved refunds in Omnitron to the marketplace.
* **Reject Refund**\
  The flow that sends rejected refunds in Omnitron to the marketplace.
* **Unpacked Orders**\
  The flow that pulls broken/corrupted packages from the marketplace and performs cancellation in Omnitron.
* **Compare Attributes**\
  The flow that updates the category attribute statuses in Omnitron based on changes in the marketplace.
* **Update Warehouse**\
  In order for OMS to be able to send warehouse update requests, this field must be set to true (enabled).

#### **7.2.2. Reports Screen** <a href="#id-17dp8vu" id="id-17dp8vu"></a>

This is the reporting screen for products that have been added to the catalog in Omnitron but have not been listed for sale on Hepsiburada, showing discrepancies between the price and stock information on Hepsiburada and the data in Omnitron.

<figure><img src="https://2911598027-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FlQinVPnOffBiOp126ldR%2Fuploads%2Fgit-blob-69698c90898cfded544f306aad2b2d7fad0553e7%2F13.png?alt=media" alt=""><figcaption></figcaption></figure>

### 7.3. Alarm Screen <a href="#id-26in1rg" id="id-26in1rg"></a>

**Creating Alarms and Notifications**\
Marketplace Dashboard is an advanced automation platform designed to simplify e-commerce integrations. Alarms and notifications play a vital role in informing users about critical events such as integration errors, data delays, and successful completions. With real-time alerts, users can quickly detect and resolve integration issues, ensuring the smooth operation of e-commerce processes. This, in turn, contributes to delivering the best shopping experience to end customers.

**Benefits of Alarms and Notifications**

* **Real-Time Issue Detection:**\
  Alarms instantly detect integration errors, ensuring accurate data flow between systems.
* **Proactive Issue Resolution:**\
  Alarms enable timely intervention in integration-related problems, minimizing downtime and operational impact.
* **Enhanced Data Integrity:**\
  Alarms help prevent data delays or disruptions, supporting consistent and accurate data processing workflows.
* **Optimized Customer Experience:**\
  Quick resolution of integration issues ensures that order, inventory, and product information stays up-to-date at all times, offering customers a seamless shopping experience.
* **Improved Operational Efficiency:**\
  With alarms keeping users informed about critical events, they can focus on strategic tasks instead of constantly monitoring for issues.
* **Data-Driven Decision Making:**\
  Alarms provide valuable insights that help optimize integration processes, supporting better-informed business decisions.
* **Reduced Downtime:**\
  Early detection of issues minimizes system outages and helps prevent revenue loss.
* **Customizable Alerts:**\
  Akinon Marketplace Dashboard offers flexible alarm customization to suit specific business needs.
* **Seamless Cross-Platform Communication:**\
  Alarms facilitate communication and synchronization between different e-commerce systems.

By leveraging alarms in the Akinon Marketplace Dashboard, users can effectively monitor and manage their e-commerce integrations—ensuring a reliable, efficient, and customer-centric shopping experience.

**Steps to Create Alarms and Notifications**\\

**Step 1: Accessing Alarm and Notification Settings**\
Marketplace Dashboard is not a standalone product accessed via a separate URL. To access the product, first navigate to the **Sales Channels** menu on the left-hand side of Omnitron. Then, click on the relevant marketplace and select **Marketplace Operations** from the expanded menu.

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXecMXqnwuKkD-RkCiY2eeJ_LaRO2Atg-djeJ_UGcItMR9WOxAXNv0oe8VcYWOy_SgrRep_4B-zEFr242fd8mps24ylfGvdZDv_c3kXqAT4nT6MKu1GpxpUqU_fgQx6GM9QIOJZZKQ?key=eUj7OYolNV8DpaLsUUdgCw" alt=""><figcaption></figcaption></figure>

**Step 2: Creating a New Alarm and Notification Rule**\
Click the **“+ New Alarm”** button located at the top right corner of the **Alarms** screen.

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXcV5Nq98e2rGMQAESuAtULCuQoRQRiLqFKV_YG2DzkzqJ6hT4nGrMiUxH_JGTmDO6odPCqOXZuKwoLT8jc3OVlpk2zLJwFoleBYIeUQqDpaiWWPidLCSJnNoYwkg_Ebu0Z8W9iKcQ?key=eUj7OYolNV8DpaLsUUdgCw" alt=""><figcaption></figcaption></figure>

On the settings page that appears, select a **Flow Name** from the dropdown list.

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXe2WSicYKQWU5VoShyLVEPvfUDghbs-Uo6Y3dLB0ufnUiugTRni12tx6kne5e8fHAdrZjBXt_78QY76bjCMMASa7RFwc85JpOBJZqd-cKcjh1vfRCj7-9yCyK5__vhrgVvC_fLG5g?key=eUj7OYolNV8DpaLsUUdgCw" alt=""><figcaption></figcaption></figure>

Configure the alarm conditions based on specific criteria such as error rate, flow duration, time interval, and metric value.

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXdmNzozbCy17yWRfdlJLJ3lM_b0jWttwpwwMbG3PJ5nraXpUCLS4-ErWURc1gbIiguavGgMpNJc7PjPEnOD3TWM3m20gK-GtimiodNn9gPDa2xtzZoim4Inti1XYywOIyKFGn9ruA?key=eUj7OYolNV8DpaLsUUdgCw" alt=""><figcaption></figcaption></figure>

Select a notification channel and add the email addresses of the individuals or teams who should receive the notifications. (There is no limit to the number of email addresses you can add.)

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXfoJEc_jd44pBvc6l8hzlyF-LU1Af_8yPirUmhm86MTCqiVRDMU_AMhBq5cGdtCeJYYzj9JOvHBxhRcVokNKmv9xryCJ6avhwIc1dTXGOJqMy4KIuJ2uQa-fWydRbHtmCDBkHSucg?key=eUj7OYolNV8DpaLsUUdgCw" alt=""><figcaption></figcaption></figure>

**Step 3: Saving the Alarm and Notification Rule**\
Once the alarm rule has been successfully configured, click the **“Save”** button to save the alarm.

With the power of alarms and notifications in the Akinon Marketplace Dashboard, e-commerce integrations become more efficient. Real-time monitoring allows immediate intervention in issues, ensuring data accuracy and delivering a flawless customer experience. Customizable alerts keep teams informed and enable data-driven decision-making.

**Error Rate:**\
If the number of errors within the specified time interval exceeds the defined limit, the alarm is triggered.

**Average Flow Time:**\
If the average processing time of a flow exceeds the defined duration within the specified time interval, the alarm is triggered.

### 7.4. Reject Refund Screen <a href="#id-6krolwwixv9" id="id-6krolwwixv9"></a>

With the **Refund Order** flow, return requests pulled from the marketplace are created in Omnitron with the status **OPEN**, and they appear on relevant screens for manual rejection.

If the requests reviewed on these screens are rejected, the **RejectRefund** flow sends the rejection reason, explanation, and any attached photos to the marketplace.

Return rejection operations are carried out through following screens.

<figure><img src="https://2911598027-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FlQinVPnOffBiOp126ldR%2Fuploads%2Fgit-blob-54b0c18a2267e18e9a53aca27682f26ecb00e72a%2Funknown.png?alt=media" alt=""><figcaption></figcaption></figure>

<figure><img src="https://2911598027-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FlQinVPnOffBiOp126ldR%2Fuploads%2Fgit-blob-453f832c13e26cab5f0980eb9e1d852743202308%2Funknown.png?alt=media" alt=""><figcaption></figcaption></figure>

<figure><img src="https://2911598027-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FlQinVPnOffBiOp126ldR%2Fuploads%2Fgit-blob-9e551e300ec062f6c19d4a9648b19ed773fc4a47%2Funknown.png?alt=media" alt=""><figcaption></figcaption></figure>

<figure><img src="https://2911598027-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FlQinVPnOffBiOp126ldR%2Fuploads%2Fgit-blob-61a433a64173342d8e92279e34e89d44e593562a%2Funknown.png?alt=media" alt=""><figcaption></figcaption></figure>

## <mark style="color:red;">8. Steps to Follow for Errors</mark> <a href="#id-35nkun2" id="id-35nkun2"></a>

The steps to follow for errors encountered in logs are as follows:

* The error **“Address is not valid. channel: 137 code: 137\_Merkez model: Township city id: .., city name: …”** indicates that the Township in the address data of the order needs to be mapped.
* The error **“Stock data not found”** shows that the product does not have stock data. Stock data needs to be added for the relevant product.
* The error **“Price data not found”** indicates that the product does not have price data. Price data needs to be added for the relevant product.
* The product trigger under the Dashboard is only for creating operations. If a product update is desired, it should be done via CSV by selecting the 'Update Product Version Date in Bulk' section in the top-right of the channel settings, then choosing 'Update by Uploading File.' For trigger operations, this document can be used: [**Flow Trigger Document**](https://docs.akinon.com/technical-guides/marketplace-dashboard/marketplace-dashboard-flow-trigger)**.**
* Stopping the shipment of faulty products or resending a product that couldn’t be shipped; Faulty products are attempted to be sent for a period based on the rules defined in the Failed Integration section of the channel settings. According to this rule, a manual trigger is required for products that have stopped being attempted. To remove products from penalties in this situation, go to the Omnitron settings in the right menu, select Sales Channels and the relevant channel. On the page that appears, click the 'Update by Uploading Files' button located to the left of 'Delete Bulk Failed Integration' in the upper-right corner to upload a CSV file.

<figure><img src="https://2911598027-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FlQinVPnOffBiOp126ldR%2Fuploads%2Fgit-blob-fc845e4e82b5371f8655e7d8d11671d4eb326e36%2F13.png?alt=media" alt="" width="375"><figcaption></figcaption></figure>

* If too many faulty products accumulate in the queue, since processing is done in batches of 50, the queue may not reach the subsequent products. There are two solutions for this:
  * The first solution is to immediately fix errors related to mapping, catalog, stock, price, etc., and then trigger the CSV upload.
  * The second solution is to adjust the Fail Integration settings in the channel settings with proper time intervals.
* For the "Failed to suggest product to catalog" error, if the issue is related to attribute values, the Category Attributes flow should be run to pull the current attribute values, and if necessary, the Compare Attributes flow should also be triggered.
* **The error "The relevant record is not in queue. the item may have been penalized or check product is saleable" received after product triggering:**
* **For the status/solution of orders that cannot be updated on the MPD side via the Order Update (send\_update\_orders) flow:**
  * If there is a return process opened/ongoing for the order, it will not be updated.
  * The tracking number value will only be populated if “Send Shipping Info” is actively marked. For details, please refer to the “Feature Flags” section.
  * The status of the order cannot be updated retrospectively. Therefore, manual intervention in the flows should not be done.

## <mark style="color:red;">9. Feature Flags</mark> <a href="#id-1ksv4uv" id="id-1ksv4uv"></a>

The frequency values are by default as shown in the table below. These values can be modified by the Marketplace team.

<table data-header-hidden><thead><tr><th width="171.37890625"></th><th width="445.3203125"></th><th></th></tr></thead><tbody><tr><td><strong>Flag</strong></td><td><strong>Description</strong></td><td><strong>Frequency</strong></td></tr><tr><td>get_orders</td><td>This flag allows the retrieval of packages from Hepsiburada to Omnitron up to 12 hours prior to the flow's runtime. Before activating this flag, the settings mentioned in the second section (Sales Channel Definition) such as <strong>Use Neighborhood</strong>, <strong>Send Shipping Info</strong>, <strong>Order Number Format</strong>, <strong>Use Channel Id In Address Mapping</strong>, <strong>Cargo Company Mapping</strong>, <strong>Use Cargo Label</strong>, <strong>Store Account Cargo Company</strong>, <strong>Automatic Packing</strong>, <strong>Billing Address Same As Shipping</strong>, <strong>Check Hepsijet Format Type</strong>, and <strong>Use Hb Tracking Number</strong> should be properly configured.</td><td>The process runs every 5 minutes.</td></tr><tr><td>get_cancel_orders</td><td>It ensures that the cancelled packages on the Hepsiburada side are retrieved to go back 12 hours from the runtime of Flow, and that a cancellation request is created in Omnitron with a maximum of 6 cancellation plan numbers. Before this flag is activated, the Cancellation Reason Id and Cancellation Mapping settings in the second heading above (Sales Channel Definition) should be properly configured.</td><td>It runs every 5 minutes.</td></tr><tr><td>get_refund_orders</td><td>It ensures that claims with the 'Refunded' status on the Hepsiburada side are retrieved, and the claim lines are fetched to create a refund request in Omnitron. Before this flag is activated, the Default Reason Id, Refund Reason Mapping, Refund Start Date, and Orders Refundable Days settings in the second heading above (Sales Channel Definition) should be properly configured.</td><td>It runs every 5 minutes.</td></tr><tr><td>send_update_orders</td><td><p>The order status in Omnitron—<strong>tracking number</strong>, <strong>invoice link</strong>, and <strong>update order statuses</strong> (delivered or not delivered)—is populated through this flow.</p><p>The <strong>tracking number</strong> value will be populated only if <strong>Send Shipping Info</strong> is set to <strong>true</strong>.</p><p>Before activating this flag, the <strong>Shipping Provider</strong> and <strong>Shipping Info</strong> settings under the second heading above (<strong>Sales Channel Configuration</strong>) must be properly configured.</p><p>This flow updates the invoice and order status.</p><p>The tracking number is sent only if <strong>Send Shipping Info</strong> is active.</p></td><td>It runs every 5 minutes.</td></tr><tr><td>split_packages</td><td>The necessary details can be found in the document at the link: Required actions and settings for the order splitting flow are explained in the <strong>Package Splitting Flow</strong> document.</td><td>It works through an outbound trigger sent by OMS from the outside.</td></tr><tr><td>delete_product</td><td>It ensures that products removed from the catalog have their stock set to 0 on the Hepsiburada side.</td><td>It runs every 5 minutes.</td></tr><tr><td>product_update</td><td>It ensures that the products requiring updates are sent to Hepsiburada. Before activating this flag, the <strong>Product Shipping Info Extra Data</strong> setting under the second heading (<strong>Sales Channel Definition</strong>) above must be configured properly.</td><td>It runs every 5 minutes.</td></tr><tr><td>product_create</td><td>It ensures that the products added to the catalog, along with their prices and stock, are sent to Hepsiburada. Before this flag is activated, the <strong>Buffer Stock</strong> setting in the second heading above (Sales Channel Definition) should be properly configured.</td><td>It runs every 5 minutes.</td></tr><tr><td>get_updated_orders</td><td>It ensures that orders with the 'Shipped' or 'Delivered' status on Hepsiburada are retrieved, going back 24 hours from the runtime of Flow, and updated item-wise in Omnitron. Before this flag is activated, the Cargo Company Mapping setting in the second heading above (Sales Channel Definition) should be properly configured.</td><td>It runs every morning at 06:00.</td></tr><tr><td>approve_refund</td><td>It ensures that the generated return request is approved on the Hepsiburada side.</td><td>It runs every 5 minutes.</td></tr><tr><td>price</td><td>It ensures that the product prices that need to be updated are sent to Hepsiburada.</td><td>It runs every 5 minutes.</td></tr><tr><td>stock</td><td>It ensures that the product stocks that need to be updated are sent to Hepsiburada. Before this flag is activated, the <strong>Buffer Stock</strong> setting in the second heading above (Sales Channel Definition) should be properly configured. If the stock data pulled from Omnitron contains maximumPurchasableQuantity in the extra_field, this information will be added to the stock data sent to Hepsiburada.</td><td>It runs every minute.</td></tr><tr><td>Reject_refund (This feature will be implemented in the future.)</td><td>When this flag is activated, it enables the rejection of cancellation requests listed on the Omnitron marketplace dashboard. Once activated, the process can continue by adding the reason for the rejection, a description, and image information on the panel.</td><td>It is done through the Marketplace dashboard.</td></tr><tr><td>unpacked_orders</td><td>It retrieves the damaged packages on the Hepsiburada side and performs the cancellation process on the Omnitron side. Before this flag is activated, the <strong>Cancellation Reason Id</strong> in the second heading above (Sales Channel Definition) should be configured.</td><td>It runs every 5 minutes.</td></tr><tr><td>send_cancel_order_items</td><td>Enables partial cancellations made in Omnitron to be reflected as partial cancellations on the Hepsiburada side. Before activating this flag, the <strong>Send Cancellation Reason ID</strong> setting under the second section above (<strong>Sales Channel Configuration</strong>) must be properly configured.</td><td>It runs every 5 minutes.</td></tr></tbody></table>

## <mark style="color:red;">10. Initial Hepsiburada Integration Setup Flow</mark> <a href="#w27ptprgb2nn" id="w27ptprgb2nn"></a>

![](https://2911598027-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FlQinVPnOffBiOp126ldR%2Fuploads%2Fgit-blob-6a67446a7f9607eecbed8443ad4ab44b1655d943%2F14.png?alt=media)

## <mark style="color:red;">11. Update Warehouse</mark> <a href="#id-update-warehouse" id="id-update-warehouse"></a>

This section contains a short user-facing explanation of the "Update Warehouse" feature

**What it does:** Allows OMS or connected systems to assign or update the warehouse information for a shipment package on the marketplace when a package update request is sent.

**How to enable:** Enable by configuring the OMS webhook in OMS settings so it sends package warehouse update requests to the Update Warehouse flow.

**Key requirements:** Make sure required channel configuration fields (for example, shipping address mapping) are correctly filled; missing or incorrect settings may cause the update to fail.

**Example Outbound Request**

Below is a representative JSON body sent by an external system (OMS / WMS etc.) to trigger a warehouse reassignment. Adjust field names only if your integration contract differs.

*Request Details:*

```
POST
https://{mp_frontend_url}/flow-trigger/{mp_frontend_url_slug}/update_warehouse
```

**mp\_frontend\_url:**\
Log in to <https://console.akinoncloud.com> using the credentials provided by Akinon. From the left main menu, select **Projects**.\
In the list that appears, click on the **Applications** link located above the relevant project:

![](https://lh7-rt.googleusercontent.com/docsz/AD_4nXcOQUL-1fBZplWJUtapPES2trbW8kV3nYGNeGWzitYMETGSR18YFWj5YABz8Df7XxrKxESBIJLVoMUM-vfHa8KC6aXVElVOYcXJFx1GGyi-t_FDD1sDPj6PHP8HsbYxmQHaZ_Kdsg?key=LLcRkA1S2VxqctBeD39gOw)

On the screen that appears, scroll down to the **Applications** list at the bottom of the page and select the marketplace application (e.g., N11).

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXe8aWyK7_MyXA6zYZgsysWvIM9LKbzCRlmMoV5Hj6R2RBQ0TMUgsU0R5v0IJpn1OOMMI9bP56E6ZCV0sH6k5u9m9AR9BPZjTN9yDuaPDFkUXzI6QSMoHqlhYKCdGNIO6SwJelUtFA?key=LLcRkA1S2VxqctBeD39gOw" alt=""><figcaption></figcaption></figure>

On the next screen, locate the URL field in the section shown below. The part of the URL in the format **“xxxxxxxx.lb.akinoncloud.com”** corresponds to the **`mp_frontend_url`** variable.\
Use only the **`xxxxxxxx`** portion as the value for **`mp_frontend_url`** (`{mp_frontend_url}.lb.akinoncloud.com`).

<figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXcX5TXdB-23yMtidxDONUudZn5gVEtTaJx81SAqlsnwkxC8NsvfB2yoo4CZYLg7LYfqKPPWg5F_1U3Rn93CkKU5oG0tX0WI29cZS_pqNEm2WTIzCtxqEQwmG56KEKLtQIEoyGIm?key=LLcRkA1S2VxqctBeD39gOw" alt=""><figcaption></figcaption></figure>

*Payload:*

```json
{
  "payload": {
    "order_number": "1231231231123",
    "stock_location": {
      "erp_code": "WH-EXP-TR-34"               
    }
  }
}
```

*Additional HTTP Headers:*

Omnitron token will be used to sending request:

```
Authorization: Token XXXXXXXXXXXXXXX
```

**Troubleshooting:** If the update fails, check the Monitoring / Logs screen for the relevant flow logs. Verifying the package identifier and channel settings typically resolves common issues.

* Ensure the channel's **Update Warehouse ID** option (if present) is set.
* Verify that the package update includes a package identifier and a mapped warehouse id in the channel configuration (the channel must contain the warehouse mapping used by OMS).
* If an update does not apply, first check channel settings and mapping, then review Monitoring / Logs for the Update Warehouse flow; contact the Marketplace/Integration team if the issue persists.
* Keep channel mapping names consistent and documented so OMS payloads match the expected channel fields.

This brief description provides the essential operational information; for debugging and detailed troubleshooting, consult the Monitoring logs and the channel configuration.
