All articles

WooCommerce SMS Order Notification Plugin: Setup Guide

A verified, step-by-step guide to the WooCommerce SMS order notification plugin setup with SharkSMS: create the API key, choose SMS mode, use the real merge tags, and message customers on every order status.

A smartphone on a table showing an open text messaging conversation, representing an SMS order notification

When a shopper checks out, the first thing they want is proof the order went through, and then a heads-up at every step after that. A text message is the most direct way to give them both. This is a complete, tested walkthrough of the WooCommerce SMS order notification plugin setup using SharkSMS: how to install the plugin, create the right API key, switch it into SMS mode, choose which order statuses trigger a text, and write messages with the plugin's real merge tags. Every field, permission, and tag below was checked against the shipping plugin source, so what you paste actually works.

This is the SMS sibling of our guide to WooCommerce WhatsApp order notifications. The plugin and merge tags are shared, but the sending path, the message length, and the compliance rules are different. This article covers SMS mode specifically.

What are WooCommerce SMS order notifications?

WooCommerce moves every order through a defined set of statuses: pending, on-hold, processing, completed, cancelled, refunded, and failed. A SMS order notification is a text message the plugin sends automatically when an order reaches one of those statuses. You decide which statuses notify the customer, which ones alert your team, and exactly what each message says. These are transactional updates the buyer is expecting, not marketing blasts.

SharkSMS delivers this through a downloadable WooCommerce plugin for WordPress. The plugin hooks into your store's order status changes and passes each message to your SharkSMS account, which then sends it as an SMS. Because it is real SMS and not an in-app chat, the message lands on any phone with a signal, no app or data connection required on the customer's side. That reach is the main reason stores pick SMS for order updates.

A hand holding a smartphone with a blank screen against a white background
Photo by Kampus Production. Pexels.

SMS or WhatsApp: which should you pick?

The same plugin can send through SMS or a linked WhatsApp account, and you choose one per configuration. SMS is the safer default when you want maximum reach and simplicity: it works on every phone, needs no customer opt-in to an app, and is ideal for short, factual status updates. WhatsApp adds a reply thread and richer formatting, but it needs the customer to use the app and follows its own messaging policy. If two-way conversation matters more than universal reach, read the WhatsApp version of this guide and compare. For most order-status notifications, plain SMS is the workhorse.

Ready to set it up? Create a SharkSMS account before you install the plugin so your API key and SMS route are ready.

Before you start: what you need

  • A working WordPress site with WooCommerce installed and orders flowing.
  • A SharkSMS account with a working SMS route (more on this below).
  • An API key with the send_sms permission.
  • A short list of the order statuses you actually want to text on.

It helps to review the official WooCommerce order statuses reference first, so you know exactly what pending, on-hold, processing, completed, cancelled, refunded, and failed each mean before you decide which ones deserve a text.

The honest bit: SMS needs a real sending route

This matters, so do not skip it. The plugin does not send SMS by itself. It hands each message to your SharkSMS account, and your account can only deliver an SMS if it has a working route. You have two options:

  • A paired Android gateway. Install the SharkSMS gateway app on an Android phone, pair it to your account, and it sends the texts over your own SIM. See how the Android SMS gateway works. In the plugin you enter that phone's Device Unique ID and pick a SIM Slot.
  • A credit or third-party gateway. Use a partner device or a connected third-party SMS gateway that has credit. In the plugin you enter its Gateway Unique ID instead.

If you configure neither, the plugin will still look correct and the log will show it trying, but no text can reach the customer. Sort out the sending route before you test.

WooCommerce SMS order notification plugin setup, step by step

Here is the concrete path from a blank store to a tested SMS order notification.

  1. Download the plugin. Sign in to your SharkSMS dashboard and download the WooCommerce plugin. It arrives as a standard WordPress plugin .zip generated for your installation.
  2. Install it in WordPress. Go to Plugins > Add New > Upload Plugin, choose the .zip, install, and activate. A new settings page appears under Settings.
  3. Create an API key. In SharkSMS, open Dashboard > Tools and create an API key. Grant it the send_sms permission. The plugin's help text lists both send_sms and wa_send, but wa_send is only needed if you later switch the same key to WhatsApp; for SMS, send_sms is the one that matters.
  4. Paste the API key into the plugin's API Key field on the Main Settings tab.
  5. Set Sending Service to SMS. The Sending Service dropdown offers SMS or WhatsApp. Choose SMS.
  6. Point it at your sending route. If you send from your own phone, fill Device Unique ID and choose the SIM Slot (SIM 1 or SIM 2). If you send through a partner device or third-party gateway, fill Gateway Unique ID instead. Leave the WhatsApp Account ID field blank, it is for WhatsApp mode only.
  7. Set a Default Country. This normalises mobile numbers to international format when a customer's country is missing at checkout, so short local numbers still send.
  8. Choose customer statuses. On the Customer Settings tab, tick the order statuses that should text the buyer under "Send notification on", then write the message for each one.
  9. Choose admin statuses (optional). On the Admin Settings tab, enter one or more mobile numbers (separate several with commas), and tick which statuses alert you. The admin defaults are on-hold and processing.
  10. Send a test order. Place a real test order and move it through each status you enabled. Confirm the text arrives, the details are right, and the sender route worked.
A large sealed cardboard shipping box with labels, ready to be dispatched
Photo by ArtHouse Studio. Pexels.

The real merge tags (verified)

The plugin replaces bracketed merge tags with live order data at send time. Use the exact tags below. Invented placeholders such as [Name] or [Tracking Link] are sent to the customer as literal text, so copy these carefully. You can also open the Keywords button next to any message field in the plugin to insert them.

Merge tagWhat it inserts
[shop_name]Your store name
[shop_email]Store admin email
[shop_url]Store website URL
[order_id]The order number
[order_currency]Order currency
[order_amount]Order total
[order_status]Current order status
[order_product]Product names in the order
[order_product_with_qty]Products with quantities
[billing_first_name]Customer first name
[billing_last_name]Customer last name
[billing_phone]Customer phone
[billing_email]Customer email
[billing_company]Billing company
[billing_address]Billing address line
[billing_city]Billing city
[billing_state]Billing state or region
[billing_postcode]Billing postcode
[billing_country]Billing country
[payment_method]Chosen payment method

Two extras come from the plugin's behaviour. For customer messages on pending, on-hold, or processing orders paid by direct bank transfer (BACS), a [bank_details] tag expands to your configured bank account information, which is handy for stores that wait for a transfer before shipping. And if your checkout has custom billing fields, the plugin exposes each one as its own [field_name] tag. There is no built-in tracking-link tag, so add courier tracking URLs as plain text or through a custom field.

Keep SMS short: segments and cost

Unlike a chat app, SMS is billed and split by length. A single message holds 160 characters using the standard GSM alphabet, or 70 if you include emoji and many accented characters. Go over the limit and the text is split into multiple segments, each of which counts as a separate message for cost. Long merge tags such as [order_product_with_qty] or a full [billing_address] can push a message over a segment boundary without warning. Write tight, put the essentials first, and test with a real order that has several line items so you see the true length.

SMS templates for every order status

Each template below uses only real tags, so you can paste it straight into the matching status field. They are written to stay close to a single 160-character segment. Keep them factual: state the store, the order, the status, and one next step.

Pending (order received)

[shop_name]: we received order [order_id]. We'll text you when it moves to the next stage. Total: [order_currency] [order_amount].

For bank-transfer stores, append [bank_details] so the customer gets your account details in the same text.

On-hold

Hi [billing_first_name], order [order_id] at [shop_name] is on hold while we confirm payment. We'll update you as soon as it clears.

Processing

Good news [billing_first_name]: order [order_id] is now [order_status]. We're preparing [order_product] and will text you when it ships.

Completed

[shop_name]: order [order_id] is [order_status]. Paid [order_currency] [order_amount] via [payment_method]. Thanks for shopping with us.

Cancelled

[shop_name]: order [order_id] has been cancelled. If this wasn't expected, reply to this number or email [shop_email] and we'll help.

Refunded

Hi [billing_first_name], we've refunded order [order_id]. [order_currency] [order_amount] is on its way back to your [payment_method].

Failed

[shop_name]: payment for order [order_id] failed, so it hasn't been placed. You can try again at [shop_url] or reply for help.

Admin alert

For the admin notification on new orders, the plugin's built-in default is a solid starting point: [shop_name] : You have a new order with order ID [order_id] and order amount [order_currency] [order_amount]. The order is now [order_status]. Point it at your team's numbers on the Admin Settings tab.

If you want a wider library of wording to adapt, our order confirmation text message templates cover many more variations you can shorten to fit these fields.

A packing station with flat cardboard cartons, rolls of tape, and a sealed box ready to post
Photo by Nataliya Vaitkevich. Pexels.

Stay compliant: transactional, not marketing

SMS to customers is regulated, and order notifications sit in a different bucket from promotions. In the United States, the Telephone Consumer Protection Act (TCPA) governs text messages, and the mobile carriers enforce the industry's own CTIA Messaging Principles and Best Practices. The safe rule of thumb: keep order-status texts strictly transactional. A shipping update the customer is expecting is very different from a discount code, and mixing the two into one message can turn a compliant notification into unsolicited marketing. Do not add offers to a status text. If you later want to promote, collect separate consent, and always honour STOP opt-outs.

A courier truck being unloaded on a city street with parcels stacked on the pavement
Photo by Tiger Lily. Pexels.

Testing, deliverability, and troubleshooting

Most setup problems come down to a handful of causes. Work through them in order before assuming the plugin is at fault.

  • No message at all: confirm the API key has the send_sms permission, Sending Service is set to SMS, and you filled either a valid Device Unique ID (with a SIM slot) or a Gateway Unique ID that has credit.
  • Message shows literal tags: you used an invented tag. Replace it with one from the verified table above.
  • Wrong or missing phone number: check the customer entered a mobile at checkout and that your Default Country is set, so short local numbers normalise to an international format.
  • Text sent on the wrong status: revisit the Customer Settings tab and untick statuses you did not mean to message on. You rarely need all seven.
  • Message split into several texts: it went over 160 characters. Shorten it or drop a long merge tag.
  • Nothing in the log: use the Export Log button on the Main Settings tab to download the plugin log and see exactly what the gateway returned.

Always run test orders through every enabled status before switching notifications on for live customers. It is the single most effective way to catch a broken tag, a status you did not mean to text on, or a sending route that is not actually delivering.

A person's hand holding a mobile phone outdoors, about to read an incoming message
Photo by RDNE Stock project. Pexels.

Why use SharkSMS for order notifications?

SharkSMS combines SMS and linked WhatsApp messaging with contacts, templates, schedules, a REST API, webhooks, and this WooCommerce plugin in one dashboard. A small store can send order updates over its own SIM through a paired Android phone, keep costs predictable, and manage every message from one place. Explore the full platform features to see how messaging, gateways, and automation fit together, and browse use cases for how stores combine order alerts with the wider toolkit. Order notifications are usually the first automation you build, not the last.

WooCommerce SMS order notifications FAQ

What should a SMS order notification include?

Your store name ([shop_name]), the order reference ([order_id]), the current status ([order_status]), and one clear next step. Keep it under 160 characters and avoid sending unnecessary personal or payment detail over SMS.

Do I need an Android phone to send the texts?

You need a working SMS route on your SharkSMS account. That is either a paired Android gateway sending over your own SIM, or a partner or third-party gateway with credit. The plugin points at whichever you choose via the Device Unique ID or Gateway Unique ID field.

Which order statuses can trigger a text?

Pending, on-hold, processing, completed, cancelled, refunded, and failed. You choose which ones notify the customer and which ones alert your admin, independently.

What API key permission does SMS mode need?

The send_sms permission. The wa_send permission is only required if you switch the same configuration to WhatsApp.

Can one plugin setup send both SMS and WhatsApp?

Each configuration sends through a single selected service. Choose SMS or WhatsApp per setup; the SharkSMS platform supports both, so pick the channel your customers expect.

Turn every order status into a text your customers trust. Create a SharkSMS account, connect an SMS route, and set up your WooCommerce store today.

All articles

Comments

No comments yet. Be the first.

Sign in to comment

Comments come from SharkSMS accounts, so you always know who you are reading. Creating one is free and takes a minute.