aa-shop
An Alliance Auth plugin that lets registered auth members run a publicly available shop stocked from their own (or their corporation's) assets.
Features
- Members create and manage personal shops; authorized users manage corporation shops.
- A member back-office at
/shop-backoffice/(lists your shops, create/edit/delete). - Each published shop gets a public storefront at
/shop/<slug>/— no login required. Unpublished shops are visible only to their managers (preview).
Requirements
- Alliance Auth >= 5
- aa-memberaudit >= 5, installed and syncing
Installation
-
Install into your Alliance Auth virtual environment:
pip install aa-shop
-
Add
"shop"toINSTALLED_APPSin your auth project'slocal.py:INSTALLED_APPS += ["shop"]
-
Allow the storefront to expose its public (non-gated) views — required, or anonymous visitors are redirected to login:
APPS_WITH_PUBLIC_VIEWS = ["storefront"]
-
Run migrations and collect static files, then restart your AA services:
python manage.py migrate python manage.py collectstatic
-
EVE universe data: the Hulls picker lists ship types from django-eveuniverse, so make sure your eveuniverse data is populated with ship types (load the full EVE universe, or at least the Ship category, using eveuniverse's load tooling). Ships that aren't loaded won't be selectable.
-
Grant permissions (Django admin, or via groups/states):
Permission Grants shop.basic_accessAccess the back-office; create/manage your personal shops shop.manage_corporation_shopsCreate/manage your corporation's shops
Periodic price refresh
Hulls priced as % Jita Buy / % Jita Sell are refreshed by a Celery task
every 6 hours. Add to your local.py:
from celery.schedules import crontab
CELERYBEAT_SCHEDULE["shop_refresh_pct_prices"] = {
"task": "shop.tasks.refresh_pct_prices",
"schedule": crontab(minute=0, hour="*/6"),
}
CELERYBEAT_SCHEDULE["shop_refresh_all_stock"] = {
"task": "shop.tasks.refresh_all_stock",
"schedule": crontab(minute=0), # hourly
}
Stock is recomputed from memberaudit assets (no ESI). Refresh on demand with
python manage.py shop_refresh_stock (--async to enqueue the per-shop tasks).
The task uses the public ESI market endpoint (no token) at low priority
(override with SHOP_TASKS_PRIORITY, 1=urgent .. 9=idle; default 7). Prices are
best-of-book at Jita 4-4 (highest buy / lowest sell), the same as Janice.
To refresh on demand (e.g. after setting up %-pricing), run inline:
python manage.py shop_refresh_prices # synchronous, prints results
python manage.py shop_refresh_prices --async # enqueue Celery tasks instead
Usage
- Members: open Shop in the auth sidebar (
/shop-backoffice/) to create a shop — set a slug, name, type (personal/corporation), and publish it. - Public: share
/shop/<slug>/; published shops are browsable by anyone.
Contributing
Design docs and implementation plans live in docs/superpowers/. The storefront stylesheet
ships compiled (shop/static/shop/storefront.css); to rebuild it after changing storefront
templates, use the standalone Tailwind v4 CLI + daisyUI (no Node required):
bash scripts/build-css.sh # add --watch during development
License
MIT
Metadata
Release files for aa-shop 0.1.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| aa_shop-0.1.1.tar.gz | 50.9 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| aa_shop-0.1.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 125.3 kB
Release files / aa_shop-0.1.1.tar.gz
| Download URL | aa_shop-0.1.1.tar.gz |
|---|---|
| Size | 50.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
0a769a4556314b88197360bbbac15619db1f38851ee572e2b2f1fb46f24c15b5
|
|
BLAKE2b-256 checksum How to use checksums |
4730e773fd75062eecbb0d885d15895840ac4cf8761d48c5cbb17d75846c8b3b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.13
|
Release files / aa_shop-0.1.1-py3-none-any.whl
| Download URL | aa_shop-0.1.1-py3-none-any.whl |
|---|---|
| Size | 74.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
0ad2da2d94db0e1ba3332d6cedbc8b26c12fc2684a8448380194fb045c409ff0
|
|
BLAKE2b-256 checksum How to use checksums |
a9cfd27cac138e884c06ade1c5ababd1842b424c02368de4dae9bf70d965442d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.13
|