News:

Looking for documentation? Take a look on our wiki

Main Menu

Vendor Not Receiving System Emails

Started by CreativeDesigns, January 20, 2014, 08:26:12 AM

Previous topic - Next topic

CreativeDesigns

I have set up an administrator as a vendor in their shop.
I am receiving their order emails, but they are not receiving the orders, even though they are set as a vendor.
What is going on and how can I fix this?

syntalk

Hi,

I know it may be silly tip but get them to check SPAM/Junk folders. I had that problem and that what it was. To prevent it i changed system email to SMTP instead of PHP in Joomla.

CreativeDesigns

Their hosting provider says that they cannot see the email going from the website to their email.
They also say that they checked in SPAM and on the firewall, and it's not there. So not sure where else it could be?

jenkinhill

I presume their email address is on the Shopper Information tab on the Shop menu?

Are they set to Receive System emails in Joomla User Manger?
Kelvyn
Lowestoft, Suffolk, UK

Retired from forum life November 2023

Please mention your VirtueMart, Joomla and PHP versions when asking a question in this forum

CreativeDesigns

Hi Kelvyn,

Well yes. When I am logged in as admin, then my email address is under Shopper info.
When he is logged in as admin, then his email address is under Shopper Info.

And yes, they are set to receive system emails.

jenkinhill

If you have two vendors so both can be listed on the shop tab, then you must also have multi-vendor enabled. I have a feeling that the order emails will go to the vendor specified for each product in the product information tab. This option is only shown when multi-vendor is enabled. I don't know if he will receive emails automatically if he is also superadmin.

Also he will not be able to see the orders unless he has superadmin status.
Kelvyn
Lowestoft, Suffolk, UK

Retired from forum life November 2023

Please mention your VirtueMart, Joomla and PHP versions when asking a question in this forum

CreativeDesigns

thanks for your response :)
I have changed him to super admin. he still doesn't receive the emails.
I also checked that multi-vendor is enabled, and it is :) but still no mail.

I don't want to be a vendor, and I don't want to receive the mails - I have been concerned about the client not receiving the mails, so I have left it until the issue can be resolved.

If I remove myself as a vendor,
a) will the client receive the mails that he is not receiving?
b) will I still be able to add/edit/delete etc products as and when required?

jenkinhill

AFAIK you have to be a vendor to add products. But you can log in as him?  I have no idea if that will fix the mail. It may be that either the  server won't let it be sent to him or his email provider is blocking the mail or treating it as spam. Maybe using another mail address for him will help?
Kelvyn
Lowestoft, Suffolk, UK

Retired from forum life November 2023

Please mention your VirtueMart, Joomla and PHP versions when asking a question in this forum

CreativeDesigns

Yep. I can log in as him, and he's able to add and edit products etc.
I have already checked with his service provider, they say they can't see the email leave the website to come to his mailbox.
Any chance I could send you his/my log in details to check and see if there is an issue?

CreativeDesigns

Hi Kelvyn,

I know you are incredibly busy - but just wondering if you had any further thoughts on this issue.
The client is super frustrated, which is understandable. I'm just not sure what else I can do to get this issue resolved. I've never had this issue occur with any of the other VM sites i've built.

jenkinhill

Well we did just fix a similar mail issue (in this case no vendor mails were being sent at all) by moving the site from a "cheap" shared host to a better host - more expensive but more reliable - and the mail started working. It only cost them two hours of work for us and  the extra host charges, but was more than covered by sales made in the first couple of days after the switch. In that case we already knew the old host often was problematic - in your case we don't know.
Kelvyn
Lowestoft, Suffolk, UK

Retired from forum life November 2023

Please mention your VirtueMart, Joomla and PHP versions when asking a question in this forum

CreativeDesigns

Hi,
The hosting guys that the site is with are by no means "cheap".
They are, however, being difficult in not wanting to help resolve the issue.

I have now asked the host to provide us with their SMTP username and password to see if adjusting this will work.

I am just stuck between a rock and a hard place now :(

jcalvert


I recently had a problem in that VM2 was not sending the order emails to customer and vendor, and I successfully found the code that sends the emails and was able to insert debug output to prove they were not being sent.  (I have since solved this problem, which I was experiencing with the PayPal payment plugin.)  Anyway, I could possibly direct you to code where you could put php echo output for your testing.

JC

CreativeDesigns

Hi JC,

I would really appreciate any help.
The client is angry and frustrated, and I really need to get this working :(
Please would you tell me what I need to do.

Thanks so much!

jcalvert


In components/com_virtuemart/helpers/shopfunctionsf.php you will find these two functions:

renderMail which calls sendVmMail.

When renderMail is called to send the order notification, I believe it sends the email to both the customer and the vendor.

I think this is the relevant code in renderMail:

        if(isset($view->doVendor) && !$noVendorMail) {
            if(isset($vars['orderDetails'])){
                $order = $vars['orderDetails'];
                $orderstatusForVendorEmail = VmConfig::get('email_os_v',array('U','C','R','X'));
                if(!is_array($orderstatusForVendorEmail)) $orderstatusForVendorEmail = array($orderstatusForVendorEmail);
                if ( in_array((string)$order['details']['BT']->order_status,$orderstatusForVendorEmail)){
                    self::sendVmMail( $view, $view->vendorEmail, TRUE );
                }else{
                    $user = -1;
                }
            } else {
                self::sendVmMail( $view, $view->vendorEmail, TRUE );
            }

        }



So for example you could insert these debug output statements:

echo "got here 0<br />";
      if(isset($view->doVendor) && !$noVendorMail) {
echo "got here 1<br />";
            if(isset($vars['orderDetails'])){
echo "got here 2<br />";
                $order = $vars['orderDetails'];
                $orderstatusForVendorEmail = VmConfig::get('email_os_v',array('U','C','R','X'));
                if(!is_array($orderstatusForVendorEmail)) $orderstatusForVendorEmail = array($orderstatusForVendorEmail);
                if ( in_array((string)$order['details']['BT']->order_status,$orderstatusForVendorEmail)){
echo "got here 3<br />";
                    self::sendVmMail( $view, $view->vendorEmail, TRUE );
                }else{
echo "got here 4<br />";
                    $user = -1;
                }
            } else {
echo "got here 5<br />";
                self::sendVmMail( $view, $view->vendorEmail, TRUE );
            }

        }



This should tell you if VM is sending the email to the vendor.

JC