Omnikyo/Help Center
Reference

Products fields, filters and limits

This page lists every product field, filter, sortable column, limit and validation rule.

বাংলায়: এখানে পণ্যের সব ফিল্ড, ফিল্টার, সাজানোর উপায়, সীমা এবং যাচাইয়ের নিয়ম দেখানো হয়েছে।

Where to find it: Sidebar › Products › All products list

Product fields and edit rules

FieldTypeMax lengthRuleShown on list
TitleText—Required; at least 1 character. Error: "Give the product a name."Yes (left, main)
DescriptionRich text—Optional; shown on your store.No
SKUText24 charactersAuto-filled from title until you edit it. Must be unique. Error: "SKU "X" already exists. Please use a unique SKU."Yes (sub-line on list)
StatusDropdown: Active, Draft, Archived—Active by default. On edit, Archived appears only if the product is already archived or you archived it.Yes (colored pill)
PriceCurrency ৳—Required; must be ≥ 0. Error: "Price must be non-negative" (create) or "Price cannot be negative" (edit).Yes (right)
Compare-at priceCurrency ৳—Optional; must be ≥ 0 if set. Error: "Compare at price cannot be negative". Shows as a percentage discount when above the price.No
Cost per itemCurrency ৳—Optional; must be ≥ 0 if set. Error: "Cost price cannot be negative". Used to calculate margin.No
CategorySelect—Optional; single choice from your catalog. Must create categories under Catalog first.Yes (list)
Product typeText with suggestions—Optional; free text. Suggestions come from other products.No
VendorText with suggestions—Optional; free text. Suggestions come from other products.No
TagsChips8 tags maxOptional; up to 8 tags per product. Case-insensitive deduplication.Filterable
WeightNumber—Optional; in kilograms (kg). Used for courier charges.No
BarcodeText—Optional; ISBN, UPC, GTIN or your own barcode. Not validated — any text accepted.No
Page title (SEO)Text70 charactersOptional; defaults to product title. Character counter shown in editor. Shown on Google search results.No
Meta description (SEO)Text160 charactersOptional; defaults to first 160 characters of description. Counter shown in editor. Shown on Google search results.No
URL slugText (auto)—Generated once from the title at create time; never changes on rename. "Made from the title when the product is created."No

Variants and options

  • Options per product: up to 3 (Size, Color, Material, Style)
  • Variants per product: unlimited
  • Variant SKU: auto-generated as {base-sku}-{option-parts} or manually edited. Max 24 chars.
  • Option presets: Size → S M L XL XXL (and aliases like "Small", "Extra large"); Color → Black/White/Navy/Grey/Beige/Maroon/Olive; Material → Cotton/Linen/Polyester/Wool/Denim
  • SKU size codes: XS, S, M, L, XL, XXL, XXXL mapped from names like "extra small", "med", "x large"

List columns

ColumnShowsSortableHideableDefault
CheckboxRow selection—NoYes
ProductThumbnail (or grey icon); name; "Show variants" / "Hide variants" chevron; sub-line "N variant(s)" or SKU or "No SKU"YesNoYes
StatusColored pill: Active (green), Draft (amber), Archived (grey)YesNoYes
Inventory"N in stock"; "N in stock for M variants"; red "Out of stock" (≤0); "at N locations" when multi-locationYesNoYes
CategoryCategory name or "(Uncategorized)"NoNoYes
Price৳ amount with no decimals; variant parents show "৳min – ৳max" rangeYesNoYes
TypeProduct type textNoYesNo
VendorVendor textNoYesNo
Source"Omnikyo" (manual) or "Shopify"NoYesNo
UpdatedRelative time ("2 hours ago")YesYesNo

Note: Type, Vendor, Source and Updated are defined as hideable but no column toggle is currently shown on this page.

Filters and URL parameters

FilterURL paramValuesNote
SearchqTextMatches product name, SKU or description (case-insensitive substring). Debounced 300 ms.
Statusstatusall active draft archivedMultiple statuses can be selected (one value at a time in URL, the UI shows a pills row).
Stockstockin low outIn stock > 0; Low stock 1–5; Out of stock ≤ 0. For variant parents, sums all variant stock.
CategorycatCategory ID or noneSingle choice. "Uncategorized" (none) and an actual category are mutually exclusive.
Product typetypeText (facet value)One or more types (derived from up to 5,000 products, cached 60 s).
VendorvendorText (facet value)One or more vendors (derived from up to 5,000 products).
TagstagsComma-separated listMultiple tags — a product must have all selected tags to match (AND logic).
Sourcesourcemanual shopifyManual (created in Omnikyo) or Shopify (synced).
No photophoto=none—Checks image_url IS NULL.
No categorycat=none—Uncategorized products.
Facets (Type, Vendor)——Lazy-loaded on first filter popover open, cached 60 s, sourced from up to 5,000 top-level products.

Filter reset: The filter popover footer has a Reset button to clear all selections.

Deep links: All filter state is preserved in the URL (q, status, cat, source, type, vendor, mode, stock, photo, tags, sort, dir, page, size).

Sort options

ColumnURL paramDirections
Product name (default)sort=nameAscending (A–Z) / Descending (Z–A)
Pricesort=priceAscending / Descending
Stock quantity (Inventory column)sort=stock_quantityAscending / Descending
Statussort=statusAscending / Descending
Createdsort=created_atAscending / Descending
Updatedsort=updated_atAscending / Descending
SKUsort=skuAscending / Descending

Direction URL parameter: dir=asc (default) or dir=desc.

Pagination

SettingValue
Default page size20 rows
Available sizes10, 20, 50, 100
Server-sideYes; pagination state stored in sessionStorage["products-page-pagination-v2"]
Return logicReturning from the product editor lands on the same page (page number is remembered). If the page no longer exists (filters changed), you land on the last valid page.

Constants and limits

LimitValue
SKU max length24 characters
SEO title70 characters
SEO meta description160 characters
Photo alt text200 characters
Tags per product8 maximum
Options per product3 maximum
Photo upload size20 MB each
Accepted photo typesJPEG, PNG, WebP, GIF, SVG, AVIF
Search debounce300 milliseconds
Facets scan limitUp to 5,000 top-level products
Facets cache60 seconds
Photo undo window6 seconds
Complementary productsUp to 50 per product (gated feature)

Validation error messages

Exact error messages shown on save (from server validation):

FieldError conditionMessage
NameEmpty"Name is required"
PriceNot a number"Price must be non-negative" (create) / "Price cannot be negative" (edit)
Compare-at priceNot a number or < 0"Compare at price must be non-negative" / "Compare at price cannot be negative"
Cost priceNot a number or < 0"Cost price cannot be negative"
Stock quantityNot an integer or < 0"Stock cannot be negative"
StatusInvalid enumactive / draft / archived
Photo URLNot valid URL"Must be a valid URL"

Stock on a product varies by location setup:

Single location (or no locations set):

  • Stock on hand (simple products): integer ≥ 0; required at create, optional on edit.
  • Per-variant stock: integer ≥ 0; default from parent, then copied when variants are created.
  • On hand by location (simple multi-location): one editable row per active location, plus read-only rows for inactive locations still holding stock. Must be whole numbers; validation error: "{location}: enter a whole number of 0 or more."

Multi-location:

  • Individual per-location stock rows are edited on the Inventory page, not in the product editor.
  • The editor's variant stock becomes read-only and shows a breakdown popover on click.
  • Starting/new products show "Save the product first; then set stock per location" (disabled field).

Stock visibility:

  • List: Shows aggregate "N in stock" or "Out of stock" (≤ 0).
  • Details modal: Aggregated per location if multi-location; sub-lines show "N on hand · N reserved".
  • Never shown on the product editor: Reserved, Damaged, Available — those are inventory-only.

Other ways people ask this

  • পণ্যের সীমা
  • কত ভেরিয়েন্ট হতে পারে
  • SKU খোলাফল কিভাবে
  • field validation error
  • ফিল্ড সর্টিং
  • এসকিইউ ইউনিক হওয়া লাগে
  • variant limit
  • পেজ সাইজ কিভাবে বদলাই
  • filter url parameter
  • বারকোড লিমিট
  • product slug কি
  • option preset কি
  • stock per location

Checked against the product on 2026-10-02.