There is a tab open on every growing store's screen that no one likes to look at. It is the product list, filtered to the ones with no description, and it is always longer than you remember. A new drop landed with forty SKUs. A supplier sent a spreadsheet with two hundred. Each one needs copy that says what it is, who it is for, and why this one and not the next, and each one is sitting there with an empty body field or a line of text pasted straight from the manufacturer. Someone opens the first product, types a few words into the AI box, reads the result, decides it sounds like every other AI result, rewrites half of it, and moves to the second. Two hundred to go.
This is the chore that looks solved from a distance and turns out to be half-solved up close. Shopify Magic, the AI assistant built into the admin, will genuinely write you a product description. It will just do it one product at a time, from the keywords you feed it, in a voice that reads as nobody's in particular. The descriptions you actually need are the whole catalog, written in your voice, each one different enough to earn its own page, and that is exactly where the built-in tool runs out of room.
The description is the only salesperson on the page. A blank one says nothing, and a borrowed one says it for everybody.
Why the blank description is the expensive one
It is tempting to treat product copy as decoration, the thing you will get to once the real work is done. It is not decoration. On a product page with no live chat and no clerk, the description is the only thing answering the question the shopper actually has: will this fit, what is it made of, how is it different from the cheaper one next to it. A page that does not answer loses the sale to a competitor's page that does.
It is also the page's whole case to a search engine. A blank description gives Google nothing to rank. Worse, the line you pasted from the supplier is already live word-for-word on every other store that bought the same feed, so there is no reason for yours to be the one that surfaces. The result is quiet and compounding: the products you spent money to stock sit on pages that get no organic traffic and convert the trickle they do get at a lower rate. The empty body field is not a cosmetic gap. It is unsold inventory wearing a to-do list.
What Shopify actually does, and where it stops
Shopify Magic is a real tool and the right first thing to reach for. It is free inside the admin, it drafts from a few keywords, and for a single product it can save you the blank-page stare. The gap is not that it cannot write. The gap shows up the moment you stop thinking about one product and start thinking about the catalog.
First, it works one product at a time. Magic lives in the editor for a single product. There is no native button that writes the catalog. The known workaround is to export your products to a CSV, add a prompt column, run it through an AI tool, and re-import, which works for the people who enjoy that sort of thing and breaks in small ways on a large file for everyone else. Either way you are managing the run, not escaping it.
Second, it writes from your keywords, not from the product. Magic drafts from the handful of words you type into the box. It does not read the variants and options, the supplier spec sheet, the materials list, or the product photo. So the context that makes a description specific and true still comes from you, typed in by hand, for every product. The slow part of writing copy was never the typing. It was reading the thing closely enough to have something to say, and that part stays on your desk.
Third, it sounds like AI, so you edit every one. The common complaint on the forums is not that Magic is wrong, it is that the copy comes out bland, a little robotic, and recognizably machine-made, with no trace of the voice that makes a brand worth buying from. So you rewrite it. The work moves from writing to editing, which feels like progress and is not, because you are still touching every product by hand and the catalog is still as long as it was.
Fourth, nothing keeps the catalog from repeating itself. Run a generator across ten near-identical variants and you get ten near-identical descriptions. That is the duplicate-content problem from the inside: pages that compete with each other instead of each making its own case, which is the same way a pile of sold-out look-alikes drags a whole collection down. Speed without differentiation just manufactures the SEO problem faster.
Why the usual fixes don't hold
Once a merchant feels this, they reach for one of three workarounds. Each buys some ground and each gives it back in a familiar spot.
"I will just write them myself." The highest quality and the one that never finishes. Hand-written copy is the best copy, and it is also the first thing that stops when a launch week hits, which is precisely when the new products land. The backlog grows faster than any one person writes, so the list of blank descriptions is permanent. The work is never wrong. It is just never done.
"I will use the built-in AI per product." The natural next step, and fine for the occasional one-off. But it relocates the chore rather than removing it: you still open each product, still feed it context, still rewrite the bland draft, still apply none of your brand voice consistently. You have automated the first sentence and kept everything around it.
"I will run a bulk description app." The app store is full of tools that promise ten thousand descriptions in one click, and they deliver the click. What they cannot deliver is the reading. Fed the same thin product data, they produce a large volume of generic, near-duplicate copy that you now have to audit and re-edit, which is the work you were trying to skip. You have bought speed, not judgement, and the catalog needs judgement.
What the automation actually has to do
The real job is not "draft a description from these keywords." It is "read this product the way a careful merchandiser would, write copy that is true and specific in our voice, make sure it does not collide with the product next to it, and do that across the whole catalog and keep doing it as the catalog changes." That is reading, writing, and bookkeeping on every product. As a Dugong playbook, in plain prose, it reads like this:
# trigger
On every product created or updated, and on a one-time backfill of the catalog
# steps
1. Read each product whole: title, type and tags, every
variant and option, the existing copy, the supplier spec sheet, and the
product images, not a few keywords typed by hand
2. Write the description in one defined brand voice,
applied the same way across every product, from a short brief instead of
per-product tone toggles
3. Differentiate near-identical products so each page
earns its own ranking, and never paste the supplier's shared copy
4. Structure for SEO and scanning: a lead line, the
specifics a buyer needs, one focus phrase, no keyword stuffing
5. Write the descriptions back across the whole catalog
through the API, not one editor box at a time
6. Backfill the products that ship blank or with
placeholder copy, and refresh when the product or spec changes
7. Flag the products too thin to describe well and ask
for a spec, and log every description with the inputs it was written from
Seven lines. The compiler fills in everything beneath: pulling each product whole rather than waiting for you to retype its details, writing in one voice you defined once instead of a tone dropdown set per product, checking each new description against its neighbours so the catalog does not turn into a hall of mirrors, shaping the copy so it reads well and ranks without sounding stuffed, writing back across the whole catalog at once, and going over the old blank pages so nothing is left selling itself with an empty field. The merchandiser never sat in the editor retyping the spec sheet. They described the voice and the standard once and let the compiler do the volume.
Why this is a compiler problem, not an app problem
There are capable description apps, and for a quick fill-in they do the job. But a good description is a small act of judgement about a specific product: what is genuinely different here, which detail decides the purchase, how this one earns a page next to the three that look almost the same, and how all of that should sound in your voice rather than a generic one. That changes with your catalog, your buyers, and your brand, and a chunk of it lives in the spec and the photo that no keyword box captures. Those are judgements about your store, not tokens in someone else's template.
A natural-language compiler fits because writing the catalog was never really a generation problem. It is a reading and voice problem wearing a generation problem's clothes. Producing a sentence is the easy part, which is why Shopify and the apps do it. The hard part is everything around it: read the whole product, say something true and specific, keep one voice across thousands of pages, make each one distinct, fill the blanks, and keep doing it as the catalog turns over. You can write that brief in a paragraph. You could never hold it as a hand-writing ritual that restarts with every new drop.
The workflow worth building this week
If you have more products than you have time to write copy for, this is the automation to set up before your next launch, because the SKU you leave blank under pressure is the one that quietly never ranks. It also sits next to a pattern we keep returning to. The page's meta description has the exact same shape: Shopify will bulk-edit it only by making every one identical, so the unique version gets written one at a time or left blank, and the body copy fails for the same reason. Both are the on-page SEO work that our field study found almost no one actually automates, because the easy half looks finished and the hard half is the reading.
Describe it the way you would brief a sharp merchandiser on their first day: here is our voice, read every product whole including the spec and the photo, write copy that is true and specific, make each one distinct from its look-alikes, fill in everything that is blank, and tell me about the products too thin to describe well. That is the whole brief. The compiler does the reading, the writing, the differentiating, and the write-back across the catalog. You keep your attention for the hero products that deserve a human pass, and you close the tab with the two hundred blank descriptions for good.
If you are a Shopify merchant who has wired up product copy that reads the
whole product and holds one brand voice across the catalog, or you have a
story about the blank page that cost a launch or the pasted line that tanked a
ranking, the inbox is open: field-notes@dugong.live. We are
collecting case studies for the next issue.