Credit card page not showing up for 'free' items - totally confused.

Started by coloradoz, August 26, 2014, 22:08:03 PM

Previous topic - Next topic

coloradoz

Joomla! 2.5.24
VirtueMart: 2.6.8 and 2.6.10
PHP: 5.4.30

Configured with authorize.net - vendor API login and key are correct
AIO tables updated, but not using any other plugins.

<NEW INFO>
Price for an item in the shop is 0.00, BUT - there is 9.95 shipping on the item.

Cart and shop work fine, except that when the customer puts in his/her info (name, address, etc), and right after agree to terms at the bottom, it goes right to checkout and WILL checkout without capturing credit card or any payment information.  It acts as if shipping is zero - but shipping IS being added correctly showing a balance of 9.95 (in this example).  But no credit card info is captured.

Help!
..AJ

jjk

Do you mean that the order is confirmed without ANY payment method attached to the order?
Also, do you have a valid SSL certificate installed and configured for your domain?
Non-English Shops: Are your language files up to date?
http://virtuemart.net/community/translations

coloradoz

Yes and Yes, VM prompts for all the customer shipping info (name, address, etc) and shipping method, but it 'clicks through' and completes the order successfully without asking for a credit card number

I should also mention that we are allowing unregistered users to order products.

Yes, valid SSL.

thanks!
..AJ

GJC Web Design

what does VM debug show you - is it a valid payment method? is it published?
GJC Web Design
VirtueMart and Joomla Developers - php developers https://www.gjcwebdesign.com
VM4 AusPost Shipping Plugin - e-go Shipping Plugin - VM4 Postcode Shipping Plugin - Radius Shipping Plugin - VM4 NZ Post Shipping Plugin - AusPost Estimator
Samport Payment Plugin - EcomMerchant Payment Plugin - ccBill payment Plugin
VM2 Product Lock Extension - VM2 Preconfig Adresses Extension - TaxCloud USA Taxes Plugin - Virtuemart  Product Review Component
https://extensions.joomla.org/profile/profile/details/67210
Contact for any VirtueMart or Joomla development & customisation

coloradoz

VM debug below from com_virtuemart.log.php:

<My Comment> This is a different issue, during the process of figuring out what is going on with orders I was putting in fake orders and the error below has to do with the fact that I can't delete orders.  It would be nice to solve this too.

2014-08-26 20:39:23 ERROR vmError: port Products db error Table 'joom2.exw9y_vm_product' doesn't exist SQL=SELECT *,`p`.product_id as product_id FROM `exw9y_vm_product` AS `p`
LEFT JOIN `exw9y_vm_product_mf_xref` ON `exw9y_vm_product_mf_xref`.`product_id` = `p`.`product_id`
WHERE (`p`.product_id) IS NOT NULL
GROUP BY `p`.product_id ORDER BY `p`.product_parent_id LIMIT 0,1000
2014-08-26 20:39:23 ERROR vmError: port Products db error SELECT *,`p`.product_id as product_id FROM `#__vm_product` AS `p`
LEFT JOIN `#__vm_product_mf_xref` ON `#__vm_product_mf_xref`.`product_id` = `p`.`product_id`
WHERE (`p`.product_id) IS NOT NULL
GROUP BY `p`.product_id ORDER BY `p`.product_parent_id LIMIT 0,1000
2014-08-26 20:39:23 ERROR vmError: port Orders db error Table 'joom2.exw9y_vm_orders' doesn't exist SQL=SELECT `o`.*, `op`.*, `o`.`order_number` as `vm1_order_number`, `o2`.`order_number` as `nr2`,`o`.order_id FROM `exw9y_vm_orders` as `o`
LEFT OUTER JOIN `exw9y_vm_order_payment` as `op` ON `op`.`order_id` = `o`.`order_id`
LEFT JOIN `exw9y_virtuemart_orders` as `o2` ON `o2`.`order_number` = `o`.`order_number`
WHERE (o2.order_number) IS NULL ORDER BY o.order_id LIMIT 0,1000
2014-08-26 20:39:23 ERROR vmError: port Orders db error SELECT `o`.*, `op`.*, `o`.`order_number` as `vm1_order_number`, `o2`.`order_number` as `nr2`,`o`.order_id FROM `#__vm_orders` as `o`
LEFT OUTER JOIN `#__vm_order_payment` as `op` ON `op`.`order_id` = `o`.`order_id`
LEFT JOIN `#__virtuemart_orders` as `o2` ON `o2`.`order_number` = `o`.`order_number`
WHERE (o2.order_number) IS NULL ORDER BY o.order_id LIMIT 0,1000
2014-08-26 20:40:29 ERROR vmError: VirtueMartModelOrders::remove 35
2014-08-26 20:45:22 ERROR vmError: VirtueMartModelOrders::remove 35
2014-08-27 15:26:11 ERROR vmError: VirtueMartModelOrders::remove 37

Is it a valid payment method? What do you mean by "Valid".  The payment method is defined as a credit card via VM-Authorize.net as below:
Payment Name    Payment Description           Vendor    Shopper Group  Payment Method      List Order      Published      Id
Credit Card     Credit card payment profile 1                                  authorizenet            1                    Published      3

Is it published? Yes.


GJC Web Design

valid-> fits the country, shopper group etc

debug - I meant the on screen VM debug during checkout so you can see what VM thinks of your payment method
GJC Web Design
VirtueMart and Joomla Developers - php developers https://www.gjcwebdesign.com
VM4 AusPost Shipping Plugin - e-go Shipping Plugin - VM4 Postcode Shipping Plugin - Radius Shipping Plugin - VM4 NZ Post Shipping Plugin - AusPost Estimator
Samport Payment Plugin - EcomMerchant Payment Plugin - ccBill payment Plugin
VM2 Product Lock Extension - VM2 Preconfig Adresses Extension - TaxCloud USA Taxes Plugin - Virtuemart  Product Review Component
https://extensions.joomla.org/profile/profile/details/67210
Contact for any VirtueMart or Joomla development & customisation

jjk

In addition to GJC's question - assuming that you use the built-in VirtueMart authorize.net payment plugin and not a third party authorize.net solution, you may compare your settings with this one (just to make shure you didn't miss something): http://www.webhostinghub.com/help/learn/virtuemart/payment-options/authorize-configure
Non-English Shops: Are your language files up to date?
http://virtuemart.net/community/translations

coloradoz

Ok, here's what I've got - i really couldn't take it to the part where you confirm the order and could not proceed, as in debug mode, I could not enter in a state/region?? 




<Debug items .... After Item Added to Cart>_______________________________________________________

        vmdebug Joomla Language tag: en-GB Virtuemart is using for db en_gb
        vmdebug vmTime: loadConfig db no: 0.00498580932617188
        vmdebug Start used Ram 6.25M
        vmdebug No admin
        vmdebug No $storeadmin
        vmdebug No $superVendor
        vmdebug shipmentmethod USPS - US, 1 Item = TRUE for variable weight = 5.0000 Reason: is lower than the set 5
        vmdebug shipmentmethod USPS - US, 1 Item = TRUE for variable zip = 0 Reason: is lower than the set 99999
        vmdebug shipmentmethod USPS - US, 1 Item = FALSE for variable virtuemart_country_id = 0, Reason: Country 223 does not fit
        vmdebug checkConditions USPS - US, 1 Item does not fit Var1:

        1

        Var2:

        1

        vmdebug shipmentmethod USPS - US, 2 Item = FALSE for variable weight = 5.0000 Reason: is NOT within Range of the condition from 5.1 to 21
        vmdebug shipmentmethod USPS - US, 2 Item = TRUE for variable zip = 0 Reason: is lower than the set 99999
        vmdebug shipmentmethod USPS - US, 2 Item = FALSE for variable virtuemart_country_id = 0, Reason: Country 223 does not fit
        vmdebug checkConditions USPS - US, 2 Item does not fit Var1:

        1

        Var2:

        1

        vmdebug shipmentmethod USPS - UK = TRUE for variable weight = 5.0000 Reason: is lower than the set 5
        vmdebug shipmentmethod USPS - UK = TRUE for variable zip = 0 Reason: is lower than the set 99999
        vmdebug shipmentmethod USPS - UK = FALSE for variable virtuemart_country_id = 0, Reason: Country 222 does not fit
        vmdebug checkConditions USPS - UK does not fit Var1:

        1

        Var2:

        1

        vmdebug shipmentmethod USPS - Austrailia, 1 Item = TRUE for variable weight = 5.0000 Reason: is lower than the set 5
        vmdebug shipmentmethod USPS - Austrailia, 1 Item = TRUE for variable zip = 0 Reason: is lower than the set 99999
        vmdebug shipmentmethod USPS - Austrailia, 1 Item = FALSE for variable virtuemart_country_id = 0, Reason: Country 13 does not fit
        vmdebug checkConditions USPS - Austrailia, 1 Item does not fit Var1:

        1

        Var2:

        1

        vmdebug shipmentmethod USPS - Canada, 1 Item = TRUE for variable weight = 5.0000 Reason: is lower than the set 5
        vmdebug shipmentmethod USPS - Canada, 1 Item = TRUE for variable zip = 0 Reason: is lower than the set 99999
        vmdebug shipmentmethod USPS - Canada, 1 Item = FALSE for variable virtuemart_country_id = 0, Reason: Country 38 does not fit
        vmdebug checkConditions USPS - Canada, 1 Item does not fit Var1:

        1

        Var2:

        1

        vmdebug shipmentmethod USPS - Canada, 2 Item = FALSE for variable weight = 5.0000 Reason: is NOT within Range of the condition from 5.1 to 21
        vmdebug shipmentmethod USPS - Canada, 2 Item = TRUE for variable zip = 0 Reason: no boundary conditions set
        vmdebug shipmentmethod USPS - Canada, 2 Item = FALSE for variable virtuemart_country_id = 0, Reason: Country 38 does not fit
        vmdebug checkConditions USPS - Canada, 2 Item does not fit Var1:

        1

        Var2:

        1

        vmdebug shipmentmethod USPS - Austrailia, 2 Item = FALSE for variable weight = 5.0000 Reason: is NOT within Range of the condition from 5.1 to 21
        vmdebug shipmentmethod USPS - Austrailia, 2 Item = TRUE for variable zip = 0 Reason: no boundary conditions set
        vmdebug shipmentmethod USPS - Austrailia, 2 Item = FALSE for variable virtuemart_country_id = 0, Reason: Country 13 does not fit
        vmdebug checkConditions USPS - Austrailia, 2 Item does not fit Var1:

        1

        Var2:

        1

        vmdebug End used Ram 20.25M
        vmdebug Peak memory peak 20.25M


Strict Standards: Declaration of VirtueMartControllerProductdetails::display() should be compatible with JController::display($cachable = false, $urlparams = false) in /home6/xxx/public_html/biz2/components/com_virtuemart/controllers/productdetails.php on line 31

Strict Standards: Declaration of JParameter::loadSetupFile() should be compatible with JRegistry::loadSetupFile() in /home6/xxx/public_html/biz2/libraries/joomla/html/parameter.php on line 512

Strict Standards: Declaration of VirtueMartModelMedia::store() should be compatible with VmModel::store(&$data) in /home6/xxx/public_html/biz2/administrator/components/com_virtuemart/models/media.php on line 439

Strict Standards: Declaration of plgVMPaymentPayzen::emptyCart() should be compatible with vmPSPlugin::emptyCart($session_id = NULL, $order_number = NULL) in /home6/xxx/public_html/biz2/plugins/vmpayment/payzen/payzen.php on line 833

Strict Standards: Declaration of plgVMPaymentSystempay::emptyCart() should be compatible with vmPSPlugin::emptyCart($session_id = NULL, $order_number = NULL) in /home6/xxx/public_html/biz2/plugins/vmpayment/systempay/systempay.php on line 833

Strict Standards: Declaration of TableUserfields::check() should be compatible with VmTable::check() in /home6/xxx/public_html/biz2/administrator/components/com_virtuemart/tables/userfields.php on line 172

Strict Standards: Declaration of TableUserfields::checkAndDelete() should be compatible with VmTable::checkAndDelete($table, $whereField = 0, $andWhere = '') in /home6/xxx/public_html/biz2/administrator/components/com_virtuemart/tables/userfields.php on line 172



coloradoz

Ok, turned debug off to enter in the State/Region, and then debug back on to get the rest of the debug stuff ... See below

<Proceed to Checkout>_____________________________________________________________________________

        vmdebug Joomla Language tag: en-GB Virtuemart is using for db en_gb
        vmdebug vmTime: loadConfig db no: 0.00632500648498535
        vmdebug Start used Ram 6.5M
        vmdebug shipmentmethod USPS - US, 1 Item = TRUE for variable weight = 5 Reason: is lower than the set 5
        vmdebug shipmentmethod USPS - US, 1 Item = TRUE for variable zip = 80126 Reason: is lower than the set 99999
        vmdebug shipmentmethod USPS - US, 1 Item = TRUE for variable virtuemart_country_id = 223, Reason: Countries in rule 223 or none set
        Checkout done, please confirm the order
        vmdebug Joomla Language tag: en-GB Virtuemart is using for db en_gb
        vmdebug vmTime: loadConfig db no: 0.00487899780273438
        vmdebug Joomla Language tag: en-GB Virtuemart is using for db en_gb
        vmdebug vmTime: loadConfig db no: 0.0052039623260498
        vmdebug Start used Ram 6.25M
        vmdebug shipmentmethod USPS - US, 1 Item = TRUE for variable weight = 5 Reason: is lower than the set 5
        vmdebug shipmentmethod USPS - US, 1 Item = TRUE for variable zip = 80126 Reason: is lower than the set 99999
        vmdebug shipmentmethod USPS - US, 1 Item = TRUE for variable virtuemart_country_id = 223, Reason: Countries in rule 223 or none set
        vmdebug shipmentmethod USPS - US, 1 Item = TRUE for variable weight = 5 Reason: is lower than the set 5
        vmdebug shipmentmethod USPS - US, 1 Item = TRUE for variable zip = 80126 Reason: is lower than the set 99999
        vmdebug shipmentmethod USPS - US, 1 Item = TRUE for variable virtuemart_country_id = 223, Reason: Countries in rule 223 or none set
        vmdebug shipmentmethod USPS - US, 2 Item = FALSE for variable weight = 5 Reason: is NOT within Range of the condition from 5.1 to 21
        vmdebug shipmentmethod USPS - US, 2 Item = TRUE for variable zip = 80126 Reason: is lower than the set 99999
        vmdebug shipmentmethod USPS - US, 2 Item = TRUE for variable virtuemart_country_id = 223, Reason: Countries in rule 223 or none set
        vmdebug checkConditions USPS - US, 2 Item does not fit Var1:

        1

        Var2:

        1

        vmdebug shipmentmethod USPS - UK = TRUE for variable weight = 5 Reason: is lower than the set 5
        vmdebug shipmentmethod USPS - UK = TRUE for variable zip = 80126 Reason: is lower than the set 99999
        vmdebug shipmentmethod USPS - UK = FALSE for variable virtuemart_country_id = 223, Reason: Country 222 does not fit
        vmdebug checkConditions USPS - UK does not fit Var1:

        1

        Var2:

        1

        vmdebug shipmentmethod USPS - Austrailia, 1 Item = TRUE for variable weight = 5 Reason: is lower than the set 5
        vmdebug shipmentmethod USPS - Austrailia, 1 Item = TRUE for variable zip = 80126 Reason: is lower than the set 99999
        vmdebug shipmentmethod USPS - Austrailia, 1 Item = FALSE for variable virtuemart_country_id = 223, Reason: Country 13 does not fit
        vmdebug checkConditions USPS - Austrailia, 1 Item does not fit Var1:

        1

        Var2:

        1

        vmdebug shipmentmethod USPS - Canada, 1 Item = TRUE for variable weight = 5 Reason: is lower than the set 5
        vmdebug shipmentmethod USPS - Canada, 1 Item = TRUE for variable zip = 80126 Reason: is lower than the set 99999
        vmdebug shipmentmethod USPS - Canada, 1 Item = FALSE for variable virtuemart_country_id = 223, Reason: Country 38 does not fit
        vmdebug checkConditions USPS - Canada, 1 Item does not fit Var1:

        1

        Var2:

        1

        vmdebug shipmentmethod USPS - Canada, 2 Item = FALSE for variable weight = 5 Reason: is NOT within Range of the condition from 5.1 to 21
        vmdebug shipmentmethod USPS - Canada, 2 Item = TRUE for variable zip = 80126 Reason: no boundary conditions set
        vmdebug shipmentmethod USPS - Canada, 2 Item = FALSE for variable virtuemart_country_id = 223, Reason: Country 38 does not fit
        vmdebug checkConditions USPS - Canada, 2 Item does not fit Var1:

        1

        Var2:

        1

        vmdebug shipmentmethod USPS - Austrailia, 2 Item = FALSE for variable weight = 5 Reason: is NOT within Range of the condition from 5.1 to 21
        vmdebug shipmentmethod USPS - Austrailia, 2 Item = TRUE for variable zip = 80126 Reason: no boundary conditions set
        vmdebug shipmentmethod USPS - Austrailia, 2 Item = FALSE for variable virtuemart_country_id = 223, Reason: Country 13 does not fit
        vmdebug checkConditions USPS - Austrailia, 2 Item does not fit Var1:

        1

        Var2:

        1

        vmdebug checkout_task Var1:

        confirm

        vmdebug vmTime: Cart view Finished task : 0.993951082229614
        vmdebug End used Ram 22.25M
        vmdebug Peak memory peak 22.5M


Strict Standards: Declaration of JParameter::loadSetupFile() should be compatible with JRegistry::loadSetupFile() in /home6/xxxx/public_html/biz2/libraries/joomla/html/parameter.php on line 512

Strict Standards: Declaration of TableUserfields::check() should be compatible with VmTable::check() in /home6/xxxx/public_html/biz2/administrator/components/com_virtuemart/tables/userfields.php on line 172

Strict Standards: Declaration of TableUserfields::checkAndDelete() should be compatible with VmTable::checkAndDelete($table, $whereField = 0, $andWhere = '') in /home6/xxxx/public_html/biz2/administrator/components/com_virtuemart/tables/userfields.php on line 172

Strict Standards: Declaration of plgVMPaymentPayzen::emptyCart() should be compatible with vmPSPlugin::emptyCart($session_id = NULL, $order_number = NULL) in /home6/xxxx/public_html/biz2/plugins/vmpayment/payzen/payzen.php on line 833

Strict Standards: Declaration of plgVMPaymentSystempay::emptyCart() should be compatible with vmPSPlugin::emptyCart($session_id = NULL, $order_number = NULL) in /home6/xxxx/public_html/biz2/plugins/vmpayment/systempay/systempay.php on line 833

Strict Standards: Declaration of VirtueMartModelMedia::store() should be compatible with VmModel::store(&$data) in /home6/xxxx/public_html/biz2/administrator/components/com_virtuemart/models/media.php on line 439
Cart
Checkout Step 4

<Confirm Order>___________________________________________________________________________


        vmdebug Joomla Language tag: en-GB Virtuemart is using for db en_gb
        vmdebug vmTime: loadConfig db no: 0.00488090515136719
        vmdebug Start used Ram 6.5M
        vmdebug confirm my post, get and so on Var1:

        Array
        (
            [billto] => 0
            [quantity] => Array
                (
                    [10] => 1
                )

            [virtuemart_shipmentmethod_id] => 1
            [customer_comment] =>
            [tosAccepted] => 1
            [order_language] => en-GB
            [STsameAsBT] => 1
            [task] => confirm
            [option] => com_virtuemart
            [view] => cart
        )

        Var2:

        Array
        (
            [Itemid] => 481
            [limitstart] => 0
            [limit] => int
        )

        vmdebug shipmentmethod USPS - US, 1 Item = TRUE for variable weight = 5 Reason: is lower than the set 5
        vmdebug shipmentmethod USPS - US, 1 Item = TRUE for variable zip = 80126 Reason: is lower than the set 99999
        vmdebug shipmentmethod USPS - US, 1 Item = TRUE for variable virtuemart_country_id = 223, Reason: Countries in rule 223 or none set
        vmdebug getMyOrderDetails Var1:

        0

        Var2:

        0

        vmdebug Attention, #__virtuemart_shipment_plg_weight_countries has not any entry for order_id = 38
        vmdebug End used Ram 28.5M
        vmdebug Peak memory peak 28.5M


Strict Standards: Declaration of JParameter::loadSetupFile() should be compatible with JRegistry::loadSetupFile() in /home6/xxxx/public_html/biz2/libraries/joomla/html/parameter.php on line 512

Strict Standards: Declaration of TableUserfields::check() should be compatible with VmTable::check() in /home6/xxxx/public_html/biz2/administrator/components/com_virtuemart/tables/userfields.php on line 172

Strict Standards: Declaration of TableUserfields::checkAndDelete() should be compatible with VmTable::checkAndDelete($table, $whereField = 0, $andWhere = '') in /home6/xxxx/public_html/biz2/administrator/components/com_virtuemart/tables/userfields.php on line 172

Strict Standards: Declaration of plgVMPaymentPayzen::emptyCart() should be compatible with vmPSPlugin::emptyCart($session_id = NULL, $order_number = NULL) in /home6/xxxx/public_html/biz2/plugins/vmpayment/payzen/payzen.php on line 833

Strict Standards: Declaration of plgVMPaymentSystempay::emptyCart() should be compatible with vmPSPlugin::emptyCart($session_id = NULL, $order_number = NULL) in /home6/xxxx/public_html/biz2/plugins/vmpayment/systempay/systempay.php on line 833
Thank you for your order!

coloradoz


coloradoz

New information.  The credit card is not showing up in situations where the item is 'free', but there is a charge for shipping.  In the shop, when you configure an item for 0.00, virtuemart is not accounting for the fact that there could be other charges.  The way this shop is set is is by weight/item.  There is a shipping charge that depends in the number of items (and this is accomplished by assigning weights to the items in the shop).  Shipping categories are setup according the the net weight.  If there is a better way to do this please let me know.

..AJ

jenkinhill

AFAIK the product price should be above zero to trigger payment, so set the price of those products to 0.001
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

coloradoz

Yes, I tried that - it does not trigger payment.  Just a question, should the payment be triggered based on a total price, including shipping?

..AJ

GJC Web Design

it is checked by this function

$amount = $this->getCartAmount($cart_prices);

function getCartAmount($cart_prices){
      if(empty($cart_prices['salesPrice'])) $cart_prices['salesPrice'] = 0.0;
      $cartPrice = !empty($cart_prices['withTax'])? $cart_prices['withTax']:$cart_prices['salesPrice'];
      if(empty($cart_prices['salesPriceShipment'])) $cart_prices['salesPriceShipment'] = 0.0;
      if(empty($cart_prices['salesPriceCoupon'])) $cart_prices['salesPriceCoupon'] = 0.0;
      $amount= $cartPrice + $cart_prices['salesPriceShipment'] + $cart_prices['salesPriceCoupon'] ;
      if ($amount <= 0) $amount=0;
      return $amount;

   }

so in your case your $cart_prices['salesPriceShipment'] should be returned  - then

$amount_cond = ($amount >= $method->min_amount AND $amount <= $method->max_amount
         OR
         ($method->min_amount <= $amount AND ($method->max_amount == 0)));
      if (!$amount_cond) {
         return FALSE;
      }

so in theory the condition should be true - but you need to echo out these values in the plugin to check
GJC Web Design
VirtueMart and Joomla Developers - php developers https://www.gjcwebdesign.com
VM4 AusPost Shipping Plugin - e-go Shipping Plugin - VM4 Postcode Shipping Plugin - Radius Shipping Plugin - VM4 NZ Post Shipping Plugin - AusPost Estimator
Samport Payment Plugin - EcomMerchant Payment Plugin - ccBill payment Plugin
VM2 Product Lock Extension - VM2 Preconfig Adresses Extension - TaxCloud USA Taxes Plugin - Virtuemart  Product Review Component
https://extensions.joomla.org/profile/profile/details/67210
Contact for any VirtueMart or Joomla development & customisation

coloradoz

I have debug turned on, but I'm not seeing those values.
..AJ