Skip to main content

Full-featured ecommerce module for Shopyo Flask apps — products, cart, checkout, orders, POS, inventory, and API

Project description

🛒 Shopyo Ecommerce — Plug & Play Python Ecommerce for Shopyo

shopyo-ecommerce is a full-featured, plug-and-play ecommerce module for the Shopyo Flask framework. Add products, categories, variants, cart, checkout, and order management to your Shopyo app in minutes — no boilerplate, no fuss.


✨ Features

  • Product & Category Management — CRUD for products and categories with image uploads
  • Inventory Tracking — stock counts, low-stock alerts, and variant support
  • Shopping Cart — session-based cart with quantity controls
  • Checkout Flow — address collection, order summary, and payment integration hooks
  • Order Dashboard — admin order management with status tracking
  • POS Interface — point-of-sale view for in-person transactions
  • RESTful API — JSON endpoints for headless or mobile frontends
  • Shopyo Native — respects Shopyo's theming, auth, dashboard, and settings

🚀 Quick Start

pip install shopyo-ecommerce

Then initialise it in your Shopyo app factory:

from shopyo_ecommerce import ShopyoEcommerce

def create_app():
    app = Flask(__name__)
    # ... load extensions ...
    ShopyoEcommerce(app)
    return app

That's it. The ecommerce sub-modules (shop, pos, orders, etc.) will appear automatically in the dashboard and be ready at their default routes.

🎨 Available Themes

shopyo-ecommerce bundles two themes:

Theme Kind Namespaced Name Description
ecommerceus Front (storefront) shopyo_ecommerce/ecommerceus A clean product showcase theme for your online store
sneatlike Back (admin panel) shopyo_ecommerce/sneatlike A lightweight admin back-office theme (52 KB, no external deps)

Set the active theme in your config:

SHOPYO_THEME_FRONT_DEFAULT = "shopyo_ecommerce/ecommerceus"
SHOPYO_THEME_BACK_DEFAULT  = "shopyo_ecommerce/sneatlike"

Theme Commands

Copy a front theme into your project so you can customise it:

flask shopyo-ecommerce copy front ecommerceus

To overwrite an already-copied theme (backup first if needed):

flask shopyo-ecommerce update front ecommerceus

The copied theme lands at static/themes/front/ecommerceus/ and becomes available in the Shopyo theme picker.


📦 What's Inside

Sub-module Route Prefix Description
shop /shop Product listing, detail, cart, checkout
pos /pos Point-of-sale interface
category /category Category management
product /product Product management
order /order Order management
delivery /delivery Delivery configuration
payment /payment Payment gateway hooks
resource /resource Image & asset serving

🔧 Configuration

All settings are configured via Flask app config keys. Set them in your config.py or before calling ShopyoEcommerce(app).

Config Key Default Description
SHOPYO_ECOMMERCE_URL /shopyo-ecommerce URL prefix for all ecommerce routes
SHOPYO_ECOMMERCE_CURRENCY USD Default currency code (e.g. USD, EUR, MUR)
SHOPYO_ECOMMERCE_SECTION_NAME Shop Name shown in dashboard & settings for the ecommerce section
SHOPYO_ECOMMERCE_ITEMS_PER_PAGE 12 Number of products per page in shop listings
SHOPYO_ECOMMERCE_ENABLE_WISHLIST True Enable/disable the wishlist feature
SHOPYO_ECOMMERCE_ENABLE_REVIEWS False Enable/disable product reviews
SHOPYO_ECOMMERCE_CATEGORYPHOTOS_UPLOADSET categoryphotos Flask-Uploads set name for category images
SHOPYO_ECOMMERCE_SUBCATEGORYPHOTOS_UPLOADSET subcategoryphotos Flask-Uploads set name for subcategory images
SHOPYO_ECOMMERCE_PRODUCTEXCEL_UPLOADSET productexcel Flask-Uploads set name for product Excel imports
SHOPYO_ECOMMERCE_PRODUCTPHOTOS_UPLOADSET productphotos Flask-Uploads set name for product images
SHOPYO_ECOMMERCE_UPLOADED_CATEGORYPHOTOS_DEST static/uploads/categoryphotos Upload destination for category images (relative paths resolved against BASE_DIR)
SHOPYO_ECOMMERCE_UPLOADED_SUBCATEGORYPHOTOS_DEST static/uploads/subcategoryphotos Upload destination for subcategory images
SHOPYO_ECOMMERCE_UPLOADED_PRODUCTEXCEL_DEST static/uploads/productexcel Upload destination for product Excel files
SHOPYO_ECOMMERCE_UPLOADED_PRODUCTPHOTOS_DEST static/uploads/productphotos Upload destination for product images

Example:

class Config:
    SHOPYO_ECOMMERCE_URL = "/shop"
    SHOPYO_ECOMMERCE_CURRENCY = "EUR"
    SHOPYO_ECOMMERCE_ITEMS_PER_PAGE = 24
    SHOPYO_ECOMMERCE_UPLOADED_PRODUCTPHOTOS_DEST = "/data/uploads/products"

🧪 Tested With

  • Python 3.10+
  • Shopyo 4.18+
  • Flask 2+

🤝 Contributing

Found a bug? Want a feature? Open an issue at github.com/shopcube/shopcube.


📄 License

BSD-3-Clause. See LICENSE.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

shopyo_ecommerce-0.3.5.tar.gz (133.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

shopyo_ecommerce-0.3.5-py3-none-any.whl (199.5 kB view details)

Uploaded Python 3

File details

Details for the file shopyo_ecommerce-0.3.5.tar.gz.

File metadata

  • Download URL: shopyo_ecommerce-0.3.5.tar.gz
  • Upload date:
  • Size: 133.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for shopyo_ecommerce-0.3.5.tar.gz
Algorithm Hash digest
SHA256 7b704d3fe0fb81b20fcdcd3b563940de644dbe703c2a6c05a3a6500d11580b3b
MD5 2058d0306db1688332aa1ff9d76f1a37
BLAKE2b-256 bec45bbe97ba2549ba56778d41921acb4676ec9503d4835a149ad90b0391fb88

See more details on using hashes here.

File details

Details for the file shopyo_ecommerce-0.3.5-py3-none-any.whl.

File metadata

File hashes

Hashes for shopyo_ecommerce-0.3.5-py3-none-any.whl
Algorithm Hash digest
SHA256 4248b39520a0bfe9322e55ec16f9f50e65406a1184cf232fe655722ddd25d12f
MD5 4b99fb7bff744009df1f72429158a803
BLAKE2b-256 d8767af06aef3165c08e4241af0a46a802479f9f9a5d40705721042bce956f59

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page