When you first have that ah-ha moment with the Magento System Configuration creator, your first instinct is to start creating a lot of extra configuration values for your features and modules. It’s easy enough to think “hey, I’d like to add another email address to the Store Email Addresses section”
There’s nothing wrong with doing this, but you’ll need to keep the xml node naming convention the same
trans_email/ident_sales/name trans_email/ident_sales/email trans_email/ident_YOURTYPE/name trans_email/ident_YOURTYPE/name
That’s because certain parts of the config will loop over each of the
trans_email entries to get a list of possible email recipients. Check out
System -> Configuration -> Catalog -> Product Alerts -> Alert Email Senders
for an example. The values for this select are generated by splitting the group name by underscore, resulting in a string like one of the following
support, sales, custom1, custom2
Then, the PHP code that sends the email reconstructs the PHP path with code something like this (exact code varies from section to section)
$config path = 'trans_email/ident_' . $value . '/email';
So, if you name your config node something like
That means Magento would store the value person, and then attempt to create a confirmation node
trans_email/ident_person/email. This node wouldn’t exist, and your email wouldn’t get sent.
Email isn’t the only system that does things like this. So, if possible, it’s best to keep your own configuration values in their own tabs/sections. However, if that’s not possible of feasible (go client services), take the time to look at the names of the other configuration fields and groups and if you detect a pattern, make sure you match it.