Additional Controls
IsActive, publish dates, inventory, and other product visibility controls
Beyond the main assortment mechanisms, Omnium provides several additional controls for fine-grained product visibility management.
IsActive Flag
The most fundamental visibility control is the isActive flag.
Product Property
Filtering Behavior
| Setting | Behavior |
|---|---|
filterByActiveAsDefault: true | Product search defaults to isActive = true |
filterByActiveAsDefault: false | All products shown unless filtered |
API
The isActive property is always indexed, meaning you can filter by isActive = false to find inactive products.
Publication Dates
Control when products become visible and when they should be hidden.
Date Properties
| Property | Type | Description |
|---|---|---|
published | DateTime? | When the product becomes visible |
stopPublished | DateTime? | When the product should be hidden |
discontinued | DateTime? | When the product was discontinued |
Example
Publication Logic
A product is considered "published" when:
isActive = truepublishedis null ORpublished <= nowstopPublishedis null ORstopPublished >= now
Use Cases
Pre-Launch Products:
Product exists but won't appear until June 1st.
Time-Limited Products:
Product visible only during promotional period.
Phasing Out:
Product marked discontinued, will be hidden after March 1st.
Product Status
Beyond IsActive, products can have a status field for workflow management.
Status Property
Common Status Values
| Status | Description |
|---|---|
Draft | Work in progress, not visible |
Review | Pending approval |
Approved | Approved but not yet published |
Published | Active and visible |
Deleted | Soft-deleted |
Search Filtering
Configuration
Define available statuses in tenant settings:
Inventory-Based Visibility
Control visibility based on stock levels.
Inventory Properties
| Property | Type | Description |
|---|---|---|
isInStock | bool | Whether product has available inventory |
inventoryStatus | string | Status like "OutOfStock", "LowInStock", "HighInStock" |
Search Parameters
Inventory Status Values
| Status | Description |
|---|---|
OutOfStock | No inventory available |
LowInStock | Below threshold |
HighInStock | Above threshold |
Local Products
Products can be marked as "local" to specific stores.
Enabling Local Products
Product Property
Access Control
When isLocalProductsEnabled is true:
- Local products are only visible to users with access to the associated stores
- Non-local products follow normal visibility rules
Tags and Exclusions
Products can have tags that affect visibility.
Tag-Based Filtering
Special Flags
| Property | Type | Description |
|---|---|---|
isNotRatable | bool | Exclude from rating systems |
excludeFromPromotions | bool | Exclude from promotional displays |
isExcludedFromAnalytics | bool | Exclude from analytics (e.g., gift cards) |
Tenant Settings Summary
All visibility-related settings in tenant configuration:
ProductSettings
Effect Matrix
| Setting | When Enabled |
|---|---|
filterByActiveAsDefault | Default search shows only active products |
isAssortmentStoreIdRequired | Products must have matching storeIds |
isAssortmentCodesRequired | Products must have matching assortment codes |
requireProductMarket | Products must have marketIds to be searchable |
isLocalProductsEnabled | Local products restricted by user store access |
Search Request Parameters
Complete list of visibility-related search parameters:
| Parameter | Type | Description |
|---|---|---|
isActive | bool? | Filter by active status |
storeId | string | Filter by store |
marketId | string | Filter by market |
customerId | string | Apply customer restrictions |
assortmentCodes | List<string> | Filter by assortment codes |
filterByInStock | bool | Only show in-stock products |
productStatus | List<string> | Filter by status values |
tags | List<string> | Include products with these tags |
excludedTags | List<string> | Exclude products with these tags |
ignoreCustomerAssortment | bool | Bypass customer restrictions |
isAssortmentCodesRequired | bool? | Override tenant setting |
Filter Combination Logic
All visibility filters are combined with AND logic:
Best Practices
Layered Visibility
Use multiple controls for different purposes:
- IsActive: Master on/off switch
- Published/StopPublished: Temporal control
- Status: Workflow management
- Assortment: Channel/customer control
Performance Considerations
- Use
filterByActiveAsDefault: trueto avoid scanning inactive products - Index frequently-filtered fields as Keywords
- Use date ranges sparingly in large catalogs
Audit Trail
Key fields for tracking visibility changes:
modifiedtimestampmodifiedByuser- Product event log (if enabled)
Troubleshooting
| Problem | Cause | Solution |
|---|---|---|
| Product not visible anywhere | isActive = false | Set isActive = true |
| Product appeared then disappeared | stopPublished date passed | Update or remove stopPublished |
| Product not visible despite being active | Multiple filters not passing | Check all visibility properties |
| Can't find product in admin | filterByActiveAsDefault enabled | Search with isActive: null |
| Product visible when it shouldn't be | Date filter not applied | Verify date formats and timezone |
