Have your own great idea for a new API feature?

or maybe a suggested improvement to an existing one? Share it and become a god of the developer world.

New Idea
0 Votes

Create Multi-Language Store in Magento 2

Status: New
by on ‎09-30-2019 12:27 AM

any e-commerce stores have multiple store views because they want to reach a wider audience in languages that their audience is familiar with. When a customer gets information in a familiar language, it is easier for them to understand the product or service. This, in turn, makes it easier for them to make a purchase decision. A store in one’s own language also makes one feel like they can trust the store. They feel catered to. This increases their chance of coming back to your store, provided the overall experience is good.


In this blog, we are going to talk about how you can enable multiple languages in Magento 2 or create a multi-language website in Magento 2.


Here’s an extensive step-by-step guide to set up your own multilingual store from Magento 2 backend.

 How to Create a New Store View in Magento 2


- Log in to your Magento admin panel/backend.

- From the Stores menu, click on All Stores under the Settings section.

- Now you can see a Create Store view button, as below:



As you can see in the image, we’ve already created some store views with the store name and code. Similarly, as per your preference, you can add store views with name, code and set status as enable/disable. Once you’ve set up your store views, you can fix a sort order for store views and select a default store view for your store.


For more detailed guide you can refer this link :



 How to Setup Locale Language for Your Store View:


- From the admin panel, tap on the Stores menu, then under Settings, choose Configuration.

- Now you should able to see a menu on the left. Under that, you can find the General tab. Choose General to open configuration.

- To change configuration for a specific Store view, you need to switch the store from the top of the page.

- From the Store view, list at the top of the page, choose one of the store views as shown in the following figure:



- Now, you should be able to define the locale for the chosen store view in Magento 2. You will have to deploy your theme static content for multiple locales as you have configured set up for multiple languages.


You can run the command given below to deploy static content for the multiple languages:


PHP bin/Magento setup:static-content:deploy en_GB en_US ro_RO


Here instead of en_GB en_US ro_RO, you need to add your own language code based on your local setup.


If you will set your store mode as production at that time, it will automatically set up a store and deploy content with required locale.

Now, you have set up a multiple language store view, so you can proceed with the translation.

 How to Translate Theme Static Content:


There are two ways to translate the theme’s static content: Based on the language, you can map a word with the language-specific word that you want to translate it to or by installing a language pack.


>> Translate Inline

- To use this feature, your Magento store should be in developer mode because only then you can use the Inline translation.

- Before enabling the inline translation for proper output, you have to disable the mentioned cache.


>>How to Disable Output Caches:

- In the admin section, go to System menu and choose Cache Management.

- Mark the following checkboxes:

- Page Cache
- Blocks HTML output
- Translations

- Set the Actions to Disable. Then, click Submit.


>>Now Enable the Inline Translation

- In the Admin panel sidebar, click on Stores and choose Configuration.

- To work with a specific store view, click on the name of one of your store view, from the store view list, that is to be updated.

- On the left side of the page, under the Advanced tab, choose Developer mode. (If you are not able to see it, first enable the developer mode of you Magento 2 backend.)

- Expand the Translate Inline group. Then if necessary, clear these Website checkboxes set Enabled for Storefront to Yes and save the configuration.


>>Update the Text

- Open the frontend/storefront in a browser, and go to the page that you want to edit. If necessary, use the language chooser to change the store view.

The text of each string that can be translated will be outlined in red. When you hover over any text box, a book icon (</span) appears.

- Click on to open the Translate window. Check the Store View Specific checkbox and provide your custom text for that store.



Now you can refresh the page to see the updated store view. You can process that with the other elements.

In order to disable the inline translation, just set value No to ‘Enabled for Frontend’ from the Translate inline group from the admin and save the configurations.


>>Language Pack and CSV based Translation

- For the CSV based translation, you have to create a CSV with the language code like en_US.csv or de_DE.csv which contains the original phrase and the translated phrase in the language you want to translate.


You can place this file in the path given below:



You can also install ready-made translated language pack if you do not want to create a CSV with your own words and phrases. You can directly use any language pack and install that in your store. Install it with the command line using the composer.


You can go to this link and find available language packs :



In some cases, some words are not translated using this. For that, static content should be added in a way that it can be detected by the i18n tool of Magento. This way you’ll be able to add the strings in the dictionary for the translation.


>>String Added In the phtml file:

- Should use the __('<your_string>') method while adding a custom string, so it is able to translate.

For example:

php echo __('Translation Original Phrase')

php echo __('Hello %s , How are you' , $name)


>>String Added for the Email template:

- When string will be added, need to use the following {{trans “string text of the printing


For example:

{{trans "text of the printing"}}

When a string is added with a variable value in the email template:

{{trans "%variable string" variable="value"}}


>>String Added for the UI component template html file:

Here, you need to implement the data-bind attribute with the i18n

For Example:

<span data-bind="i18n: 'String'"></span>

To add a string with no binding to an HTML element:

 <!-- ko i18n: 'Your String Message' --><!-- /ko -->

While string is added on attribute of an HTML element:

<input type="text" data-bind="attr: {placeholder: $t('String for translation')}" />


>>String Added for the UI component configuration XML files:

You will have to implement the translate attribute and set this as true for the translation. For example:

<item name="label" xsi:type="string" translate="true">Delete</item>

While fetching the data programmatically from the XML, you will have to use the method __(“variable”) to display translated text.

Example :



>>String Added for the .js files:

In the js file, you should implement the mage/translate library to be able to translate the text.

You can add translate library as below:

define (['jquery', 'mage/translate'], function ($) {...});

You have to use the $.mage.__('')function when adding your string:


Whereas, have to use the below method for adding string with a variable:

$.mage.__('Hello %1').replace('%1', yourVariable);

For the translation of dynamic content like the category, product, CMS page and block, you will have to define the translated value for the Store view.


In case, all this went above your head or you want to save your time from this tedious task of translating, you can go for a Magento language translation extension. You can also opt for AppJetty’s Magento 2 language translator which uses the Google Translate API and is equipped with fe...

- Mass Translation of CMS pages, product category pages, etc. in a matter of minutes using console/cron.
- WYSIWYG Editor
- Database Search & Translate

0 Votes


Whether Authorized.net patch MD5 to SHA512 provide support or a separate patch for PHP 5.6 version website to avoid payment failure without any error.


Moreover, the same Patch will work for PHP 7.0.1 version website.

0 Votes

I was advised to submit an idea here.


When printing a receipt in Google Chrome, clicking on "Print using system dialog" closes the window. This happens in production as well as the sandbox.



  1. Create a transaction.
  2. Search for the unsettled transaction.
  3. Click on the transaction ID to bring up the Transaction Detail.
  4. Click on Print to open the transaction in a new window.
  5. Click on Print Receipt in the upper right corner.
  6. Click on Print using system dialog... (Ctrl+Shift+P)
  7. The system dialog does not appear and the window closes.
  8. Hitting Ctrl+Shift+P does the same thing and causes the window to close
  9. If I do not click on Print Receipt, I'm able to get to the Chrome print dialog as well as the system print dialog.
  10. If I click on Print Receipt and stay within the Chrome print dialog, it works.


  • This happens in incognito.
  • This happens in the guest window.
  • This does not happen when printing from other web pages.
  • This does not happen in Firefox.
  • This does not happen on the Mac or Linux.


  • Windows 10 Pro, Build 17134.765
  • Google Chrome Version 74.0.3729.169 (Official Build) (64-bit)
  • The default printer is a network printer that is online and available.
0 Votes

Account Updater deletes Payment Profiles stored in CIM due to the fact that they are marked as "closed" by the issuing bank.  However, some customers continue to re-enter the same card details month after month showing that this is fact a false positive.


When attempting to process a payment against these cards, they are succesful, and don't return a closed status.   There is a flaw in the data passed by the banks to account updater, or in updater itself.


In my limited testing, I discovered this was happening to several % of my cards every single month costing me thousands in revenu in a pretty short amount of time.


Several other Authorize.net users have noticed the same problem 

Read the support forum thread


My guess is that if everyone who used CIM and account updater looked at their monthly updater report, and checked the last 4 of cards deleted, they would find that it's deleting some of the same customers credit cards every single month!



The account updater sales page states that, "It costs 7 times more to get a new customer than to keep a current one."  yet account updater is deleting active card data every single month.


Three potential solutions:


  1.  Don't delete any payment profiles ever - only update. 
  2.  If we must delete, only delete payment profiles that have been marked as closed by account updater, and also have a declined authorization.
  3. Allow users to choose which cards to run the account updater on.  I for example would choose to only run the account updater on accounts that had failed billing attempts. 


Since I've been told by customer support that this can't be fixed, I would like to point out that Stripe does not have this same problem with their account updater, and in my testing, my card churn rate was much lower with Stripe.  

0 Votes



The issue is that Authorize.Net is not providing a « Company Name » field on the payment form for « Accept Hosted ».

Also, sending this info through the API under the “billTo > company” tags has no effect on transaction details on Authorize.Net (the Company name is not shown on the invoice).

This is a blocking issue for my customer (and yours).

Could you please be able to provide any relevant details regarding the following issue?
Thank you in advance for your prompt response.


Benjamin C.

0 Votes

When a customer does not enter the correct credit card details, there is a warning sign added next to the credit card as well as the field's underline becomes red.  This is fine but when customers are on smaller displays, they need to know to scroll back up the form to find the error. 


The suggestion here is to add an error message just above the "Pay" and "Cancel" buttons (just like some of the system errors like the "declined" messages) which describes to the customer what the problem is so they know to scroll back up to fix the issue.  


We are seeing significant problems with our customers and they wind up canceling the transaction!

0 Votes

Customized Accept hosted payment page

Status: New
by on ‎02-13-2019 05:24 AM

I need to add something like this is a secure payment or something like that within accept hosted payment page. 


can any one have idea or any suggestion?

0 Votes
Hello, We would like to implement the following use case for an online information source (such as an online magazine): A visitor buys a subscription for a period of time (say 6 months) Once the subscription ends, is cancelled or a payment fails, we would like to suspend automatically the customer's access to the magazine We would need to see additional events for payment failure and the end of subscription (final payment made). At the moment, there is an event for "last but one" payment, but that is not sufficient. Thanks
0 Votes

API check for CIM

Status: New
by on ‎01-23-2019 01:33 PM

I'm trying to find out if there is an API call that will return whether or not CIM has been enabled on an account or not.

Right now we have the occassional customer who has initial issues with our payment implementation, and it often is a result of them (our customer) not having CIM enabled in their Authorize.net account. I would very much like to be able to programatically do a check for whether or not CIM is enabled.

Oh, and it would be ideal if the call didn't return a response that "implied" the anwser of whether or not CIM was enabled, but rather explicitly stated it.

0 Votes

VB Samples

Status: New
by on ‎01-18-2019 10:51 AM

Not everyone programms in C#.  There are still a few of us VB programmers out here and it would be great if you had some VB Samples.  You used to have them...I don't know what changed.  

0 Votes

Providing better eCheck.Net functionality

Status: New
by on ‎12-20-2018 03:35 PM

There needs to be a way to quickly get any "returned" eChecks. By law, a consumer has 60 days to dispute a charge, and normal ACH transactions can take several business days to return NSF (or any other number of errors). 


I can think of two ways to solve this


1) Include the Original Transaction ID in the new Transcation.

  • When you get a batch through API, and the batch shows that is has returned amounts, performing a getTransactionList() on that batch provides different transaction numbers than the original. 
  • If you look through the web interface, the original transaction IDs are listed. Doing a getTransactionDetailRequest() on each one that "returned" has a returnedItems array that shows the new transaction ID. 
    • Update the server code to include the original transaction in the newly settled transaction the same way it includes the new transaction in the original transaction details

2) create new API getReturnedTransactions(startDate, endDate)

  • This new API MUST return the original transaction IDs


As it stand currently, I have to put transactions in a temporary database with the date performed, and then check every transaction in the temp database every day for a "returnedItems" array in the getTransactionDetailRequest() call, and once it is day 61 after the original transaction, I can delete it from the temporary database. As you can imagine, this leads to thousands of useless calls.


A single transaction, perfomed on 1-Dec 2018 has to be checked 60 times through 29-Jan 2019 to know for sure it never came back disputed.

If 10 Transactions are processed every day, for 60 days, 600 API calls are performed to charge the accounts, and then 35,400 api calls are performed to check each of the 600 transactions (Days 60 has to be checked through day 120). These figures are assuming the charge, settlement, and ACH withdrawel fromt the customer account happen almost instantaneously, which they don't).


Example can be provided to Authorize.net Staff from our production account. 

0 Votes

eCheck deposits in gross

Status: New
by on ‎12-14-2018 10:54 AM

Currently, eCheck deposits to the merchant have the fees taken out.  This makes it much more difficult to reconcile on the accounting side.  Anything that adds to the daily/monthly grind is something I want to avoid.  I'm considering leaving Authorize.Net for this one reason.  What would it take to have eCheck deposits be the full amount of revenue received, and take out the fees as a separate transaction?

0 Votes

More variety in sample apps

Status: New
by on ‎12-04-2018 05:19 PM



First, thank you for your amazing products and solutions. The more I use this the more I like it. This may not be the precise purpose of this forum, but I have a suggestion related to your sample apps-


The common theme I notice is that the sample apps often have the maxed out best possible that can be obtained for a given solution i.e.  the Accept Hosted Iframe app. I fully appreciate the need to show and the benefit of showing what is truly possible with your products, but in helping others here and also in doing online searches during my own development process I have found that your sample apps are confusing quite a few people, for whom the fully decked out implementation may be an aspirational goal and not what they are immediately looking to acheive. 


I would suggest making maybe a few sample apps, with one being a minimal integration that the developer can build on to suit their needs, and then your fully decked out showcase model for the advanced users. I think this would help many developers speed up their development process.

Thank you again. I cannot say enough how great your service is, from your API to the awesome people on the phone and the people on the forum. 

0 Votes

Time Series Analytics

Status: New
by on ‎11-19-2018 05:03 PM

Does Authorize.net provide any  analytics graphs such as Chartmogul?

0 Votes

ONLY trasaction ID required for refund in NEW API

Status: New
by on ‎10-26-2018 12:28 AM



I have tried to refund amount using ONLY trasaction ID, but i unable to succeed.


I have using following code Please clink on below link.




Please make api for refund only and only using transaction ID. There are no need of any card nunber, customer profile ID, Customer Payment Profile ID etc.


How you think about this IDEA to make refund using ONLY TRANSACTION ID?


Thank you.


0 Votes

Proration Invocing feature in ARB

Status: New
by on ‎08-07-2018 12:07 PM

It would be nice to have proration invocing feature. 


It would be useful in following scenario (which is common in any subscription based payment):


 Suppose I've  ARB subscriptions that charges for every 3 months and has a trial period of one month.  I need to charge for anything(can be features or devices) added in subscription after trial period. 


For example, if some feature is added to a plan during second month then I need to charge them for remaining days of that billing cycle  (so, charge amount = 30 + extracharge). 


I know, I can update subscription in ARB to charge them from next billing cycle and I can do one time charge on customer profile for that extra charge.

But for this, I need to get unit price(charge per day) and since number of days in month varies the unit price also changes.


It would be nice if this calculation is done by authorize.net. 



0 Votes

My eCheck account has limits for Monthly Transaction Volume as well as Largest Transaction Size.  It would be nice to be able to retrieve those limitations via your API.

0 Votes

Test Mode On Production Server

Status: New
by on ‎06-29-2018 09:42 AM

One of the items we used frequently in the AIM integration was the “x_test_request” toggle for the production server.  We're updating our integration for the new API and unfortunately, I am not seeing that option.  In the forums as well as through the Sandbox support, I've just been told to use an “authenticateTestRequest", which simply does an "authenticate credentials".  However, this is insufficient for onboarding and provisioning of new clients and I would like to see an actual "test mode" flag brought forward to the new API.  

The use of this flag to change into test mode on the production server does several things for us:
1.       It allows us to do full end-to-end testing of our setup (outside of the actual API integration).  While we can use sandbox credentials for this, this becomes a QA issue for setup/provisioning.  Using this flag allows us to set up everything exactly as needed and then simply flip a switch to "go live" on our end, as a service provider.
2.       Having the ability to use live server credentials in test mode for our customers is important for those who are transitioning their service to us and may not be able to set their whole account into test mode.  There are other customers with which we may just not be able to control the test mode status of their account for various reasons, so having this control at the API level (for individual transactions) is very important.
3.       It is important even in test mode to be able to get the same “accept/decline” responses as we formerly could in AIM, and not just do “authenticate credentials”.  How a given merchant may use the transaction data with us will vary based on their application and we need to be able to do full QA testing.


By the way, even if it did what we needed, I do not see an option in your API to just do an “authenticateTestRequest”.  There is no code sample in that section of the API reference, so I’m guessing it’s not included as a formal part of the API?

0 Votes

Multiple Time Formats On Settled Transaction

Status: New
by on ‎05-02-2018 08:15 AM - last edited on ‎05-29-2018 10:24 PM by Administrator Administrator

Allow multiple time formats for the settle transactions rest call