Skip to content

Publishing changes

When you save, edit, or delete an operation, Checkout Commander doesn’t immediately rewrite what’s running at checkout. The change is published asynchronously as a background job. You see the job’s status as a toast notification, and once the job finishes, the change is live.

Operations are stored in the app’s database, but the checkout function reads its configuration from a metafield on your shop. Each operation kind writes a JSON document to its own metafield:

  • Shipping operations → $app:delivery-customization / configuration
  • Payment operations → $app:payment-customization / configuration

When you save an operation, a background job rebuilds the JSON for that metafield from the current set of operations and pushes it to Shopify. The next time the function runs at checkout, it reads the new metafield.

When you save an operation, you’ll see a toast that says “Operation created successfully” (or updated / deleted, depending on the action). Behind the toast, a background job starts. The app polls the job’s status in real time; the home dashboard and the operations list show a per-job status indicator while the job is in flight.

Job states you’ll see:

  • Pending — the job is queued.
  • Running — the job is rebuilding the metafield and writing it to Shopify.
  • Complete — the change is live at checkout. The toast dismisses.
  • Failed — something went wrong writing to the metafield (for example, a transient Shopify API error). The toast stays visible with the error message and a retry is enqueued automatically.

Most jobs complete in a few seconds. The slowest case is the very first publish right after install, when the metafield has to be created and the function registered. That job can take 10–30 seconds. After the first publish, subsequent saves are quick because the metafield already exists.

A change is live at checkout the moment the background job finishes, not the moment you click Save. If the function is in the middle of evaluating a cart when the metafield updates, that cart finishes with the old configuration; the next cart sees the new one.

Beyond explicit saves, the app re-publishes the metafield in a few background cases:

  • After install, once the initial setup is done.
  • After a successful plan change, if a new operation kind becomes available.
  • After a settings change that affects a published operation (for example, a new locale is added).

In each case, the same toast and status flow applies.