Critical ESHOPMAN Admin Bug: Date Filters Unusable with View Configurations

Understanding a Critical Date Filter Issue in ESHOPMAN Admin

The ESHOPMAN platform, designed as a powerful headless commerce solution integrated with HubSpot, provides extensive storefront management capabilities. However, a significant bug has been identified that impacts the usability of custom date filters within the ESHOPMAN Admin, particularly when the view_configurations feature flag is enabled. This issue directly affects how merchants and developers manage and analyze data, such as orders, within the HubSpot environment.

The Problem: Unreliable Date Filtering

This bug manifests in three key ways, severely hindering the ability to filter data accurately and persistently in any configurable DataTable with a date column (e.g., the Admin Orders list):

  1. Dropped Date Selection: When attempting to pick a 'Starting' date using the custom filter, the editor immediately closes, and the URL parameter for the date filter becomes empty (e.g., o_created_at={}). The selected date is not applied, and the filter chip becomes unresponsive.
  2. Incorrect Date Range Calculation: Even if a date range somehow gets applied, the 'less than or equal to' ($lte) parameter in the underlying Admin API request is incorrectly set to the local midnight of the picked end day. This effectively excludes the entire last day from the filter results. For example, picking October 2nd as both start and end dates (in a UTC+7 browser) sends a request like created_at[$gte]=2026-10-01T17:00:00.000Z&created_at[$lte]=2026-10-01T17:00:00.000Z, which yields zero results for October 2nd. The expected behavior is for the $lte parameter to cover the entire end day, such as 2026-10-02T16:59:59.999Z.
  3. Wiped Table State on Load: Any existing table state carried in the URL parameters (e.g., from a shared link, a browser reload, or navigating back) is wiped upon the page loading. For instance, a URL like /app/orders?o_order=-id&o_created_at={...} will be rewritten to /app/orders?o_order=-id, causing all previous filters to be lost and the default view to be applied.

Technical Details and Impact

This issue has been observed with ESHOPMAN Admin UI components and development versions of the platform, specifically when the view_configurations feature flag is active. The problem lies within the ESHOPMAN Admin UI's interaction with the underlying Node.js/TypeScript backend and the Admin API, particularly concerning how date parameters are constructed and how URL state is managed.

The core of the problem with date ranges can be seen in the API request:

created_at[$gte]=2026-10-01T17:00:00.000Z&created_at[$lte]=2026-10-01T17:00:00.000Z

This demonstrates that while the Admin API itself is capable of handling precise date ranges, the UI is failing to generate the correct $lte value (which should ideally be 23:59:59.999 of the end day, local time) and maintain the URL state.

What This Means for ESHOPMAN Users

For ESHOPMAN merchants managing their storefronts via HubSpot, this bug can significantly impede efficient order tracking, sales analysis, and general data review. Sharing specific filtered views with team members becomes impossible due to the URL state being wiped. Developers working with ESHOPMAN's Admin API and custom dashboards will also find this behavior problematic when trying to implement robust filtering solutions.

Expected vs. Actual Behavior

Users expect that picking a start and end day filters data from 00:00:00.000 of the start day through 23:59:59.999 of the end day (local time), and that these filters survive page reloads, shared links, and back navigation. The current actual behavior, however, leads to dropped selections, inaccurate results, and a frustrating loss of context.

The ESHOPMAN team is aware of this issue, and a resolution is critical for enhancing the platform's usability and ensuring a seamless experience for storefront management within HubSpot.

Start with the tools

Explore migration tools

See options, compare methods, and pick the path that fits your store.

Explore migration tools