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.2.2.tar.gz (130.8 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.2.2-py3-none-any.whl (195.4 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: shopyo_ecommerce-0.2.2.tar.gz
  • Upload date:
  • Size: 130.8 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.2.2.tar.gz
Algorithm Hash digest
SHA256 284dd8952dd7e79079b3c896d2ec7be2b72702dc9b07d2c09ede9dd5f2c07617
MD5 3e3b398128297fd4c3c6e6c35071c0ca
BLAKE2b-256 d90b0b4e88e2a012549dea5f9d5e1dd7b99af5e6b52465706e2c9c3e1232db9d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for shopyo_ecommerce-0.2.2-py3-none-any.whl
Algorithm Hash digest
SHA256 2d5bbae2d6e774f1a68f163c444b1960231dfa3a876cf45fdaea0d5c610856d8
MD5 2c9cdfb9515fe7c036c852bd0c20eb36
BLAKE2b-256 3a2081e44ae9a500854444f5447f32a49b77a1b3677f7e296210463fc1f947c6

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