some users get the error " you must provide atleast 1 recipient emaill address"

Started by allcoffs, December 19, 2011, 10:21:14 AM

Previous topic - Next topic

allcoffs

um what is this error all about  ? im using joomla 1.7.3 and VM 1.9.8

ive made 5 user accounts ( for testing ordering ) 4 work fine , but the 5th one is causing problems

when i goto cart it shows a green button to edit shipping , i dont want it there , its not there on all the other accounts ive made so why is it here ?( i have 1 shipping method and its on auto select in config)

i have entered all real addresses for postage ( not that it matters) in both registration and billing/shipping , when this account completes confirmation of order it gets a warning "invalid email address : you must provide atleast 1 recipient emaill address"  , it not invalid ,  i got the registration email at the same address

ummmmmm what is invalid ????? all email address are correct , i ,as admin , get the order but it is without a name or order number
eg:   "Hello Allcoffs, [] confirmed an order with a total of $69.95, his order_id =                 " ( bit funny lol as its actually a female shopper,,they have all said his)
aswell as the user doesnt get a confirmation email

ive looked at the users account and its the same as all the other accounts , ive been trying to fix this for days now , im about delete virtuemart  its that frustrating

this has nothing to do with the error/warning this account is getting as it works on 4/5 accounts and it is a real and valid email address im using


i can logout of this profile and log into another test account and it all works fine


"You must provide at least one recipient email address.
Invalid address: You must provide at least one recipient email address." is the whole message

should i have installed an earlier version , this one is extremely difficult to get anything done


ive had virtuemart 2.0rc installed and it failed to even start , gave errors on install ( forget what now sorry)
hosting is with godaddy on linux




Milbo

Do you use the j1.7.3? or the j1.7.3_snapshot (which is in fact j2.5)? We cant help you for vm1.9.8.
Should I fix your bug, please support the VirtueMart project and become a member
______________________________________
Extensions approved by the core team: http://extensions.virtuemart.net/

allcoffs

and just why cant anyone help with 1.9.8 , its the first one in the Download list that doesnt say BETA OR RC , why offer it for download then ?  if there is no help for 1.9.8 it should not be there and we should have been told not to download it !!!!!!! the version i have is not a beta nor is it a release candidate

VM does have to many bugs in it and if there is no support why bother with it , most of the bugs i can work around but this one i cannot and it will make my eCommerce site FAIL which i cannot and will not allow to happen

i fail to see what or why you would need to know what version of joomla i have , but like i have already said it is version 1.7.3 and virtuemart is 1.9.8 ( notice no extra's like rc or beta???)

NOTHING is remembered in config , whatever settings i change doesnt seem to make any difference ( like i said b4 i ) in config if i click on enable auto payment method , the tick appears in the right box , but when i goto make a purchase it still wants me to enter in what type of payment and shipping i want to use ,,, i only have 1 of each , and auto select is ticked but it still wants to ask my customer these silly questions , it will go through the checkout stage 3 times before its a confirmed order even though i have the " agree to terms and conditions" in config  unticked!!! it still wants to do what i have expressly told it not to do


This is my first time using joomla and vm ( i used to use another cart but as vm was supposedly written for joomla i thought id give it a go), and it isnt very encouraging that an administrator says they cannot help with 1.9.8

Why dont you only allow the version that is current and supported  to be downloaded , yeah other peeps like devs might need something else but atleast tell people that its unsupported and there is no help for it ,,,,,, i have wasted weeks doing this work , stressing myself out , only to find its all been for nothing and a huge waste of my time as there is no solution ( and that really isnt any good for the vm image now is it)


can you please advise as to what version is supported and people are able to give advice on?  ( as there are so many to choose from )

this will be my 3rd try to install Virtuemart and if it doesnt work it will be my final !!!!!! ( like most places , 3 times and your out)

Milbo

Should I fix your bug, please support the VirtueMart project and become a member
______________________________________
Extensions approved by the core team: http://extensions.virtuemart.net/

michthom

I'm also seeing this behaviour, as all my shoppers are anonymous (not registered / logged in).
It seems in my case that when Paypal confirms the payment, VM2.0.0 on J!1.7.3 is trying to send 4 emails, of which three get delivered and one fails:

Delivered to Shop admin address:
[7cbcae91], Confirmed order by Mr Mike Thomson, total £40.00
[], Confirmed order by Mr Mike Thomson, total £10.00

Delivered to shopper's address:
[7cbcae91], Confirmed order at Online Gallery, total £40.00

It seems that the spurious emails both relate to an empty order with a default shipping cost of £10 and no products. I think this is what's triggering the error, as there's no shopper associated with the empty order, therefore no email address when it's attempted to be sent.

What can I do to help debug this further?

michthom

I installed J!Dump and put the following in /controllers/pluginresponse.php

# diff -u ./controllers/*pluginresponse.php
--- ./controllers/ORIGINAL_pluginresponse.php   2012-01-02 19:55:57.000000000 +0100
+++ ./controllers/pluginresponse.php   2012-01-02 20:04:07.000000000 +0100
@@ -85,6 +85,8 @@
         $order = new VirtueMartModelOrders();
         $orderitems = $order->getOrder($virtuemart_order_id);
         //vmdebug('PaymentResponseReceived CART', $orderitems);
+         dump( $virtuemart_order_id, 'Order ID');
+         dump( $orderitems, 'Order Items');
         $cart->sentOrderConfirmedEmail($orderitems);
         //We delete the old stuff

What came up was indeed very odd:

[string] Order ID = "<table>
<tr>
<td >Payment Name</td>
<td align='left'><span class="vmpayment_name">PayPal</span><span class="vmpayment_description">PayPal</span></td>..." (Length = 293)
[array] Order Items
[array] details = (empty)
[array] history = (empty)
[array] items = (empty)

The tooltip says:

Source:
Function: VirtueMartControllerPluginresponse -> PaymentResponseReceived()
File: components/com_virtuemart/controllers/pluginresponse.php
Line: 88

So it seems to my (amateur!) eye that the $virtuemart_order_id has the wrong contents, which means the $order is also not found, and therefore no email address for the shopper and no items in the cart?

Let me know if this is leading anywhere...

michthom

OK, a rather unsatisfactory workaround follows;
o The desired order is placed as you'd expect (this is good)
o You don't get the spurious email to the store admin address (this is good)
o The shopper doesn't get the 'you must provide at least 1 recipient emaill address' error (this is good too)
o The shopper doesn't see the page with their order on it, just a 'thanks for your order' message (this is sub-optimal).

Also, I have no idea yet why this behaviour (duplicate triggers from Paypal?) is being provoked.

Anyone else able / interested in digging deeper?

Cheers
Mike

# diff -u ./components/com_virtuemart/controllers/*pluginresponse.php
--- ./components/com_virtuemart/controllers/ORIGINAL_pluginresponse.php   2012-01-02 19:55:57.000000000 +0100
+++ ./components/com_virtuemart/controllers/pluginresponse.php   2012-01-02 21:30:34.000000000 +0100
@@ -85,10 +85,14 @@
         $order = new VirtueMartModelOrders();
         $orderitems = $order->getOrder($virtuemart_order_id);
         //vmdebug('PaymentResponseReceived CART', $orderitems);
-         $cart->sentOrderConfirmedEmail($orderitems);
-         //We delete the old stuff

-         $cart->emptyCart();
+         if ( ! empty($orderitems['items'])) {
+            $cart->sentOrderConfirmedEmail($orderitems);
+            //We delete the old stuff
+   
+            $cart->emptyCart();
+         }
+
         break; // This was the active plugin, so there's nothing left to do here.
          }
      }



michthom

I have no idea why this happened, but after testing on a fresh install of J!1.7.3 and VM2.0.0 (stable) I can't reproduce the problem, so it's clearly a PEBCAK - Problem Exists Between Chair And Keyboard.

WALLOON

I was facing the same problem.
2 things to verify :
A) You must have a correct email address in the SHOP / CONFIGURATION / EMAIL ADDRESS
B) In you xxxxx_virtuemart_vmusers table you must have at least one user with the fileds
       virtuemart_vendor_id = 1
        user_is_vendor = 1
   if not - complete you administrator user with these 2 values
Regards.
Remy