link
.mercemur.json so every command in this directory knows which store it acts on, after
checking that the store answers and the key works.
The check is the point. Writing a config that turns out to be wrong moves the failure to the next
command, where the message is about that command rather than about the link.
env pull
.env.local with what the CLI can prove: the store id, the API base, the storefront URL and
the default locale.
Existing values are kept unless you pass --force: a local override is usually deliberate.
Unrelated variables and key order are preserved, so a pull is a small diff rather than a rewrite.
translations
locale, resource_type, resource_id, field, value, with the value last because it is
the only one a translator edits.
The API scopes a translation list to one resource on purpose, so an export walks them and
reports how many reads that took. A store with ten thousand products should see what the export
costs before it is surprised by it. Reading
product requires read_products, and so on for
each type walked.redirects
from_path, to_path, status_code. A status must be 301, 302, 307 or 308; anything else
is refused rather than guessed at.
A file that redirects the same path twice is refused, naming both rows: that is a merge accident,
and applying both silently leaves whichever landed last.
seo
audit reports the mistakes a search result makes visible: a duplicate title across two pages, a
description too long to survive truncation, one too short to say anything.
It audits what is set, not what is missing. A resource with no override falls back to its own
catalogue title, which is usually correct, and reporting every one of those would bury the findings
that matter.
Exits non-zero on a duplicate title, which is the one finding here that is unambiguously wrong: two
pages competing for the same query is a decision nobody made. Length findings are warnings, because
those limits are conventions that move.
metafields
definition_id is refused rather than guessed at: the definition is what decides
the value’s type, and writing one without it stores a shape the storefront cannot read. Run
mercemur metafields definitions to see them.
A malformed line names its own line number, because “invalid character” in a file of several
thousand is a search rather than a fix.