Jump to content

Latest products not updating cart.


Recommended Posts

Is there a way of Automating the processing of Digital downloads in stead of having to go into admin and changing it manually from pending to complete?

I want to sell only digital download products, but after payment is completed they just sit pending till I manually update it to Complete.

Any settings that I could change to automate the process.

Any ideas suggestion or plugins that can help me automate the process please.

Link to comment
Share on other sites

Changing the order's status from Pending to Processing (and then on to Complete if all-digital) is automatic -- assuming, of course, the payment gateway module and the payment processor (PayPal) are doing their jobs, and the customer actually makes payment.

 

Link to comment
Share on other sites

12 hours ago, bsmither said:

Changing the order's status from Pending to Processing (and then on to Complete if all-digital) is automatic -- assuming, of course, the payment gateway module and the payment processor (PayPal) are doing their jobs, and the customer actually makes payment.

 

Ok so obviously paypal is not doing that, how do I fix this?

I am using paypal standard.

You expertise and advice would be much appreciated.

Link to comment
Share on other sites

36 minutes ago, navimaps4u said:

Ok so obviously paypal is not doing that, how do I fix this?

I am using paypal standard.

You expertise and advice would be much appreciated.

I have just seen something very interesting happen,

When testing a FREEBIE ($0) the status goes through to complete and an email goes out to customer with download link.

But if there is a dollar value the status goes to pending and just stays there.

I hope this may give a clue as to what needs to be done.

Thanks in advance.

Link to comment
Share on other sites

This is the tricky part -- to find evidence that PayPal is sending back what is called the Instant Payment Notification (IPN).

PayPal is supposed to send back a POST payload to:
/index.php?_g=rm&type=gateway&cmd=call&module=PayPal
If the web browser successfully delivers this POST to PHP and PHP tells the web server that it ran the script successfully, then the web server sends back a 200OK response to PayPal's IPN.

CubeCart then takes that data in the POST payload and makes a call back to PayPal to verify those transaction details. This call is logged in CubeCart's admin, Request Log. Note that if no IPN, then no call back, and no logging of the call.

How do we discover if PayPal made the IPN? One needs to look at the web server's access log. In your hosting control panel, there will be the means to download access logs for the current day, or the current month, and possibly backup files of previous months.

The relevant access log will have the URL that is the IPN (see above).

Now, if there was no IPN sent (for whatever reason), or if the IPN was sent but did not get a 200OK response, then in your PayPal Merchant control panel at PayPal there should be a place that logs IPN failures for transactions.

We ask that you visit your PayPal Merchant Account control panel to determine if PayPal had logged any abnormal responses to its attempts to send an IPN.

Link to comment
Share on other sites

1 hour ago, bsmither said:

This is the tricky part -- to find evidence that PayPal is sending back what is called the Instant Payment Notification (IPN).

PayPal is supposed to send back a POST payload to:
/index.php?_g=rm&type=gateway&cmd=call&module=PayPal
If the web browser successfully delivers this POST to PHP and PHP tells the web server that it ran the script successfully, then the web server sends back a 200OK response to PayPal's IPN.

CubeCart then takes that data in the POST payload and makes a call back to PayPal to verify those transaction details. This call is logged in CubeCart's admin, Request Log. Note that if no IPN, then no call back, and no logging of the call.

How do we discover if PayPal made the IPN? One needs to look at the web server's access log. In your hosting control panel, there will be the means to download access logs for the current day, or the current month, and possibly backup files of previous months.

The relevant access log will have the URL that is the IPN (see above).

Now, if there was no IPN sent (for whatever reason), or if the IPN was sent but did not get a 200OK response, then in your PayPal Merchant control panel at PayPal there should be a place that logs IPN failures for transactions.

We ask that you visit your PayPal Merchant Account control panel to determine if PayPal had logged any abnormal responses to its attempts to send an IPN.

Thank you for your reply, been on to my account in paypal had a look and no errors in there, but in Admin error log I found this.

File: [cubecart.class.php] Line: [2076] "SELECT `0567CubeCart_order_inventory`.*, `0567CubeCart_order_summary`.`status` FROM `0567CubeCart_order_inventory` INNER JOIN `0567CubeCart_order_summary` ON `CubeCart_order_inventory`.`cart_order_id` = `CubeCart_order_summary`.`cart_order_id` WHERE 0567CubeCart_order_inventory.id = '16' ;" - Unknown column 'CubeCart_order_inventory.cart_order_id' in 'on clause'

What does it mean?

Link to comment
Share on other sites

That error is coming from a different issue. You will probably want to implement the fix, but this is (probably) not related to why an order stays at Pending.

So, it seems PayPal isn't logging any errors when it makes the IPN. Does PayPal show that a transaction was occuring? That is, does PayPal actually make a successful transaction with the customer?

The IPN call back to PayPal is logged in CubeCart's admin, Request Log. Look there for any reference to CubeCart making this call.

Link to comment
Share on other sites

On 6/23/2019 at 1:38 AM, bsmither said:

That error is coming from a different issue. You will probably want to implement the fix, but this is (probably) not related to why an order stays at Pending.

So, it seems PayPal isn't logging any errors when it makes the IPN. Does PayPal show that a transaction was occuring? That is, does PayPal actually make a successful transaction with the customer?

The IPN call back to PayPal is logged in CubeCart's admin, Request Log. Look there for any reference to CubeCart making this call.

Thanks for all your help and advice bsmither, everything seems to be working as intended now, thank you.

However I would still like to be able to omit the requirement for customers telephone/mobile numbers, and also edit

the message that pops up saying that your order is pending etc (don't know where to edit it to read something like Thank you for your order and the download link will be emailed to you, and to check you Spam/Junk folder if not in the inbox)

Where do I edit that message?

Thanks again for all your help.

Link to comment
Share on other sites

The skin determines whether the phone/mobile entry fields are required. So, in the skin template, edit the code to remove the 'required' attributes.

For Foundation, in content.register.php, near line 31:

Change this part of the code:
placeholder="{$LANG.address.phone} {$LANG.form.required}" required></div>

To:
placeholder="{$LANG.address.phone}"></div>


In content.checkout.confirm.php, near line 111:

Change this part of the code:
id="user_phone" required value="{$USER.phone}" placeholder="{$LANG.address.phone}  {$LANG.form.required}" autocomplete="tel"></div>

To:
id="user_phone" value="{$USER.phone}" placeholder="{$LANG.address.phone}" autocomplete="tel"></div>

The skin may also have a form validator.

For Foundation, in the file /js/3.cubecart.validate.js, near line 197:

Change:
            'user[phone]': {
                required: true,
                phone: true
            },

To:
            'user[phone]': {
                // required: true,
                phone: true
            },

Near line 257:

Change:
            'user[phone]': {
                required: $('#validate_phone').text(),
                phone: $('#validate_phone').text()
            },

To:
            'user[phone]': {
                // required: $('#validate_phone').text(),
                phone: $('#validate_phone').text()
            },

Near lines 442 and 508:

Change:
            phone: {
                required: true,
                phone: true
            },

To:
            phone: {
                // required: true,
                phone: true
            },

Near lines 473 and 534:

Change:
            phone: {
                required: $('#validate_phone').text(),
                phone: $('#validate_phone').text()
            },

To:
            phone: {
                // required: $('#validate_phone').text(),
                phone: $('#validate_phone').text()
            },

There is another edit in the core CubeCart code. The line number depends which version of CubeCart you are using.

In /classes/cubecart.class.php, find:
private function _checkout()

About 30 lines later, find:
$optional = array('mobile', 'line2');

Change to:
$optional = array('phone', 'mobile', 'line2');

Keep these instructions as updating CubeCart or the included Foundation skin will overwrite these edits.

Link to comment
Share on other sites

In CubeCart's admin, Languages, click the edit icon of the language(s) your store uses. From the drop-down selector, choose the Confirm group. Make your changes here and Save. These changes are databased and will survive an upgrade.

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...