# laconic-shopify

Instructions for running the laconic shopify

## Setup

* Clone the stack repo:

  ```bash
  laconic-so fetch-stack git.vdb.to/cerc-io/testnet-laconicd-stack
  ```

* Clone the laconic-shopify respository:

  ```bash
  laconic-so --stack ~/cerc/testnet-laconicd-stack/stack-orchestrator/stacks/laconic-shopify setup-repositories
  ```

* Build the container image:

  ```bash
  laconic-so --stack ~/cerc/testnet-laconicd-stack/stack-orchestrator/stacks/laconic-shopify build-containers
  ```

  This should create the `cerc/laconic-shopify` and `cerc/laconic-shopify-faucet` images locally

## Create a deployment

* Create a spec file for the deployment:

  ```bash
  laconic-so --stack ~/cerc/testnet-laconicd-stack/stack-orchestrator/stacks/laconic-shopify deploy init --output laconic-shopify-spec.yml
  ```

* Create a deployment from the spec file:

  ```bash
  laconic-so --stack ~/cerc/testnet-laconicd-stack/stack-orchestrator/stacks/laconic-shopify deploy create --spec-file laconic-shopify-spec.yml --deployment-dir laconic-shopify-deployment
  ```

## Configuration

* Inside the `laconic-shopify-deployment` deployment directory, open `config.env` file and set following env variables:

  ```bash
  # Shopify GraphQL URL (default: 'https://6h071x-zw.myshopify.com/admin/api/2024-10/graphql.json')
  CERC_SHOPIFY_GRAPHQL_URL=

  # Access token for Shopify API
  CERC_SHOPIFY_ACCESS_TOKEN=

  # Delay for fetching orders in milliseconds (default: 10000)
  CERC_FETCH_ORDER_DELAY=

  # Number of line items per order in Get Orders GraphQL query (default: 10)
  CERC_ITEMS_PER_ORDER=

  # Private key of a funded faucet account
  CERC_FAUCET_KEY=

  # laconicd RPC endpoint (default: https://laconicd-sapo.laconic.com/)
  CERC_LACONICD_RPC_ENDPOINT=

  # laconicd chain id (default: laconic-testnet-2)
  CERC_LACONICD_CHAIN_ID=

  # laconicd address prefix (default: laconic)
  CERC_LACONICD_PREFIX=

  # laconicd gas price (default: 0.001)
  CERC_LACONICD_GAS_PRICE=
  ```

## Start the deployment

  ```bash
  laconic-so deployment --dir laconic-shopify-deployment start
  ```

## Check status

* To list down and monitor the running container:

  ```bash
  # With status
  docker ps

  # Check logs for a container
  docker logs -f <CONTAINER_ID>
  ```

## Clean up

* Stop the `laconic-shopify-faucet` service running in the background:

  ```bash
  # Stop the docker container
  laconic-so deployment --dir laconic-shopify-deployment stop
  ```

* To stop the service and also delete data:

  ```bash
  # Stop the docker containers
  laconic-so deployment --dir laconic-shopify-deployment stop --delete-volumes

  # Remove deployment directory (deployment will have to be recreated for a re-run)
  rm -r laconic-shopify-deployment
  ```
