Sometimes the product data in your store is not quite what a channel wants. Maybe your color attribute says Blk but Google expects Black, your titles carry a - Copy suffix, or a category name needs tidying. Editing every product by hand is slow and risky. CTX Feed’s String replace tool lets you find a piece of text and replace it (or delete it) across a whole attribute in the feed — no changes to your actual products, applied automatically each time the feed regenerates.
This feature requires CTX Feed Pro. String replace lives on the feed’s Filters tab and is unlocked by the Pro plugin. On the free version the section is visible as a locked preview.
What String replace does
String replace runs after your attributes are mapped and before the file is written. For each rule you define:
- It looks at one attribute’s value (for example, the
colorortitleyou mapped on the Config tab). - It finds the text you specify — as plain text or a regular expression.
- It swaps in your replacement text, or removes the found text entirely if you leave the replacement blank.
Because it operates on the feed output, your WooCommerce products are never touched — the change exists only in the generated file.

Add a find-and-replace rule
- Open your feed on CTX Feed → Make Feed (or edit an existing feed from Manage Feeds), and switch to the Filters tab.
- Scroll to the String replace section. Its subtitle reads “Find and replace inside an attribute value — exact text, or a regex pattern when the mode says so”.
- Click Add replacement (or Add one if the table is empty). A new row appears with five columns: Attribute, Find, Replace with, Mode, and Action.
- In Attribute, choose which value the rule applies to — for example, Product Title or one of your product attributes.
- In Find, type the text to look for — for example
Blk. - In Replace with, type the new text — for example
Black. To simply delete the found text, leave this box empty. - In Mode, keep Plain text for an exact match, or pick Pattern (regex) to use a regular expression.
- Repeat for as many rules as you need (use the + button on a row to add another below it). Rules run top to bottom, in order.
- Save and regenerate with Save & generate.
Plain text vs. regular expressions
The Mode column decides how the Find text is read:
- Plain text (the default) —
Blk→Blackswaps the exact text wherever it appears in that attribute. Matching is case-sensitive. - Pattern (regex) — for pattern matching. Enter the pattern without the surrounding slashes; matching is multi-line and case-insensitive. For example, to strip a trailing
- Copyfrom titles you could match\s*-\s*Copy$. To collapse repeated commas into one you could match,{2,}and replace with,.
Rules saved by older versions show the mode Legacy (auto), which guesses: text with a slash is replaced literally, anything else is tried as a pattern. Pick an explicit mode to be sure.
Common uses
- Fix attribute values a channel rejects —
Blk→Black,Sm→Small,pc→piece. - Clean up titles — remove
- Copy, internal SKUs, or supplier tags that leaked into the product name. - Normalize separators — turn
,into/in a comma-joined value, or squeeze double spaces. - Delete unwanted text — leave Replace with empty to strip a substring entirely.
Tips and troubleshooting
- Nothing changed after I added a rule. Confirm you selected the correct Attribute, that the Find text matches exactly (including case for plain text), and that you regenerated the feed afterwards. The file only updates on a fresh generation.
- My rule matched too much. Plain text replaces every occurrence in the value. Tighten the search — add surrounding characters, or switch the Mode to Pattern (regex) anchored to the exact spot (for example,
$to match only at the end). - A regex did nothing. Check the rule’s Mode is Pattern (regex), that you left off the surrounding slashes, and that the pattern is valid. An invalid pattern is replaced as plain text instead.
- I want to change every product’s value, not just find-and-replace. For blanket text formatting (uppercase, trimming, truncating), use the Output options on the Config tab or the per-attribute command instead.
Related guides
- How to use command to format attribute output
- How to remove short codes and HTML tags from product description
- Add / remove variation info from product title
- How to format price or number into feed

Hi,
we have product categories that contain [shy] in the category name which outputs as in the frontend and in the xml feed.
This needs to be removed from the feed output, but no matter what I try, it’s still there!
Output example:
subcategory ]]>
Please provide help how I can solve this!
Thanks
Stefanie
Hi Stefanie,
Can you please, explain the issue with a screenshot explaining which stings to be removed?