Small Interface Polish
Six small fixes across the app.
Product sheet: smoother tab switching and scrolling. Switching between the Key Info, Images, and Relationships preset tabs on the product sheet, and scrolling down a catalog with large product photos, used to stutter — every cell was being rebuilt on each tab change and every image in the row was being decoded whether it was on screen or not. Tab switches, quickview open and close, and vertical scrolling now stay smooth: cells reconcile in place instead of remounting, images decode only when they come into view, and the Images column caps at four thumbnails with a +N overflow label so a row with dozens of photos no longer pulls all of them at full resolution.
Order detail tables sort. Two tables on the order detail view sort now. Order items sort by item, price, discount, quantity, or total; fulfillment items sort by product or quantity. Blank values move to the bottom, equal values keep their original order, and sorting is disabled while you are in bulk edit or single item edit, since those modes need to hold the original row order.
Sidebar collapse preference sticks. The sidebar’s collapsed or expanded state sticks across page loads. Toggling by click or with the ⌘\ shortcut saves the choice right away, and returning from a narrow viewport — where the sidebar auto-collapses — restores the last preference you set rather than an older one. The ⌘\ shortcut is disabled inside Settings, where the sidebar always stays expanded.
Date picker: sized right and stays on screen. The date picker’s day-number grid is the same size as the weekday row and the month/year caption above it. Day numbers had been sitting a step larger than everything around them since the shared calendar was inheriting the browser’s default text size, so the fix touches every date field in the app — Purchase Order Issue Date, Shipment Received Date, and every other picker built on the shared calendar. The popover also no longer sits flush against the edge of the browser window. Opening a date field close to the right edge — the Received Date on the Shipment quickview was the reported case — had been clipping the popover off screen; it now keeps eight pixels of padding from the edge on both sides, so even the wide three-month range picker stays fully visible down to iPad mini widths.
Sales channel picker searches and no longer stops at twenty. The sales channel dropdown used across the app only ever loaded the first twenty channels and had no search, so companies with more than that could not pick their older channels from anywhere — and integration data mappings pointing at those channels rendered a raw ID instead of the channel name. The picker is now a searchable list. It shows the twenty most recent channels by default, searches by name against the server, and always resolves the currently selected channel by ID so the name shows up even when the channel sits outside the loaded page or has been archived. Integration Data Mapping tabs read the channel name straight off the mapping, so archived channels and channels past the old cap render with their real names in place of the ID they used to show.
Product confirmation modals: body copy is the right size. The body copy in the Clone Product, Archive Product, and Unarchive Product modals was rendering larger than the modal title above it. All three share one modal underneath, so the fix lands on all three at once. The description now uses the smaller size that matches the rest of the modal.