UltraCart platform updates for April 2026 focus on three big themes: a rebuilt StoreFront Visual Builder font picker, cleaner ad-platform signal for auto-order rebills, and durable cross-domain attribution on Safari via server-side Facebook cookies. Auto orders, BigQuery, Klaviyo, and the AI Report Builder all moved forward as well.
Integrations
Klaviyo
- SMS subscription state preserved: the
KlaviyoProfile.Subscriptions.smsfield type was incorrectly bound to a Twilio voice class, which caused SMS subscription state to drop on every profile round-trip. The field is now correctly typed and SMS opt-ins survive. - List-aware return-cart subscribe: a new optional
returnCartListIdconfig field letsKlaviyoSendReturnEmailPostProcessorcall the list-aware subscribe endpoint, so Klaviyo applies the list's own single-opt-in setting instead of the account-default double-opt-in. SMS subscribe behavior also improved when no list ID is provided. - Transactional response shape: new
EmailTransactionalandSmsTransactionalshapes were added to match Klaviyo's current API response.
Fulfillment
- LifeFile: outbound requests now send
recipientType=patient, and HTTP errors flow into integration logs so merchants can see them without contacting support. - ShipStation: Unicode characters are now stripped from merchant notes, eliminating a common cause of failed ShipStation pushes.
StoreFront Visual Builder
Modernized Font Picker
The per-element font picker has been rebuilt. Existing pages keep working as-is, so there's no migration to worry about.
- Center-screen modal: name search, category chips (Sans, Serif, Display, Handwriting, Monospace), script filter, source filter, and sort by Alphabetical, Popular, or Newest.
- Live Google Fonts catalog: ~1,500 fonts pulled directly from Google and cached for 7 days with background refresh, so the picker stays current as Google adds new families.
- Live previews: each row renders the family in its own typeface using the widget's actual rendered text, so you see the font as it will appear on your page.
- Modern system font stack:
system-ui,ui-sans-serif,ui-serif,ui-monospace,ui-rounded, plus Georgia, Tahoma, Trebuchet MS, Palatino Linotype, Garamond, Impact, and Comic Sans MS. - Recently used: a per-user "Recently used" group is pinned to the top of the picker.
- Trigger button preview: the right-rail trigger displays the chosen family name in the picked weight and style, doubling as a live preview, with a source badge and an "Overriding theme font" hint that includes a reset link.
- Typekit deprecation: Typekit fonts are now badged "Typekit (legacy)" since Adobe is sunsetting the service. No new selections are offered.
CodeMirror Integration
- Syntax-error save block: Save is now blocked when the editor detects syntax errors, in both Velocity and JavaScript widgets.
- Script widget: JS syntax highlighting and live JSHint linting, with script-tag stripping.
- Velocity widget: mixed HTML+Velocity highlighting via overlay mode, with live error markers from a
velocityjsparser plus a block matcher.
Editor Modal Overhaul
- Backdrop click only closes the modal if both mousedown and mouseup originate on the backdrop (no more accidental closes when you drag-select text inside the modal).
- Consistent Save/Cancel footer across all editor types.
- Dark-themed modals with header bars, dynamic titles, and explicit close buttons.
- White Redactor toolbar with proper alignment.
Editor & Sidebar
- Item ID rename is now tolerated by
ContainerManagerinstead of breaking the editor state. - Sidebar improvements, including a sidepanel sticky-header close fix and removal of orphan settings during element-settings save.
- Survey.js: fix for saving the email collected from the survey.
Item Image Gallery v2
- Reduced console-log noise.
- Item-variation multimedia selection improvements.
- Performance improvements.
Item Variations
- Hide pricing on selected variations: new option to suppress price display on chosen variations.
Checkout Elements
- Shipping 3rd-party account number: new display option in checkout, with recalculation on blur and a cart-update trigger when used.
- One-per-customer validation: now runs after PayPal approval but before charging, closing a window where the check could be bypassed.
MyAccount Auto Order Components
- Skip-next-shipment button: new action element to skip the next shipment on an auto order, with expanded support inside the MyAccount Auto Order modal.
- MyAccount Auto Order Modal: lazy rendering setup for faster first paint.
- New elements:
MyAccountAutoOrderCancelFormandMyAccountAutoOrderCancelReasonSelect. - MyAccountCondition / MyAccountAutoOrderCondition: when true, can hide content. Useful for personalizing the customer self-service portal.
Order Management
Auto Order Enhancements
- Cancel reason required: the cancel flow now requires a cancel reason code when cancelling from the search-result list, so reporting on cancel reasons stays clean.
- Cancel-event detection: improved detection of when a direct update should fire a cancel event, eliminating a class of silent-cancel bugs.
Replacement Shipments & AR Billing
- Replacement shipment lineage: replacement shipments now track a pointer back to the original order, making it easier to audit the full history.
- Update-billing AR path: full activity logging on the linked auto order, plus an attempt-counter reset when CS clicks "Send Update Email" so customers stuck at the 3-attempt fraud cap can be unblocked. Merchant notes now appear on the previously silent attempt-limit and fraud-score block branches, so you can see exactly why a charge stopped.
Item Management
- Inactive kit components highlighted: the item editor now visually flags inactive components inside a kit, so misconfigurations are obvious before a customer hits them.
- One line per unit: unit-related fields throughout the item editor now render one line per unit for clearer editing.
- Save and reload: reliability improvements in the Item Editor's save-and-reload cycle.
Communications & Marketing
Auto-Order Rebills as Distinct Ad Events
Rebills no longer fire the same purchase event as new orders. This eliminates inflated headline purchase counts and gives ad optimizers a much cleaner signal, so your acquisition campaigns will stop double-counting recurring revenue.
- Pinterest: rebills fire
RecurringSubscriptionPayment. The UA/IP guard was relaxed for server-generated rebills. - Snapchat: rebills fire
CUSTOM_EVENT_1. - TikTok: rebills fire
RecurringSubscriptionPayment. - Twitter: rebills are no longer sent.
twclidis absent on rebills and Twitter offers no event-id segregation, so suppression is the cleanest option.
Server-Side Facebook Cookie Management
- Cross-domain handoff:
fbcandfbpparameters are now handled during the storefront-to-checkout crosslinking step, preserving attribution across domains. - Facebook API v24: upgraded from v23 to v24.
- Server-set cookies:
_fbcand_fbpare now set viaSet-Cookieresponse headers in the StoreFront and checkout, instead of client-side JS. - Safari ITP impact: Safari cookie lifespan is extended from the 7-day ITP JS cap to 90 days via server-set cookies. That's a major win for attribution accuracy on Safari traffic.
Coupons & Promotions
- New coupon type:
percent_off_items_with_minimum_item_amount. Apply a percent discount to items only when the item subtotal hits a minimum threshold. Available via the REST API.
BigQuery & Data Warehouse
- Integration logs in the warehouse: integration logs now stream to the data warehouse (multiple iterations through April), so you can join third-party integration activity with your other warehouse tables.
- JSON and BYTES column types: BigQuery schema generation now supports JSON and BYTES, removing a long-standing limitation when modelling complex nested or binary payloads.
Reporting & Analytics
- Cohort Customer Report: SQL fixed to handle properties that now live on auto orders, so cohort segmentation works correctly for subscription customers.
AI Report Builder
- Estimated bytes returned: result responses now include an estimated bytes figure so you can scale up resource limits when a query needs more headroom.
- Integration logs table: the AI Report Builder now supports the integration logs table, so you can ask natural-language questions about third-party integration activity (failed pushes, error rates, retries) without writing SQL.
UltraCart Analytics
- Expanded bot detection: patterns updated based on a month of real user-agent data, reducing bot pollution in your analytics.
- Global config variable: migrated from the
ucaconfigelement to a global window variable for SEMRush compatibility. - Multiple UTM groups: now supports multiple UTM groups, so you can track several campaign attribution layers simultaneously.
- Tuple parsing safety: percent-encoding is sanitized before tuple parsing, preventing edge-case parse errors.
REST API & Webhooks
Auto Order
- cancelAutoOrderItemByReferenceOrderId: a new method that supports appending items on the cancel request. Useful when a cancel needs to ship a replacement or one-time add-on at the same time.
Checkout
- Enhanced CDN for images: checkout image delivery moved to the enhanced CDN for faster page loads.
Customer
- E.164 phone fields: E.164-formatted versions of billing and shipping phone numbers are now included in customer records, supporting more accurate phone-number searches across regions.
Order
- Test payment routing:
heldOrderAddItemsAndReleaseandheldOrderReleasenow consider the merchant's test payment configuration when routing.
That's April. The headline themes are cleaner ad attribution, a craftsman-grade rewrite of the SFVB font picker, and richer warehouse + AI reporting on integration activity. View all platform updates for the full history of what's shipped on UltraCart.