Akinon Release Notes (04.27.2026)

Omnitron

circle-exclamation

Resolved Issues

Duplicate Product Objects Fixed in Channel Products Inserts Endpoint

  • In the GET /api/v1/channel/{channel_id}/products/inserts/ endpoint, an issue where the same product object was returned multiple times in the response has been resolved. Each product object is now listed only once in the response, ensuring data integrity and consistency in the endpoint's output.

Variant Attribute Consistency Validation Added for Offers Under the Same Simple Product

  • When a revision received via Seller Center was accepted, the offer was being updated while the parent simple product remained unchanged, resulting in sibling offers with conflicting variant attributes under the same simple product. To address this, the existing validation in product management has been extended to compare the variant attributes of all offers under the same simple product. If an inconsistency is detected when adding or updating an offer, the system now raises an exception, ensuring that all offers under a simple product maintain consistent variant attributes.

New Features

Loyalty Refund Management Pages

  • A new configuration area has been introduced under Sales Channel > Sales Channel Settings > Loyalty Refund Settings to support more flexible loyalty refund scenarios. Two new pages are now available:

    • Loyalty Account Labels: Define and manage loyalty account labels

    • Loyalty Refund Rules: Configure refund rules based on different conditions

  • The feature enables multi-loyalty refund flows, allowing refunds to be distributed across multiple loyalty accounts based on defined rules. Provides improved flexibility for advanced loyalty program management and refund handling.

AI-Powered Search – Suggest Search Plan with AI

  • A new “Suggest Search Plan with AI” feature has been added to the Search Plans page in AI-Powered Search. With this capability, users can automatically generate search plan suggestions based on the most searched Search Results. The AI generates recommendations including keywords, search queries, filters, and sorting types, allowing users to review and optionally edit these suggestions before adding them to their search plans.

Enhancements

B2B Quotations Improvements

  • The B2B Quotations page has been enhanced with the addition of a “Channel Name” filter and a corresponding “Channel Name” column, allowing users to more easily filter and track quotations across different sales channels.

Commerce Access Control & Validation

  • Validation has been introduced for required Commerce configurations such as username and password. When these credentials are missing, users are restricted from accessing Commerce-powered pages via Omnitron, and a clear warning message is displayed to guide them.

AI-Powered Search Export Capability

  • Export functionality has been added to the Search Results, Keyword, and Search Plans pages within AI-Powered Search. Users can now export data in “CSV” and “XLSX” formats, enabling easier analysis and external reporting.

Transaction Filter Enhancement

  • The Transaction page now includes a “Return Back” option in the Transaction Type filter, allowing users to more precisely filter and monitor return-related transactions.

Widget Management Table Improvements

  • The Widget Management page has been updated with sortable “Created Date” and “Modified Date” columns. This improvement allows users to organize and manage widgets more efficiently based on their creation and last update times.


Commerce

circle-exclamation

Resolved Issues

Order Listing Performance Optimization

  • Resolved an N+1 query bottleneck on the user orders endpoint. By implementing advanced prefetch strategies for stock and price lists, database query counts were reduced by approximately 84%, significantly decreasing page load times for customers with extensive order histories.

Category Node Update Query Refactoring

  • Fixed a performance issue where updating category nodes triggered redundant database requests for each localized URL. The update logic has been shifted to a batch processing model, ensuring stable performance during large-scale catalog management operations.

Product Indexing Task Efficiency

  • Addressed an N+1 query issue within the background product indexing service. Relationship lookups for attributes and parent products are now handled via optimized select-related queries, preventing worker timeouts and ensuring faster search index updates.

Loyalty Card Gateway Error Handling

  • Implemented graceful error management for scenarios where the promotion gateway is not configured or active. The system now prevents 500 internal server errors by validating gateway existence before processing loyalty interactions, returning user-friendly status responses instead.

External Messaging Service Login Resilience

  • Enhanced the push notification gateway to gracefully handle login failures from external providers. The system now logs connectivity issues as warnings rather than allowing unhandled exceptions to crash background notification tasks, ensuring higher overall system reliability.

CRM Sync Data Type Validation

  • Resolved a type error in the bulk CRM update service that caused crashes when processing single user identifiers instead of lists. The task now standardizes input formats, ensuring reliable user data synchronization across all integration scenarios.

Internal Network Location Lookup Filter

  • Fixed a recurring error in the location management service triggered by internal or private IP addresses. The service now identifies and filters out non-public IP ranges before querying external GeoIP databases, eliminating millions of unnecessary error logs.

Product Deletion URL Conflict Management

  • Updated the product deletion workflow to handle Pretty URL conflicts more effectively. When a product is deactivated, potential URL overlaps with sibling variants are now logged as warnings rather than critical errors, preventing integration blockages during catalog cleanups.

Basket Offer Creation Attribute Safety

  • Resolved an "AttributeError" occurring during the automated creation of basket offers when conditional data was missing. The service now includes fallback mechanisms to ensure discount items are processed correctly even when specific session metadata is absent.

Multi-Region 3DS Redirect Logic

  • Fixed a domain mismatch issue in multi-region checkout flows where 3D Secure authentication would incorrectly redirect users to the default domain instead of their local region. Redirection URLs are now generated dynamically based on the initiating request's domain.

Mobile and Web Variant Selectability

  • Resolved a synchronization issue affecting variant selectability in both mobile applications and web interfaces. Corrections in the variant tree logic ensure that color and size options are accurately displayed as selectable based on real-time availability.

New Features

Multi-Credential Subscription Gateway Support

  • Introduced a modular subscription architecture allowing a single commerce instance to support multiple external subscription providers with distinct credentials per region. This enables global brands to manage localized newsletter and user registration workflows seamlessly within one unified structure.

Loyalty Rewards Support for Payment REST APIs

  • Enhanced the payment integration layer to support reward and point-based queries through standardized REST APIs. This update allows customers to view and utilize their loyalty balances during the checkout process when using modern payment gateway protocols.

Dynamic Extraction Strategy for Special Pages

  • Upgraded the special page model to support dynamic product extraction strategies. Administrators can now override hard-coded default listing rules via a dynamic setting, allowing for more flexible merchandising on campaign and landing pages without requiring code changes.

Enhanced SKU Selection for Static Merchandising

  • Empowered category managers with full control over static product sorting. The system now allows the manual selection and prioritization of any SKU within a model, regardless of whether it is marked as the primary listable variant, providing total freedom in visual merchandising.

Legacy SSO Backend Decommissioning

  • Performed a major cleanup of unused Single Sign-On (SSO) backends and related legacy code. This structural refinement reduces technical debt, simplifies the authentication codebase, and improves overall system maintainability.


OMS

circle-exclamation

Enhancements

Shipment Tracking Synchronization Performance

  • A validation mechanism has been added to prevent the same barcode from being used in more than one package or more than once within the same request during the packaging process. This feature can be enabled or disabled via configuration and does not affect existing system behavior.

Package Cancellation Source Tracking

  • A cancellation_source field has been added to packages to record the reason behind each cancellation (e.g. customer request, out-of-stock replan, system sync). This makes it easier to distinguish cancellation types in reporting and downstream integrations.

Cargo Label Query Fix for Akinon Shipments

  • The cargo label query in AkinonShipmentClient was using the package number instead of shipment_id. This has been corrected, resolving cases where labels could not be fetched.

Trendyol Cargo Label Fetched from Omnitron

  • OmnitronShipmentClient now supports a fetch_label configuration option. When enabled, the shipping label is retrieved from Omnitron's shipping info rather than generating a generic HTML label — ensuring the correct Trendyol carrier label is always used.

Location Deactivation Blocked When Linked to Active Scenario

  • A validation check has been added so that deactivating a stock location assigned to an active fulfillment scenario is now blocked with a clear error message, preventing accidental misconfiguration.

MultiCancellation - Duplicate Package and Rollback Crash Fixed

  • Missing a guard for already-cancelled packages, and rollback_to_previous_states had a method name typo that caused a runtime crash on packages with transfer orders. Both have been fixed — the cancellation flow is now stable and free of duplicate package creation under race conditions.

MultiCancellation - Concurrent Cancellation Plans for the Same Order Now Serialized

  • The Redis lock used during cancellation was scoped per plan, meaning two plans for the same order could run simultaneously and process the same package at the same time. The lock is now scoped per order, so concurrent plans are serialized while plans for different orders continue to run in parallel.

MultiCancellation: Row-Level Lock Added to Package Queries

  • Active package queries in complete_cancellation_plan now use SELECT FOR UPDATE, preventing two concurrent threads from reading and processing the same package simultaneously — eliminating duplicate package creation in high-concurrency scenarios.

PackageSyncOmnitronStatus Works for All Package States

  • The command that syncs a package's status to Omnitron was previously limited to waiting_remote_action and cancellation_waiting states. It now works for all valid package states, giving operations teams the ability to recover any out-of-sync package regardless of its current state.

Split Package Flagging and API Filtering

  • Packages identified as split during fulfillment are now tagged with split_package: true in their metadata. The package list API has been extended to support dynamic JSON field filters, so split packages can be queried directly via ?extra_information__split_package=true.

Address Setup Supports Country-Based Filtering

  • The address setup service now accepts a country_code parameter, scoping the sync check and migration to a specific country's data. This allows teams to set up or refresh address records for one country without triggering a full global sync.

Order Tracking Number Update Service

  • A dedicated service has been introduced to update the tracking_number field on an order, providing a reliable and consistent way to propagate tracking numbers to downstream integrations.

Reservation Anomaly Auto-Correction

  • A new periodic Celery task has been added that automatically detects and corrects reservation quantity mismatches across all reservation types — including discrepancy reservations previously excluded from the existing fix task. This reduces the risk of silent stock discrepancies accumulating over time.

Instaleap Webhook Processing Made Asynchronous

  • Instaleap webhooks were processed synchronously, causing delivery failures due to inter-service timeouts. Processing has been moved to asynchronous Celery tasks, ensuring reliable status updates for quick-commerce orders even under load.

Shipping Label Upper Barcode Configurable per Brand

  • A new per-brand configuration option has been added to hide the order-number barcode printed at the top of OMS shipping labels. Brands experiencing carrier misreads that cause shipments to be returned can now disable this barcode without affecting any other brand's label format.


Instore

circle-exclamation

Enhancements

Barcode List Overflow Fixed on Refund/Cancel Screen

  • The barcode display column on the refund/cancel screen was breaking the table layout when a product had a large number of barcodes (50+). Barcodes are now shown in a popup consistent with the package detail screen keeping the table intact regardless of how many barcodes a product has.

Monist Cargo Label Displaying Incomplete on Instore Screens

  • The Monist cargo label was rendering clipped on Instore screens while displaying correctly in OMS. The rendering container has been fixed so that Monist labels now appear fully and consistently across both interfaces.

Refund/Cancel Screen Button Visibility Controlled by Location Type

  • A new UI Setting has been added to show different buttons on the refund/cancel screen depending on the user's stock location type — store users see only the Request button, warehouse users see only the Start Return button. This is configurable per brand and does not affect brands that don't enable it.

Error Messages Now Displayed on Pay on Delivery and Order Selection Screens

  • API error responses on the Pay on Delivery and Order Selection screens were previously swallowed silently, leaving staff with no indication of what went wrong. Error messages are now shown directly on screen, making it easier to identify and resolve checkout issues.


Marketplace Dashboard

Enhancements

Product Create Task Update

  • The "Product Create" task on MPD-powered marketplaces now exclusively processes products that appear in Catalog Control. To be successfully created, a product must meet the following conditions:

    • The product must be included in the Stock and Price List

    • The product must have a Category assigned

    In summary: Catalog Control = the queue for the Product Create task. If a product is not being created or does not appear in the queue, Catalog Control should be your first point of investigation.


Seller Center

circle-exclamation

Resolved Issues

Other Cargo Selection Issue

  • Resolved a critical error where 'Other Cargo' selections failed to update correctly in the system or user interface. Previously, the system displayed incorrect values or didn't register new selections upon submission, causing data integrity issues. The corrected logic now ensures all 'Other Cargo' inputs are accurately captured, validated, and consistently reflected across the system.

New Features

Multiple Package Status Selection

  • Sellers can now select and filter multiple package statuses simultaneously on the Packages page. This enhancement makes it easier to manage large volumes of packages and quickly locate items in different shipment stages. Multiple package status can be seen in the pages related to Orders and Packages modules.

Slider-based View for Offers

  • The Approved Offers page has been enhanced with a new slider-based view, allowing sellers to review and navigate approved offers more conveniently. Additionally, the Pending Offers page has been redesigned with a step-by-step interface, providing a clearer and more guided offer review and approval process.

Email Masking

  • Email masking has been enhanced to ensure more secure visibility of customer email addresses while maintaining access for authorized users. For more details, please refer to the tutorialarrow-up-right.

Rejected Offers Filters

  • Sellers can now more precisely identify and examine problematic or unsuccessful offers, thanks to an enhancement in the Rejected Offers filtering functionality. You can access this feature via Offers > Rejected Offers.

Enhancements

The Category and Attribute Mapping Refinement

  • The Category and Attribute Mapping page under Settings > Attribute Category Mapping is now fully responsive. This enhancement ensures a more consistent and user-friendly experience, regardless of the screen size or device used.

Revision Error Messages

  • Revision error messages now include explanatory tooltips, allowing users to better understand issues and take corrective action faster. Filter can be used in the Products > Offer Actions > Rejected Offers page.


App Maker

circle-exclamation

Mobile

New Features

Platform-Specific Icon Config

  • Users can now configure iOS and Android icons independently under ios.icon and android.icon. The top-level icon.image remains required as the shared base icon and continues to work as before if you use the same icon on both platforms, no changes are needed. Platform-specific fields override the top-level config for their respective platform.

Example:

Action Required

  • If you are using platform-specific icon fields (darkImage, tintedImage, foregroundImage, monochromeImage), move them from the top-level icon object to ios.icon or android.icon in akinon.json.


iOS 26 Liquid Glass app icon (iOS Only)

  • ios.icon.image now accepts an .icon bundle created with Apple Icon Composer.arrow-up-right The build script copies the bundle to the correct Xcode location and registers it in project.pbxproj automatically.

Example:

  • When using a .icon bundle:

    • darkImage and tintedImage are ignored

    • Appearance variants must be defined within Icon Composer

circle-exclamation

Action Required

  • No action is required. You do not need to update your icon configuration, asset catalog, or build settings. This change only applies if you adopt Apple Icon Composer to produce a .icon bundle for iOS 26 Liquid Glass.


If a user is shopping on the mobile website while the mobile app is also installed, universal deep links cause the app to intercept navigation including the post-3D Secure checkout redirect. The app opens but cannot show the order success page because session lives in the browser, not the app.

When a deep link arrives from a browser, Android attaches the originating browser's package name to the intent. The framework now reads this value and, for URLs that match patterns you configure in deepLinkConfig.openWithBrowser, reopens the URL in that same browser instead of handling it as an in-app navigation.

To resolve this, configure the patterns below.

Configuring openWithBrowser

Add entries to the openWithBrowser array in src/integrationMaps/deepLink.js. Each entry needs a pattern (regex tested against the sanitized URL path) and an optional redirect.

Example:

  • pattern regex string tested against the path portion of the incoming URL. The first matching entry wins.

  • redirect optional. When provided, this URL is opened in the browser instead of the original deep link URL. Useful when the deep link itself is an internal callback that shouldn't be visited directly in a browser.

  • When no entry matches, or when the browser package name is not present (e.g. the link was opened from outside a browser), the deep link is handled with the normal in-app navigation flow.

  • This behavior is Android only. IOS does not attach browser package information to universal links.

Last updated

Was this helpful?