> For the complete documentation index, see [llms.txt](https://docs.akinon.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.akinon.com/release-notes/2026/july/akinon-release-notes-07.20.2026.md).

# Akinon Release Notes 07.20.2026

## <mark style="color:$primary;">Omnitron</mark>

{% hint style="warning" %}
The following changes are available in **Omnitron FE versions later than** `v3.13.0`, **Omnitron BE versions later than** `v1.9.1` and **Omnitron AI versions later than** `v1.14.0`.
{% endhint %}

#### <mark style="color:red;">Resolved Issues</mark>

**Product Collection Listing Performance Improvements**

* Brands with large product catalogs were experiencing timeout errors when listing products available to add to a collection. A detailed performance review identified several inefficiencies in how this data was queried and processed, and all of them have now been resolved. As a result, the page loads reliably and noticeably faster, even for very large catalogs.

**AI Category Suggestion: Only Leaf Categories Will Be Suggested**

* The AI category suggestion feature could sometimes suggest a main category (one that still has sub-categories) instead of a leaf category. This has now been fixed, so the suggestions will always point to the correct leaf category.

**Marketplace Attribute Mapping: Names Are Now Unique Per Channel, Not Store-Wide**

* When creating an attribute mapping for a sales channel, using a name that was already used in a different channel was incorrectly rejected as a duplicate. This has been fixed so mapping names only need to be unique within their own channel, allowing the same name to be reused across different channels.

#### <mark style="color:red;">Enhancements</mark>

**External Search Extension Configuration**

* The `EXTERNAL_SEARCH_EXTENSION_CONFIG` Commerce dynamic setting now sends `extensions` as a list (array) of extension objects instead of a single dict, matching the expected schema. Existing external/similarity search configurations remain compatible.

  ![](/files/1k4KDvYfLvd0DpTZeQ8T)

**Multi-Select Feature Field in Product URL Settings**

* The **Feature** dropdown on the **Product URL Settings** page now supports multi-select values. Previously the page could not be opened when a configuration returned multiple values (e.g. `ascii_languages`, which holds a list of language codes). The frontend now correctly displays and handles multi-value configurations instead of failing.

  ![](/files/VQZPU4sRb377pI3OK6IE)

***

## <mark style="color:$primary;">Commerce</mark>

{% hint style="warning" %}
The following changes are available in **Commerce versions later than** `1.0.0`.
{% endhint %}

#### <mark style="color:red;">**Resolved Issues**</mark>

**Order Communications in Wrong Language**&#x20;

* Order confirmation emails, SMS messages, and thank-you pages were displayed in the default language instead of the customer's preferred language for orders created during a payment provider callback. Order communications are now delivered in the customer's selected language.

**Product Feed Redirect on Non-Listable Variants**

* Product feed URLs previously pointed to non-listable variants, causing unnecessary redirects when clicked. Feed URLs are now generated using the listable product's SEO-friendly URL while preserving the selected variant through query parameters, improving the click-through experience.

**Incorrect Price for Multi-Seller Products**&#x20;

* Search result pages could display the wrong price and offer for products with multiple sellers. The correct seller offer is now consistently shown, ensuring accurate pricing.

**Active Variants Hidden by Inactive Parent Product**

* Active product variants were incorrectly excluded from search results when grouped under an inactive parent product. Sellable variants now remain visible regardless of the parent product's status.

**Crash on Reserved Query Parameter Conflict**

* Category and search listing pages could crash when requests included query parameters with names matching reserved search parameters. The conflict is now handled correctly, preventing unexpected page failures.

**Checkout Error on Incomplete Promotion Data**

* A checkout error occurred when a third-party promotion returned a sample-product discount without an allowed quantity. This prevents checkout from failing due to incomplete promotion data.

**Race Condition on Simultaneous Favorite Removal**

* An error could occur when the same favorite product was removed by two simultaneous requests. This fix prevents race conditions from causing errors during concurrent favorite-removal actions.

**Missing Extra Fields in Address Migration**

* Customer address migrations did not persist the provided extra field values. The migration API now saves custom address fields correctly, preventing data loss.

**Missing Delivery Notification on Partial Shipments**

* Delivered-order notification events were not triggered when orders were fulfilled through partial shipments. Customers now receive delivery notifications correctly, even when their orders are shipped in multiple packages.

**Wrong Regional Price on Listing Pages**

* Product listing pages could display prices from another region when no price was defined for the current sales channel. Listings now show the correct pricing for the active sales channel.

#### <mark style="color:red;">New Features</mark>

**Cancel & Refund Guest Orders Directly from Tracking**

* Guest (anonymous) customers can now submit cancellation and refund requests directly from the order tracking page. Requests are automatically forwarded to the merchant's ERP, giving guest users the same cancellation and refund capabilities as registered customers.

**Protection Against Card-Testing Fraud**&#x20;

* A limit has been introduced for consecutive failed credit card attempts during checkout. This helps reduce card-testing fraud by preventing repeated validation attempts using stolen card information.

**Scale Search Traffic with a Dedicated Gateway**

* An optional high-traffic search gateway service has been introduced to handle search, listing, autocomplete, category, widget, and pretty URL requests before they reach the application. The gateway shares the existing data stores, forwards unsupported routes to the application, and is disabled by default, allowing search traffic to scale independently without increasing the load on the core application.

**Pay by Card Through Seamless PayU**

* Support for credit and debit card payments has been added to the seamless PayU integration, expanding the available payment methods during checkout.

**Check Out Faster with Apple Pay**

* Apple Pay is now supported in the seamless PayU integration, providing a faster and more convenient checkout experience for customers using Apple devices.

**Check Out Faster with Google Pay**

* Google Pay support has been added to the seamless PayU integration, enabling a quicker checkout experience for Android users.

**Now Accepting Visa Mobile**

* The seamless PayU integration now supports Visa Mobile payments, giving customers another convenient payment option.

**New OpenAPI Documentation for Admin APIs**

* OpenAPI documentation has been added for the following APIs to improve discoverability and simplify integration:
  * Product Management
  * Advanced Product Management
  * Basket Offers
  * Bulk Voucher Codes
  * Data Migration API

For implementation details, see the related [documentation](https://apidocs.akinon.com/commerce-openapis/admin).

#### <mark style="color:red;">Enhancements</mark>

**Separate Basket-Offer Price Field in Product Feed**

* The product feed now reports the basket-offer price in a dedicated field instead of replacing the sale price. This preserves the standard sale price while accurately exposing basket-level promotions.

**Session, User & IP Data in Search Requests**

* External search requests now include session, user, and client IP information in the request headers. This enables more accurate search usage and conversion analytics.

#### <mark style="color:red;">System Improvements</mark> &#x20;

**Dedicated Second-Level Cache Instance**&#x20;

* Added support for pointing the compressed second-level cache at a dedicated cache instance through environment configuration, so its traffic can be scaled separately. This was added to allow cache traffic to be scaled independently from the rest of the application.

**Faster Listing & Facet Search Queries**&#x20;

* Product listing and facet search queries have been optimized to reduce response times while returning accurate facet counts. These improvements deliver faster page loads and more reliable filtering.

**Faster, More Stable CI Pipeline**

* The continuous integration pipeline now builds dependencies once and reuses them across parallel test steps. In addition, an unstable test has been stabilized, reducing build times and eliminating false failures.

**Project Makefile for Common Commands**

* A project Makefile has been introduced to centralize frequently used development and operational commands, helping teams perform common tasks more efficiently and consistently.

**Smaller Container Image**

* The container build process has been optimized to exclude tests, documentation, and development files from the production image. This reduces image size and helps speed up deployments.

***

## <mark style="color:$primary;">OMS</mark>

{% hint style="warning" %}
The following changes are available in **OMS versions later than** `v1.0.1`.
{% endhint %}

#### <mark style="color:red;">Resolved Issues</mark>&#x20;

**PackageSyncOmnitronStatus Silently Skipping Packed Packages With Shipments**

* An issue causing the Package Sync Omnitron Status command to appear successful without actually cancelling the package has been resolved. When a package was in a packed state and already had a shipment associated with it, the underlying cancellation service was silently returning without performing any state transition — leaving the package stuck in "Packed All Items" while the command showed as completed. The command now raises a clear exception when the package cannot be cancelled, so operations teams are properly notified instead of the failure being hidden in the logs.

#### <mark style="color:red;">New Features</mark>

**Package Shipment Recreation Command**

* A new package command, “Recreate Shipment Of The Package”, has been introduced to handle scenarios where a package was assigned to an incorrect cargo company and needs its shipment regenerated. The command deletes the existing shipment and shipping label, then requests a fresh AWB and label from the cargo extension using the selected (or current) cargo company. It works for packages in packed, shipped, `delivery_failed`, and `attempted_delivery` states, publishes a new shipment event, and syncs the updated tracking number back to Omnitron where enabled. This eliminates the need for manual database intervention when a shipment must be recreated with a different carrier. For more information, see the related [documentation](https://apidocs.akinon.com/commerce-openapis/admin).

**Delete Shipment Support for Akinon Shipment Client**

* OMS can now remotely cancel a shipment that was previously registered with the Akinon shipping partner, as long as the package has not yet been picked up by the carrier. When the cancellation request is triggered, OMS sends an instruction to the shipping partner to remove the shipment on their side — freeing the package from its current cargo assignment so it can be re-processed (for example, reassigned to a different cargo company) without any manual intervention on the partner's system. If the shipment has already been collected by the carrier and can no longer be cancelled, OMS returns a clear error message explaining the reason, so operations teams know exactly why the action was not possible.

#### <mark style="color:red;">Enhancements</mark>

**Cross-Unit Product Replacement Support**

* The product replacement flow at the packaging stage has been extended to support replacements across different unit types — for example, replacing a product sold by weight (kilograms) with one sold by piece (quantity), or vice versa. Previously, these cross-unit replacement attempts were rejected because the required quantity information was not included in the replacement request. The system now automatically detects the unit type of the replacement product and completes the request with the correct information, allowing store staff to swap products across unit types without any manual workaround. Brands that use mixed unit types in their catalog can benefit from this improvement.

**Country Filter for Stock Location List API**

* The Stock Location list API now supports filtering by country in addition to the existing city and township filters. Brands operating in multiple countries can now query stock locations for a specific country directly via the API, streamlining regional operations and reporting workflows for multi-country deployments. The new filter is applied via the “country” query parameter using the country's ID. e.g. `GET /api/v1/oms/stock-location/?country=1`

**Cargo Label Refetch Extended to Tracking URL Changes**

* An earlier improvement ensured that when the shipping company assigned to a package changes, the cargo label is automatically refetched from the shipping integration — so packages always ship with the correct, up-to-date label. This same behavior has now been extended to cover tracking URL changes as well. When the shipping partner returns a new or updated tracking URL, OMS now processes the update instead of skipping it, and regenerates the package's cargo label to reflect the latest tracking information. This keeps the tracking information on the package's label consistent with what the shipping partner reports, without any manual refresh needed.

**Duplicate Package Creation on Rapid Webhook Retries Prevented**

* When Omnitron rapidly resent the same order update in quick succession (for example, during a retry burst), multiple copies of the same webhook could occasionally be processed at the exact same time. In some cases this resulted in duplicate packages being created and then immediately cancelled, leaving confusing entries in the order timeline. OMS now recognizes when it is already processing an update for a given order and safely skips any parallel copies that arrive at the same moment. This keeps the order timeline clean and prevents unnecessary background work.

***

## <mark style="color:$primary;">Instore</mark>

{% hint style="warning" %}
The following changes are available in **Instore FE versions later than** `v1.4.0` and **Instore BE versions later than** `v1.0.0`.
{% endhint %}

#### <mark style="color:red;">New Features</mark>

**Loyalty Card at Checkout with Points Redemption**&#x20;

* A new loyalty card widget has been added to the Instore checkout screen. Customers can now see their loyalty card and available point balance directly at checkout, and use their points on the current order. Applying points triggers an SMS verification code for security; once confirmed, the discount is applied and the order total updates immediately. Customers can also remove the applied amount at any time. If a customer doesn't already have a loyalty card, one is created automatically — so store staff don't need to take any extra step. Brands that wish to enable this can do so.&#x20;
* Loyalty card checkout shown on payment statement;

<img src="/files/Hl0a2aGMBz5Xz9xAcsw3" alt="" height="239" width="624">

* The entered loyalty score must be approved before it is applied;

<img src="/files/BNFvD0BezmrRDZkYAuzJ" alt="" height="245" width="624">

* When the confirmation code is entered incorrectly;

<img src="/files/thTZBQAuxZQ771RF8q3H" alt="" height="227" width="624">

* Loyalty points will be applied to the total payment after approval is received;

<img src="/files/i87AvfyOh6Kij1OA0fpP" alt="" height="248" width="624">

#### <mark style="color:red;">**Enhancements**</mark>

**Redesigned Group Product Detail Page with Individual Sub-Item Selection**

* The group product (set) detail page has been fully redesigned. Each sub-item in the set is now shown as its own card with image, name, price, and detailed attributes such as material, dimensions, and color — configurable per brand so each brand can highlight the details that matter most. Customers can select variants (e.g. color, size) for each sub-item, see the price and image update instantly, and add individual sub-items to the basket independently. The "Add Full Set" option continues to work as before. Brands that wish to enable this can do so. For more information refer to the [Group Product (Set Product) Experience](/tutorials/instore/group-product-set-product-experience.md) tutorial.&#x20;

<img src="/files/9CGPqWevGFKaGJYHHuV1" alt="" height="479" width="624">

**Hide Barcode List on Packaging Screen**

* A new configuration option has been added to hide the list of product barcodes shown during order packaging. This helps prevent store staff from accidentally using the wrong barcode when the list is visible on screen. Brands that wish to enable this can do so.

  <img src="/files/xlcSJvQFWrTxPwsFOOa2" alt="" height="312" width="624">

**Store and Staff Attribution for Customers Created via Instore**

* When a new customer is created through Instore, the system now records which store and which staff member registered them. This information is stored as part of the customer's profile attributes (user.attributes), alongside the existing "created via Instore" flag — making it possible for brands to track customer acquisition performance per store and per sales representative directly from customer profile data. Brands that wish to enable this can do so. For more information, please refer to the [Customer Registration & Schema](https://docs.akinon.com/technical-guides/instore/customer-registration-and-schema) guide.

***

## <mark style="color:$primary;">Marketplace Dashboard</mark>

#### <mark style="color:red;">Enhancements</mark>

**Amazon & Amazon SF – Missing Postal Code Correction in Order Address Data**

* Missing postal code information in Amazon order address data has been corrected for the affected brands. Previously, incomplete postal codes were causing address validation errors during order processing. With this fix, address data is now transmitted completely and orders are no longer blocked by address errors.

**Amazon & Amazon SF – Migration to New Order Service**

* The Amazon order and cancellation flows have been migrated to Amazon's new order service. A new configurable get\_discount\_amount option was also added, allowing discount amounts to be retrieved based on the channel configuration. Going forward, Amazon order and cancellation flows will run on the new order service.

**Amazon – HTML Invoice to PDF Conversion for Invoice Submission**

* Amazon invoice submission now automatically converts HTML-format invoices to PDF before sending, since Amazon only accepts invoices in PDF format. Invoices already in an accepted format continue through the existing flow unchanged. As a result, brands whose invoices are provided in HTML can now submit them to Amazon without errors.

**Hepsiburada – Automatic Product Update Trigger After Product Create**

* The Hepsiburada Product Create flow now automatically triggers a Product Update for successfully created products. Certain attributes, such as DispatchTime, cannot be sent during Product Create and previously required manual updating. With this improvement, these attributes are now updated automatically as soon as the product is created, without any manual action.

#### <mark style="color:red;">System Improvements</mark>&#x20;

**Hepsiburada – Category Attributes Flow Performance Improvement**

* The Hepsiburada Category Attributes flow has been optimized to support bulk writing of category nodes and attributes to Omnitron. This improvement significantly reduces the time required to complete category and attribute transfers, bringing the process down from approximately 7–8 days to a single day.

***

## <mark style="color:$primary;">Seller Center</mark>

{% hint style="warning" %}
The following changes are available in **Seller Center FE versions later than** `v0.8.139` and **Seller Center BE versions later than** `v1.3.0f0`.
{% endhint %}

#### <mark style="color:red;">Resolved Issues</mark>

**Dashboard Date Range Queries — Missing End-Day Records Fixed**

* Dashboard metric endpoints filtered by a date range excluded records created on the end date itself, because the end date carried no time component and was effectively treated as “midnight of the end day.”
* The date range filter has been corrected to include the full end day (through end-of-day), applied consistently and with timezone awareness across all affected dashboard metrics.
* Single-day queries (start = end) now return the expected data, and multi-day queries correctly include records from the final day of the range instead of silently omitting them.

**Order Rejection Deductions – Seller Package Rejection Reasons**

* On the Order Rejection Reasons page, via Settings > Order Rejection Deductions, admins can now mark which order rejection reasons apply to sellers, in addition to each reason's existing Active/Passive status.
* This lets MPO curate the exact list of reasons a seller can choose from.
* When rejecting a package, sellers now only see the reasons that have been marked for sellers, instead of the full list of order cancellation reasons used across the platform.
* This prevents sellers from selecting an unrelated or misleading reason (e.g. a customer-facing cancellation reason) when rejecting a package.
* Find more details in the [Seller Package Rejection Reasons](/tutorials/seller-center/managing-package-rejection-reasons-mpos-and-sellers.md) tutorial.&#x20;

<figure><img src="/files/Cx2HL1dj6d9XYniXgpAr" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/TY7ZnWcWtacFc3jUwAOp" alt=""><figcaption></figcaption></figure>

#### <mark style="color:red;">Enhancements</mark>

**Delivery Settings — Bulk Action Dropdown & Toast Feedback Improvements**

* The bulk "Activate/Deactivate" dropdown on the Delivery Settings page, via Settings > Delivery Settings, didn't specify which field it affected, and the resulting toast overlapped the **+ Add New Delivery Setting** button with a generic message.
* The dropdown label now reads "Operating Status: Activate/Deactivate" and shows "Activate/Deactivate operating status of N selected firm(s)."

<figure><img src="/files/Fwu4DpVU84EUgTyYpbsw" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/TEh63M0suQmiieA67jgr" alt=""><figcaption></figcaption></figure>

* The toast has been repositioned to the bottom-right corner and no longer blocks action buttons. It now shows a dynamic message such as "Operating Status → {Value}" or "{N} firms updated successfully".
* For the Easy Return Location field, it shows "Easy Return Location → {Value} updated successfully".

<figure><img src="/files/p9ciGBYvt2q5YKIW761J" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/1DZQBFtLlsac7sVMUTaz" alt=""><figcaption></figcaption></figure>

**Grade/Buybox Calculation — Catalog Accuracy & Historical Data Correction**

* Previously, products that were no longer part of a catalog could still be included in the Grade/Buybox calculation, which could produce inaccurate or misleading scores.
* The calculation has been corrected to exclude such products, so only items that are actually in the catalog are factored into the score, and it now runs far more frequently (once per minute) to keep results current.
* Historical scores have also been recalculated retroactively, so past and present Grade/Buybox scores are consistent with the corrected logic.

***

## <mark style="color:red;">App Maker</mark>

#### <mark style="color:red;">Platform</mark>

#### <mark style="color:red;">Resolved Issues</mark>

**Upgrade Helper now finds changelogs by version**

* Filtering changelogs by version rank returned nothing because the rank value was missing from the changelogs list response. The rank is now included, so version-based filtering works as expected.

**Cleaner organization user list for viewers without edit rights**

* When a viewer can't manage members, the list no longer shows an empty actions column — the column is hidden entirely instead of leaving a blank cell on every row.

**Tighter permissions on organization member actions**

* Edit and delete icons in the organization user list are no longer shown to anyone with generic write access. They now appear only for the organization owner, or for a super-admin working in Organization Mode.

{% hint style="warning" %}

#### ⚠️ Breaking Changes

You must update the CLI to 2.5.1 — this is mandatory.\
Older CLI versions are no longer compatible with the new sign-in flow: if you do not update, login will fail. Update to 2.5.1 before your next sign-in by running the install command below (new installs and upgrades through the install script deliver 2.5.1 automatically):

curl -s <https://abp.akinon.net/api/public/cli.sh> | bash
{% endhint %}

#### <mark style="color:red;">New Features</mark>&#x20;

**One-time passcode (OTP) verification at sign-in**

* The login flow can now challenge you for a one-time passcode sent to your email. Enter the code to complete sign-in, request a new one if it doesn't arrive, and codes expire after a configurable window for added security. Find more details about how [OTP sign-in](/tutorials/app-maker/getting-started/signing-in.md) works.

**Expandable, full-screen changelog viewer**

* Content-heavy changelog dialogs can now be maximized to fill the screen with a new expand toggle next to the close button, then restored back — making long release notes and diffs much easier to read.

#### <mark style="color:red;">System Improvements</mark>&#x20;

**Refreshed, easier-to-read Markdown rendering**

* Markdown content across the platform — including changelogs — received a styling and readability overhaul: clearer heading hierarchy and spacing, better-contrasting tables, blockquotes and inline code, more legible code and diff blocks, and links that now open in a new tab instead of navigating away.

#### <mark style="color:red;">Mobile</mark>

**Security**

{% hint style="info" %}
The following change is available in **App Maker Environment version** `env6.9.1+`
{% endhint %}

**Session Data Is Now Stored Encrypted**

* Session data is now stored encrypted on the device instead of as plain text, so customer session information is better protected.

**Action Required:** None.

{% hint style="info" %}
The following changes are available in **App Maker Environment version** `env7.1.1+`.
{% endhint %}

**Email Validation Hardened**

* An issue in the email validator that could slow down or freeze the app on certain inputs has been fixed. All standard email addresses continue to validate correctly. No action is required.

**axios Security Update**

* axios has been moved to a current, secure version with additional security fixes and React Native Blob support. The `request()` and `axiosInstance` API is unchanged; no action is required for projects that only use `request()`.

**Carousel Dependency Vulnerability Resolved**

* A security vulnerability in a dependency used by the `react-native-snap-carousel` component has been resolved. The carousel continues to work exactly as before; only the affected code path was replaced. No action is required.

#### <mark style="color:red;">New Features</mark>

{% hint style="info" %}
The following change is available in **App Maker Environment version** `env7.1.1+`.
{% endhint %}

**Hermes V1 Engine (Experimental)**

* The `hermesV1` field added to `akinon.json` enables the next-generation Hermes V1 engine. The field is optional and defaults to off.

**Action Required:** None — the field defaults to off.

{% hint style="warning" %}
Hermes V1 is experimental and the default behavior is unchanged. If you enable it, make sure to test your app end to end on both Android and iOS before release.
{% endhint %}

For all technical details, code examples, dependency tables, and the step-by-step migration guide, see [ABP](https://abp.akinon.net/).


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.akinon.com/release-notes/2026/july/akinon-release-notes-07.20.2026.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
