Ship-today desk for eBay orders with rates and labels
Work every paid eBay order from one screen: see the ship-by deadline, compare carrier rates, buy the label, and mark the order shipped.
Build me a "ship today" desk for my eBay orders so I can stop bouncing between Seller Hub and my label provider. The app opens on a single queue of orders that are paid but not yet shipped, loaded from eBay with Get Orders filtered on fulfillment status. Sort the queue by ship-by deadline, soonest first, and visually highlight any order that is close to breaching my handling time so I work the urgent ones first. Each row shows the buyer name and full shipping address, the line items with quantities and SKUs, the shipping service the buyer selected at checkout, and the order total. eBay Sell API calls need the X-EBAY-C-MARKETPLACE-ID header set to my marketplace, so make the marketplace a setting on the app.
Each row has a "Get rates" button. Pressing it calls Shippo Create Shipment with my ship-from address, the buyer address parsed from the eBay order, and the parcel dimensions and weight, using default parcel presets I can configure and edit per order before requesting. Then show the results of Retrieve Shipment Rates in a panel side by side with the order details: carrier, service level, cost, and estimated days in transit, with the option that best matches the buyer's selected service called out. Shippo label buying is a two step flow, so hold the created shipment object and its rates in app state between the rates view and the confirm action instead of re-creating the shipment.
Confirming a rate calls Shippo Create Transaction (Buy Label) against that rate id. Label purchase is asynchronous, so poll Retrieve Transaction (Label) until the status settles and the label URL is populated, then surface the label for printing and show any error messages returned on the transaction rather than assuming success. Once the label exists, push the tracking number and carrier back to eBay with Create Shipping Fulfillment for that order so it marks as shipped, and append a row to my Google Sheets shipping log with Append Values containing the order id, buyer, carrier, service, label cost, tracking number, and date.
Add a "Plan today's batch" button at the top that kicks off a background agent. The agent walks every order in the current queue and for each one creates the shipment in Shippo and pulls its rates, then picks the cheapest service whose transit time still meets the delivery promise on the order. It writes its proposal back into the app so each row shows the proposed carrier, service, and cost, plus any exception it hit, such as an address that fails validation, a parcel that is oversized or overweight for the chosen service, or an order where no rates came back. Persist the proposals and exceptions so they survive a refresh.
Once the agent finishes, I review the batch, uncheck anything I do not want, and hit approve to buy all the approved labels in one pass. Approving runs the same confirm flow per order: buy the label, poll until it settles, create the eBay shipping fulfillment with the tracking number and carrier, and append to the shipping log. Orders with exceptions stay in the queue with their reason attached so I can fix them by hand and price them individually.
On refresh, drop rows that are already fulfilled, verified against eBay Get Shipping Fulfillments for the order rather than relying only on the order status field, so anything I shipped elsewhere disappears from the queue. Show a running count at the top of how many orders are left to ship today and how many are at risk of a late shipment.
What does this prompt do?
- Opens on a queue of paid orders that still need shipping, sorted by ship-by deadline, with anything close to breaching your handling time highlighted so you work the urgent ones first.
- Every row shows the buyer's address, the items and SKUs, and the shipping service the buyer picked at checkout, so you never have to open Seller Hub to work an order.
- Hit Get rates on any row to compare live carrier prices side by side. Pick one and the label is bought, the tracking number goes back to eBay so the order marks as shipped, and the cost is logged to your shipping spreadsheet.
- A Plan today's batch button sends an assistant through the whole queue to price every order, pick the cheapest service that still meets the delivery promise, and flag problems like a bad address or an oversized parcel, so you can approve everything and buy the labels in one pass.
What do I need to use this?
- An eBay seller account with permission to view orders and create shipping fulfillments
- A Shippo account with your carrier accounts connected and a payment method on file for buying labels
- A Google Sheets spreadsheet to use as your running shipping log
- Your usual box sizes and package weights, so the rates that come back are accurate
How can I customize it?
- Change how early an order gets flagged as at risk, for example anything due within the next four hours instead of the next day.
- Set the rule the batch assistant follows when it picks a service: cheapest that still arrives on time, fastest, or always prefer one carrier.
- Point the shipping log at a different spreadsheet or tab and add columns like item cost, buyer location, or the person who bought the label.
FAQs
Will the order actually show as shipped on eBay?
Does buying a label here charge me?
What if I already shipped an order somewhere else?
Does the batch planner buy labels on its own?
What happens to orders the planner cannot price?
Related templates
Stop buying stale lists. Reps run a saved search, work the results like an inbox, and only the accounts they approve ever reach your CRM.
Drag creators through Sourced to Wrapped on a board grouped by campaign, with audience stats on every card and a one-click brief for each creator.
Pick a repricing rule, send an assistant out to check competitor pages, then approve the new prices that clear your margin floor.
See the projected bounce rate for any outbound send before it goes out, and keep the launch button locked until the list is clean enough to be safe.
Pick any date range and see what each device in your home actually cost to run, not just how many kilowatt-hours it used.
Search three months of global coverage on your topic, rank the outlets actually writing about it, and draft a tailored pitch for each one.
Stop bouncing between Seller Hub and your label tool.
Put every order that has to go out today on one screen, with rates, labels, tracking, and your shipping log all handled in the same click.