Skip to main content

aa-shop

An Alliance Auth plugin that lets auth members run a public shop stocked automatically from their own EVE assets.

Features

  • Create and manage your own shops from the Shop entry in the auth sidebar.
  • Every published shop has a public storefront anyone can browse — no login required. Unpublished shops stay private to you as a preview until you're ready to share.
  • Sell ships and blueprint copies, kept in stock automatically from your aa-memberaudit assets and priced however you choose — a fixed price, "Ask", or a percentage of Jita.
  • Shoppers browse, search, and open a detail page for anything you list; you can feature and hide individual items.

Requirements

Installation

  1. Install into your Alliance Auth virtual environment:

    pip install aa-shop
    
  2. Add "shop" to INSTALLED_APPS in your auth project's local.py:

    INSTALLED_APPS += ["shop"]
    
  3. Let the storefront serve its public pages — required, or anonymous visitors are redirected to login:

    APPS_WITH_PUBLIC_VIEWS = ["storefront"]
    
  4. Run migrations and collect static files, then restart your AA services:

    python manage.py migrate
    python manage.py collectstatic
    
  5. EVE universe data: the ship and blueprint pickers read from django-eveuniverse, so make sure its data is populated (load the full EVE universe, or at least the Ship category, with eveuniverse's load tooling). Types that aren't loaded won't be selectable.

  6. Grant the shop.basic_access permission (Django admin, or via groups/states) to members who should be able to run shops.

  7. Selling blueprint copies additionally needs the shop owner's character to have granted the esi-characters.read_blueprints.v1 scope — registering the character with aa-memberaudit already covers this.

Scheduled tasks

Add these to your local.py so stock and prices stay current:

from celery.schedules import crontab

# Recompute stock for every shop, hourly (ships + blueprint copies).
CELERYBEAT_SCHEDULE["shop_refresh_all_stock"] = {
    "task": "shop.tasks.refresh_all_stock",
    "schedule": crontab(minute=0),
}
# Re-price anything set to a percentage of Jita, every 6 hours.
CELERYBEAT_SCHEDULE["shop_refresh_pct_prices"] = {
    "task": "shop.tasks.refresh_pct_prices",
    "schedule": crontab(minute=0, hour="*/6"),
}

Stock is read from your aa-memberaudit assets; the hourly task also nudges memberaudit to pull fresh assets first, so you don't need to tune its update rings. ESI caches assets and blueprints for about an hour, so hourly is as often as is useful. Optional settings: SHOP_REFRESH_MEMBERAUDIT_ASSETS = False skips the asset nudge, and SHOP_TASKS_PRIORITY (1 = urgent … 9 = idle, default 7) sets the priority of these background tasks.

Usage

Members with access get a Shop entry in the auth sidebar. From there you can create a shop, name it and give it a short link, choose what it sells (ships, blueprint copies), and publish it. While a shop is unpublished only you can see it, as a preview; once published, share its link with anyone.

Stock and prices fill in automatically from your assets on the schedule above — you just set your pricing rules and pick which items to feature or hide.

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

Releasing (maintainers, needs pip install build twine):

bash scripts/release.sh          # build + twine check
bash scripts/release.sh --test   # ...then upload to TestPyPI
bash scripts/release.sh --pypi   # ...then upload to PyPI

License

MIT

Metadata

Release files for aa-shop 0.2.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for aa-shop 0.2.0
File Size Uploaded
aa_shop-0.2.0.tar.gz 93.9 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for aa-shop 0.2.0
File Interpreter ABI Platform
aa_shop-0.2.0-py3-none-any.whl Python 3 none any Details

Total release size: 237.0 kB

Release files / aa_shop-0.2.0.tar.gz

Download URL aa_shop-0.2.0.tar.gz
Size 93.9 kB
Tags Source
SHA-256 checksum
How to use checksums
7740e7eb10bb756cb3a0d6d370e0ad6226dbb287c1a4a256c1f3c4ccf7fb0f3c
BLAKE2b-256 checksum
How to use checksums
35d880104bcd3c16e39d5061222455ae1de00df659b2d797b161adece5b97575
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.14.6

Release files / aa_shop-0.2.0-py3-none-any.whl

Download URL aa_shop-0.2.0-py3-none-any.whl
Size 143.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
d05940bf31e70ecb204bede71c5f331f62620af1aedb0140908580c29cf947f6
BLAKE2b-256 checksum
How to use checksums
cc5ace36cf5774e96231f75892d1d394f71d123f51ce61c7b87cb14d69150f54
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.14.6

Release history Release notifications | RSS feed

0.5.0

2 release files

0.4.0

2 release files

0.3.0

2 release files

This release

0.2.0 This release

2 release files

0.1.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page