eCommerce platforms are the software systems that build and manage online stores. They handle product listings, shopping carts, payment processing, and order management in a single place. Each platform comes with its structure, features, and trade-offs. Some are fully hosted, while others require manual setup and maintenance. Choosing the right platform depends on your project size, budget, and plans. Knowing how these platforms work will help you pick the best one for your needs.
Core Features and System Architecture
Catalog Management
Platforms model product data using hierarchical structures, such as parent products define base attributes, while variants inherit and override specific properties. Storage may follow relational schemas (PostgreSQL and MySQL) or EAV (Entity-Attribute-Value) models. ElasticSearch or Solr enhances catalog navigation through indexed search and filtering.
Example: Shopify GraphQL product Query
{product(id: "gid://shopify/Product/123") {titlevariants(first: 10) {edges {node {pricesku}}}}}Explanation:
- Fetches the first 10 product variants (e.g., sizes or colors).
- Each edge wraps a node that contains the variant's price and SKU.
- price shows the variant’s selling price; sku is the stock-keeping unit used for inventory tracking.
- "gid://shopify/Product/123" uniquely identifies the product in Shopify's GraphQL API.
Payment Processing
Platforms implement payment logic through PCI-compliant APIs or embedded widgets. WooCommerce triggers post-payment workflows via WordPress hooks, while Shopify or headless systems delegate auth-capture to middleware layers.
Example: WooCommerce Order Completion Hook
add_action('woocommerce_order_status_completed', 'process_post_payment');function process_post_payment($order_id) {$order = wc_get_order($order_id);$order->add_meta_data('fulfillment_status', 'pending');}Explanation:
- Hooks the process_post_payment function to WooCommerce's order status transition event.
- Executes the function when an order status changes to completed, typically after payment confirmation.
Checkout Flow
Checkout implementations serialize cart objects into JSON and validate against rule engines for discounts, taxes, and delivery. Shopify’s checkout is a locked-down system with embedded fraud prevention. But Magento and headless solutions offer multi-step flows with custom microservices for address and rate validation.
Templating and Frontend Systems
Shopify’s Liquid templates bind server-rendered content to dynamic layouts. WooCommerce uses PHP-based overrides, while headless platforms employ frameworks like Next.js to hydrate pages via SSR or SSG pipelines.
Plugin Architecture
WooCommerce uses WordPress filters and actions to inject behavior, while Magento relies on dependency injection (DI) and observer patterns. Event buses and REST APIs expose extension points for third-party logic and integrations.
Third-Party Integrations
ERP, CRM, and PIM integrations use OAuth2-secured endpoints. Shopify exposes structured webhooks via Admin APIs, while custom systems use GraphQL resolvers to unify data from external services.
Video Workflow Support
Video Product Integration
eCommerce platforms handle video product content through embedded players, referencing CDN-hosted HLS or MP4 streams. Shopify stores video assets in its Media API, while WooCommerce relies on external services like Vimeo or S3 for video delivery.
Example: Shopify Liquid: Embed Video from Media API
{% if product.media.first.media_type == 'video' %}<video controls src="{{ product.media.first.sources[0].url }}"></video>{% endif %}Explanation:
- Renders an HTML5 <video> tag with controls enabled for playback.
- Sets the src attribute to the first video source URL provided by Shopify’s Media API.
Video Metadata
Metadata for video (such as duration, bitrate, aspect ratio, and subtitle availability) attaches to product records through custom fields or database extensions. Magento stores this via EAV tables, while headless CMSs use typed GraphQL schemas.
Streaming and Delivery
Platforms distribute videos via CDNs (Cloudflare and Fastly) that require using signed URLs for access control. HLS/DASH enables adaptive bitrate streaming that responds to client bandwidth during playback.
Access and Download Control
WooCommerce generates expiring links for downloads, while Shopify private apps use JWT-authenticated stream URLs to enforce access policies.
# Django view: signed URL generationdef generate_video_url(request, video_id):expires = int(time.time()) + 3600signature = hmac.new(settings.SECRET_KEY,f"{video_id}{expires}".encode(),'sha256').hexdigest()return JsonResponse({'url': f'/media/{video_id}?exp={expires}&sig={signature}'})Explanation:
- Generates a SHA-256 HMAC signature using the server’s SECRET_KEY.
- Combines the video_id and expires value to form the message.
- Ensures that only the server can produce a valid signature.
Preview Features
FFmpeg or services like Mux extract preview clips. Shopify supports built-in video trimming via its product editor. Advanced players implement preview thumbnails using WebVTT for seekable timelines.
Technical Comparison Tables
Video Storage and Access Control
| Platform | Storage Backend | Transcoding Support | Access Control |
| Shopify | Shopify CDN | Yes (automated) | Signed URLs |
| WooCommerce | Self-hosted, S3, Vimeo | Manual (via plugins) | Plugin-based, .htaccess |
| Magento | S3 or Azure Blob | Adobe Sensei | Role-based ACLs |
| Headless CMS | Cloud video API (Mux/etc.) | Cloud-native | OAuth2 or JWT |
