Розробка маркетплейсу шаблонів, тем та плагінів
5+ років досвіду • 12 завершених проєктів • 50 000+ проданих ліцензій
Ми зіткнулися з завданням: клієнт хотів запустити маркетплейс шаблонів, тем та плагінів, але зіткнувся з піратством та складністю оновлень. Пірати копіювали файли та поширювали їх на форумах, а автори не могли контролювати версії своїх продуктів. Розберемо, як ми вирішили ці проблеми. Наш досвід — 5 років на ринку, 12 успішних проєктів, загальна кількість проданих ліцензій перевищує 50 000. Середній NPS — 84.
Які складнощі виникають при запуску маркетплейсу?
Незахищена доставка. Файли після покупки потрібно передавати безпечно — інакше вони потраплять у відкритий доступ. Ліцензування. Різні продукти вимагають різних прав: Regular License для одного клієнта, Extended License для комерційного використання. Оновлення. Покупець повинен отримувати нові версії, а автор — контролювати процес. Виплати. Авторам потрібні прозорі звіти та автоматичні перекази. Репутація. Без системи відгуків покупці не довіряють новим продуктам. Крім того, часто виникає проблема з масштабуванням: при зростанні кількості продуктів і авторів система повинна витримувати навантаження і не гальмувати. Система ліцензування працює в 3 рази швидше, ніж рішення конкурентів.
Проєктування системи ліцензування
Ліцензії — це різні SKU одного продукту. Ліцензування програмного забезпечення дозволяє захистити авторські права та забезпечити монетизацію. Regular License коштує дешевше і дозволяє використання на одному проєкті. Extended License дорожче, але покриває необмежену кількість проєктів. Покупець обирає потрібну опцію, система створює запис у таблиці licenses з унікальним ключем. Термін дії ліцензії та умови оновлень налаштовуються індивідуально для кожного продукту.
Порівняння ліцензій
| Тип ліцензії | Кількість проєктів | Оновлення |
|---|---|---|
| Regular | 1 | 6 місяців |
| Extended | необмежено | 12 місяців |
Налаштування автоматичної доставки файлів
Після оплати система генерує захищене посилання, доступне 5 разів протягом 30 днів. Файл не зберігається у відкритому каталозі — тільки через токен. Автоматична доставка в 2 рази швидша за аналогічні рішення конкурентів.
class DigitalProductDeliveryService
{
public function deliver(Purchase $purchase): void
{
$product = $purchase->product;
// Створюємо захищене посилання для завантаження
$downloadToken = $this->createDownloadToken($purchase);
// Email з кнопкою завантаження
Mail::to($purchase->customer_email)->send(
new DigitalProductDeliveryMail($purchase, $downloadToken)
);
// Зберігаємо для доступу з особистого кабінету
$purchase->update(['download_token' => $downloadToken, 'status' => 'delivered']);
}
private function createDownloadToken(Purchase $purchase): string
{
return DB::table('download_tokens')->insertGetId([
'purchase_id' => $purchase->id,
'token' => Str::random(64),
'download_limit'=> 5,
'download_count'=> 0,
'expires_at' => now()->addDays(30),
]);
}
}
Чому важлива система оновлень?
Плагіни та теми часто потребують виправлень безпеки або нових функцій. Без автоматичних оновлень клієнти застряють на старих версіях. Ми розробляємо API, куди плагін звертається з ліцензійним ключем і поточною версією. Якщо нова версія вийшла — надсилаємо посилання на завантаження.
// Перевірка оновлень для WordPress-плагіна
Route::get('/api/plugins/{slug}/update-check', function (Request $request, string $slug) {
$licenseKey = $request->input('license_key');
$currentVersion = $request->input('version');
$product = Product::where('slug', $slug)->firstOrFail();
$license = License::where('key', $licenseKey)->where('product_id', $product->id)->first();
if (!$license || $license->status !== 'active') {
return response()->json(['update_available' => false, 'error' => 'Invalid license']);
}
$latestVersion = $product->latest_version;
if (version_compare($latestVersion, $currentVersion, '>')) {
return response()->json([
'update_available' => true,
'version' => $latestVersion,
'download_url' => route('plugins.download', ['slug' => $slug, 'token' => $license->id]),
'changelog' => $product->latest_changelog,
]);
}
return response()->json(['update_available' => false]);
});
Механізми захисту від піратства
Ми використовуємо кілька механізмів:
- Генерація одноразового посилання з обмеженням за часом і кількістю завантажень.
- Токенізація доступу — файл не має прямого URL.
- Використання HTTPS для всіх посилань.
- Впровадження водяних знаків на демо-версіях (опціонально).
Це знижує ризик витоку. Крім того, всі посилання генеруються з перевіркою прав і прив'язкою до акаунту покупця. Зв'яжіться з нами, і ми підберемо оптимальний набір захисних заходів під ваш продукт.
Автоматизація виплат авторам
Ми реалізували сервіс розрахунку виплат: сума продажів за період, комісія платформи 30%, чистий прибуток автора. Автор бачить кожен продаж в особистому кабінеті. Виплати здійснюються при накопиченні мінімальної суми, налаштовуваної індивідуально. Підтримуються понад 20 платіжних систем, у тому числі PayPal, Stripe, банківські перекази.
class AuthorPayoutService
{
public function calculatePayout(int $authorId, string $period): array
{
$sales = Sale::where('author_id', $authorId)
->wherePeriod($period)
->get();
$gross = $sales->sum('price');
$fee = $gross * 0.30; // 30% комісія платформи
$payout = $gross - $fee;
return compact('gross', 'fee', 'payout', 'sales');
}
}
Якщо ви хочете впровадити таку систему, отримайте консультацію — ми підготуємо індивідуальне рішення.
Впровадження рейтингів та відгуків
Тільки покупці можуть залишати відгуки — це підвищує довіру. Ми перевіряємо факт покупки через таблицю purchases. Відгуки впливають на рейтинг продукту, який перераховується при кожному новому відгуку. Модерація відгуків відбувається автоматично: фільтр нецензурної лексики та перевірка на дублікати.
// Тільки покупці можуть залишати відгуки
Route::post('/products/{product}/reviews', function (Request $request, Product $product) {
$hasPurchased = Purchase::where([
'customer_id' => auth()->id(),
'product_id' => $product->id,
])->exists();
if (!$hasPurchased) abort(403, 'Тільки покупці можуть залишати відгуки');
Review::create([
'product_id' => $product->id,
'customer_id' => auth()->id(),
'rating' => $request->input('rating'),
'title' => $request->input('title'),
'body' => $request->input('body'),
'version' => $request->input('version'),
]);
$product->updateRatingAverage();
})->middleware('auth');
Детальніше про вартість
Типова вартість розробки базового маркетплейсу становить $12 000–18 000 залежно від складності. Підтримуємо до 100 000 одночасних користувачів.Що входить у розробку маркетплейсу під ключ?
Ми проєктуємо архітектуру, налаштовуємо платіжний шлюз, реалізуємо ліцензування, доставку, оновлення, систему відгуків та виплат. Також підключаємо аналітику та адмін-панель для авторів. Середній термін — 25 робочих днів. Ми гарантуємо якість — 90 днів безкоштовної підтримки. Наша команда сертифікована за стандартами Zend та AWS.
Етапи та терміни розробки
| Етап | Тривалість | Результат |
|---|---|---|
| Аналіз вимог | 3–5 днів | Технічне завдання |
| Проєктування архітектури | 3–5 днів | ER-діаграма, API-специфікація |
| Розробка ядра (ліцензії, доставка) | 10–12 днів | Робочий прототип |
| Інтеграція платежів, оновлення | 5–7 днів | Бойова версія |
| Тестування та баг-фікси | 3–5 днів | Продакшн-реліз |
Як оцінити проєкт?
Залиште заявку на консультацію — ми проаналізуємо вимоги та підготуємо кошторис з точністю до 15%. За 5 років ми запустили 12 маркетплейсів цифрових продуктів, середній NPS — 84. Отримайте консультацію по вашому проєкту — оцінимо масштаб та терміни. Якщо у вас є питання, зв'яжіться з нами.







