Shopify SMS marketing works one of three ways: you collect consent in Shopify and send with an app built for Shopify, or you send through a messaging platform or API that you connect yourself. The rules are the same for all three. You need express written consent for marketing texts, a registered 10DLC brand and campaign, working STOP handling, and sends held to the recipient's local daytime hours.

This guide covers what each option actually gives you, which store texts count as marketing and which don't, the compliance steps carriers and the TCPA expect, and what a campaign costs once you count segments instead of messages. We make Ready, so we'll say where it fits. We'll also say plainly where it doesn't.

What stores actually text

Before you pick a tool, sort your texts into two groups. Carriers sort them this way, and so does the TCPA.

Transactional (service) texts are messages the customer expects because of something they did:

  • Order confirmation and "your order #1042 has shipped"
  • Delivery exceptions and address problems
  • Replies to a customer who texted your support number
  • Return and refund status

Marketing texts try to sell something:

  • Abandoned cart reminders. Many teams assume these are transactional, but they ask for a purchase, so treat them as marketing.
  • Back-in-stock alerts that include a discount or a "buy now" push
  • Sales, launches, Black Friday promos, win-back offers
  • Review requests that come with an incentive

This split matters three ways. Marketing texts need a stronger form of consent. They need a 10DLC campaign registered for marketing or mixed use. They also draw more carrier filtering. If you register only for account notifications and then send promos, expect throttling. Our guide to matching your 10DLC use case to what you actually send walks through that choice.

Your three options for Shopify SMS marketing

Option 1: Shopify's built-in consent plus an email-and-SMS app

Shopify can collect SMS marketing consent at checkout and store each customer's consent status. Most stores pair that with an app from the Shopify App Store that reads the consent field, builds flows such as abandoned cart and post-purchase, and sends the texts.

This is the right choice for many stores, especially small catalogs that want prebuilt flows and don't want to touch an API. The tradeoffs are pricing models that can be hard to read, and less control over numbers, registration and how your opt-out data is stored. We won't quote those apps' prices here. Compare them on what you'd actually send in a month.

Option 2: A dedicated ecommerce SMS platform

These are larger tools built mainly for retail texting, with popups, segmentation and attribution reporting. They suit high-volume brands with a team that runs SMS as its own channel. If you're weighing one, our Attentive alternative post lays out the questions to ask.

Option 3: A messaging platform or API you connect yourself

Some teams run SMS from a platform or API instead. Agencies running many stores, developers building store tooling, and brands whose CRM lives outside Shopify are the usual cases. This is where Ready fits.

To be direct: Ready does not offer a native Shopify app. You connect your store through the Ready messaging API, through your own middleware, or through GoHighLevel if your CRM lives there. Ready does have a native GHL integration with two-way sync. If you want a one-click Shopify install with prebuilt cart flows, Option 1 is the better fit.

What you get with Ready is the infrastructure layer:

  • Registration handled in-app
  • Automatic STOP handling across all campaigns
  • Quiet-hours holds based on the recipient's area
  • Optional litigator and DNC scrubbing
  • An Inbox for replies
  • One Standard rate per segment

A shipping update from a Shopify webhook handler looks like this:

POST https://api.tryready.com/v1/messages
X-API-Key: <key>
Idempotency-Key: 3f6c2a1e-8b4d-4e2a-9c1f-7a5b2d9e0c11

{"to": "+12125550199", "body": "Your order #1042 has shipped.", "consent_attested": true}

The Idempotency-Key matters for Shopify webhooks, which can retry. Without it, a retried request can send the same text twice.

The rules: consent, registration, hours and opt-outs

Consent

The TCPA requires prior express written consent for marketing texts sent with automated systems. In practice, that means:

  • An unchecked checkbox or keyword opt-in
  • Clear disclosure of what the customer will receive and how often
  • A note that message and data rates may apply
  • STOP instructions
  • A statement that consent isn't a condition of purchase

Statutory damages run $500 to $1,500 per text. A single bad campaign to a few thousand numbers is a business-ending figure.

Keep your consent records where they're created. Shopify stores the customer's consent status. Your popup or checkout should also keep when and where the customer opted in.

On Ready, every bulk send and every API send that sets consent_attested records the sender's attestation: who sent it, to how many people and when. That builds an audit trail of your promises. It is not a per-contact consent record. Ready doesn't store each recipient's opt-in time, wording or page, so your store has to keep those. Consent also decays faster for SMS than for email. Our post on SMS vs email consent lifespan explains why an old list needs a fresh opt-in. (A contact who signs up on a Ready-hosted opt-in page is the exception: Ready stores that sign-up, with the time, IP address and exact wording, and support@tryready.com can send you a copy.)

Never text a purchased or scraped list. Cold outreach belongs to phone and mail. SMS is for customers who opted in or texted you first.

10DLC registration

Carriers filter unregistered business texting on standard 10-digit numbers. On Ready, brand and campaign registration happens inside the app:

ItemCost
Charge at submit (first month)$25
Registration, monthly$25/mo
Each number, monthly$2/mo
Optional brand vetting (one-time)$79 Standard / $179 Enhanced

There's no setup fee, and most approvals take 2 to 7 days. Before you register, an account can send up to 500 texts a month at its normal per-text rate. The first 20 one-to-one texts are free, so use them before you register: they end once a registration is paid for.

Brand vetting only pays off for higher-volume senders. For a breakdown, see is 10DLC brand vetting worth $79.

Quiet hours

The common safe window is 8 AM to 9 PM in the recipient's local time, and some states set stricter windows. Ready holds sends outside permitted local hours based on the recipient's area. A held text is sent later and charged only when it goes out. Timezones are where Shopify stores get burned: a 10 AM Eastern flash sale lands at 7 AM in California. Campaigns, drip campaigns and automations wait up to 24 hours for the window; a one-to-one or API text is held only if the window opens within 6 hours, otherwise it is refused and must be resent; a one-to-one reply to someone who texted you in the last 24 hours goes out at any hour.

Opt-outs

Inbound STOP or UNSUBSCRIBE replies are honored automatically on Ready. The opt-out applies across every campaign, so that contact can't be texted again by a later campaign. Opted-out numbers and known landlines are refused up front and not charged.

Optional scrubbing

Litigator and DNC scrubbing is available two ways:

  • During sends: $0.003 extra per segment when you switch it on for the account. It's off by default.
  • As a standalone scrub: $0.005 per contact.

Landline validation is also $0.003 per segment when switched on. Treat both as cheap risk reduction, not lawsuit protection. Compliance stays the sender's responsibility. Our list of ecommerce SMS compliance tools covers what to have in place before the first campaign.

What a store campaign costs: segment math

Carriers bill segments, not messages:

  • Plain text (GSM-7): a single segment holds 160 characters, and longer messages split into 153-character parts.
  • With an emoji or other non-GSM character: the limit drops to 70 characters, or 67 per part.

Ready swaps curly quotes, long dashes and ellipses for plain characters before sending, so those don't change your count. Emoji still do.

Ready's Standard rate is $0.0075 per segment, plus a $0.0045 carrier fee per segment. The worked example below assumes 5,000 opted-in customers and a 140-character sale text:

VersionSegments per textTotal segmentsStandard rate costCarrier fee
Plain text, 140 characters15,000$1005,000 × $0.0045
Same text plus one emoji3 (140 ÷ 67, rounded up)15,000$30015,000 × $0.0045

One emoji tripled the bill. Both figures exclude the optional compliance surcharge, and replies are billed like sent texts at the same per-segment rate plus the carrier fee. Ready runs on prepaid credits through Stripe, and to send any text you need a card and a number ($2 a month, the first month charged when you get it). There's no volume discount; Standard is the one rate, and Enterprise pricing is custom (talk to us).

Throughput and filtering at peak

A fresh standard campaign with no vetting often moves around 1 to 4 segments per second. Assuming 2 segments per second, the 15,000-segment emoji campaign above takes roughly two hours to go out.

T-Mobile also caps brands daily by trust score, starting around 2,000 messages a day at the lowest tier. Plan peak-season sends early. For timing, see our Black Friday SMS campaign ideas.

Registration doesn't stop content filtering. Public link shorteners, all-caps urgency and heavy discount language are common triggers. Our post on why promos get filtered when order updates don't breaks those down. Ready's AI message writer includes a spam-filter check for drafts.

Where the iMessage line fits

For support conversations, a iMessage line sends texts as iMessage, with your store's name and photo on iPhones. It needs no 10DLC registration. Pricing and limits:

  • $99 a month per line, plus 6 cents a segment for sends and replies
  • Up to 50 new conversations per line per day
  • Up to 2 texts to someone until they reply, and photos only after they reply

Campaigns and drip campaigns send from regular numbers, not the iMessage line, so it's a support tool rather than a marketing channel. To size lines for peak season, see sizing iMessage lines for an ecommerce support inbox.

The practical takeaway

Pick your tool by how you work:

  • Shopify app: best if you want prebuilt cart flows inside Shopify.
  • Dedicated retail platform: best if SMS is its own team.
  • Platform or API like Ready: best if you want control over registration, numbers and compliance, or you run texting for many stores.

Whichever you choose, get these right before the first promo goes out:

  1. Express written consent, with records your store keeps
  2. A registered marketing or mixed 10DLC campaign
  3. Local quiet hours
  4. Automatic STOP handling
  5. A segment count you've checked

If you want to try Ready, sign up and send your first 20 one-to-one texts free before you register.

FAQ

Is abandoned cart texting legal on Shopify?

Yes, if the customer gave express written consent for marketing texts before you send. A cart reminder asks for a purchase, so treat it as marketing, not as a transactional text.

Does Ready have a Shopify app?

No. Ready connects through its messaging API, your own middleware, or GoHighLevel. If you need a one-click Shopify install with prebuilt flows, a Shopify App Store tool is the better fit.

Do I need 10DLC registration to text Shopify customers?

For ongoing business texting from a standard 10-digit number, yes. Unregistered traffic gets carrier-filtered. On Ready, the charge at submit is $25, and most approvals take 2 to 7 days.

Does Ready store my customers' consent?

Ready records your attestation for each bulk send and each API send that sets consent_attested: who sent it, to how many people and when. It doesn't store each recipient's opt-in time, wording or page. Keep those in Shopify or your signup tool. (A contact who signs up on a Ready-hosted opt-in page is the exception: Ready stores that sign-up, with the time, IP address and exact wording, and support@tryready.com can send you a copy.)

Why did my SMS campaign cost three times what I expected?

Most likely an emoji. It switches the message to unicode, so a 140-character text becomes 3 segments instead of 1, and each segment is billed.