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.
Related
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.
I am working on a website in PHP that needs custom cycle for paypal recurring payment. Ex: a customer wants to receive a product in every 15 days. So paypal should process billing in every 15 days for the customer. Others can ask for the same in 30 days, and so on.
I also need the payment status to be updated. I guess paypal will send some data when a recurring payment is done. Not getting clear instructions on implementing the recurring. What I am getting is to create the recurring payment button from paypal account.
Can anyone help me on this?
Assuming the number of days is chosen at checkout time and never changes for that particular customer's custom billing cycle...
Quick solution:
You can generate a "Subscribe" button via http://www.paypal.com/buttons for a certain number of days, say 15 days. In "Step 2", uncheck the option to save the button at PayPal. Once you have generated the code, click the option to remove the code protection.
This will give you plain HTML, and "15" will be one of the variables there. Possible variables are documented at https://developer.paypal.com/docs/classic/paypal-payments-standard/integration-guide/Appx_websitestandard_htmlvariables/
So, you can change that hidden input to be of type "text" -- or alternatively to still be hidden but set by your javascript or server-side code, and have a dynamic button for X number of days. The image can also be changed to one of your own, of course.
More involved solution: integrate one of PayPal's recurring subscription APIs, which will accomplish much the same thing as that HTML button. This seems to be the newest API: https://developer.paypal.com/docs/subscriptions/
(The API and the HTML button are separate products , and not interchangeable in terms of how you manage existing recurring profiles later on, so if you need a full-fledged API, best integrate it from day 1 rather than using the HTML button)
If the first assumption does not hold, and you need customers to be able to adjust the billing cycle at a later date after checkout, then things get more complicated.
As far as getting payment status updates, you can integrate PayPal's webhook service: https://developer.paypal.com/docs/integration/direct/webhooks/
There is also an older IPN service that is similar in function
Is getting label using USPS api such as "USPS TRACKING (https://www.usps.com/business/web-tools-apis/usps-tracking-v3-3.htm)" any different than postage paid label obtained from 3rd parties such as endicia.com, stamps.com?
Is it possible to purchase prepaid postage on usps.com website, then calling the USPS label api to generate postage paid label? I mean when we call the API to generate the label, appropriate amount to be deducted from my USPS account.
I dont understand the use of the label generated by USPS API. I mean, I have activated my account at USPS and now working on production server. Now if I generate any label using the API (https://www.usps.com/business/web-tools-apis/usps-tracking-v3-3.htm), and generate a label. I didn't see any data in my history at online account. I mean, this generated label is of no value? or still my account is not activated? as I think, i have not yet done this -
reference pdf:Development-Guide-v3-1d.pdf
Step 7: Receive Printer Approval from ICCC Implementing the Delivery
Confirmation and Electronic Merchandise Return Service with Delivery
Confirmation APIs requires this additional interim step. The NCSC will
review your labels within two business days. If the labels fail the
certification test, the NCSC will contact the person listed on the
submission form directly. If the labels pass, you will be notified by
the Internet Customer Care Center and you will be able to send XML
transactions using your “live” data and receive “live” responses. Once
you are approved to generate “live” labels from the production server,
and you need to print additional test labels for any reason, be sure
to use the “Sample” XML request. Otherwise, the USPS will send a
manifest of the PIC numbers issued to the USPS Postal Tracking System
and will be looking for the Delivery Confirmation labels to scan.
Does, receiving "Printer Approval" will solve my issue?
Answers to your questions are below:
It's different in that you're ordering through a 3rd party provider, but not different in that you're paying the same amount for a shipping label, and that shipping label has a value and can be used in the USPS system. This holds for Stamps, Endicia, and other 3rd party API integrations like Easypost
You should be able to do that entire action through the API.
Did you check back on your account? This information should definitely update in your account. Unless you are using an API key that's tied to a different USPS account?
Let me know, happy to help further.
If you want an api that prints postage, use Shiprush or another developer tool that is made to generate complete, ready to use shipping labels.
Labels generated using the API DeliveryConfirmationV4 do not include postage. Per the documentation,
Please note that the API labels are printed without postage. Postage
must be purchased and applied separately.
See https://www.usps.com/business/web-tools-apis/delivery-confirmation-domestic-shipping-label-api.pdf
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
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.