ExShopifySchema

A collection of Elixir schemas for Shopify resources.

Installation

The package can be installed by adding ex_shopify_schema to your list of dependencies in mix.exs:

def deps do
  [
    {:ex_shopify_schema, "~> <SHOPIFY_VERSION>.patch"}
    # for example: {:ex_shopify_schema, "~> 2025.7.4"}
  ]
end

Documentation can be found at https://hexdocs.pm/ex_shopify_schema.

Configuration

You can configure how Ecto types are handled by adding the following to your config.exs:

config :ex_shopify_schema, :ecto_types,
  enum: :atom,  # or :string
  uri: :struct  # or :string

Available Options

Mix Tasks

Releasing

Releases are published to Hex automatically by .github/workflows/publish.yml when a tag is pushed. The workflow builds and publishes one Hex package per Shopify API version listed in its matrix.

Patch release (no new Shopify version)

  1. Bump @patch_number in mix.exs.
  2. Create a release at https://github.com/TeamLunaris/ex_shopify_schema/releases with tag v#{@patch_number} (e.g. v6).
  3. The publish workflow runs on the new tag.

Adding a new Shopify API version

See the Shopify release schedule for available versions.

Tip: If you use Claude Code, run /add-shopify-version <YYYY-MM> to walk through these steps automatically. The skill lives at .claude/skills/add-shopify-version/.

  1. Download the introspection JSON for the new version:

    mix ex_shopify_schema.download.introspection 2025-10
  2. Bump @patch_number in mix.exs.

  3. Add the new version to the shopify-version matrix in .github/workflows/publish.yml.

  4. Create a release at https://github.com/TeamLunaris/ex_shopify_schema/releases with tag v#{@patch_number}.

  5. The publish workflow runs on the new tag and publishes a package per matrix entry.