Closed The-Krang closed 5 years ago
Hi @The-Krang. Thank you for your report. To help us process this issue please make sure that you provided the following information:
Please make sure that the issue is reproducible on the vanilla Magento instance following Steps to reproduce. To deploy vanilla Magento instance on our environment, please, add a comment to the issue:
@magento-engcom-team give me 2.3-develop instance
- upcoming 2.3.x release
For more details, please, review the Magento Contributor Assistant documentation.
@The-Krang do you confirm that you was able to reproduce the issue on vanilla Magento instance following steps to reproduce?
I don't believe that I know what a "vanilla Magento instance " is, especially the "instance" part.
Oops, I closed this by mistake.
Hi @engcom-backlog-nazar. Thank you for working on this issue. In order to make sure that issue has enough information and ready for development, please read and check the following instruction: :point_down:
[ ] 1. Verify that issue has all the required information. (Preconditions, Steps to reproduce, Expected result, Actual result).Details
If the issue has a valid description, the label Issue: Format is valid
will be added to the issue automatically. Please, edit issue description if needed, until label Issue: Format is valid
appears.
[ ] 2. Verify that issue has a meaningful description and provides enough information to reproduce the issue. If the report is valid, add Issue: Clear Description
label to the issue by yourself.
[ ] 3. Add Component: XXXXX
label(s) to the ticket, indicating the components it may be related to.
[ ] 4. Verify that the issue is reproducible on 2.3-develop
branchDetails
- Add the comment @magento-engcom-team give me 2.3-develop instance
to deploy test instance on Magento infrastructure.
- If the issue is reproducible on 2.3-develop
branch, please, add the label Reproduced on 2.3.x
.
- If the issue is not reproducible, add your comment that issue is not reproducible and close the issue and stop verification process here!
[ ] 5. Verify that the issue is reproducible on 2.2-develop
branch. Details
- Add the comment @magento-engcom-team give me 2.2-develop instance
to deploy test instance on Magento infrastructure.
- If the issue is reproducible on 2.2-develop
branch, please add the label Reproduced on 2.2.x
[ ] 6. Add label Issue: Confirmed
once verification is complete.
[ ] 7. Make sure that automatic system confirms that report has been added to the backlog.
Hi @The-Krang thank you for you report, this is expected behavior the link will be available only if your done the invoice process, and paypal not process orders with only one product which costs 0.00.
I guess I did not make the situation completely clear.
The $0.00 amounts were done with "Zero Subtotal Checkout", and any amounts above $0.00 were tested in Braintree and PayPal.
I am well aware that Paypal does not process amounts like $0.00. I have been using Magento 2 for years now.
Futhermore, last night I downloaded version 2.3.1 from Bitnami, installed it, set it up like version 2.3.0, but there still are no download links, and the status still says “Pending”.
Something changed from version 2.3.0 to version 2.3.1, or I made a large mistake somewhere, or I have completely lost all comprehension.
Please take another look at what I presented above.
Just to be even more clear, the Live purchases (Production, not sandbox) that I made through Braintree and Paypal had the same outcome as the ones using "Zero Subtotal Checkout", and that is with the status showing "Pending" instead of "Available", and no download link.
The screen-shots above show the "Zero Subtotal Checkout" tests that I did, but they also represent the Live purchases because the outcomes were the same.
To all who may also have this problem, I will post the fix I found, as soon as possible.
I knew that I had not lost my comprehension. I was correct, there was a change somewhere from Magento 2.3.0 to 2.3.1 that affected download links.
This is what I did to fix my problem.
I did some more searching, and what I found was that on my system, the file with the problem was this one:
/public_html/vendor/magento/module-downloadable/Observer/SaveDownloadableOrderItemObserver.php
I renamed this problem file to keep it as a backup just in case I needed to go back to it.
I made a replacement SaveDownloadableOrderItemObserver.php file from the code from the link BELOW.
Credit goes to James/crankycyclops, for his bug report and the fix for the bug.
The code that fixed my issure came from this page:
The previous orders BEFORE the fix stayed the same, and the newest orders work like they should and did in all versions prior to Magento 2.3.1.
I made sure that these settings were in place in my Admin:
Under stores> configuration> catalog> catalog> Downloadable Product Options> I have "Order Item Status to Enable Downloads" set to "Pending".
Under stores> configuration> catalog> Inventory> for both "Stock Options" and "Product Stock Options", I have "Decrease Stock When Order is Placed" and "Manage Stock" respectively set to "No".
Under stores> configuration> sales> payment methods> Zero Subtotal Checkout> I have "New Order Status" set to "Pending".
Under stores> configuration> sales> payment methods> PayPal Express Checkout> Basic Settings - PayPal Express Checkout> I have "Payment Action" set to "Sale". This was a Live test, that is, money was transfered.
That is all.
I want to validate the comment by The-Kang on 27 April above based on my own experience trying to adapt Magento 2.3.3 just after it came out. The fresh installation did not download digital files. As my first troubleshooting step, I looked into the code change on the web page at https://github.com/magento/magento2/issues/22545 recommended by saeohioalpha,, Jul 3, and specifically checked the code this person recommended at https://github.com/magento/magento2/pull/22658/files and found that it was already integrated into the file vendor/magento/module-downloadable/Observer/SaveDownloadableOrderItemObserver.php. Next, I made the code change recommended by The-Kang, 27 April, above. I replaced the original Magento 2.3.3 code with the code The-Kang recommended at https://github.com/magento/magento2/blob/5410e077c534127f3492d53f8ab3981691bed2e3/app/code/Magento/Downloadable/Observer/SaveDownloadableOrderItemObserver.php that is credited to James/crankycyclops. The act of eliminating the original Magento 2.3.3 code at /public_html/vendor/magento/module-downloadable/Observer/SaveDownloadableOrderItemObserver.php and pasting in the new code created by James/crankycyclops did not work by itself. However, when I also went into the Magento admin area and made the settings changes recommended by The-Kang, such as "Under stores> configuration> catalog> catalog> Downloadable Product Options> I have Order Item Status to Enable Downloads' set to
Pending'" now all of a sudden I got a working download button. Unfortunately these additional steps are not covered in any online YouTube tutorials for creating downloads that I have come across to date. The-Kang's comment "The previous orders BEFORE the fix stayed the same, and the newest orders work like they should and did in all versions prior to Magento 2.3.1." turned out to also be true with my Magento 2.3.3, namely the earlier test purchases did not show a download button, but test purchases after making all the changes recommended by The-Kang did produce a download button. All this having been said, it appears that I have one last major bug to overcome with Magento 2.3.3 when it comes to making it ready for commercial use. This involves using Authorize.net for processing payments. Even though I set the Authorize.net payment module to "Authorize and Capture" at Stores > Configuration > Sales > Payment Methods I have to visit the "Unsettled Transactions" area of Authorize.net every time there is a purchase. I must manually designate at Authorize.net that the funds be "captured" and released to a payment processor. Apparently some bug in the system prevents my designation of "Authorize & Capture" in the Magento admin area from being translated automatically to the same status at Authorize.net, which simply shows "Authorized/Pending Capture." I contacted an Authorize.net customer service rep, who said that unfortunately there isn't a way to configure the account to automatically set a transaction type on everything coming in, since that's determined by the application on the other side of our API (Magento in this case). He referred me to the Magento developer community. Perhaps someone within this community has some answers.
@SR71Mach3, If you can see this e-mail, I'm glad that my post helped you.
Also, Thank You for letting the rest us know that version 2.3.3 has the same problem in it that version 2.3.1 had.
I'm sorry that I can't help with your Authorize.net problem (I use paypal and braintree), but I hope you get it sorted out soon so that you can launch.
From: SR71Mach3 notifications@github.com Sent: Thursday, October 24, 2019 4:38 PM To: magento/magento2 magento2@noreply.github.com Cc: The-Krang g_krang@hotmail.com; Mention mention@noreply.github.com Subject: Re: [magento/magento2] No download link in customer account after purchases in 2.3.1. (#22354)
I want to validate the comment by The-Kang on 27 April above based on my own experience trying to adapt Magento 2.3.3 just after it came out. The fresh installation did not download digital files. As my first troubleshooting step, I looked into the code change on the web page at #22545https://github.com/magento/magento2/issues/22545 recommended by saeohioalpha,, Jul 3, and specifically checked the code this person recommended at https://github.com/magento/magento2/pull/22658/files and found that it was already integrated into the file vendor/magento/module-downloadable/Observer/SaveDownloadableOrderItemObserver.php. Next, I made the code change recommended by The-Kang, 27 April, above. I replaced the original Magento 2.3.3 code with the code The-Kang recommended at https://github.com/magento/magento2/blob/5410e077c534127f3492d53f8ab3981691bed2e3/app/code/Magento/Downloadable/Observer/SaveDownloadableOrderItemObserver.php that is credited to James/crankycyclops. The act of eliminating the original Magento 2.3.3 code at /public_html/vendor/magento/module-downloadable/Observer/SaveDownloadableOrderItemObserver.php and pasting in the new code created by James/crankycyclops did not work by itself. However, when I also went into the Magento admin area and made the settings changes recommended by The-Kang, such as "Under stores> configuration> catalog> catalog> Downloadable Product Options> I have Order Item Status to Enable Downloads' set to Pending'" now all of a sudden I got a working download button. Unfortunately these additional steps are not covered in any online YouTube tutorials for creating downloads that I have come across to date. The-Kang's comment "The previous orders BEFORE the fix stayed the same, and the newest orders work like they should and did in all versions prior to Magento 2.3.1." turned out to also be true with my Magento 2.3.3, namely the earlier test purchases did not show a download button, but test purchases after making all the changes recommended by The-Kang did produce a download button. All this having been said, it appears that I have one last major bug to overcome with Magento 2.3.3 when it comes to making it ready for commercial use. This involves using Authorize.net for processing payments. Even though I set the Authorize.net payment module to "Authorize and Capture" at Stores > Configuration > Sales > Payment Methods I have to visit the "Unsettled Transactions" area of Authorize.net every time there is a purchase. I must manually designate at Authorize.net that the funds be "captured" and released to a payment processor. Apparently some bug in the system prevents my designation of "Authorize & Capture" in the Magento admin area from being translated automatically to the same status at Authorize.net, which simply shows "Authorized/Pending Capture." I contacted an Authorize.net customer service rep, who said that unfortunately there isn't a way to configure the account to automatically set a transaction type on everything coming in, since that's determined by the application on the other side of our API (Magento in this case). He referred me to the Magento developer community. Perhaps someone within this community has some answers.
— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHubhttps://github.com/magento/magento2/issues/22354?email_source=notifications&email_token=AGW4PF7RDOH4GV3NXLF5YWLQQIBURA5CNFSM4HGD7MFKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOECGLINI#issuecomment-546092085, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AGW4PF4TYXDEA32L7IQG5TTQQIBURANCNFSM4HGD7MFA.
Order Item Status to Enable Downloads' set to Pending'" worked
Preconditions (*)
Summary of the issue: There is no download link in the customer account after purchases, and the status shows "Pending", instead of "Available".
I have two installations of Magento 2.3.1 CE, both were uploaded from https://magento.com/tech-resources/download, and then installed on a paid web server, a Linux-based web host. One of them is my store, the other one is a staging store. Both were "naked" installs, that is, no updating/upgrading was done from a previous version. The installations went through without any problems.
I have a separate installation of Magento 2.3.0 CE, which I installed on my home Linux computer using a Bitnami download.
The download links in the customer account work in the Magento 2.3.0 CE version, but not in either of the Magento 2.3.1 CE versions. I used the same Admin configurations in the 2.3.1 versions that I did in the 2.3.0 version.
Information on my environment: In the cPanel of my web host account where the Magento 2.3.1 CE versions are installed, the PHP version Manager shows PHP version 7.1., and in the phpMyAdmin software Version, it shows up as version 4.7.3, with PHP version 5.6.30.
Custom themes and custom modules were disabled for all stores.
From the Admin side, I cleaned the cache, emptied cahe storage, and refreshed whatever needed it.
I didn't see any errors in the /var/log files, except for the debug.log, which contained:
[2019-04-15 20:57:53] main.DEBUG: Request validation failed for action "Magento\Config\Controller\Adminhtml\System\Config\Index\Interceptor" [] [][2019-04-15 21:36:42] main.DEBUG: cache_invalidate:
{"method":"POST","url":"~/index/index/key/ea147190a26979906d90e3ae8863a0afca600dc77eaf00acc70150fadb7dbfc8/","invalidateInfo":{"tags":["BACKEND_MAINMENU"],"mode":"matchingAnyTag"}} []
[2019-04-15 21:36:42] main.DEBUG: Request validation failed for action "MSP\TwoFactorAuth \Controller\Adminhtml\Tfa\Index\Interceptor" [] []
I have tested the online stores from a Windows 7 Professional computer, and a Linux Mint 18.3 KDE computer, with Opera and FireFox browsers on both computers.
Steps to reproduce (*)
Steps taken to produce the error:
This happens whether the product is free/$0.00 or purchased through PayPal or Braintree on a debit/credit card. Also this happens regardless of whether "Order Item Status to Enable Downloads" is set to either "Pending" or "Invoiced".
Expected result (*)
Actual result (*)
The "My Downloadable Products" page displays, but there is no download link in the customer account after purchases, and the status shows "Pending", instead of "Available".
About me (*) :-)
I have been using Magento since 2.0.x for some time now, so I am familiar with what needs to be done to set up the store, but I could have missed or overlooked something.
If it helps any, attached below are the images of what I am talking about.
I need to know how and exactly where I can fix this problem? Please be verbose, and with everyday speech.
Thank you very much.
In the Admin, I have: