This app demonstrates the core concepts of a Fulfillment Service App that processes order fulfillments for a store using the Fulfillment Admin APIs.
- Creating Fulfillment Locations - See example location create api request wrapper.
- Accepting Fulfillment Requests - See example fulfillment request reciver
- Rejecting Fulfillment Requests - See example fulfillment request reciver
- Accepting Cancellation Requests - See example fulfillment request reciver
- Rejecting Cancellation Requests - See example fulfillment request reciver
- Creating Fulfillments - See example create fulfillment api wrapper
- App Oauth Setup Install Flow - See store auth setup flow handler
![]() |
![]() |
---|---|
![]() |
![]() |
The first step is to create an App in your 29 Next Partner Account. You'll need your app Client ID and Client Secret later on in the setup process.
You need your App Client ID and Client Secret for the Oauth install flow.
Take note of your App Client ID
and Client Secret
, you'll need it when configuring your app.
The demo app uses Docker and Docker Compose to setup a full development environment with Django, Postgres, Celery, and RabbitMQ.
- Install Docker Desktop
- Install Docker
- Install Docker Compose
To access your localhost for app development, you can use Ngrok or LocalTunnel to create and open a public tunnel to your local machine.
Your tunnel should expose port 3000
, take note of your public domain for the next setup.
Update your App Oauth Redirect URLs to match your local tunnel domain.
https://<YOUR LOCAL TUNNEL DOMAIN>/stores/auth/setup/
To run the app, we need to configure it to use your local tunnel domain and Oauth credentials.
source setup.sh
This script will configure environment variables in app.env file.
To run the application on your local, use the following command.
In a new terminal
docker compose up
You should now be able to access the app on your tunnel domain and localy at localhost:3000
.
With your application now running, you need to migrate the database and create a super user.
In a new terminal, shell into your running django container
docker compose exec app bash
Once inside the container, run this command to migrate the database and create a superuser.
python manage.py migrate && python manage.py createsuperuser
The full Django admin is available at http://localhost:3000/admin/
You can now connect your app to your development store which will initiate the Oauth setup flow and configure Admin API access. 🎉