cancel
Showing results for 
Search instead for 
Did you mean: 

How to disable Authorize.net E-mail from website ONLY transactions?

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:  u
nfortunately, 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?

OpenCartDev
Member
2 REPLIES 2

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.

mmcguire
Administrator Administrator
Administrator

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!