What undo covers
Every run of Candor Bulk Editor that changes your store can be undone. This page is read from the same list of fields the app edits with, so it says no more than the app does.
How an undo works
- Before a run changes a field, the app keeps the value the field had. Undoing the run is a new run that puts those values back, field by field, and it has its own receipt.
- An undo does not overwrite a change made after the run. For each field it first reads the value in your store: if it is still what the run wrote, the original goes back; if someone or something changed it since, the field is left alone and listed, with its value now. Tags, collections and sales channels go back by difference: what the run added is removed and what it removed comes back, and what others added since stays.
- You can choose to overwrite those listed fields with the original value, one by one or all at once, before the undo runs.
- An undo can be undone too.
- Original values are kept for your plan's history window (7 days on the free plan, up to 90 days on the largest), then deleted.
Pricing
| Field | What undo does |
|---|---|
| Price | Exact: the original value goes back. |
| Compare-at price | Exact: the original value goes back. |
| Cost per item | Exact: the original value goes back. |
| Charge tax | Exact: the original value goes back. |
| Unit price measurement | Exact: the original value goes back. |
| Show unit price | Exact: the original value goes back. |
Inventory and identity
| Field | What undo does |
|---|---|
| SKU | Exact: the original value goes back. |
| Barcode | Exact: the original value goes back. |
| Available stock | Exact, with a stock check: the original quantity goes back only while the quantity is still the one the run set. |
| Stocked at the location | The connection is removed only while the location still has no stock and nothing reserved at it; otherwise it stays and is listed, and it is not removed even when you choose to overwrite. |
| On hand stock | Exact, with a stock check: the original quantity goes back only while the quantity is still the one the run set. |
| Continue selling when out of stock | Exact: the original value goes back. |
| Track quantity | Exact: the original value goes back. |
Details
| Field | What undo does |
|---|---|
| Title | Exact: the original value goes back. |
| Description | Exact: the original value goes back. |
| URL handle | Exact: the handle goes back, and when the run made a redirect from the old handle to the new one, the undo deletes that redirect first, so your store's URL redirects are as they were before the run. A redirect to anywhere else is left as it is. Undoing the undo gives the run's handle back with the run's own redirect choice. |
| Theme template | Exact: the original value goes back. |
Organization
| Field | What undo does |
|---|---|
| Vendor | Exact: the original value goes back. |
| Product type | Exact: the original value goes back. |
| Category | Exact: the original value goes back. |
| Tags | Exact: the original value goes back. |
| Collections | Exact: the original value goes back. |
Status and channels
| Field | What undo does |
|---|---|
| Status | Exact: the original value goes back. |
| Sales channels | Exact: the original value goes back. |
Search engine listing
| Field | What undo does |
|---|---|
| SEO title | Exact: the original value goes back. |
| SEO description | Exact: the original value goes back. |
| Hide from search engines | Hidden or shown goes back, with a metafield check. A page another app had marked as shown with the value 0 comes back shown, without that 0. |
Shipping and customs
| Field | What undo does |
|---|---|
| Weight | Exact: the original value goes back. |
| Physical product (requires shipping) | Exact: the original value goes back. |
| Country of origin | Exact: the original value goes back. |
| HS code | Exact: the original value goes back. |
| Province of origin | Exact: the original value goes back. |
| Shipping profile | Each variant goes back to the shipping profile it had before the run; a profile that was deleted since is listed instead. On a store that sets its shipping in Markets, the variants stay where they are and are listed. |
Images
| Field | What undo does |
|---|---|
| Image alt text | Exact: the original value goes back. |
Options
| Field | What undo does |
|---|---|
| Option name | Exact: the original value goes back. |
| Option value | Exact: the original value goes back. |
Market prices
| Field | What undo does |
|---|---|
| Market price | Exact: the original value goes back. |
| Market compare-at price | Exact: the original value goes back. |
Google Shopping
| Field | What undo does |
|---|---|
| Google: Product category (mm-google-shopping.google_product_category) | Exact, with a metafield check: the original value goes back only while the metafield is still the one the run wrote. |
| Google: Condition (mm-google-shopping.condition) | Exact, with a metafield check: the original value goes back only while the metafield is still the one the run wrote. |
| Google: Condition, per variant (mm-google-shopping.condition) | Exact, with a metafield check: the original value goes back only while the metafield is still the one the run wrote. |
| Google: Gender (mm-google-shopping.gender) | Exact, with a metafield check: the original value goes back only while the metafield is still the one the run wrote. |
| Google: Gender, per variant (mm-google-shopping.gender) | Exact, with a metafield check: the original value goes back only while the metafield is still the one the run wrote. |
| Google: Age group (mm-google-shopping.age_group) | Exact, with a metafield check: the original value goes back only while the metafield is still the one the run wrote. |
| Google: Age group, per variant (mm-google-shopping.age_group) | Exact, with a metafield check: the original value goes back only while the metafield is still the one the run wrote. |
| Google: MPN (mm-google-shopping.mpn) | Exact, with a metafield check: the original value goes back only while the metafield is still the one the run wrote. |
| Google: MPN, per variant (mm-google-shopping.mpn) | Exact, with a metafield check: the original value goes back only while the metafield is still the one the run wrote. |
| Google: Custom label 0 (mm-google-shopping.custom_label_0) | Exact, with a metafield check: the original value goes back only while the metafield is still the one the run wrote. |
| Google: Custom label 0, per variant (mm-google-shopping.custom_label_0) | Exact, with a metafield check: the original value goes back only while the metafield is still the one the run wrote. |
| Google: Custom label 1 (mm-google-shopping.custom_label_1) | Exact, with a metafield check: the original value goes back only while the metafield is still the one the run wrote. |
| Google: Custom label 1, per variant (mm-google-shopping.custom_label_1) | Exact, with a metafield check: the original value goes back only while the metafield is still the one the run wrote. |
| Google: Custom label 2 (mm-google-shopping.custom_label_2) | Exact, with a metafield check: the original value goes back only while the metafield is still the one the run wrote. |
| Google: Custom label 2, per variant (mm-google-shopping.custom_label_2) | Exact, with a metafield check: the original value goes back only while the metafield is still the one the run wrote. |
| Google: Custom label 3 (mm-google-shopping.custom_label_3) | Exact, with a metafield check: the original value goes back only while the metafield is still the one the run wrote. |
| Google: Custom label 3, per variant (mm-google-shopping.custom_label_3) | Exact, with a metafield check: the original value goes back only while the metafield is still the one the run wrote. |
| Google: Custom label 4 (mm-google-shopping.custom_label_4) | Exact, with a metafield check: the original value goes back only while the metafield is still the one the run wrote. |
| Google: Custom label 4, per variant (mm-google-shopping.custom_label_4) | Exact, with a metafield check: the original value goes back only while the metafield is still the one the run wrote. |
| Google: Size system (mm-google-shopping.size_system) | Exact, with a metafield check: the original value goes back only while the metafield is still the one the run wrote. |
| Google: Size system, per variant (mm-google-shopping.size_system) | Exact, with a metafield check: the original value goes back only while the metafield is still the one the run wrote. |
| Google: Size type (mm-google-shopping.size_type) | Exact, with a metafield check: the original value goes back only while the metafield is still the one the run wrote. |
| Google: Size type, per variant (mm-google-shopping.size_type) | Exact, with a metafield check: the original value goes back only while the metafield is still the one the run wrote. |
| Google: Custom product (mm-google-shopping.custom_product) | Exact, with a metafield check: the original value goes back only while the metafield is still the one the run wrote. |
Edits that change many values at once
| Edit | What undo does |
|---|---|
| Several find and replace pairs, and everything between two markers | Exact: the original text goes back. |
| Find and replace in the HTML of a description (text, link and image addresses, the raw HTML), renaming a tag, removing tags or attributes | Exact: the original HTML goes back, byte for byte, while the description is still the one the run wrote. The markup outside the parts an edit changes is copied as it was. |
| Tags: remove those that match, find and replace inside each tag, change their case, add tags from a template | Exact: the tags the run removed or renamed go back and the tags it added are removed. Tags someone else added since stay. |
| Rounding that keeps the old cents, or ends the whole part in digits you choose | Exact: the original price goes back while the price is still the one the run wrote. |
| A weight in another unit | Exact: the original weight and its unit go back. |
| Ready-made edits (swap price and compare-at, price from cost plus an amount) | Exact: they are ordinary price edits, and each price goes back. |
Your store's own metafields
Every metafield definition of your products and variants can be edited. Exact, with a metafield check: the original value goes back only while the metafield is still the one the run wrote.
Not offered in this version
These are not edits the app makes, so there is nothing for an undo to put back:
- Deleting products or variants, and creating variants.
- Image files: the app edits image alt text only, not the images themselves.
- Orders, customers, the settings of collections themselves, and metaobject entries.
- Two-way sync with Google Sheets, and FTP or XML feeds.
- Disconnecting a location from a product (Shopify removes the stock history with it).
- Find and replace inside translated descriptions (it needs Shopify's translation permissions).
- B2B quantity rules and price breaks.
- The fulfillment service of an item (Shopify's API does not write it).
- Category attributes whose values point to Shopify's own entries.
Think something is missing from this page? Write to me at support@aislekit.app.