CMS Version 9.0 (9.0.1) Release Notes

Over the last few years much of our work was focused on necessary changes such as PCI and upgrading to a more powerful database. In 9.0, however, it's all about the enhancements.

First and foremost, we've made a large investment in building an API system to expand CMS's ability to work with most any shopping cart - ensuring that regardless of your eCommerce choice, you can still rely on CMS to provide you with a solid order management solution. In addition to this API and a great list of features, a lot of effort has gone into refining the "user experience". This includes fixing many bugs and improving your interaction with the software.

Over the last year NHS has also invested in a sophisticated testing system to improve the stability of our new releases. Every release now goes through hundreds of test cases involving thousands of executions in CMS to help ensure that even early adopters of our new versions will enjoy a more trouble-free experience.


An overview of how you should prepare for your upgrade to CMS 9.0 is available in our Wiki article titled 9.0 Upgrade Plan.

Database Changes - There have been a significant number of database changes in CMS 9.0. If you have any custom reports, Crystal forms, or integrations with your CMS database, you'll need to pay close attention to these changes. Contact NHS Support or your Platinum Account Manager if you have custom reports that you've contracted us to write and we'll make sure they are properly updated. Any reports, forms, or integrations with your CMS database that you've written yourself should be examined to determine if any updates are required. Consult our Wiki page on the database changes for more information on the database changes.

Catalog Requests - All unsent catalogs in CMS should be processed (printed, exported, or voided) before upgrading. CMS can now support more than one active catalog so all catalog requests now are associated with the specific catalog you're sending. You'll want to get any of the old catalog requests processed since they are not associated with any particular catalog. See #5 below for additional details.

Installation - Workstation updates are not required if you are upgrading from CMS 8.x but are recommended to update the local Help file. If you are updating from CMS 7.x, workstation updates are required and should be done after the server upgrade. Installing 9.0 for the first time will require a new release code which you can obtain from your account manager or log into Support Downloads. If you are running CMS 6.x or earlier, you will need to update to CMS 7.x first before updating to 9.0.

PCI Compliance - CMS 8.0 has successfully completed its PA-DSS validation with Coalfire Systems in August 2011. You can find both CMS 7.0 and 8.0 on the PCI Council’s list of Validated Payment Applications HERE CMS 9.0 has been successfully reviewed by Coalfire Systems to also meet the PA-DSS 1.2 standard and our application for listing is currently being reviewed by the PCI Council.

Deprecated - The following Crystal invoice templates are out of date and are no longer supported. If you are using any one of these templates, we recommend changing over to one of the new templates included in 9.0 such as InvoiceTemplate-MS-BC (with barcodes) or InvoiceTemplate-MS-NBC (no barcode). You can read more about the new templates here.

Contact your account manager or NHS Support to review your needs or any concerns.


Notable screen changes have been made in Order Entry for multships, eCMS setup, order source setup, order importing, catalog setup, catalog requests, and catalog request label printing/exporting. You should familiarize yourself with the changes to any of these sections that you use. They are described in more detail in the Enhancement List below.


  1. eCommerce API - CMS can now be connected to the shopping cart(s) of your choice! With our eCMS module you can have CMS communicate with most any website to download orders and catalog requests, upload product and inventory data, and post updates to order status. No files to download or sites to log into, just a click of a button or configure CMS to run these automatically on a schedule.

    This API is a published specification, really a programmer's guide, of how to design a Plug-in (.dll) to handle eCommerce communications with CMS. This Plug-in sits between CMS and your site and manages not only URLs to connect to and logins but also translation of data to ensure both CMS and your cart are getting what they need and in the right format.

    We've already developed a Plug-in for CommerceV3 (CV3) - converting our previous CV3 integration onto the new Plug-in system. Also, as you'll read below, we've developed a Plug-in for the Magento eCommerce solution. We plan to create additional Plug-ins for commonly used channels (e.g. Amazon) ourselves but this framework is also available to you to have your own Plug-in developed.

    Please contact your account manager if you're interested in receiving a copy of the API. From there you can assess whether the development of the Plug-in is something you'd like to pursue in-house, with your own contractor, or contract with us.

  2. Magento (beta) - The eCommerce solution that has been receiving the most industry buzz for some time has been Magento. We've written a CMS Plug-in for Magento that works with our new API system. This Magento Plug-in allows CMS to communicate with your Magento store for order downloads, product/inventory uploads, and order status uploads. (Catalog requests do require that a third party extension be added to Magento.)

    Magento is an open source solution available in different editions to suit your need and budget. You can host it on your own web server and use the free Community edition, the inexpensive hosted Go edition, or their hosted Enterprise edition. We are a Bronze partner with Magento and have published our own Magento extension that is available through their market place. This free extension should be installed to enhance the integration between CMS and your Magento store(s). Current the extension is available for the Community edition and will soon be available for Enterprise. Magento currently is not accepting new extentions for their Go edition so we'll be watching for a future oppornity to be listed when that changes.

  3. Arrival Dates - CMS has always allowed you to schedule an item or order to ship on a future date. In version 9.0, you can instead select the date you'd like the item to arrive! CMS will then calculate the date it needs to ship based on your selected shipping method. Even if you choose not to set arrival dates, CMS will display estimated arrival dates for you on all orders, even those not future shipped.

    The calculation of dates is fairly elaborate and takes into account both the days your company considers shipping days and the delivery days for the carriers. Also factored in are weekends, holidays, and user-defined non-shipping days (e.g. days you are closed for inventory, moving, etc.) You also have the option to pad the time in transit information from the carrier so, if UPS says that Ground to zone 4 is four days, you can pad it to 5 if you find they are often late to that zone or want some cushion to err on the early side.

    In practice, the Arrival Date option is used as an alternative to choosing a Fulfill Date. In other words, you are in an Arrival Date mode or a Fulfill Date mode. Whichever mode you are in, CMS will calculate and display the counterpart date. So, if you choose an Arrival Date, CMS will also display the date it will fulfill, or vice versa.

    Related Setup options:

    1. Ability for operators to specify arrival dates - Setup>Order Entry Options>Items
    2. Holidays and other non-shipping days - Setup>Fulfillment Options>Holidays
    3. Days in Transit and Cheapest Shipping options - Setup>Shipping>Carriers and Methods>Shipping Rules
  4. Package Exceptions and Cheapest Shipping - If you have selected a shipping method that is not valid for the destination or arrival date; CMS can now warn you and make a recommendation of another method to use. For example, if you were to ship UPS Ground Commercial to a residential address, CMS can catch this and prompt the change to UPS Ground Residential. It can also catch situations like shipping UPS SurePost to Hawaii which isn't allowed.

    Better still, there is an option to also catch downgrade situations where a cheaper method of shipping can get it there by your selected Arrival Date! (Cheapest is only considered when CMS is recommending an alternate method of shipping when the initally selected method is not valid.)

    This option is enabled in Setup>Order Entry Options>Items

  5. Catalog enhancements - You can now define multiple catalogs in CMS, indicate which are active, and when creating a catalog request you'll have the option to select from that list of active catalogs.

    The Catalogs section of CMS has also been updated to let you choose which catalog requests to process (print labels or export.)

    For import order sources, you'll need to configure CMS to indicate which catalog should be the default for imported catalog requests. This is done in Setup>Fulfillment>Import Sources.

  6. Multi-ship and Future-ship Enhancements - A significant amount of work has gone into improving the process of entering multiship style orders into CMS including:

    1. It's easier to add/edit/delete recipients
    2. Windows hotkey added to access the recipient list on the Items screen (Alt-i)
    3. Windows hotkey added to access the Ship-To list on the Shipping screen (Alt-s)
    4. You can add your list of recipients to the order and temp save without losing recipients that don't yet have items.
    5. You can have the same recipient on the order more than once.
    6. You can assign unique identifying tags to recipients like Mom Xmas and Mom Valentine's Day so they are easily identified in the recipient list.
    7. Clicking the Gift Notes button will automatically place the cursor in the notes text box
    8. Returns screen now allows you to filter the displayed items to show all items or only those for a selected recipient
    9. We've removed the Normal vs Multiship radio buttons from the Shipping tab. To convert from a multiship to a normal order, just delete all of the recipients. The items from the last deleted recipient will be retained as the buyer's items as the order is converted from a multiship to a standard order.
    10. Added a default shipping method at the recipient level making it easy to change all packages for a recipient, acts as a default for all new packages created for the recipient, and affects shipping charges that calculate per recipient if those formulas consider method of shipping. This is seen on the Shipping screen of Order Entry and can be set when adding a recipient or otherwise will default to the order's default shipping method.
    11. When adding a new recipient to the order, that recipient's will get the same fulfill/arrival date as the last recipient displayed.
    12. Display of a recipient item total on the Items screen and a shipping charge per recipient on the Shipping screen.
    13. When changing arrival or fulfill dates, CMS will present an improved dialog asking if you would like to change the dates for the whole order or only this recipient:

  7. S&H by recipient - Shipping & Handling formulas can now be configured to apply to each recipient on a multiship order. A common request we've had is to charge for each recipient's shipment as if it were a separate order, ensuring your shipping costs are covered in the same way as it would be if each recipient's order was placed separately. This option can be enabled in Setup>Shipping and Handling>Global Options.

    A recipient subtotal has also been added to the Items screen (see above screen shot). You can use this as a reference to help your customer reach spending thresholds that may qualify them for shipping discounts, for example.

    There is also a new button to click in Order Entry that will show you the break down of recipient shipping charges:

  8. Shipping Charges per Method - We've improved CMS's ability to add surcharges for specific shipping methods (assessed per package) and how shipping formulas can be used with specific shipping methods.

    There are two primary means of configuring CMS to calculate shipping charges. One is to have your shipping formula triggered by the order's Price Catagory and the other is have a formula associated with the selected shipping method (specifically the order or recipient's default ship method.) The setup for using formulas with shipping methods has changed so you can now have both a formula on the shipping method AND a surcharge/replace value. (formulas, even those attached to a shipping method, must still have the M component selected to factor in the Surcharge or Replace values).

    If a formula exists both for the order's Price Category and shipping method, the price category's formula takes precendence.

  9. UPS SurePost rates - We've added rates for UPS SurePost to CMS. If you use SurePost, these rates will allow CMS to consider SurePost when determining which is the cheapest method to ship by (see Package Exceptions above).

  10. Combining Items for Customs - CMS already has a robust integration with Endicia to pass all needed customs data so there are no customs forms you'll need to complete by hand. The Endicia labels, however, have been limited to 5 and 30 line items and sometimes this is just not enough to handle a larger order. CMS will now combine like items into a single line on the customs form based on a shared harmonization code thereby reducing the total number of lines needed on that customs form.

    Some additional rules observed include: If the country of origin is different, CMS will not combine the items. Weights and prices will be averaged across the items, and the quantity will reflect the sum of the combined items.

  11. Scheduled Emails (beta) - Create automatic follow-up emails to your customers after their order has shipped (either the first shipment or entire order). You create the email content you want to send and can even reference information from the order. Once the order is shipped, CMS will create an email to be sent X days later (you choose X.) Use this scheduled email to thank your customer for their purchase, drive them back to your site to review purchases, etc. This is available in Setup>Company>Automatic Todos. Like other confirmation emails, these emails are sent to the buyer's mailing email address.

  12. Tracking Numbers for Email Confirmations - A new merge field has been added for use on shipping confirmation emails that will list all tracking numbers. This was previously available for only the first tracking number on the invoice. This new task (#481) will list a tracking URL for each package on the invoice that has a tracking number.

  13. Merge fields available in URLs - Emails you send from CMS can contain URLs so your customers can click through to visit your site or track a package. In 9.0 we've started to improve on how merge fields work so they can be inserted into the target line of an HTML link. CMS will parse any merge field it finds in the URL. Email address, tracking number, or RefOrderID for an imported order are examples of merge fields you might use within a URL.

  14. Order Notes are now always editable - You may now edit both the Notes for Invoice and the Internal Order Notes of any order at any time. This is true even for an order that is locked from editing because it is shipped or POS. On the Notes page of Order Entry you'll find a new Edit button above the Internal Notes. Just click that, enter your notes into either Notes field, and click the same button which now reads Save. This adding of notes will not trigger any recalculation of order financials so is always safe to use. Video

  15. Matching Imported Orders to Customers - For many years CMS has employed logic to match up imported orders to existing customers. This logic is summarized in this wiki article but, in short, would use customer number if present (unusual) otherwise it would use a combination of name and address to match. We've now added email address to this so if we find a customer record with the same email address, we'll match the order to that customer record with no further scrutiny. It's now only when there is no customer number or email address that CMS will use the name/address matching logic.

    In situations where CMS has not matched the order to the right customer, you can now retrieve the proper customer from the Customer tab of the order using Find Customer. When you load the new customer, attaching this order to it, CMS will confirm with you if you want to retain the addresses from the order or use the default addresses from the customer's record. This is a significant improvement over previous versions where CMS would replace the order's addresses with those from the customer without any option to retain the order's addresses. If this process would replace the order's current price category or salesperson, you will be now be notified.

  16. Back Order All - The new option can be used to back order an entire order if you want all items to ship together. For imports, this option will automatically back order all items if any item is found to be out of stock.

    For hand-keyed orders, this option can be selected manually with the new Back Order All checkbox, available both on the Items tab of Order Entry and in the Back Order Options dialog that comes up when you add a back order item to the order. When selected, all allocated stock for in-stock items will be returned to inventory and all items will be placed onto back order. If this checkbox is lifted, CMS will re-allocate to all items so only out of stock items will remain on back order.

    In the Fulfillment Manager, its default behavior is to only fulfill complete orders. You'd have to override this default if you want to allow a partial order to fulfill.

  17. Assorted enhancements to:

    • Product groups - Changes to product group header quantity will update component quantities and prices for quantity discounts . Also, back order confirmation windows will be presented for each component found to be on back order.
    • Products screen
      • New eCMS tab under Price/Inventory to assign products to order sources, to control which items will upload to which of your stores
      • New option under Tech/Ship tab for "Requires New Package". Similar to the Ship In Own Box option, when an item with this flag is added to the order, it will always get its own new package. The difference between this and Ship In Own Box is that Ship In Own Box items can never be combined with other items. Items added to the order after an item flagged as Requires New Package can still combine into that package.
    • Continuity - Improved enforcement of flow, harder to make mistakes
    • Kits - Improved setup and inventory tracking
    • Order entry
      • No more 999 line item limit
      • PO# field expanded to 50 characters
      • Fine tuning of the View Invoice screen/layout
    • Grid sorting in customer history
    • Manifest
      • New option to suppress confirmation dialog after clicking Label (F7)
      • Improved handling of scanners to reduce possible errors
    • Returns - Variable kit components can now be returned, improved handling of cancellation of partial back orders, multiship recipients are now displayed and the item list can be filtered to show items for all or a selected recipient

  18. Updated and New Crystal Invoice Forms - Due to the number of database changes in 9.0 as well as to support the enhancements for arrival dates, shipping and handling by recipient, we have updated some of the existing Crystal invoice forms in CMS as well as introducing a couple of new ones.

    The new templates we've introduced encompass all we have learned from our years of form design. These new forms have great capabilities and replace a number of older forms. For a small fee these forms can be customized for you to include your company logo or other changes. Some of the capabilities added to these new forms include:

    1. Improved layout for cleaner display
    2. Multiship orders will produce a summary page and packing slips for each recipient with gift notes
    3. Improved support for items sold in decimal quantities
    4. Shipping methods and tracking numbers will display (when available) which can be useful as an attachment with CMS's shipping confirmation emails
    5. Custom product data (e.g. serial numbers, monogramming, customizations) entered at the line item level will also display (when used)
    6. Line item discounts will display when used
    7. Multiple payments and credits will also display in a cleaner fashion

  19. Updated and New Reports:

    • Adcode Analysis
    • Adcode by Product
    • Batch Status
    • Credit Journal Summary
    • Fulfilled Order Status
    • Payment Audit
    • Lots Received (including detail for return lots)
    • Grouped Invoice Summary
    • Revenue and Banking
    • Payments Received/Applied
    • Payments Received by Order Source
    • Payment Received - Products Purchased
    • Beta - Adcodes by Catalog - All
    • Beta - Catalog Sales Totals by Page

  20. Bug Fixes and Modifications

Order Imports - If a Product Group component was ordered in addition to the product group, only one instance of the item would appear on the order - 37991

Order Imports - Components of variable kits were not getting their Sent Qty set properly - 38025

Some options in CMS were missing, including Batching for CMS Solo and Standard (regressive to - 37969

Order Imports - Invalid RecipientID when verifying an order - 37988

Order Imports - Importing an order with multiple recipients that have the same name was causing CMS not to uniquely identify them - 37785

Order Entry - When deallocation occurs, as it would when future shipping an item or saving an order as Temp or Proforma, CMS will now also clear back order quantities on items - 37872

Kits - Setup screen for adding components to kits will no longer display other kits (kits cannot be components of kits) - 20745

Order Entry - COD charges were being added to the Shipping and Handling total instead of being placed in the COD charge field - 36943

Catalogs - Setting added to Setup>Fulfillment>Import Options to specify default catalog to be used for import order sources - 36336

Catalogs - Print and Export buttons are now enabled by the selection of which catalog to print/export - 35053

Order Review - Corrected issue with too much inventory being returned to stock when removing a forced back ordered item from a saved order where the item was not originally not forced onto back order - 36518

Order Review - Implemented optimizations to improve loading time of saved orders with many recipients - 37784

Customers - Improved how customer flag edits were being handled so that any update problems are better exposed to the user - 36937

Order Entry - Quantity discounts were not being re-evaluated when a product group was added to the order - 34295

Order Entry - Error possible when adding a product group to a non-multiship order - 36784

Order Entry - Enhanced the "1 0 0 trap" (see below) to better handle future ships, proformas, and temp saves - 33856

eCMS - Improved user feedback in situations where a product data upload to CommerceV3 was unsuccessful - 37316

Order Entry - Repaired memory leak when scrolling through orders - 36973

Kits - Kits that pull stock from their components are no longer selectable in Stock Manager - 36793

Kits - When adding components to a kit, you can no longer add the kit parent product to itself - 20745

POS Drawer Session - "Last for this Station" button now functioning properly - 27894

Order Entry - Variable kits that contained a mix of inventory and non-inventory items were reporting that the kit must be back ordered - 37839

Refunds from Flags and Financials in the Contact Manager were not retrieving the customer's last used credit card number - 37816

Products - When entering an Expected Cost it had become necessary to edit out the $ before the field can be exited. CMS now removes the $ automatically - 37774

POS - Workstations configured to operate in POS mode were not always defaulting to the proper POS warehouse - 37436

Order Imports - Possible for imported orders to show as locked after imported - 37714

Best Shipping - On imported orders, if the Best Shipping method was specified in the XML in the Package node, it was causing CMS to create a package for each item. This was originally fixed in but the bug was reintroduced in - 37501

Variable kits not back ordering properly - 37268

Overhaul of inventory handling for kits - 37435

CMS not decrementing inventory on back order or future ship fulfillment of kits - 37480

Package error possible when saving an edited order (multiship, multipackage) - 37325

Variable kits set to non-inv will not pull stock from kit components - 37510

Possible for CMS to deallocate too much stock when removing a forced back order item from an order - 37574

When fulfilling a variable kit, the components were retaining their package number from the original invoice. Components are temporarily being forced into the parent kits package which addresses most use cases. Further enhancement coming to address situations where components should have their own package - 37605

Future ship and back order fulfillments were not creating LOT_ITEM records - 37655

Virtual packages were not being deleted after their items were fulfilled - 37628

Order Entry - Display issue where CMS could show all packages for all recipients - 36847

Order Imports - For orders using Best Shipping, CMS was assigning a unique package to each item. This was a side effect of a fix introduced in - 37501

Order Entry - S&H charges calcluated per package were not working. The fix resulted in a rewriting of how charges are calculated and how they can be configured. Shipping methods may now have both formulas and surcharges defined where they used to be mutually exclusive. If the order's price category has a shipping formula associated with it, that formula takes precedence of shipping method level formulas but either can take into account the surcharges. These surcharges are now always calculated per package. Some interface changed were made in Setup>Carriers and Methods to make the selection of both a formula and a surcharge/replace value both possible and more evident - 37446

POS - Point of Sale orders were not properly defaulting to using the specified POS warehouse after the first order was saved - 37436

Order Entry - CMS was allowing access to the quantity field for variable kit components. Quantities should only be editable at the parent kit item level - 37427

Package Exceptions - A new option has been added to disable the new Package Exceptions window in Order Entry. This new setting is found in Setup>Order Entry Options>General>Shipping - 37477

Order Imports - Package level shipping method overrides were being ignored - 36902

Returns - Product selection window would disappear if you clicked outside one of the field - 37204

Order Entry - Error saving order with multiple and user-defined payment types - 37273

Order Imports - All recipients on a multiship were being assigned the same shipping method - 37282

Order Entry - An obscure allocation problem was possible when exiting the Quantity field for a stocked item where CMS would not allocate stock. This resulted in the item showing a quantity ordered (1) but 0 sent and 0 on back order (i.e. 1-0-0). This 1-0-0 scenario should only ever be true for proformas (when not allocated) and future ships. A trap is being implemented to catch this situation and redirect the user back to the affected item so the order quantity can be confirmed and allocated before save. This trap will remain in place until a solution to the underlying problem can be found - 37124

Order Entry - Enhanced behavior for multiships so that when a new recipient is added, it will default to using the fulfill/arrival date of the currently displayed recipient - 36782

Order Entry - If a user defined payment was followed by a credit card in a multi-payment order, CMS may offer the option to update the first payment with the card number from the second - 37360

Order Entry>Proformas - Saving an order with non-inventoried items as a proforma was deallocating and never re-allocating - 37432

Payments not properly associated with new customers - 37294

Fulfillment Manger - Items set to 'require new package' were being allowed to fulfill into the same package - 37258

Variable kits - In some situations stock was being allocated to only the first component - 37259

Non-inventory items were not being assigned a warehouse which affected how items were combining into packages and the availability of those packages in shipping integrations - 37224

Order Imports - CMS was misinterpreting the GMT offset that may be included in the XML for imported orders and, for orders that were future shipped, could reduce their fulfillment date by one day - 37226

Deleting a proforma was converting it to an itemless order and a link to that order was left in the customer's history - 32625

ShipRush - Removed roll-up code that was combining like items in label printing - 37236

Address Validation - Commercial flag not removed by the Address Validation module when address is residential - 37201

Drop ship items don't calculate shipping and handling charges - 37214

Editing an order with a linked billing payment would change the payment assocaition from the linked parent to the order's customer - 32900

Order Entry - With the option for using quanty in the size/color matrix you would receive an error "List index out of bounds" - 37159

Order Entry - With the option for using quanty in the size/color matrix it was possible to have a SKU repeat on the order if the size/color matrix was revisited and some of the items were on back order - 37182

POS - Default warehouse for items was changing back to main warehouse after first item was added - 37166

Order Entry - Shipping charges were not being fully removed for orders when their shipping method was changed to Hand Delivered or Customer Carryout - 37176

Internal only

Returns - Lot error when returning kits that pull from components - 37089

eCMS - Inventory upload was not properly accounting for quantity on back order - 36530

Order Entry - Assertion Failure error possible if exiting Order Entry after scrolling through the product list - 37097

Order Imports - Back Order All checkbox in Order Entry>Items is now checked for imported orders that were forced onto back order as a result of the corresponding Fulfillment Option - 36952

Order Entry - In unusual circumstances it is possible for a stocked item to be added to an order without stock allocating. This appears on the View Invoice screen as 1 ordered, 0 sent, and 0 back ordered (i.e. 1-0-0). This should only be true for future shipped items and a catch has been implemented to identify this scenario and, if found, will return you to the Items page to confirm allocation for the item in question. This temprorary measure will be used to ensure the anomoly can be addressed by the operator pre-save until we can find the source of the issue and deliver a fix - 37124

ShipRush - Further custom label modifications - 37069

Endicia International - Items sharing the same harmonization code will now have their customs data combined . This can reduce the number of lines needed on the customs forms - 28429

Returns - Added recipient combo to Returns screen. This combo, like in Order Entry, acts as a filter to display only that recipient's items - 27568

Returns - Error when attempting to return an item on a multiship order - 36791

Access Violation when issuing a refund of customer credit to a credit card - 37047

Virtual packages not deleting when all of its items have been fulfilled - 36970

Error when attempting to paste rich text (RTF) into customer history - 36933

ShipRush integration - Custom label modifications - 36708

Fulfillment Manager - Partial Back Orders are fulfilling without the option being selected to allow partials (regressive to - 37007

Products - New product level option called "Requires New Package" which forces such items into a new package when added to an order - 36264

Fulfillment Manager - corrected memory leak which could affect larger fulfillment sessions - 36940

Fulfillment Manager - Window that shows all packages that could not be fulfilled was unable to display large lists and was running off the screen and could hide the OK button - 36405

Fulfillment Manager - Error possible when attempting to send an email with no body (e.g. only an attached invoice) - 36939

POS - Possible to get an error when switching in and out of POS mode in Order Entry - 36925

Order Entry - New Back Order All option was not resetting after the save of a new order or clicking the Clear button - 36803

Manifest - Error " is not a valid integer value was possible after dropping a package - 35831

Proforma Orders - Deleting a proforma was causing CMS to save it as a completed order first - 36830

Installer - 8 to 9 upgrade - In some databases it was possible that the population of the new Recipients table would have duplicate primary keys - 36891

Order Entry - Converting a Multiship to a Normal Order - Removing a recipient will now remove all of that recipient's items as well unless it is the last recipient on the order. When it is the last recipient, the order will be converted to a normal order (non-multiship) and the items from the last recipient are retained now as the buyer's items. If the buyer had no default shipping address, CMS will use the mailing address as the shipping address - 36479

Order Importing - Error message "XML data too large" - 36539

Installer - Database Update -Corrected problem updating Shippers table - 36837

Installer - Database Update - Changelog was failing to convert recipients with invalid address_ids in the ITEMSORD table - 36519

Order Review - Multiships - The Recipient_Order table's shipping charge was not being updated when editing a saved order - 36850

Order Review - Possible to receive a "List index out of bounds" message when editing the shipping address of a saved multiship order - 36719

Order Entry - Adding a sized item to a multiship recipient could result in an error - 36731

Updated Report - InvoiceTemplate-Email - 36197

Updated Report - InvoiceTemplate-SummaryByInv - 36205

Updated Report - Product Sales Detail - 36517

Updated Report - Product Sales Demand - 36756

Updated Report - Lots Received - Now includes "return lot" information - 36686

Order Entry - Items set as "does not ship" were not getting a fulfillment date - 36631

ShipRush Integration - Added options to Setup screen allowing the user to define font width and height as well as the position on the label for the carrier's label - 36708

Internal - Cached master-detail autoinc inserts only save correct link detail data for the current master - 36553

Order Review - Package information not available on the Shipping tab unless in Edit mode - 36798

Order Entry - Error adding a product group to a multiship order - 36788

Verify Imports - Access Violation error possible when verifying imported multiship orders - 36763

Verify Imports - Error adding or editing variable kit components when verifying an imported order - 36544

Order Entry - Back Order All option added to Items tab and Back Order Options window. Selecting will force all items on the order onto back order and will release allocation. Deselecting will allocate to all items on the order as is possible. 36592

Multiships - Improved handling of deleted recipients on multiship orders - 36707

Printing - Access Violation possible when printing Crystal forms set to print only based on certain payment types - 35085

Order Review - Scrolling from a multiship order to a non-multiship would show the recipient scrolling or selection combo boxes on the non-multship order. Subsequent editing and saving could result in errors - 36258

CommerceV3 - Corrected statuses on order status uploads to CV3 so they are Processing or Shipped - 36427

Order Entry - Larger multiship orders could result in slower response times when adding new items - 36582

Order Entry - Shipping tab was not displaying package data unless you were in Edit mode - 36692

Order Entry - CMS was prompting empty Package Exception windows under certain conditions - 36693

Order Entry - Deleting a saved package could cause an error - 36713

Setup - Added option for Scheduled Emails to Auto Todo configuration screen - 35151

Order Entry - When a product is changed to a non-Product Group Header status, its Product_Group_ID field must be cleared, else problems can result in Order Entry - 36332

Payments - Loading previous charge card info into Order Entry/Apply Payments that had the corporate flag set fails to set the corporate flag as "checked", and so subsequent saves set the flag to "false" - 36485

Order Review - Package Exceptions now disabled when editing shipped orders - 36620

Order Imports (not using Automated Imports) were in some cases creating two customer history entries - 36641

MPS - CommerceV3 was incorrectly placing the ProcessData in the RefID field which was causing authorization reversals to fail. CMS is now ignoring this bad data when processing a reversal - 36315

Invoice Printing - CMS invoices (not Crystal) were not printing the Items section of the form - 36362

Confirmation Emails - The merge task 477 representing the items ordered list was not functioning (related to the above fix) - 36610

Order Imports via Automated Imports were in some cases creating two customer history entries - 36453

Order Entry - A non-shipping product will cause an "is not an integer" error when changing either the fulfill or arrival date at the item level - 36472

Fulfillment Manager - Forced back orders were not fulfilling into the same package as non-forced back orders - 36413

Automated Imports module - The exception column for AVM would disappear after verifying your first order - 36314

Order Review - Editing an older multiship order could cause recipient_id errors - 36379

Order Entry - If you had an overpayment that would create credit but then resolved that overpayment before save, CMS was still warning you that a credit would be generated - 36421

CommerceV3 Plug-in - Modified the CV3 Plug-in to no longer map the AcqRefData to to Chargeinfo.TransID field in the database - 36363

eCMS - For a workstation configured to automatically connect to your stores to download orders, CMS will now raise a new Automatic Download window so you can choose to let it run or postpone - 35333

Order Entry - No zones or warehouse displaying in the package grid on the Shipping tab - 36342

Order Entry - Invalid Recipient ID error possible when editing or verifying a multiship order - 36321

MPS - Added AcqRefData and ProcessData nodes to CMSXML.xsd and altered the CommerceV3 import of MPS data so it is no longer placing the AcqRefData into the CMS TransactionID field - 36363

Downloads site - Altertered how CMS connects to Support Downloads so it can always pull the latest WhatsNew.htm corresponding to the version of CMS running - 35653

New print task: Invoice Tracking Numbers (All) - 36172

New Crystal invoice template: InvoiceTemplate-MS-BC - 36195

Customer Letters - URL merge capabilities added - 36206

Order Entry - Fulfillment Date fields now restricted to only allow date input - 35740

Order Entry - Replacing a recipient by using Find Customer will now ask if you want to update the Recipient Display field - 30955

Order Entry - Date change confirmation window - removed option for 'existing items' in cases where the recipient has no items - 36001

Fulfill Complete - Improved handling of item level status when forcing items onto backorder - 34401

Order Entry - Possible to get an error when deleting an item from an order that was somewhere in the middle of the item list - 36176

Order Entry - Variable Kits - Improved handling to kit edits when changing components/options - 36177

Setup - Option to enable Arrival Date selection and its child option for Cheapest - 36166

Setup>Order Entry Options - UI changed for easier navigation and to facilitate the addition of more options - 36167

Fulfill Complete - Added Setup option and functionality to backorder all items on an import if any item is on backorder - 34401

Auto Todos - Setup form enhanced to support the new scheduled emails feature (and some non-functional options were removed) - 36151

Installer - shippers.sql fails to update if the fields in the table are not in the expected order - 36152

Order Entry - Replicating items to all recipients was not working if the order was a future ship - 36137

Order Entry - Past Items was not triggering quantity discounts for items already on the order - 35937

Scheduled Emails - Changed references from "survey" to "scheduled". Scheduled emails are order level and were not showing in the order's list of confirmations since an invoice number was expected. Scheduled emails now always default to invoice 1. Combo added to Fulfillment Manager >Email Confirmations for filtering between email types (order confirmation, shipment confirmation, scheduled email) - 36110

Arrival Dates - New recipients will now default to using the fulfill or arrival date currently displayed for the selected recipient (instead of using an order level default) - 36146

Order Status Uploads - carrier and shipped date were missing from the upload - 35971

Order Entry - Error if clicking No to adding new recipients when the buyer is the only recipient - 36128

Products - Added management screen for setting or removing flags that assign SKU's to order sources to facilitate control over which items will upload to which store - 35821

Letters - Creating a new letter in CMS after one had already been retrieved would default to using the first letter's name - 36100

CV3 uploads - Now exposing error responses from CV3 to the user when an attempt to connect to their web service fails (e.g. password change required) - 36119

Order Entry - Cursor now automatically in Gift Note text box after clicking Gift Note button - 36135

Order Entry - Item-less recipients that were temp saved would not retain their newly added items on complete save - 36058

Order Entry - Multiships - Added Windows hotkey (Alt-i) to get to recipient combo box. This is only active while on the Items tab. Recipient combo box now also supports searches

Package assignments could be lost if setting an item level fulfillment date on a previously saved order - 36088

Scheduled "survey " emails added - 29110