Per Merchant.Anywhere.com:
"The gateway does not support Authorize-Only transactions. An Authorize-Only transaction will expire in 3 to 14 days depending on the card issuing bank, so an authorization today will not guarantee funds when your product is ready to ship 30 days later. Authorization-Only is for use by Hotels, Restaurants, Bars, etc that know that they will close the transaction in a short period of time.
MerchantAnywhere.com also has automatic batch closure (each night) as Visa/MC impose up to a 1.5% surcharge for delayed batching (batching more than 48 hours after the authorization) to prevent this procedure."
All that said, how do the big boys do it?
They have accredited network security systems that allow them to retain the cardholder's information and process the transaction when it is ready to ship. This accreditation costs tens of thousands of dollars per quarter to maintain.
It would be violation of your merchant agreement to write a payment module which retained cardholder data, since there is no security accreditation with Zencart.
Can it be done?
The only way I see to do what you want is to use the repeating payment gateway. The payment module would need to create a repeating payment with a single occurrence scheduled, say 60 days out. This would capture all the cardholder data into the gateway and return a transaction ID. It would not, however, provide any guarantee that the cardholder had the funds to complete the purchase. This would have to be checked when you were ready to ship.
Then when you are ready to ship, the payment module (through an admin menu) would allow pulling in the transaction date to the current day by sending a transaction modification to the gateway. The transaction would batch that night and you could ship the next day after you checked that the transaction was approved.
This would be implementable, although complicated. Also there would be an additional $10.00/month MerchantAnywhere account fee for access to the recurring transaction gateway.
In my case, I have an art business where I make the product when ordered. The cardholder is charged immediately and I ship within a day or two. So, this has not been an issue for me, although I fully understand what you’re trying to do and why.