Skip to content
SMSGELY — Naimur SMS BD

Guide for store owners

WooCommerce order notifications by SMS

Keep customers informed from order to doorstep. Which order updates to send, ready-to-use English and Bangla texts, and how to set it all up without duplicates or surprises on your bill.

Which order notifications to send

Customers in Bangladesh often order by cash on delivery and want to know their order is real before the courier calls. A few well-timed SMS reduce “where is my order?” calls and failed deliveries. Start with these:

  • Order received / processing — confirms the order reached you. WooCommerce sets “Processing” when payment is received or a COD order is placed.
  • COD confirmation — states the amount to pay, so the customer has cash ready and fewer parcels are refused.
  • Shipped — sent when you hand the parcel to the courier. WooCommerce has no built-in “Shipped” status, so stores usually add a custom status or use a shipment-tracking extension; your developer can hook into either.
  • Completed — the order is delivered. A good moment to say thank you.
  • Cancelled and Refunded — tell the customer clearly, with a number to call if it was unexpected.

Sample messages with part counts

Every sample below fits in a single SMS part. English text uses GSM-7 (160 characters per SMS); Bangla uses Unicode (70 units per SMS, 67 per part for longer messages). Counts are for the name “Rahim”/“রহিম” and order #1042; longer names add length.

EventEnglishBangla
Order received (processing)Hi Rahim, we have received your order #1042. We will confirm it shortly. Thanks, ShopBD
GSM-7 · 87 chars · 1 part
রহিম, অর্ডার #1042 পেয়েছি। শীঘ্রই কনফার্ম করব। ShopBD
Unicode · 54 units · 1 part
Cash on delivery confirmationHi Rahim, order #1042 is Cash on Delivery: BDT 1,250. Please keep the amount ready. ShopBD
GSM-7 · 90 chars · 1 part
রহিম, অর্ডার #1042: ক্যাশ অন ডেলিভারি ১,২৫০ টাকা। ShopBD
Unicode · 56 units · 1 part
Shipped (handed to courier)Hi Rahim, your order #1042 has been shipped. Expected delivery in 2-3 days. ShopBD
GSM-7 · 82 chars · 1 part
রহিম, অর্ডার #1042 কুরিয়ারে পাঠানো হয়েছে। ShopBD
Unicode · 50 units · 1 part
Completed (delivered)Hi Rahim, your order #1042 has been delivered. Thank you for shopping with ShopBD!
GSM-7 · 82 chars · 1 part
রহিম, অর্ডার #1042 ডেলিভারি হয়েছে। ধন্যবাদ! ShopBD
Unicode · 51 units · 1 part
CancelledHi Rahim, your order #1042 has been cancelled. Questions? Call 09612345678. ShopBD
GSM-7 · 82 chars · 1 part
রহিম, অর্ডার #1042 বাতিল করা হয়েছে। প্রশ্ন? কল 09612345678
Unicode · 59 units · 1 part
RefundedHi Rahim, we have refunded BDT 1,250 for order #1042. ShopBD
GSM-7 · 60 chars · 1 part
রহিম, অর্ডার #1042 এর ১,২৫০ টাকা রিফান্ড করা হয়েছে। ShopBD
Unicode · 59 units · 1 part

Compare a wordier Bangla version of the first message: “প্রিয় রহিম, আপনার অর্ডার #1042 আমরা পেয়েছি। শীঘ্রই কনফার্ম করা হবে। ধন্যবাদ, ShopBD” is 85 units and is billed as 2 parts. Across hundreds of orders a month, short wording noticeably reduces your SMS cost. The SMS guide explains how parts are counted.

Use templates with variables

Write each message once as a template and let the system fill in the details. SMSGELY templates support variables such as {{name}}, {{mobile}}, {{company}} and {{order_id}}. In WooCommerce, your developer replaces them with the customer’s first name and order number before sending:

Hi {{name}}, your order #{{order_id}} has been shipped. Expected delivery in 2-3 days. ShopBD

{{name}}, অর্ডার #{{order_id}} কুরিয়ারে পাঠানো হয়েছে। ShopBD

Length is counted after the variables are filled in, so leave headroom for long names and order numbers.

Step-by-step setup

  1. Create an account at SMSGELY and verify your email.
  2. Top up your wallet with bKash or Nagad. See pricing.
  3. Choose a sender. Request a masking sender ID with your shop name in Dashboard → Sender IDs (approval required), or start with non-masking SMS and include your shop name in the text.
  4. Create an API key in Dashboard → Developer → API keys with only the sms:send scope. It is shown once, so copy it immediately.
  5. Store the key in wp-config.php as define( 'SMSGELY_API_KEY', '…' );, never in your theme or page builder.
  6. Add the order-status snippet from the WooCommerce developer docs as a site-specific plugin. It listens to the woocommerce_order_status_changed hook and sends the right message for each status.
  7. Place a test order with your own phone number and move it through each status in the WooCommerce admin.
  8. Check delivery reports in the dashboard to confirm each message was delivered.

Avoid duplicate messages

Order statuses are sometimes saved twice: an admin clicks Update again, a payment gateway sends a second callback, or a request is retried after a timeout. To make sure the customer receives one message per status change, the snippet sends an Idempotency-Key header built from the order and the status, for example wc-1042-completed. If the same key and body arrive again within 24 hours, SMSGELY returns the original result and does not send or charge a second SMS. Learn more in the API reference.

Customers who give a phone number at checkout expect updates about that order, so transactional SMS are generally welcome. Promotions are different: add a clear, unticked checkbox at checkout such as “Send me offers by SMS”, send promotions only to those who agreed, and include an opt-out instruction in every promotional message. Remove numbers promptly when people ask, and follow our SMS policy.

Keep messages short to save cost

  • Aim for one part: 160 characters in English, 70 in Bangla.
  • Skip long greetings; the order number and status matter most.
  • Avoid emoji and curly quotes in English messages; they switch the whole message to Unicode.
  • Send only the statuses customers care about; you do not need an SMS for every internal step.

Check delivery reports

Review delivery reports weekly. Filter by status to find failed numbers, which often point to typos at checkout, and by sender to confirm your masking ID is working. Messages that fail or are rejected before the network accepts them are not charged.

FAQ

WooCommerce SMS questions

Is there an official SMSGELY WooCommerce plugin?

Not yet; an official plugin is planned. Today stores connect through the SMSGELY REST API with a short PHP snippet that listens for WooCommerce order status changes. The code is in the WooCommerce developer docs.

Will customers get two messages if the order status is saved twice?

Not if the snippet sends an Idempotency-Key built from the order ID and the new status, such as wc-1042-completed. A repeated request with the same key within 24 hours returns the original result and no second SMS is sent or charged.

Should I send order SMS in Bangla or English?

Use the language your customers prefer. Bangla messages are Unicode and fit 70 characters in one SMS (67 per part when longer), while English fits 160 (153 per part). Short Bangla messages still fit in one part, as the samples on this page show.

Am I charged for order SMS that fail?

No. The cost is reserved when the message is queued and charged only when the provider accepts it. Messages that fail or are rejected before the network accepts them are not charged, and the reservation is released.

Can I send promotional offers to my WooCommerce customers?

Only to customers who agreed to receive offers. Order updates are transactional, but promotions need consent, and every promotional SMS should tell people how to opt out. Remove anyone who asks to stop.

Start sending order updates

Create your account, request a sender ID for your shop and connect WooCommerce with a scoped API key.