Перейти до вмісту
Surce Beats

Статті

Як продавати біти онлайн із кошиком, який працює

Продюсер працює за ноутбуком перед клавіатурою і синтезатором у домашній студії

Роками кожен біт у моєму магазині мав одну кнопку: купити. Вона відкривала вибір ліцензії, ти обирав одну, і BeatStars вів тебе до своєї оплати з цим єдиним бітом. Це працювало і тихо втрачало продажі. Якщо продюсер хотів два біти, він мусив платити двічі, бо кожна кнопка запускала нову покупку. Ніхто так не робить. Він купує один, каже, що повернеться по інший, і не повертається.

Тож 22 жовтня я поставив на сайт справжній кошик. Не плагін: магазин це статичний сайт на Astro, без бази даних і власної адмінки. Це найбільша зміна, яку цей магазин пережив від запуску, і ось як вона працює.

Проблема з кнопкою купити

Магазин бітів це не крамниця з візком. Це каталог, де кожен товар має шість рівнів ліцензії, і ціна змінюється від рівня, а не від кількості. Саме тому більшість продюсерів ніколи не переймалися кошиком: платформа дає тобі посилання на кожен біт, і ти відправляєш покупця туди.

Втрата невидима, але реальна. Кожна додаткова оплата це ще один шанс для покупця передумати. Він двічі проходить форму оплати, двічі вводить ті самі дані і отримує два окремі листи на два файли. А якщо він хотів порівняти базову ліцензію на один біт із ліцензією з трекаутами на інший, ці дві покупки були повністю незалежними.

Що BeatStars дає тобі для роботи

BeatStars не публікує API кошика, але фронтенд магазину його використовує, і він доступний. Достатньо трьох викликів:

  • Створити кошик з новим uuid. Кожна оплата отримує свіжий, тож покупець ніколи не успадковує товари з попереднього візиту.
  • Додати позицію з id треку і id контракту обраної ліцензії. Саме контракт фіксує рівень і ціну, а не сам трек.
  • Попросити посилання для поширення. Коли покупець його відкриває, це посилання копіює кошик у його браузер і кидає його на оплату BeatStars з усім завантаженим.

Важлива частина: оплата і доставка залишаються на BeatStars. Сайт ніколи не торкається картки, не зберігає покупця і не стає крамницею. Він лише збирає кошик і передає його, тому все це може жити на статичній сторінці.

Як зберегти статичний сайт статичним

Кошик живе в браузері. Він зберігає дві речі на позицію: який біт і яка ліцензія. Більше нічого. Назви, ціни й id контрактів читаються з власної конфігурації сайту щоразу, коли сторінка завантажується, тож зміна ціни ніколи не залишить застаріле число в кошику, який хтось почав минулого тижня.

Лічильник у шапці, кнопки додавання й видалення та підсумки це звичайний JavaScript. Немає сесії, немає логіну і немає мого сервера посередині. Єдиний момент, коли сайт із кимось говорить, це коли покупець натискає оплату і будується посилання для поширення.

Дві дрібні деталі зробили різницю в тестуванні. Одна ліцензія на біт: кошик відмовляється тримати той самий біт двічі, бо так робить платформа, а покупець, який спробує, заплутається, а не отримає послугу. І коли хтось іде на оплату і повертається, не заплативши, кошик усе ще там, відновлений із копії, збереженої прямо перед виходом. Це найближче до відновлення покинутого кошика, що можна зробити без системи акаунтів.

HTML-код на темному моніторі, пишеться логіка кошика

Знижки це та частина, яку ніхто не робить правильно

Мої ліцензії несуть власну пропозицію магазину: купи одну базову і отримай дві безкоштовно, або три стандартні і отримай дві безкоштовно. BeatStars застосовує це раз на кошик, під час оплати, на найдешевших позиціях. Якщо сайт показує підсумок 65,90 долара, а оплата каже 32,95, покупець не почувається щасливчиком, він почувається обдуреним.

Тож кошик відтворює правило і показує ту саму арифметику до того, як хтось піде: що безкоштовно, чого ще не вистачає, щоб відкрити наступну безкоштовну позицію, і яким буде підсумок. Драбина видима, поки кошик наповнюється, а не з'являється сюрпризом у кінці. Вона також каже покупцеві правду, а це єдина версія знижки, яка виживає при зустрічі зі сторінкою оплати.

Чому ти, ймовірно, не зробиш це сам

Це виглядає як дрібна функція, а нею не є. На сайті немає адмінки, немає CMS і немає плагінів: кожна сторінка генерується заздалегідь і завантажується як звичайний HTML. Кошик, який існує лише в браузері, мусить тримати підсумок, ліцензію й оплату в згоді без жодного сервера, що арбітрує.

Бік магазину гірший. BeatStars не документує API кошика, тож три виклики за ним були знайдені в його власному фронтенді й перевірені по одному. Кожній позиції потрібен id треку і id контракту ліцензії, бо ціна живе в контракті, а не в біті. Ліцензія, яку магазин вимкнув на одному треку, ламає всю оплату, тож помилка мусить повертатися з назвою біта, який її зламав, а не порожнім екраном.

Далі йде частина, яку ніхто не бачить: відтворити драбину знижок до того, як покупець піде, щоб підсумок тут і підсумок під час оплати були одним числом. BeatStars застосовує свої безкоштовні позиції раз на кошик, на найдешевших. Помились тут, і кошик це вже не функція, а скарга.

Саме тому більшість продюсерів орендують платформу, а не будують свою. І саме тому цей сайт працює на хостингу, який не падає: усе інше це статичний файл, а єдина рухома частина це платформа, яка бере гроші.

Сайт під усім цим

Ніщо з цього не вижило б на WordPress із п'ятнадцятьма плагінами. Магазин це статичний сайт: 430 сторінок, згенерованих заздалегідь, одна таблиця стилів і трохи JavaScript для плеєра й кошика. Коли відвідувач заходить, базу даних ні про що не питають.

Аудіо йде за тією самою ідеєю: HE-AAC на 56 кбіт/с замість MP3 на 320 кбіт/с, з індексом на початку файлу, щоб відтворення починалося раніше за завантаження біта, і заголовком кешу, який тримає його на машині відвідувача рік.

Що має робити хостинг після цього, небагато, але добре: швидко віддавати файли, поважати байтові діапазони й заголовки кешу, мати SSL і HTTP/2. Це той, на якому працює цей сайт. Якщо хочеш таку саму базу під своїм магазином, це єдина частина, яку справді треба орендувати.

Подивись хостинг, який я використовую

Якщо ти продаєш на іншій платформі

Цей конкретний трюк це BeatStars, бо саме там мої ліцензії й мої покупці. Логіка переноситься: будь-який магазин, що має endpoint кошика, можна так само вести зі статичного сайту. Що не переноситься, то це короткий шлях. Кошик це не кнопка з написом додати в кошик; це ціна, яка збігається, ліцензія, яка збігається, і оплата, що відкривається саме з тим, що обрав покупець.

Якщо ти досі продаєш один біт за одну оплату, почни з каталогу й ліцензій, а потім будуй кошик. Повний каталог бітів тут, і якщо хочеш почути, навколо яких бітів побудований цей магазин, почни з цього boom bap інструменталу.

33 - обкладинка Old School type beat від Surce Beats33
Завантажити

Часті питання

Чи потрібен мені розробник, щоб додати кошик у магазин бітів?

Для статичного сайту так, трохи коду. Виклики це три мутації до endpoint кошика магазину, а решта це стан браузера, але хтось має це написати і перевірити кожен рівень ліцензії проти підсумку в оплаті.

Чи працює кошик, якщо покупець передумав щодо ліцензії?

Так. Кожна позиція несе свою ліцензію, і її можна змінити прямо з кошика. Кошик не дозволяє той самий біт двічі, тож зміна ліцензії замінює позицію, а не додає другу.

Де відбувається оплата?

На BeatStars, завжди. Сайт лише збирає кошик і відкриває оплату з ним завантаженим. Картки, рахунки, доставка і PDF ліцензії залишаються всередині платформи.

Чому не продавати прямо на сайті?

Бо тоді сайту знадобився б платіжний процесор, робота з податками, рахунки й база клієнтів. Статичний каталог із кошиком, що передає справу платформі, тримає швидку частину швидкою і лишає грошову частину тим, хто вже робить це легально.

Поділитися статтею

Слухайте останні біти

Усі біти
ОбкладинкаНазваТривалістьЖанриКупити
Diabla - обкладинка Reggaeton type beat від Surce BeatsРегетон біт: інструментал з dembow02:20РегетонЛатинські
Triforce - обкладинка Trap type beat від Surce BeatsZelda Type Beat - Trap інструментал з відеогри03:46ТрепХіп-хоп
Badass - обкладинка Trap type beat від Surce BeatsTrap Type Beat - Жорсткий біт у стилі trap з 80802:59ТрепХіп-хоп
Wild (With Hook) - обкладинка EDM Trap type beat від Surce BeatsEDM Trap Type Beat - Електронний trap інструментал02:54ТрепElectronic
Brick Kiddos - обкладинка Trap type beat від Surce BeatsLil Durk Type Beat - Треп біт з гітарою02:47ТрепХіп-хоп

Оберіть ліцензію

    Безкоштовне завантаження

    Лише для безкоштовного некомерційного використання. MP3 має голосовий тег, його не можна публікувати, монетизувати чи завантажувати на стрімінгові платформи. Для цього потрібна ліцензія.