We currently accept credit cards by phone (entering the order info into the Virtual Terminal) as well as on the website (OpenCart, using the built-in Authorize.net AIM module).
Problem: when order is placed on website, the customer receives 2 E-mails - 1 from our site, 1 from Authorize. The Authorize E-mail, being plaintext, looks ugly AF, and my boss wants to have it disabled.
Attempt # 1: in the Authorize.net account, under "Settings -> E-mail Receipt", there is a checkbox "Email transaction receipt to customer (if email address is provided)".
Result #1: unfortunately, this disables ALL transaction E-mails - from website transactions (OK) and from Virtual Terminal phone-order transactions (NOT cool). We have to provide an E-mail receipt to phone customers.
Attempt #2: in the OpenCart system, editing file:
catalog/controller/extension/payment/authorizenet_aim.php
to comment out the line
$data['x_email'] = $order_info['email'];
Result #2: during checkout, even if a valid E-mail is entered, upon trying to submit the order, the "Email address is required" error message appears.
So. Can't disable it in Authorize. Can't just delete the E-mail from the array of data that OpenCart collects during checkout.
How can I disable the Authorize.net E-mail on a site built on OpenCart 3.0?
12-05-2017 02:27 PM
Submitting credit cards by phone via the Virtual Terminal will require that you have the Settings -> E-mail Receipt enabled for customers. Disabling that seems not to be an option for you.
One solution is to customize catalog/controller/extension/payment/authorizenet_aim.php to send this field with the request:
x_email_customer=false
This will override the settings in the Merchant Interface for each website transaction but leave the E-mail Receipt setting intact.
12-05-2017 03:02 PM
Correct solution, just a minor format difference.
Should be:
$data['x_email_customer'] = 'false';
(Copied format from line "$data['x_relay_response'] = 'false';")
Worked 100%, thank you very much!
12-06-2017 11:21 AM