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.0.tar.gz (133.3 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.0-py3-none-any.whl (198.2 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: shopyo_ecommerce-0.3.0.tar.gz
  • Upload date:
  • Size: 133.3 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.0.tar.gz
Algorithm Hash digest
SHA256 57dab6411b238bf01035036591ce44516a09e7e22e02f8a23eabc4949c469d58
MD5 99c21c0ada7d788d3a5b6fc76d2da98f
BLAKE2b-256 ad65aea9b294dfdf9fb1aad35df4343d3a7e81f022b3e1cea2d4f6cac5b7dd5c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for shopyo_ecommerce-0.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 7edc95719dbb657a0705c3eb63e6c4e22ed00e67bf8add2ba2a456e36780f251
MD5 acf999f4df0e966f8d07e9baf38ac3d4
BLAKE2b-256 0f09b1bb563f9695e5d53914f6614864a33c9c29fedb6c70c38f4e40cf22a503

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