The biggest impact here is that credit cards have a type which is now stored as the enumeration id (ie. CCT_VISA) rather then a hardcoded value from cctypes.ftl. This resulted in changes in a few spots to properly get the localized value for that credit card (enumeration.get("description")). Having said this, the old values still work as expected on all pages (the relationship between CreditCard and Enumeration is not enforced which would cause a migration script).
If someone has an existing product store that does not set the ProductStoreCreditCardSettings the pages will render the old hardcoded list that was defined in cctypes.ftl. This is achieved by having ProductStoreWorker.getProductStoreCreditCardSettingEnumerations return this list when the found product store does not have any settings setup. The theory is that if there are none setup, this implies old setup and NOT a store that wants to accept no credit cards. The latter would be handled by not setting up the ProductStorePaymentMethod of type CREDIT_CARD.
The back-end applications (accounting and party) now show the entire list of credit cards defined in the enumeration of enumTypeId = "CREDIT_CARD_TYPE" rather then the subset of supported types. Since this is not outward facing I felt it was ok to show "all" credit cards here. It also facilitates multiple e-commerce stores that accept different credits cards, but may use a backend that needs to perform actions on the superset (by showing all available).