{"id":19404580,"url":"https://github.com/seven-io/joomla","last_synced_at":"2026-01-06T07:08:06.882Z","repository":{"id":106113686,"uuid":"272707702","full_name":"seven-io/joomla","owner":"seven-io","description":"The official Joomla and VirtueMart plugin for seven.io","archived":false,"fork":false,"pushed_at":"2023-12-15T13:15:27.000Z","size":687,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-01-07T12:51:33.442Z","etag":null,"topics":["cms","e-commerce","joomla","joomla-module","sms","virtuemart"],"latest_commit_sha":null,"homepage":"https://www.seven.io/en/solutions/integrations/virtuemart/","language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/seven-io.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-06-16T12:54:30.000Z","updated_at":"2024-10-15T05:15:18.000Z","dependencies_parsed_at":"2024-11-10T11:47:05.961Z","dependency_job_id":null,"html_url":"https://github.com/seven-io/joomla","commit_stats":null,"previous_names":[],"tags_count":4,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/seven-io%2Fjoomla","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/seven-io%2Fjoomla/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/seven-io%2Fjoomla/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/seven-io%2Fjoomla/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/seven-io","download_url":"https://codeload.github.com/seven-io/joomla/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":240581585,"owners_count":19824139,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cms","e-commerce","joomla","joomla-module","sms","virtuemart"],"created_at":"2024-11-10T11:35:34.044Z","updated_at":"2026-01-06T07:08:06.877Z","avatar_url":"https://github.com/seven-io.png","language":"PHP","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://www.seven.io/wp-content/uploads/Logo.svg\" width=\"250\" alt=\"seven.io Logo\" /\u003e\n\u003c/p\u003e\n\n\u003ch1 align=\"center\"\u003eJoomla Plugin for seven.io\u003c/h1\u003e\n\n\u003cp align=\"center\"\u003e\n  Send SMS and voice messages directly from your Joomla administration panel.\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://github.com/seven-io/joomla/releases/latest\"\u003e\u003cimg src=\"https://img.shields.io/github/v/release/seven-io/joomla?style=flat-square\" alt=\"Latest Release\"\u003e\u003c/a\u003e\n  \u003ca href=\"LICENSE\"\u003e\u003cimg src=\"https://img.shields.io/badge/License-MIT-teal.svg?style=flat-square\" alt=\"MIT License\"\u003e\u003c/a\u003e\n  \u003cimg src=\"https://img.shields.io/badge/Joomla-5.x%20|%206.x-blue?style=flat-square\" alt=\"Joomla Version\"\u003e\n  \u003cimg src=\"https://img.shields.io/badge/PHP-8.1+-purple?style=flat-square\" alt=\"PHP Version\"\u003e\n\u003c/p\u003e\n\n---\n\n## Table of Contents\n\n- [Requirements](#requirements)\n- [Installation](#installation)\n- [Authentication](#authentication)\n- [Features](#features)\n- [SMS Automation](#sms-automation-v31)\n- [SMS Options](#sms-options)\n- [Project Structure](#project-structure)\n- [Support](#support)\n- [License](#license)\n\n---\n\n## Requirements\n\n| Requirement | Version |\n|-------------|---------|\n| Joomla | 5.x or 6.x |\n| PHP | 8.1+ |\n| VirtueMart | 4.x *(optional, for customer selection)* |\n\n\u003e **Looking for Joomla 3 support?** The legacy version is available in the [`legacy/joomla3` branch](https://github.com/seven-io/joomla/tree/legacy/joomla3) or as [v1.3 release](https://github.com/seven-io/joomla/releases/tag/v1.3).\n\n---\n\n## Installation\n\n1. Download the [latest release](https://github.com/seven-io/joomla/releases/latest)\n2. Log in to your Joomla administrator panel\n3. Navigate to **System → Install → Extensions**\n4. Upload the ZIP file\n5. Configure authentication (see [Authentication](#authentication))\n6. Start sending via **Components → seven.io API → Messages**\n\n---\n\n## Authentication\n\nThe plugin uses OAuth 2.0 with PKCE for secure authentication.\n\n1. Go to **Components → seven.io API**\n2. Click **Connect with seven.io**\n3. Log in to your [seven.io](https://www.seven.io) account and authorize the plugin\n4. Done! The plugin automatically handles token refresh.\n\n**Benefits:**\n- No manual API key handling\n- Automatic token refresh\n- Can be revoked anytime from your seven.io account\n\n---\n\n## Features\n\n| Feature | Description |\n|---------|-------------|\n| **SMS Messaging** | Send SMS to single or multiple recipients |\n| **Voice Calls** | Text-to-speech voice messages |\n| **SMS Automation** | Automatic SMS on events *(v3.1+)* |\n| **OAuth 2.0** | Secure authentication with automatic token refresh |\n| **VirtueMart Integration** | Select recipients by country or shopper group |\n| **Message History** | View all sent messages and their delivery status |\n\n---\n\n## SMS Automation (v3.1+)\n\nAutomatically send SMS notifications based on events.\n\n### Supported Events\n\n**VirtueMart Events:**\n- Order Confirmed\n- Order Status Changed\n- Order Shipped\n- Order Cancelled\n\n**Joomla Events:**\n- User Registration\n- Content Saved\n\n### Template Variables\n\nUse `{variable}` placeholders in your message templates. Available variables depend on the trigger type.\n\n#### VirtueMart Order Events\n\nAvailable for: Order Confirmed, Order Status Changed, Order Shipped, Order Cancelled\n\n| Variable | Description |\n|----------|-------------|\n| `{order_id}` | Internal order ID |\n| `{order_number}` | Order number |\n| `{customer_name}` | Customer's full name |\n| `{customer_firstname}` | Customer's first name |\n| `{customer_lastname}` | Customer's last name |\n| `{customer_email}` | Customer's email address |\n| `{customer_phone}` | Customer's phone number |\n| `{total}` | Order total (formatted) |\n| `{currency}` | Order currency |\n| `{status}` | Current order status |\n| `{payment_method}` | Payment method name |\n| `{shipping_method}` | Shipping method name |\n| `{shop_name}` | VirtueMart shop name |\n\n**Additional variables for Order Status Changed:**\n\n| Variable | Description |\n|----------|-------------|\n| `{old_status}` | Previous order status |\n| `{new_status}` | New order status |\n\n**Additional variables for Order Shipped:**\n\n| Variable | Description |\n|----------|-------------|\n| `{tracking_number}` | Shipment tracking number |\n| `{carrier}` | Shipping carrier name |\n\n**Additional variables for Order Cancelled:**\n\n| Variable | Description |\n|----------|-------------|\n| `{cancellation_reason}` | Reason for cancellation |\n\n#### User Registration\n\n| Variable | Description |\n|----------|-------------|\n| `{username}` | Username |\n| `{name}` | Full name |\n| `{email}` | Email address |\n| `{user_id}` | User ID |\n| `{registration_date}` | Registration date/time |\n| `{site_name}` | Joomla site name |\n\n#### Content Saved\n\n| Variable | Description |\n|----------|-------------|\n| `{article_title}` | Article title |\n| `{article_id}` | Article ID |\n| `{author_name}` | Author's name |\n| `{category}` | Category name |\n| `{created_date}` | Creation date/time |\n| `{is_new}` | \"Ja\" if new, \"Nein\" if updated |\n| `{site_name}` | Joomla site name |\n\n### Setup\n\n1. Go to **Components → seven.io API → Automations**\n2. Click **New** to create an automation\n3. Select a trigger event\n4. Write your message template using variables\n5. Choose the recipient type (customer, admin, or custom)\n6. Enable the automation\n\n### Required Plugins\n\nFor automation to work, install and enable the included plugins:\n\n| Plugin | Type | Purpose |\n|--------|------|---------|\n| `plg_system_sevensms` | System | Handles Joomla events |\n| `plg_vmshopper_sevensms` | VirtueMart | Handles VirtueMart order events |\n\nEnable plugins in **Extensions → Plugins**.\n\n---\n\n## SMS Options\n\n| Option | Description |\n|--------|-------------|\n| **Flash** | Display message directly on screen without storing |\n| **Unicode** | Force unicode encoding for special characters |\n| **UTF-8** | Force UTF-8 encoding |\n| **Delay** | Schedule messages for later delivery (timestamp or date string) |\n| **TTL** | Set message validity period in minutes (default: 2880 = 48h) |\n| **Performance Tracking** | Track URL clicks in messages |\n| **No Reload** | Prevent automatic page reload after sending |\n| **Foreign ID** | Custom identifier for tracking (max 64 chars) |\n| **Label** | Custom label for message grouping (max 100 chars) |\n| **UDH** | User Data Header for binary SMS (advanced) |\n\n---\n\n## Project Structure\n\n```\n├── pkg_seven.xml                 # Package manifest\n├── script.php                    # Installation/update script\n├── src/                          # Main component\n│   ├── seven.xml                 # Component manifest\n│   └── admin/\n│       ├── forms/                # Form definitions (XML)\n│       ├── language/             # Translations (en-GB, de-DE)\n│       ├── services/             # Joomla DI provider\n│       ├── sql/                  # Database schemas \u0026 updates\n│       ├── tmpl/                 # View templates\n│       │   ├── automations/      # Automation list view\n│       │   ├── automation/       # Automation edit view\n│       │   ├── messages/         # SMS list view\n│       │   ├── message/          # SMS edit view\n│       │   ├── voices/           # Voice list view\n│       │   └── voice/            # Voice edit view\n│       └── src/\n│           ├── Controller/       # MVC Controllers\n│           ├── Model/            # MVC Models\n│           ├── View/             # MVC Views\n│           ├── Table/            # Database table classes\n│           ├── Service/          # Business logic\n│           │   ├── OAuthService.php\n│           │   ├── SevenApiClient.php\n│           │   ├── AutomationService.php\n│           │   └── TemplateProcessor.php\n│           └── Helper/           # Utility functions\n├── plugins/\n│   ├── system/sevensms/          # System plugin (Joomla events)\n│   └── vmshopper/sevensms/       # VirtueMart plugin (order events)\n└── pkg_language/                 # Package translations\n```\n\n---\n\n## Support\n\nNeed help? [Contact us](https://www.seven.io/en/company/contact/) or [open an issue](https://github.com/seven-io/joomla/issues).\n\n---\n\n## License\n\nThis project is licensed under the [MIT License](LICENSE).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fseven-io%2Fjoomla","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fseven-io%2Fjoomla","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fseven-io%2Fjoomla/lists"}