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

code
{
code
product(id: "gid://shopify/Product/123") {
code
title
code
variants(first: 10) {
code
edges {
code
node {
code
price
code
sku
code
}
code
}
code
}
code
}
code
}

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

code
add_action('woocommerce_order_status_completed', 'process_post_payment');
code
function process_post_payment($order_id) {
code
$order = wc_get_order($order_id);
code
$order->add_meta_data('fulfillment_status', 'pending');
code
}

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

code
{% if product.media.first.media_type == 'video' %}
code
<video controls src="{{ product.media.first.sources[0].url }}"></video>
code
{% 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.

code
# Django view: signed URL generation
code
def generate_video_url(request, video_id):
code
expires = int(time.time()) + 3600
code
signature = hmac.new(
code
settings.SECRET_KEY,
code
f"{video_id}{expires}".encode(),
code
'sha256'
code
).hexdigest()
code
return JsonResponse({
code
'url': f'/media/{video_id}?exp={expires}&sig={signature}'
code
})

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

PlatformStorage BackendTranscoding SupportAccess Control
ShopifyShopify CDNYes (automated)Signed URLs
WooCommerceSelf-hosted, S3, VimeoManual (via plugins)Plugin-based, .htaccess
MagentoS3 or Azure BlobAdobe SenseiRole-based ACLs
Headless CMSCloud video API (Mux/etc.)Cloud-nativeOAuth2 or JWT