Magento 2 Multi-Address checkout issue with Braintree PSP - magento2.4

We are facing issue with Magento Multi-Address checkout. We have enabled this to allow customers to put through large orders to be sent to multiple addresses. Even though to the customer it looks to be one payment we know it actually splits the order by address and takes a payment per order. The challenge is we are having customers make large orders for up to 100 addresses and the first 5 orders/payments are going through fine but the subsequent payments for the remaining order are all being rejected by the bank and therefore the rest of the orders are not being created.
We are currently using it on Magento 2.4.2 with Braintree as the PSP.
We are expecting to process the multi address checkout payments with Braintree.

Related

Spring: Paypal Payment on new currencies results to PENDING capture status

I think this is not a code problem since my application can successfully pay and process payments using my account currencies (usd/php/hkd).
Since there was a new requirement to support some currencies (sgd, eur, jpy, etc), I added these currencies Account Settings > Money, banks, and cards.
Btw, I am using paypal order and payment version 2 on spring.
The application was able to pass the currency and value of the transaction (like what I do normally with USD/EUR/PHP).. It was able to create order object, authorized approved payment... but it the capture authorized payment is always stucked at PENDING.
I still need to check on my test paypal account and either Accept/Reject received payment.
However, my application is only checking for COMPLETED capture status for it to considered or mark it as successful payment.
I also tried the configuration on my test paypal account (Account Settings > Payment Preferences > Block Payments).
Tried selecting Yes, accept and convert them to... and Ask me whether to accept or deny each individual payment but the capture status is still PENDING.
Is there a way to proceed with the capture payment and have the status to COMPLETED? Even with payments of different currencies? It would be OK if the payment received will be stored on that currency or have it converted to my default currency (like USD, etc).
What I want is the capture status to proceed to COMPLETED without manually accepting/rejecting payments with other currency (newly added currencies).
Again, I think this is not a coding issue... more of a configuration issue.. but I am not sure which configuration and where to set. I am pretty new with paypal development.
By the way, I based my changes on my paypal account with this link:
Payment Receiving Preferences
TIA
This is standard PayPal behavior. If you accept the first payment in a new currency in a way that opens a balance in such a currency, future payments won't need to be manually accepted. You can also manually open $0 balances in the Money management section, https://www.paypal.com/businessmanage/account/money
The setting in Account Settings > Payment Preferences > Block Payments that you mention to convert non-balance currency transactions to your primary balance will only apply automatically to future payments. Their status should then not be 'PENDING' due to any currency issue.
(If you find that all payments are PENDING, even your primary balance ones, then the pending reason (as stated in the API response) is likely "authorization" -- meaning you created an authorization with intent:AUTHORIZE but haven't captured it yet. Change to intent:CAPTURE to capture immediately.)

Magento MyGate Payment Gateway

We have a Magento site (http://www.bigblue.co.za) that makes use of MyGate (been customised) as a payment gateway. We have a problem here, when a user checkout on our site and choose credit card as a payment method, the order has been placed. The order waits for a respond from MyGate regarding the 3D secure authorisation.
The payment should be settled once the payment has been authorised which it does, but what I don't understand is, why when the authorisation has failed the order status on Magento does become Canceled but it still settles the payment in Magento saying Total Paid = Amount and not Total Paid = R0.00. This issue is causing stock qty not to be restored when the order has been cancelled because total paid is paid when it is not.
Is this a coding issue in Magento or an issue on MyGate's side when responding back to Magento?

Is it possible to add shipping tracking number in a batch system?

Imagine client A placing an order for 5 items in an e-commerce website (through Magento which collects the information and sends it to the warehouse which happens in the background). The website records the order and processes this information to the warehouse.The warehouse collects the information and after processing and shipping the product, provide the client A with a shipping information with tracking and carrier number.
My question is,
I want to update the tracking number inside Magento for each product separately because the shipping time might differ for each product. If the customer places a bulk order and receives the products one by one but with the same tracking number it will be misleading as the customer might think all the products will arrive on the same day and the customer might be dissatisfied.
How can I place a separate tracking number for each product using Magento?
Magento has this all built into the API. You can create a new shipment against an order and specify the items on the order which have been shipped along with a unique tracking code per shipment. So one order can have as many shipments as you require. Bundle kits may be a little troublesome but there is an option in the config to handle part shipments of bundle kits. Check out http://www.magentocommerce.com/api/soap/sales/salesOrderShipment/sales_order_shipment.create.html for the API documentation. We have a java app that picks up all of our delivery manifest info on a 10 minute cycle from our back office and then makes SOAP requests to create shipment notifications. This also sends an email to the customer along with the tracking code and if you add in your courier through a custom module you can also make it so that magento handles your couriers tracking link which can be accessed from the My Account area for the customer and it is also included in the email notification that the customer gets per shipment notification.

Is there anyway of passing a shipping address to Google Checkout?

I'm looking into integrating Google Checkout into our website. At the checkout stage of our website we calculate the delivery cost based on where they are shipping to, however it appears to me that the user could change the shipping address once they reach Google Checkout i.e the user could indicate on our website that they want it shipped down the road, and then at Google Checkout indicate they want it shipped to Australia!
Is there anyway of passing a shipping address across to Google Checkout, and then prevent the user from changing that address? Failing that, is it at minimum possible to pass the shipping address to GC?
Consider using "merchant-calculated shipping".
Merchant-calculated shipping allows you to wait until the buyer selects the shipping address for an order before you determine the availability and cost of different shipping options for that order.
You must provide a callback URL and Google Checkout will call you back with the final shipping address and request from you the available shipping methods and costs.
More info in this doc:
http://code.google.com/apis/checkout/developer/Google_Checkout_XML_API_Merchant_Calculated_Shipping.html
If the order has been placed by this time, you should be OK - from http://checkout.google.com/support/bin/answer.py?hl=en&answer=99746
You may add shipping addresses to your
account or revise them at any time.
Changes cannot be applied to existing
orders; you will need to contact the
seller to request shipping address
updates
And
Any changes you make to your shipping
address are not retroactive -- Once
the order is placed, any changes to
the order must be applied by the
seller. Contact the seller directly
with your request

Magento - Capture online from code

often when customers complete and pay their order in our store, the order is set to processing but with the amount due still equal to the grand total and amount paid equal to zero. From the magento backend I can then create an invoice and capture the payment online, which solves this issue. Now I would like to do this automatically. Can anybody help me out with the coding?
I do succeed in creating the invoice, but I cannot find the right function to capture the payment.
I'm not sure which payment method you have enabled, but it seems that you have to update your settings, and as example I will use Authorize.net.
If you go to Admin -> System -> Configuration -> Payment Methods -> Authorize.net, you will see it's settings, and one of this settings is "Payment Action" with two options:
Authorize Only
Authorize and Capture
If the first option is selected, than Magento will not capture the order amount, but will check if there's enough funds on customer's Credit Card.
If the first option is selected, than Magento will check for available funds, and will capture order amount from customer's Credit Card.
PayPal has a similar options, and Here is the related forum topic.

Resources