Support for Drupal 7 is ending on 5 January 2025—it’s time to migrate to Drupal 10! Learn about the many benefits of Drupal 10 and find migration tools in our resource center.
Disabled payment methods show up on /admin/store/orders/#/payments
Disabled payment methods show up on /admin/store/orders/#/payments
Comments
Comment #1
ginc CreditAttribution: ginc commentedthey also show up in /admin/store/orders/#/edit
Comment #2
TR CreditAttribution: TR commentedI believe this is by design. The idea is to allow the admin to manually accept payments of any installed type, even though these payment types may be disabled for on-line purchasers. For example, an admin can take an order over the telephone and enter it manually, choosing "Purchase Order" as a payment type, without enabling the Purchase Order payment method for anyone making a web order.
I don't see how this causes a problem, because it is only available to the admin.
Comment #3
ginc CreditAttribution: ginc commentedyou are right when the scenario is something like this:
a website, one or two admins (website gods!), and clients
consider this scenario:
a website, 10 operators that can take orders by phone 24x7, several sales managers, accountants, etc.
operator who inputs the order must not have access to disabled payment methods (if you install uc payment pack, you get 3 at once and there is no way to uninstall say 2 of them), give operators the ability to choose disabled payment methods, and the question will not be:"whether it will create problem or not?" but "when they are going to choose a disabled method by mistake? how to spot it? what kind of problems it creates for clients and e-shop employees including accountants?"
well its good to give a manger the right to choose a payment method that is not available online, it must be an additional option and never by default. we have to understand that end users are not as UC savvy as we are.
one more problem is that the disabled payment method might not be configured and always there is a gap between the installation of the module and completing the configuration.
Comment #4
TR CreditAttribution: TR commentedThat's a good reason.
Sounds like the right thing to do. It will probably get fixed faster if you submit a patch that makes the necessary changes.
Comment #5
ginc CreditAttribution: ginc commentedcan you commit patches to uc core?
Comment #6
rszrama CreditAttribution: rszrama commentedHmm... I used to allow you to enable / disable them for administrators as well as on checkout, but I had to change this. The reason was you would lose payment info if, for example, you had a payment method enabled on the front end that wasn't on the back end. The core example of this was PayPal Website Payments Standard. It doesn't make sense on the backend, because it requires the customer to redirect and enter their payment information then be sent back to the checkout complete page. I decided instead to just make the enable box work for checkout.
A solution to your scenario, imo, would be a simple bit of code in a custom module for the site. You can form alter options out of the payment method select box easy enough, and a site that large better have at least a small budget for custom tweaks. ; )
I suppose this sort of thing could easily be handled through a contribution as well, I'm just not sure I want to have it back in core at this point.
Comment #7
ginc CreditAttribution: ginc commentedThe reason i reported this problem, isn't that we can't write custom modules for UC, we are trying to help improve the uc core, if we want to get UC more popular which will help its development, we need to consider serious users as well as people who just start their online business, and the ability of uc core to answer the needs of big shops as well as small shops is critical to its popularity. one of the success secrets of Drupal is that big players like sony and yahoo started to use it and if we can make the same thing happen to UC guess what happens?
Comment #8
rszrama CreditAttribution: rszrama commentedI believe I understand your reasoning for the post, but I guess it still doesn't address the issue that disabling a payment method on the backend that is available during checkout will result in lost data if an administrator edits/saves an order that used one of those payment methods. We populate a select list of available payment methods on the order edit screen based on the backend enabled payment methods. That's why I took out this option, and I don't know what alternative solution would be cleaner.
Comment #9
ginc CreditAttribution: ginc commentedwhat if we turn payment pack into 3 separate modules, this way payment methods that aren't desirable wouldn't get installed. i'm just not sure if this can create problem for people upgrading. before upgrade they must deactivate payment pack and after upgrade they must go and activate 3 new payment modules. i'm not sure what to do with the installation script so that it wouldn't create problem, but i can figure it out! what do u think?
Comment #10
rszrama CreditAttribution: rszrama commentedI think splitting up the payment method pack into multiple modules is a good idea. It is out of place, after all. As for the upgrade path, if you're willing to figure that out, that would rock. So, the way it would work is the user would disable payment method pack on D5 and then on D6 enable only the modules they were using. I suppose we might have to build the update functions into uc_store.install or something.
My hunch is that this change should take place from 2.x - 3.x. As such, I've moved it to 6.x-2.0-beta1 and marked it postponed. If we get a patch, go ahead and change it to patch (code needs review). Otherwise I'll revisit it when we start developing the 3.x branch.
Comment #11
TR CreditAttribution: TR commentedComment #12
tchurch CreditAttribution: tchurch commented+1 Having it before Drupal 7 would be good.
Comment #13
bancarddata CreditAttribution: bancarddata commentedI understand the issue and agree that "it would be nice" to have the ability to get rid of installed payment methods that are disabled altogether (in my case, its more than just the Payment method pack; I want to only display a single Paypal option as well). I further understand the problem that is outlined in #6. Basically, it boils down to "you have to at least have the same set of payment methods available on the back-end as there are on the front-end" to prevent data loss.
I propose a different solution to this issue:
Why not create a permission "Display disabled payment methods", enabled by default for admins and disabled for all others. That way a person can decide if they just want to see the enabled ones, or if they want to see all of them. In my case, I just want to see all of the enabled ones and none of the disabled ones. I think this should make it work for both needs, no?
Comment #14
TR CreditAttribution: TR commentedSounds like a good idea. I'll see if I can come up with a patch for that.
Comment #15
longwaveHow about two columns of checkboxes on the payment methods settings page, one for checkout and the other for admins?
Comment #16
bancarddata CreditAttribution: bancarddata commentedThat would be similar I suppose to what was available back on comment #6. I guess if you make the admin checkbox disabled-checked if the checkout checkbox is checked, all should be well. Right?
Comment #17
longwaveAs proposed in #1321616: Payment method select element includes non-enabled methods an alternative here to two checkboxes would be a drag-drop list of payment methods split into three sections: enabled, admin only, disabled.
Comment #18
TR CreditAttribution: TR commentedMoving this to 8.x-4.x.
Comment #19
longwaveIf we convert payment methods to plugins, and they then need to be individually added/configured before they can be used, we could in fact roll them into uc_payment and drop the separate pack module.
Comment #20
XanoSee #2293939: Replace the payment API with Payment 8.x-2.x.
Comment #21
TR CreditAttribution: TR commentedFixed by #2620956: Convert payment methods and gateways into configuration entities. This will not be backported to 7.x-3.x.