Miva 10.05.00 Release Notes

Released November 17, 2022

10.05.00 Resources (Release Date: 12/19/2022)

10.05.01 Resources (Release Date: 12/27/2022)

New Features & Improvements#

PageBuilder - PageBuilder is Miva’s native visual tool for building, launching, and managing website pages and content. PageBuilder is a marketing-focused content manager which empowers non-technical users to easily create a broad range of beautiful ecommerce site pages, without the need for a developer or knowledge of HTML. PageBuilder Features Include:

  • Live editing & Preview of page changes as they are made
  • 11 New Page Builder Components
  • Hero Banner
  • Hero Slider
  • Image Across
  • Text Banner
  • Text Area
  • Image & Text
  • Video
  • Product Carousel
  • Category Carousel
  • Featured Product
  • Rich Text Editor
  • Component Scheduling, Copy, duplicate, active/non-active and re-ordering
  • Layouts - New starting point when creating new pages. Ability to create your own layouts.
  • Site Preview at Future date & time
  • Easy access to edit SEO settings including URL, Title & Meta Tags
  • Staging environments and deployment tools via template branches

New Shadows Theme#

  • Refreshed User Experience including implementing a new Style guide for buttons, fonts and styles
  • Integration with PageBuilder default layouts + components
  • Restructured CSS to support CSS variables
  • Drops Support for IE 11

Subscription Out of Stock Handling & Notifications#

  • Features Include:
  • New store level settings to govern behavior when a subscription is out of stock
  • Scheduled Task will log subscriptions skipped when they are out of stock
  • Override options when subscriptions are processed manually: Override Out of Stock Handling and Process Out of Stock Notifications
  • New Out of Stock Email Template and Trigger
  • Subscription Inventory Projection Report: See projections of future inventory based on existing subscriptions

Separate Admin URL Domain Setting#

  • A new domain setting for “Secure URL for Administration Graphics” has been added. This sets the foundation for in the future to have Miva’s admin URL different than runtime.
  • This change isolates the PageBuilder in-admin Live Preview and leverages the web browsers native Cross-Origin security features
  • There is now a new PA-DSS checklist item, verifying that the admin URL is different than runtime

JSON API Updates#

New Runtime APIs for accessing product and category data across any page in Miva. These functions include features such as:

UPS Worldwide Economy#

  • Both Duties Paid and Duties Unpaid are supported.

  • Ability to add HS Tarif Code and Country of origin both globally and at the product level

  • Supports Real-time rates during checkout and in admin as well as shipping label generation
  • Must be contracted with UPS to show Worldwide Economy rates

Brand New Development Framework for Miva - Flex Components#

  • New architecture for building reusable User Interface components for Miva
  • Native Flex Components are implements as web components, enabling JavaScript as primary development language
  • Leverages flex.json configuration file to define properties
  • Available Properties Include:
  • Textbox, Textarea, Checkbox, Radio, select, color picker, date picker, date & time picker, image selector, product lookup, category lookup, link, text/icon editor, rich text editor, slider, distributed slider, group
  • Flex Components are importable and exportable which enables local development process

Copy Page & Copy Page Rules#

  • Copy any page to a new or existing page or layout
  • Create custom copy page rules to govern what is copied (default everything is copied)

New Module API Features & Functions#

New Miva Employee Admin User Type#

  • Any Miva Employees who creates an Admin user in store now has additional 2-Factor security requirements and will show a visual indicator in the Miva admin to identify them
  • Additional Requirements for these users include:
  • VerifyBrowser may not be disabled
  • Email address cannot be changed, is read only and must end in @miva.com
  • 2FA cannot be disabled
  • All standard Two-Factor authentication dialogs and controls for Miva Employee accounts are disabled since they are forced though a centralized Miva 2-Factor system
  • A “Miva” badge (Miva logo) is displayed next to user name in User List

Preview Site & Price Groups at a future date and time#

  • Template Branch Widget now allows you to preview any branch at a future date and time
  • This allows you to ensure scheduled components and price groups all work as expected ahead of time

New Clear Basket Action – CBSK External Refund Payment Module – Allows external systems (such has Netsuite) to push refund information back to Miva to ensure accurate revenue reporting from Miva. Custom Page Fields – Ability to create/view/update custom field data associated with pages, in addition to new functions to read/write custom page data. New Public Custom Field Flag – Determines if custom field is available in new runtime product/category JSON APIs Redis Page Caching now supports bzip2 compression for HTML to reduce the overall size of data store in memory (~80% reduction) but adds about ~3ms to each cached page load (to uncompressed the data) Runtime_PaymentMethodList_Load now has a helper function in runtime.js to make it easier to call on any page Shipping Method Rules now take into account discounts applied to the basket If a user with the Administrator privilege is created with an expiration date, that user can no longer self-extend or remove their expiration. Another Administrator user is now required to make such a change. As a result of the module API changes added for Store Utility Modules, both Manage Quotes and Review Baskets can be accessed without the admin user having full access to Utilities

Notable Bugs Fixed#

  • l.quote:items array not being reset between iterations on quote reminder/expiration emails
  • TaxJar: Any error returned from TaxJar in the scheduled task causes the scheduled task to exit
  • TaxJar: New transactions created after a refund transaction incorrectly uses the original transaction date
  • Subscriptions yet to be processed are included in the report data
  • PayPal CP – Recalculate taxes and update order total once full address is know
  • PayPal CP – Fixed Orders getting created with Missing address/email/phone information
  • MailChimp - Set MailChimp cookie with Secure flag
  • MailChimp - URL tracking parameters are now registered with Miva Cache Settings upon install so they are ignored from cache key
  • Template Based Feeds - note_count, dt_pwchg, tax_exempt, order_cnt, order_avg, and order_tot fields to the customer feed

Bugs Fixed#

Bug ID Component Description
MM-3614 Administrative Interface Adding a product with an attribute code that is too long caused multiple products to be added to the order. (mysql strict mode)
MM-8584 Administrative Interface Replace legacy page-based lookup screens with lookup dialogs
MM-11410 Administrative Interface Runtime error: relation “pages” does not exist
MM-11542 Administrative Interface Incorrect file path when creating a CSS/JS in a store with multiple branches
MM-11585 Administrative Interface SetEditorSupprtsFullScreenSave_Enabled is misspelled in MMTextEditorCustomElement
MM-11586 Administrative Interface MMSelectCustomElement can draw multiple MMSelect elements
MM-11587 Administrative Interface MMSelectCustomElement generates incorrect options
MM-11802 Administrative Interface MMDialog’s does not properly reset auto-height when existing fullscreen
MM-11814 Administrative Interface Adding a rule from the Copy Page dialog should refresh the list of rules
MM-11815 Administrative Interface Add implicit Copy Page Rule
MM-11820 Administrative Interface MMSelectCustomElement does not return created option in “add” function
MM-11826 Administrative Interface Js error when viewing the shipping label overlay
MM-11841 Administrative Interface Off by one rounding errors when calculating negative tax value for a basket level discount.
MM-11967 Administrative Interface Name field of “Add Product” is able to be occupied by more than 100 characters.
MM-12048 Administrative Interface Opening a runtime context from admin allows window.opener context to be run from runtime, allowing security vulnerabilities
MM-12110 Administrative Interface MMDialog: SetFullscreenEnabled_MaintainDialogIntegrity does not set fullscreen height on subsequent fullscreen starts
MM-12162 Administrative Interface MMImagePicker: Close “X” button no longer shows the icon
MM-12228 Administrative Interface Page Builder Preview Session Verification
MM-12331 Administrative Interface Create a login specific combined JS feature
MM-12415 Administrative Interface Users should never be able to update their own expiration date
MM-12439 Affiliates JSON_EarningList_Load_Query does not properly sort the Voided By column
MM-11651 Caching Subsystem Flush Cache fails if Store Settings are accessed through universal search
MM-11809 Copy Product Copy product fails to copy all custom fields in certain scenarios
MM-11360 Core JSON Content-Type charset in JSON should always be utf-8
MM-11440 Core JSON Include Part weight in Parts object in the OrderList_Load_Query JSON API response
MM-11490 Core JSON All JSON functions should output disp_order where supported
MM-11525 Core JSON JSON_ProductVariant_Insert should validate all user submitted data
MM-11530 Core JSON Callers of Store_Update_CacheSettings should not update g.Store
MM-11635 Core JSON JSON_ProductPriceGroupList_Load_Query does not properly sort the “type” column on PostgreSQL
MM-11834 Core JSON Include Part Cost in Parts object in the OrderList_Load_Query JSON API response
MM-11852 Core JSON Additional API functions for MMT
MM-11880 Core JSON JSON_Output should call miva_json_encode
MM-11922 Core JSON JSON_Search_Filter_Contains_Field does not properly search SUBWHERE fields
MM-11923 Core JSON Core JSON Custom Field Callback functions need to be updated to allow a list of allowed custom fields to be filtered/queried/sorted on
MM-11975 Core JSON Custom field plan generators should not limit which modules can use “multitext” custom fields
MM-12000 Core JSON JSON_OrderItem_OnDemandColumns does not output product_id
MM-12210 Core JSON Post 10.04.01 merge, JSON_Runtime_Product_Read needs to use Runtime_Product_InventoryFields_Read_WithInventorySettings
MM-12411 Core JSON JSON_Runtime_ProductList_Load_Query should support outputting subscription settings / terms as an ondemandcolumn
MM-12431 Core JSON Caching of runtime category and product list JSON function results
MM-12002 Core Runtime Runtime product list API function facet support
MM-12215 Core Runtime Move BasketDiscountTotal_Delete_All_Basket to Runtime_Basket_Empty
MM-12216 Core Runtime Move Basket_Update_SubCount into Runtime_Basket_Empty
MM-11317 Customers Password Last Changed is no longer visible on the Customer Dashboard
MM-11407 Customers From the Customer Dashboard tab, deleting the customer with no other customers on the store will produce a blank screen
MM-11654 Customers When deleting a customer from customer dashboard with other existing customers, admin returns to customer list instead of next customer dashboard
MM-11786 Customers Admin logging within Action_CustomerAddress_Insert doesn’t include the customer record
MM-11588 Database Layer Screen_StoreUtilityModuleLinkList Should check for an open store
MM-11772 Database Layer sNN_Basket/OrderDiscountOptions should use the sNN_Basket/OrderOption id column for its unique identifier
MM-12016 Database Layer DB_Filter_ISNULL should wrap expression in parenthesis when dealing with 2 or more expressions
MM-12166 Database Layer Add an index to the Bookmarks table that uses the disp_order column
MM-12286 Database Layer Image_Update_Dimensions fails to notify not_image modules of changed dimensions in certain scenarios
MM-12302 Database Layer SQL_Query_Index_OrderBy does not properly handle null_integer/number/double/bool columns
MM-11549 Discounting Subsystem When adding a coupon to a basket via Review Baskets, then adding a qualifying product in runtime, the discount is not removed
MM-12217 Facets Leakage of loaded facets in FacetList_Load_All_LowLevel_With_Query can result in fatal runtime errors
MM-9839 JSON API Add AllOrderPaymentList_Load_Query to JSON API whitelist
MM-11395 JSON API API Insert / Add functions should return the newly created record
MM-11593 JSON API JSON_StoreCountryList_Load_Query improperly references the result set disp_order value
MM-12101 JSON API PriceGroup and Coupon should output datetime fields using JSON_DateTime
MM-12212 JSON API ProductVariant_Insert and ProductVariantList_Load_Query output inconsistent
MM-11642 MMBatchList JS error in advanced search on the Template history for branch dialog batchlist.
MM-11875 MMBatchList MMList: Full screen mode is missing the close X on the exit fullscreen button.
MM-11965 MMDialog Customer payment card add/edit dialog gives generic, unhelpful error messages
MM-10692 MMList Incorrect Sort order when moving records with drag and drop
MM-11952 MMList MMList: Viewable Text Area column “View” buttons can be misaligned
MM-11874 MMMenuButton Runtime Branch Preview: Selection can get stuck in certain circumstances
MM-11114 Module: avatax AvaTax: When shipping price groups use a discounted charge for discount, a negative tax is applied
MM-12149 Module: avatax AvaTax advanced search “AvaTax From Country” is unusable
MM-12130 Module: braintree Mivapay reported error when Braintree credentials are incorrect is unhelpful.
MM-11550 Module: cmp-cssui-afflink Affiliate Sign-In Link code should only attempt to load the affiliate session if the affiliates program is enabled
MM-10705 Module: cmp-cssui-prodlist Add custom module validation to prodlist provisioning
MM-11836 Module: cmp-mv-flex Support for multiple CSS/JS files per flex component
MM-11837 Module: cmp-mv-flex Naming Terminology Change: Flex “Item” to “Flex Component”
MM-12343 Module: cmp-mv-flex FlexComponentAdd modifications for use in frameworks
MM-12345 Module: cmp-mv-flex Allow FlexComponentDelete to retain resources
MM-12447 Module: cmp-mv-flex Adding a Flex component should support existing inline resources
MM-12003 Module: cmp-mv-prodctgy-meta Product & Categories Fields should return the custom field type
MM-12015 Module: cmp-mv-prodctgy-meta sNN_METAXXX value/value_long columns should contain NULLs instead of empty strings
MM-11830 Module: cmp-mv-sequence Use TemplateManager_DateTime for sequence date comparisons
MM-11948 Module: customfields Fields set via Product/Category/Customer/OrderField_Value should update the in-memory cache of the existing product
MM-12030 Module: customfields XXXField_Update does not allow removing the custom field from a group
MM-12031 Module: customfields XXXField_Update does not allow changing the case of a field code
MM-12032 Module: customfields XXXField_Update does not delete field options when the field type changes
MM-12033 Module: customfields JSON_CustomFieldList_Load_Query outputs an unused field option “type” value
MM-12034 Module: customfields Module_Provision_Store_OrderField_Value incorrectly logs the order ID when an order value is set
MM-12185 Module: customfields Custom Field page values should be copied when the page is copied
MM-11504 Module: endicialabels Endicia shipping labels, Sign up for an ELS sandbox account link is dead.
MM-12360 Module: imagemanagement Check for Updated Images does not refresh image attributes on Image Management screen
MM-12361 Module: imagemanagement Generated images are not deleted from the server after using “Check for Updated Images”
MM-10704 Module: mailchimp Set MailChimp cookie with Secure flag
MM-10898 Module: mailchimp Register MailChimp URL tracking parameters with Miva Cache Settings
MM-11535 Module: mailchimp MailChimp tracking cookie doesn’t set an expiration time
MM-11957 Module: marketplaces ScheduledTaskOperationList_Load leaks operations across modules
MM-11200 Module: paypalcp PayPal Commerce Platform: MivaSQL bug causes UNIQUE constraint index error
MM-11812 Module: paypalcp PaypalCP orders created with missing address information during paypal checkout.
MM-12104 Module: paypalcp Modify OnApprove behavior to recalculate taxes with full address to fix tax discrepancy
MM-12369 Module: paypalcp PayPal Commerce Platform unnecessarily patches the PayPal order at checkout
MM-12372 Module: paypalcp PayPal Commerce Platform: Unable to clear PO box from shipping address once present in basket
MM-12398 Module: paypalcp PO Box exclusion is not enforced when using PayPal checkout
MM-11984 Module: productdata The generated custom field plan should not limit multitext custom fields to modules with an API version of 9.08 or higher
MM-11673 Module: qship ShippingModule_Description returns unencoded method name
MM-10392 Module: quote Add id column to sNN_QuoteOptions
MM-11321 Module: quote Manage Quotes: Multiple Quotes per basket should be supported
MM-11528 Module: quote Store Utility privilege should not be required to use the quoting portions Manage Quotes
MM-11626 Module: quote l.quote:items array not being reset between iterations on quote reminder/expiration emails
MM-11773 Module: quote sNN_QuoteOptionDiscounts can have duplicate index errors when multiple custom attributes exist
MM-11864 Module: quote Include Part Cost in Parts object in the QuoteList_Load_Query JSON response
MM-11866 Module: quote Manage Quotes should implement the cleanup_store feature
MM-11868 Module: quote Quote_DummyBasket_Cleanup doesn’t correctly delete the QuoteXBasket record
MM-11869 Module: quote Include Part weight in Parts object in the QuoteList_Load_Query API response
MM-11882 Module: quote Test Case C377062 - Request Quote tab on ABUS page has a blank template that can’t be edited
MM-12332 Module: quote Shipping method does not persist when reopening dialog in Manage Quotes
MM-12418 Module: readytheme ReadyTheme should not resize the images if the specified size matches the existing image
MM-11442 Module: report_geosales report_geosales, Fatal error when running a report with date range set to all dates
MM-11961 Module: report_sales Y axis labels not properly displaying the lower range in sales report
MM-11523 Module: report_subscription_metrics Subscriptions metrics report does not work with “every N months” subscriptions.
MM-11616 Module: report_subscription_metrics Annual Reoccurring Revenue is incorrectly calculated for “Every N Days” subscription term frequency
MM-11617 Module: report_subscription_metrics Subscriptions yet to be processed are included in the report data
MM-11529 Module: reviewbaskets Store Utility privilege should not be required to use Review Baskets
MM-11781 Module: reviewbaskets JSON_ReviewBaskets_ItemList_Load could output an error mid-success response
MM-11910 Module: shipimport Shipment import, mysql strict error when excluding the optional cost field during import.
MM-11538 Module: square Square Configuration Dialog is mis-sized when the processing icon is spinning
MM-11611 Module: stdschtasks Standard Scheduled Tasks: Generate Dashboard Reports: Reports that fail should be logged with an error
MM-12142 Module: taxjar TaxJar Product / Category custom fields do not sort properly on PostgreSQL
MM-12348 Module: taxjar Any error returned from TaxJar in the scheduled task causes the scheduled task to exit
MM-12371 Module: taxjar New transactions created after a refund transaction incorrectly uses the original transaction date
MM-11486 Module: templatefeed Add note_count, dt_pwchg, tax_exempt, order_cnt, order_avg, and order_tot fields
MM-11522 Module: templatefeed Template Based Feeds: Customer shipping / billing fields are not retained when in Point + Click mode
MM-12292 Module: upsxml UPS Developer Kit attempts to insert invalid basket info records in certain scenarios
MM-12274 Page Builder Add way to preview site at a future date from In admin site preview in Page Builder
MM-12393 Page Builder Add Title tag to Page Builder Refresh Button
MM-11943 Payment JSON_CustomerPaymentCardList_Delete has the incorrect Admin Log message
MM-12068 Payment Payment_reCAPTCHA_Is_Active causes an MvDO error if an invalid module is passed in
MM-11964 Provisioning PRV_Action_Provision_Store_ProductSubscriptionTerm_Update deletes all term dates even when the Frequency tag is omitted
MM-12320 Provisioning PRV_Order_Item does not properly handle variant digital downloads
MM-11603 Setup Script setup.mvc serves up insecure content when run over https
MM-12229 Shared Core Restrict crossorigin=”use-credentials” to clientside resources intended to be used in sandboxed iframes
MM-10443 Shipping/Packaging Rules Shipping method rule subtotal checks should take into account discounts.
MM-11630 Shipping/Packaging Rules Packaging Rules: Box Packing selection is not checking to ensure module is active
MM-11510 Subscriptions Customer Information is missing from the Authorization Failure Log when a Subscription fails to process
MM-11920 Subscriptions JSON_Subscription_Insert should use the customer’s default address when the Customer Address is not specified
MM-12167 Subscriptions Add an index to the sNN_ProductSubscriptionTerms table that uses the disp_order column
MM-11573 Template Subsystem Redis page caching should ultilize bzip2 compression
MM-11610 Template Subsystem Cannot sort or search Linked Pages for Resource by Cache
MM-11614 Template Subsystem ItemPageList_Load_Query fails to sort/search the Cache column
MM-11785 Template Subsystem Trim notes for TemplateManager_Page_Update_Settings and TemplateManager_Page_Update_Global_Settings
MM-11808 Template Subsystem Layouts are not being prevent to be rendered at runtime
MM-12043 Upsale Checkout with a product that has a sale price and is part of an upsale shows incorrect price when the sale price is greater than the upsale price therefore increasing your order cost
MM-12458 Utility Library DiscountState_Adjusted_Price should return the product price when product:pgrpcount == 0

10.05.01 Bugs Fixed#

Bug ID Component Description
MM-12499 Administrative Interface Sorting products within a category doesn’t save the sort order
MM-12503 Administrative Interface Sorting products within Related Products doesn’t save the sort order
MM-12497 cmp-include-imagetypes cmp-include-imagetypes incorrectly defines ComponentModule_Render_Head
MM-12501 MMTextEditor Rich Text Editor in Source mode does not display existing content or line numbers
MM-12498 Module: customfields Non-Facet Custom Fields are displayed as facets at runtime
MM-12500 Module: sitemap Standard Sitemap Protocol Feed Should Not Output Layout Page Links
MM-12490 Page Builder Choose a Layout page should support double clicking on a layout to continue

Back to Release Notes