One evolve command for your whole project. The CLI itself only runs commands. The commands come from the Evolve packages you install, so each project has the commands that fit what it uses.
Install pnpm add -D @evolve-framework/cli
--help lists the commands available in the current project. The CLI is @evolve-framework/cli v1.0.0.
A command needs its package
evolve reads the dependencies and devDependencies in your package.json. It adds the commands
of each package listed there. A package that is only a dependency of another package does not count. If evolve does not know a
command, install the package that the table below names for it.
Commands Command What it does Install evolve addAdd a piece of Evolve wiring to this project (e2e, brand-contrast) @evolve-storefront/commandsevolve messagesGenerate the project's message files from its packages @evolve-storefront/commandsevolve cleanupDevelopment only. Delete what end-to-end runs left behind @evolve-framework/commercetoolsevolve simulateDevelopment only. Write what an ERP, a warehouse and a merchant would @evolve-framework/commercetoolsevolve ejectEject built-in blocks into your project so you own them @evolve-framework/contentfulevolve field-tabsPut every content type's fields on the Content, SEO and Settings tabs @evolve-framework/contentfulevolve tf-exportExport the built-in content blocks' Terraform to disk @evolve-framework/contentfulevolve cleanupDevelopment only. Delete what end-to-end runs left behind @evolve-framework/medusaevolve ejectEject built-in blocks, collections or fields into your project so you own them @evolve-framework/payloadevolve ejectEject built-in blocks into your project so you own them @evolve-framework/storyblokevolve tf-exportExport the built-in content blocks' Terraform to disk @evolve-framework/storyblok
The CLI has no commands of its own yet. Scaffolding a new project with evolve create is planned.
Commands that more than one package adds
@evolve-framework/commercetools and
@evolve-framework/medusa each add
evolve cleanup.
With more than one installed,
evolve does not guess. Name the package:
evolve --package @evolve-framework/commercetools cleanup
Commands that more than one package adds
@evolve-framework/contentful,
@evolve-framework/payload and
@evolve-framework/storyblok each add
evolve eject.
With more than one installed,
evolve does not guess. Name the package:
evolve --package @evolve-framework/contentful eject
Commands that more than one package adds
@evolve-framework/contentful and
@evolve-framework/storyblok each add
evolve tf-export.
With more than one installed,
evolve does not guess. Name the package:
evolve --package @evolve-framework/contentful tf-export
Global options --helpList the commands, or with a command, its arguments: evolve eject --help. --package <name>, -pOnly use this package's commands. It settles a command that two packages add, and runs a package's command without adding the package to your dependencies.
@evolve-storefront/commandsAvailable after pnpm add @evolve-storefront/commands. About this package
evolve addAdd a piece of Evolve wiring to this project (e2e, brand-contrast)
evolve add [what] [options]
Argument Description <what>What to add: e2e or brand-contrast --stylesheetbrand-contrast: the brand stylesheet, when it is not found --forceOverwrite files that already exist
evolve messagesGenerate the project's message files from its packages
evolve messages <action> [options]
Argument Description <action>required What to do with the messages: "build" --localeOnly this locale. Must be one of the configured locales. --checkWrite nothing; exit non-zero if the files are not in sync
Available after pnpm add @evolve-framework/commercetools. About this package
Development only. Delete what end-to-end runs left behind
evolve cleanup order deleteDevelopment only. Delete an order a test identity placed, with its payments, and put its stock back evolve cleanup order delete --order <order> [options]
Argument Description --orderrequired Id of the order to delete --test-domainReserved domain every test identity's email is at (default: $TEST_IDENTITY_DOMAIN) --test-prefixWhat every test identity's email starts with (default: $TEST_IDENTITY_PREFIX)
evolve cleanup order delete-of-customerDevelopment only. Delete every order a test customer placed, with their payments, and put their stock back evolve cleanup order delete-of-customer --customer <customer> [options]
Argument Description --customerrequired Id of the test customer whose orders to delete --test-domainReserved domain every test identity's email is at (default: $TEST_IDENTITY_DOMAIN) --test-prefixWhat every test identity's email starts with (default: $TEST_IDENTITY_PREFIX)
evolve cleanup payment deleteDevelopment only. Delete a payment a test identity made evolve cleanup payment delete --payment <payment> [options]
Argument Description --paymentrequired Id of the payment to delete --test-domainReserved domain every test identity's email is at (default: $TEST_IDENTITY_DOMAIN) --test-prefixWhat every test identity's email starts with (default: $TEST_IDENTITY_PREFIX)
evolve cleanup cart deleteDevelopment only. Delete a test identity's cart, or an anonymous one evolve cleanup cart delete --cart <cart> [options]
Argument Description --cartrequired Id of the cart to delete --test-domainReserved domain every test identity's email is at (default: $TEST_IDENTITY_DOMAIN) --test-prefixWhat every test identity's email starts with (default: $TEST_IDENTITY_PREFIX)
evolve cleanup quote-request deleteDevelopment only. Delete a test identity's quote request, or one whose customer is gone, with its staged quote and the quotes answering it evolve cleanup quote-request delete --quote-request <quote-request> [options]
Argument Description --quote-requestrequired Id of the quote request to delete --test-domainReserved domain every test identity's email is at (default: $TEST_IDENTITY_DOMAIN) --test-prefixWhat every test identity's email starts with (default: $TEST_IDENTITY_PREFIX)
evolve cleanup associate removeDevelopment only. Remove a test identity from a business unit evolve cleanup associate remove --business-unit <business-unit> --customer <customer> [options]
Argument Description --business-unitrequired Key of the business unit to remove them from --customerrequired Id of the test customer to remove --test-domainReserved domain every test identity's email is at (default: $TEST_IDENTITY_DOMAIN) --test-prefixWhat every test identity's email starts with (default: $TEST_IDENTITY_PREFIX)
evolve cleanup customer deleteDevelopment only. Delete a test customer evolve cleanup customer delete --customer <customer> [options]
Argument Description --customerrequired Id of the test customer to delete --test-domainReserved domain every test identity's email is at (default: $TEST_IDENTITY_DOMAIN) --test-prefixWhat every test identity's email starts with (default: $TEST_IDENTITY_PREFIX)
evolve cleanup sweepDevelopment only. Find, and with --delete remove, the test data end-to-end runs left behind evolve cleanup sweep [options]
Argument Description --deleteRemove what was found. Without it nothing is changed --older-thanOnly what was created at least this many minutes ago, so a run still in flight keeps its data (default: 60) --quotesAlso scan and remove quote requests. Needs a client with the quote scopes --test-domainReserved domain every test identity's email is at (default: $TEST_IDENTITY_DOMAIN) --test-prefixWhat every test identity's email starts with (default: $TEST_IDENTITY_PREFIX)
Development only. Write what an ERP, a warehouse and a merchant would
evolve simulate invoice raiseDevelopment only. Raise an invoice, as a finance system would evolve simulate invoice raise --amount <amount> [options]
Argument Description --amountrequired What the invoice bills, in cents --currencyCurrency the invoice bills inDefault EUR --numberInvoice number (default: generated) --invoice-dateWhen it was raised, YYYY-MM-DD (default: today) --due-dateWhen payment is due, YYYY-MM-DD (default: 30 days out). A date in the past raises it overdue --order-numberOrder numbers this invoice bills, comma separated. Omit for a standalone invoice --business-unitKey of the company the invoice is billed to --customerId of the person the invoice is billed to --referenceCustomer reference --urlLink to the invoice document --payment-typeKey of the project's payment custom type (default: $CTP_PAYMENT_TYPE_KEY)
evolve simulate invoice payDevelopment only. Record money received against an invoice, in full or in part evolve simulate invoice pay --invoice <invoice> [options]
Argument Description --invoicerequired Invoice payment id --amountHow much arrived, in cents. Omit to settle the outstanding balance
evolve simulate invoice creditDevelopment only. Raise a credit note against an invoice, as a finance system would evolve simulate invoice credit --invoice <invoice> [options]
Argument Description --invoicerequired Id of the invoice being credited --amountHow much to credit, in cents. Omit to credit the invoice in full --numberCredit note number (default: generated) --dateWhen it was raised, YYYY-MM-DD (default: today) --referenceCustomer reference (default: the invoice's own) --urlLink to the credit note document --payment-typeKey of the project's payment custom type (default: $CTP_PAYMENT_TYPE_KEY)
evolve simulate invoice repair-statusDevelopment only. Write the status of every invoice that has none, from its transactions evolve simulate invoice repair-status [options]
Argument Description --dry-runList what would be written without writing it
evolve simulate order confirmDevelopment only. Confirm an order, as a back office would evolve simulate order confirm --order <order>
Argument Description --orderrequired Order id or order number
evolve simulate order shipment-stateDevelopment only. Report where an order's parcels are, as a warehouse would evolve simulate order shipment-state --order <order> --state <state>
Argument Description --orderrequired Order id or order number --staterequired One of Pending, Ready, Shipped, Delayed, Backorder, Canceled. Partial and Delivered come from simulate order deliver
evolve simulate order deliverDevelopment only. Deliver part or all of an order, moving the shipment and order state with it evolve simulate order deliver --order <order> [options]
Argument Description --orderrequired Order id or order number --itemsWhat to deliver, comma separated, as <line item id or SKU>[:<quantity>]. Defaults to everything still undelivered --tracking-idCarrier's tracking reference for the parcel --carrierCarrier delivering the parcel
evolve simulate quote sendDevelopment only. Answer a quote request with a quote, as a merchant would evolve simulate quote send --quote-request <quote-request> [options]
Argument Description --quote-requestrequired Id of the quote request being answered --valid-toWhen the offer lapses, YYYY-MM-DD (end of that day, UTC) or an ISO timestamp. A moment in the past sends an expired quote. Omit for no expiry --pricesNegotiated prices, comma separated, as <line item id or SKU>:<cents>. Lines left out keep their price --commentWhat the merchant tells the buyer about the offer --numberThe seller's quote number, shown to the buyer. Omit for a quote without one
evolve simulate quote withdrawDevelopment only. Withdraw a quote before it is accepted, as a merchant would evolve simulate quote withdraw --quote <quote>
Argument Description --quoterequired Id of the quote being withdrawn
evolve simulate quote declineDevelopment only. Decline a quote request outright, as a merchant would evolve simulate quote decline --quote-request <quote-request>
Argument Description --quote-requestrequired Id of the quote request being declined
evolve simulate quote renegotiateDevelopment only. Answer a renegotiation request with a new quote, as a merchant would evolve simulate quote renegotiate --quote <quote> [options]
Argument Description --quoterequired Id of the quote the buyer asked to renegotiate --valid-toWhen the offer lapses, YYYY-MM-DD (end of that day, UTC) or an ISO timestamp. A moment in the past sends an expired quote. Omit for no expiry --pricesNegotiated prices, comma separated, as <line item id or SKU>:<cents>. Lines left out keep their price --commentWhat the merchant tells the buyer about the offer --numberThe seller's quote number, shown to the buyer. Omit for a quote without one
@evolve-framework/contentfulAvailable after pnpm add @evolve-framework/contentful. About this package
evolve ejectEject built-in blocks into your project so you own them
Argument Description --allEject every block --destDirectory for the ejected TypeScriptDefault src/blocks --tf-destDirectory for the ejected TerraformDefault terraform/contentful
evolve field-tabsPut every content type's fields on the Content, SEO and Settings tabs
evolve tf-exportExport the built-in content blocks' Terraform to disk
evolve tf-export [out-dir]
Argument Description <out-dir>Directory to write the .tf files intoDefault terraform/contentful
@evolve-framework/medusaAvailable after pnpm add @evolve-framework/medusa. About this package
evolve cleanupDevelopment only. Delete what end-to-end runs left behind
evolve cleanup order deleteDevelopment only. Cancel and archive a test order; Medusa cannot delete one evolve cleanup order delete --order <order> [options]
Argument Description --orderrequired Id of the test order --test-domainReserved domain every test identity's email is at (default: $TEST_IDENTITY_DOMAIN) --test-prefixWhat every test identity's email starts with (default: $TEST_IDENTITY_PREFIX)
evolve cleanup order delete-of-customerDevelopment only. Cancel and archive every order a test customer placed evolve cleanup order delete-of-customer --customer <customer> [options]
Argument Description --customerrequired Id of the test customer whose orders to retire --test-domainReserved domain every test identity's email is at (default: $TEST_IDENTITY_DOMAIN) --test-prefixWhat every test identity's email starts with (default: $TEST_IDENTITY_PREFIX)
evolve cleanup customer deleteDevelopment only. Delete a test customer evolve cleanup customer delete --customer <customer> [options]
Argument Description --customerrequired Id of the test customer to delete --test-domainReserved domain every test identity's email is at (default: $TEST_IDENTITY_DOMAIN) --test-prefixWhat every test identity's email starts with (default: $TEST_IDENTITY_PREFIX)
evolve cleanup customer delete-by-emailDevelopment only. Delete every customer holding a test identity's address evolve cleanup customer delete-by-email --email <email> [options]
Argument Description --emailrequired The test identity's address --test-domainReserved domain every test identity's email is at (default: $TEST_IDENTITY_DOMAIN) --test-prefixWhat every test identity's email starts with (default: $TEST_IDENTITY_PREFIX)
@evolve-framework/payloadAvailable after pnpm add @evolve-framework/payload. About this package
evolve ejectEject built-in blocks, collections or fields into your project so you own them
Argument Description --allEject every block, collection or field --collectionsRead the names as collections rather than blocks --destDirectory for the ejected blocksDefault src/blocks --collections-destDirectory for the ejected collectionsDefault src/collections --fieldsRead the names as fields rather than blocks --fields-destDirectory for the ejected fieldsDefault src/fields
@evolve-framework/storyblokAvailable after pnpm add @evolve-framework/storyblok. About this package
evolve ejectEject built-in blocks into your project so you own them
Argument Description --allEject every block --destDirectory for the ejected TypeScriptDefault src/blocks --tf-destDirectory for the ejected TerraformDefault terraform/storyblok
evolve tf-exportExport the built-in content blocks' Terraform to disk
evolve tf-export [out-dir]
Argument Description <out-dir>Directory to write the .tf files intoDefault terraform/storyblok