Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Order Authorization / Capture Improvements #761

Closed
angelleye opened this issue Jun 6, 2017 · 4 comments
Closed

Order Authorization / Capture Improvements #761

angelleye opened this issue Jun 6, 2017 · 4 comments
Assignees
Milestone

Comments

@angelleye
Copy link
Collaborator

@angelleye
Copy link
Collaborator Author

Here is the basic review of what the customer wants...I asked them this...

If I understand correctly, you simply want to be able to create a new order in WC from a previous Authorization or Sale transaction, and then be able to process that order from the WC order screen using a reference transaction. Is that accurate or would you need anything beyond that?

Customer responded with...

In our current system (not wordpress and not paypal), in each order we have 3 options: authorize only, authorize and capture, capture on a previous authorization. I'm not sure what is possible with Paypal reference transactions.

I'm curious how you will build it out. The questions I have would be:

  1. Can you create a new authorization while there is still an open authorization, or does the first need to be voided or captured upon? (If you void an authorization, does it remove the ability to use a reference transaction?).

Voiding the first authorization, and then creating a reference transaction would be relevant if a customer first placed an order, then called us and asked us to add a significant priced item to their order. Can we void the first one and then authorize the entire new amount, or would we be capturing the entire first amount first, then re-authorizing?

  1. In this new functionality, will we be able to choose "new authorization" or "new auth/capture", or will it just be one? If we choose "new authorization", when it comes time to capture, will we be able to tell it which authorization to capture upon (assuming there can be two authorizations open at once with reference transactions)?

And I wrote back some answers...

The three options you mentioned are the same with PayPal, so it's just a matter of how it's all integrated, and a bit of terminology difference. For example, "Auth and Capture" is the same thing that PayPal calls "Sale". A Sale would do an Auth and Capture at the same time.

  1. Yes, you can create new authorizations while a previous is open, however, this would tie up additional funds on the user's account. As such, it's best to void a previous authorization if you're going to do new one. Unless they truly are completely separate transactions. Then it would make sense to keep two separate authorizations open and capture each accordingly. Voiding an authorization does not remove the ability to run reference transactions, but authorization IDs expire after a few months while Sale IDs do not.

In this case you describe here it would be best to void the original authorization and run a new Auth or Sale transaction.

  1. Within the Order in WooCommerce you will be able to void or capture any existing authorization. If voided you could then create a new auth on that same order with adjusted details. If captured then you would need to create a new WooCommerce order and do a fresh auth or sale transaction there. If you have separate transactions that do need separate auths it would be best to do those through separate orders in WooCommerce.

At this point they said everything sounded good. @kcppdevelopers Let me know when you're ready to discuss this so we can be sure we're on the same page.

@kcppdevelopers
Copy link
Contributor

@angelleye

Currently we have develop as per PayPal standard process about Sale, Authorization, Order and yes it is working perfectly fine.

Order Authorization / Capture work base on payment action selection.

Payment Action: Sale

With the Sale option, PayPal processes the payment without holding funds. The funds transfer from the buyer's funding source to your PayPal account balance immediately

  • You can use the Sale option for something that's delivered quickly, such as Digital Goods or a product that ships as soon as you receive the order.
  • PayPal immediately pulls the funds from the buyer's funding source and sends them to your PayPal account balance.

Payment Action: Authorization

Use the Authorization option to place a hold on funds. When you submit an authorization, you're asking PayPal to check whether the funds are available, and if they are, to hold them for 72 hours. You have up to 29 days to capture an authorization, and when you do, the funds are held for three days only. The first 72 hours of the 29-day period are known as the "honor period," meaning that PayPal guarantees the funds' availability.

If user chose payment action as 'Authorization' then we are not providing option to create new authorizations just provide option to Capture amount multiple time and we providing DoReauthorization option if authorizations outside honor period and Void Authorization option.

Payment Action: Order

You can use the Order option when you do or don't have all the items from the buyer's cart in stock or readily available. As with an authorization, an order is valid for 29 days, but the main difference is that the order doesn't place a hold on the funds. Instead, it lets you place a hold via an authorization at a later time.

If user choose payment action as 'Order' we are providing option to create multiple Authorization, Capture and Void.

Please Note: We are using reference transaction only for PayPal Pro and Payflow not for Express checkout.

angelleye pushed a commit that referenced this issue Jun 15, 2017
angelleye pushed a commit that referenced this issue Jun 15, 2017
angelleye pushed a commit that referenced this issue Jun 15, 2017
angelleye pushed a commit that referenced this issue Jun 15, 2017
@angelleye
Copy link
Collaborator Author

angelleye commented Jun 21, 2017

Customer likes what we've done, but is still hoping to be able to process a new transaction from the same order without the need to create a new order. So we can keep everything we've done, of course, but I think we still need to add some additional functionality here.

Right now, on an existing order with an open Auth we're able to Void or Capture. Sometimes the Auth could simply be expired, so capturing would fail. In these cases it would be good to simply be able to run a new Auth or Sale transaction from that same order without having to create a new, separate order.

To clarify, a Sale order or a fully captured Auth order would be considered "Completed" and it would make sense that you would then create a new Reference Order if you want to process a new order for that customer. However, an Auth order that is not fully captured should allow you to Void, Capture, Re-Authorize, or simply run a new Sale transaction straight from that existing order.

@angelleye angelleye modified the milestones: 1.4.6, 1.4.5.2 Jul 9, 2017
@angelleye
Copy link
Collaborator Author

Well, right now if I void the authorization it switches to Cancelled, which makes sense. But then I should be able to edit the order and do a fresh auth/capture or sale, which would then switch the status back to Pending or Processing or whatever...based on the transaction status a that point

[3:08]
But maybe i'm forcing the issue..??

[3:09]
You think if the Authorization was simply voided, then the order should be canceled, and you should use the Create RT Order button (and copy items) if you need to do a new one?

[3:09]
I guess it could be confusing because WC would send Canceled Order emails, and then the order would become open again...

[3:10]
so yeah, if it's voided / canceled / refunded then we wouldn't allow them to continue from the same order...but they could use the Create RT Order button

angelleye pushed a commit that referenced this issue Jul 31, 2017
@angelleye angelleye modified the milestones: 1.4.5.2, 1.4.6 Aug 2, 2017
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant