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

FieldWhat undo does
PriceExact: the original value goes back.
Compare-at priceExact: the original value goes back.
Cost per itemExact: the original value goes back.
Charge taxExact: the original value goes back.
Unit price measurementExact: the original value goes back.
Show unit priceExact: the original value goes back.

Inventory and identity

FieldWhat undo does
SKUExact: the original value goes back.
BarcodeExact: the original value goes back.
Available stockExact, with a stock check: the original quantity goes back only while the quantity is still the one the run set.
Stocked at the locationThe 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 stockExact, 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 stockExact: the original value goes back.
Track quantityExact: the original value goes back.

Details

FieldWhat undo does
TitleExact: the original value goes back.
DescriptionExact: the original value goes back.
URL handleExact: 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 templateExact: the original value goes back.

Organization

FieldWhat undo does
VendorExact: the original value goes back.
Product typeExact: the original value goes back.
CategoryExact: the original value goes back.
TagsExact: the original value goes back.
CollectionsExact: the original value goes back.

Status and channels

FieldWhat undo does
StatusExact: the original value goes back.
Sales channelsExact: the original value goes back.

Search engine listing

FieldWhat undo does
SEO titleExact: the original value goes back.
SEO descriptionExact: the original value goes back.
Hide from search enginesHidden 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

FieldWhat undo does
WeightExact: the original value goes back.
Physical product (requires shipping)Exact: the original value goes back.
Country of originExact: the original value goes back.
HS codeExact: the original value goes back.
Province of originExact: the original value goes back.
Shipping profileEach 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

FieldWhat undo does
Image alt textExact: the original value goes back.

Options

FieldWhat undo does
Option nameExact: the original value goes back.
Option valueExact: the original value goes back.

Market prices

FieldWhat undo does
Market priceExact: the original value goes back.
Market compare-at priceExact: the original value goes back.

Google Shopping

FieldWhat 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

EditWhat undo does
Several find and replace pairs, and everything between two markersExact: 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 attributesExact: 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 templateExact: 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 chooseExact: the original price goes back while the price is still the one the run wrote.
A weight in another unitExact: 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.