We have one client that uses CIM to reduce their exposure risk so that the credit card number isn't persisted locally. If a customer places a sales order as a guest, then a new customer profile (associated with the sales order) is created and the payment is stored under that profile; this allows the client to easily re-authorize the card (for example, to verify an updated billing address or to reflect changes to an order that a customer has requested) without having to ask for the card number again. But a customer who is logged in can also manage and store these credit cards in a digital wallet that's associated with their account. It would be nice if, when a returning customer who is checking out chooses one of these cards that they've already stored in their customer profile, we could copy this payment profile to a new, "hidden" customer profile that's associated with the sales order (in case they have changes or it's a backorder or something). That way, the customer can "delete" the card from their wallet without us having to display a message like "sorry, there's a pending order associated with this card, so you have to wait". I guess we can sort of do this now by authorizing it for $1 and then creating a customer profile from that transaction, but it would be cleaner if there is a mechanism within the CIM API like copyPaymentProfile() that allowed this kind of copying of payment profiles between customer profiles. Just a thought.
... View more