Description
SendGround is a last-mile delivery platform. This plugin connects your WooCommerce store to it, so an order you have been paid for reaches your courier without anyone retyping an address.
What it does
- Offers SendGround delivery at checkout, as a shipping method in the zones you choose. One method shows every service SendGround quotes for that cart and that address — same day, next day, a scheduled day — each with its own name, price and arrival, and the buyer picks. Or it shows a single service, at a price you set.
- Sends an order to SendGround when it reaches the status you nominate: as soon as it is paid, once you have packed it, or when you mark it done.
- Leaves orders alone when there is nothing to deliver: a cart of downloads, or a customer collecting at your store.
- Records the tracking code that comes back, and shows it on the order screen, on the customer’s order page, and inside the emails your store already sends.
- Emails the buyer at the three moments of a delivery, each editable and each with its own switch: when the order gets its tracking code, when the courier collects it, and when it is delivered.
- Moves the order on when the parcel is delivered, and writes what happened as a note, so your order list reflects the round trip without anyone watching a dashboard.
- Adds a note to the order when something goes wrong, saying what, so you can fix it and let the order try again.
- Cancels the delivery in SendGround when you cancel an order that was already sent, and tells you when SendGround cancels one, leaving the order ready to be sent again.
- Prints the shipping labels: one order from its screen or the list, or many at once as a single PDF from the orders list.
- Lets you ask SendGround to report an order again, one or many at a time, when a report did not reach your store.
- Gives you a tracking page on your own site: put the
[sendground_tracking]shortcode on any page and buyers follow their shipment there, by code.
Your courier’s brand, not ours
SendGround is the platform your courier runs on. You and your buyers deal with your courier, so that is who you both see: once the store is connected, the option at checkout, the tracking page and the emails carry your courier’s own name and logo, and so do the “Send to…” button, the order notes and the Tracking column in your admin. “SendGround” stays only where the platform itself is meant: the plugin’s name, the token, the connection. Until the store connects, everything says SendGround.
How prices work
By default each option carries the price SendGround quotes for that order, taxes included: your SendGround rates decide, and nothing is typed in WooCommerce. A quoted price can be shaped without leaving the zone: an amount added on top for packaging or handling, a floor and a ceiling on what the buyer pays, and a cart amount from which delivery is free. Prefer your own price? Pick one service on the zone and give it a fixed cost, the same way you set every other rate; SendGround’s arrival promise is still shown next to it.
External service
This plugin requires an account with SendGround (https://www.sendground.com), a third-party delivery service. It does nothing on its own: without an account and its API token, no data leaves your store.
Once connected, the plugin sends SendGround the details of an order it needs to deliver, at the moment that order reaches the status you chose in the settings (Processing unless you change it):
- your WooCommerce order number, as a reference
- the delivery name, address, and contact phone
- the items on the order, by SKU, or the parcels the checkout quote predicted, depending on how your account is configured
- the pickup day the buyer chose, for a scheduled service
- any note the customer left at checkout
- the amount the courier has to collect at the door, when the buyer chose cash on delivery
- the coordinates of the delivery address, when the buyer pinned it at checkout
It also asks SendGround, once per order, how your account is configured, so the order is built the way your courier expects, and, when connecting, who your courier is: the name and logo shown to buyers.
When you cancel an order that was already sent, the plugin tells SendGround to cancel the delivery, and reads the order back once to see whether it could.
While a buyer is at checkout, the plugin asks SendGround for a quote of the delivery, so the option can show when it would arrive and, if you choose, what it costs. That request carries the town of the delivery address (city, state, postal code and country) or the pin the buyer placed, and the items in the cart with their size and weight, or the number of parcels. No name, contact details or payment details travel with it.
Nothing else is sent. Payment details are never sent.
SendGround reports back to your store when a parcel is collected, delivered, could not be delivered, or when the delivery is cancelled. Those reports are signed with a key issued to your store alone, and one that does not verify is refused.
Service terms: https://www.sendground.com/terms
Privacy policy: https://www.sendground.com/privacy-policy
Google Maps (optional)
If you switch on Location on the map in the settings and enter a Google Maps API key, your checkout loads Google Maps Platform (https://mapsplatform.google.com) in the buyer’s browser, to offer an address search and a map where the buyer can drag a pin to their door. What the buyer types in that search box, and the place they choose, go to Google under your key and your Google account. The coordinates of the pin are stored on the order and sent to SendGround with it, so the courier goes to the exact spot.
With the map off, or without a key, nothing is loaded from Google and the checkout is left exactly as it is.
Google Maps Platform terms: https://cloud.google.com/maps-platform/terms
Google privacy policy: https://policies.google.com/privacy
Screenshots




Installation
- Install and activate the plugin.
- Ask your courier for the API token they issued for your store.
- Go to WooCommerce SendGround, paste the token, and save. The token is checked straight away, so you know at once whether it works.
- Go to WooCommerce Settings Shipping and add SendGround to the zones you deliver to. One method per zone is enough: it offers every service SendGround quotes.
- Optionally, switch on Location on the map in the same settings screen and add a Google Maps API key, so buyers can find their address and pin their door at checkout.
The next order that reaches your chosen status is sent automatically.
FAQ
-
Which orders get sent?
-
Once SendGround is offered on a shipping zone, the ones whose buyer chose it — nothing else. Until then, any order that has something to deliver: an order whose items are all downloads never needed shipping, and one being collected at your store is not going anywhere.
-
When exactly is an order sent?
-
At the status you nominate in the settings. Processing — paid — suits a store that packs as it sells. A store that picks from a warehouse can use Ready to ship, a status this plugin adds, and hand each order over once the parcel exists.
-
What if an order fails to send?
-
A SendGround that is briefly unavailable is retried on its own, waiting longer each time. Anything else — a token that was rejected, an order SendGround refused — is written as a note on the order, and the orders list shows it as Failed in the Tracking column, with the reason on hover and a Send to SendGround link. Fix the cause and send it from there, from the order screen (Send to SendGround in the order actions), or for many at once with the Send to SendGround bulk action; a filter narrows the list to the orders not sent or failed. Orders already sent, and orders with nothing to deliver, are skipped and counted.
-
Can the same order be sent twice?
-
No. Each order carries its own key, so a retry returns the delivery that already exists rather than creating a second one.
-
What happens if I cancel an order?
-
If the order was already sent, the plugin tells SendGround to cancel the delivery, so no courier goes. SendGround cancels it unless a parcel is already on its way, in which case someone there recovers it first and the order is told once it is cancelled. If SendGround cancels a delivery on its side, the order gets a note and shows “Delivery cancelled” in the Tracking column, with the “Send to SendGround” button back, in case it should ship after all. Refunding an order does not cancel its delivery; cancel the order if the parcel should not go.
-
Do buyers see the name “SendGround”?
-
No. Once connected, everything a buyer sees carries your courier’s own name and logo: the delivery option at checkout, the tracking page, the emails. In your admin the same: you send orders to your courier, and the notes say what your courier reported. “SendGround” is the name of the plugin and of the platform your token comes from, nothing more. Name an option yourself on the shipping zone if you prefer your own wording.
-
Do I need to change my shipping settings?
-
No. Your shipping zones, methods and prices stay exactly as they are. Adding SendGround as a delivery option is worth doing — it is what lets a buyer choose it, and it tells the plugin which orders are yours to deliver — but nothing breaks if you don’t.
-
Why would I add a Google Maps key?
-
A typed address is a guess about a door: a long block, a house behind another, a street that shares its name with one in the next town. Switch on Location on the map in the settings and paste a key, and buyers who choose SendGround see an address search and a map at checkout, and can drag the pin to exactly where they are. The courier gets those coordinates instead of a reading of the street name. The key is yours, created in Google Cloud and restricted to your website, and Google bills your account — a store of ordinary size stays within the free monthly allowance. Both the classic and the block checkout get the search and the pin. An address typed without the search, or one saved from an earlier order, is placed on the map from its text: found at its door number, the pin counts as the buyer’s and they are only invited to drag it if it is off; found only as a street or a town, the buyer is asked to tap their door, and nothing is sent until they do. A customer with an account keeps their pin for the next order, as long as the street is still the same.
If you would rather not leave it to chance, the settings let you require it: a buyer who chooses SendGround then has to pick their address from the search, or drag or confirm the pin, before the order goes through. Should the map fail to load in a buyer’s browser, the order is accepted anyway and the address is read by SendGround as usual.
-
Can buyers see SendGround’s own price and delivery time?
-
Yes. A SendGround method on a shipping zone works one of three ways: every service SendGround quotes, one option each, at the price SendGround quotes for that order to that address, taxes included (the default); one service you pick, at SendGround’s quoted price; or one service at a fixed cost you set. Whichever way, the arrival SendGround promises (“Arrives tomorrow before 13:00”) is shown next to the option, so buyers choose knowing when. On a taxable rate a quoted price is booked as net plus tax, so your tax report sees the tax on delivery; the total the buyer pays is the quote to the cent. The quote is made at the door when the buyer has placed a pin, and at the town of the address otherwise. A cart whose products all carry dimensions and weight is quoted by its products: SendGround predicts the boxes it will ship in, prices those, and the order is created with them. A scheduled service adds a day picker under the options: the buyer chooses the day, SendGround confirms it or names the nearest day it can serve, and the order is created for that day.
-
What happens when SendGround cannot find the buyer’s town?
-
With the map on, the SendGround options are held back and the map opens first, asking the buyer to tap their door; the options appear as soon as the pin is placed. With the map off, a fixed-price option is offered as before and SendGround reads the address once the order arrives; an option priced by quote is not offered, since there is no quote to price it with.
-
I also offer pickup at my store. Do buyers have to fill in an address first?
-
Not with the block checkout. Turn on Local pickup under WooCommerce Settings Shipping Local pickup, rather than adding the older “Local pickup” rate to a zone: the checkout then asks “Ship or pick up?” before the address, and a buyer who picks up never sees the address form, the search or the map. The map itself only opens once a buyer has chosen a SendGround delivery option, right under the shipping options.
-
What about cash on delivery?
-
An order paid with WooCommerce’s cash on delivery is sent with its total as the amount to collect at the door, so the courier knows what to ask for and SendGround shows it as a collection. A store that takes payment on delivery through another gateway can set the amount with the
sendground_collect_on_delivery_amountfilter. -
How do I print the shipping labels?
-
Each sent order has a “Download label” button in the Label column of the orders list and a “Print the shipping label” link on its screen, both opening the label as a PDF. To print a batch, select the orders in the list and choose “Print shipping labels” from the bulk actions: one PDF with every label, ready for the printer. The label is offered until the courier collects the parcel; after that there is nothing left to put it on.
-
A report from SendGround never arrived. What do I do?
-
Select the orders and choose “Refresh from SendGround” from the bulk actions, or use the order action of the same name on one order. SendGround reports the order’s current state again, through the same signed path, and the notes and status changes arrive within a minute.
-
Can buyers track their shipment on my site?
-
Yes. Put the
[sendground_tracking]shortcode on any page. Buyers type the code from their order confirmation and see the shipment’s status and its events, with a link to SendGround’s own tracking page. A link with?code=opens the page already filled in. -
How does the order know it was delivered?
-
SendGround tells your store, and the plugin moves the order and adds a note. Your store has to be reachable from the internet for that, over https. If it is not, orders still go out; only the reports coming back are lost, and the settings screen says so when you connect.
Reviews
There are no reviews for this plugin.
Contributors and Developers
“SendGround” is open source software. The following people have contributed to this plugin.
Contributors“SendGround” has been translated into 2 locales. Thank you to the translators for their contributions.
Translate “SendGround” into your language.
Interested in development?
Browse the code, check out the SVN repository, or subscribe to the development log by RSS.
Change Log
1.0.0
- First release: offer SendGround at checkout, send paid orders, show their tracking, and move each order on as it is picked up, delivered, or an attempt fails.
- Address search and a map pin at checkout, with the store’s own Google Maps key, so the courier gets the exact door.
- Live quotes at checkout: SendGround’s delivery promise next to each option, and, when the store chooses, its price.
- Cancellation in both directions: cancelling an order cancels its delivery in SendGround, and a delivery cancelled in SendGround is noted on the order.
- “Refresh from SendGround”, for one order or many, when a report never arrived.
- Shipping labels printed one by one from the list, or many at once as a single PDF.
- A “shipment ready” email with the tracking code, the moment the order is handed over.
- A tracking page on the store’s own site, with the
[sendground_tracking]shortcode. - Quoted prices can carry an added amount, a floor, a ceiling, and be free from a cart amount.
- The courier’s own name and logo in front of buyers and in the merchant’s orders, read from its account when the store connects.
- A switch to log every exchange with SendGround, for support.
