Storefront

Sell your plans and videos

Put a training plan, a single video or a whole series on sale. Release it all at once, drip it to each buyer, or run it on a fixed schedule.

Products

{{ stProducts.length }}

Buyers

{{ stBuyers }}

Revenue

{{ stMoney(stRevenue, 'USD') }}

Card payments are not configured on this server yet, so only free products can be sold. Everything else here works.

Set up payouts to sell paid products

Stripe pays your sales straight to your bank. Free products can go live without it.

Stripe needs a few more details before it can pay you out.

Payouts are active · HQ.training keeps {{ stData.platform_fee_percent }}% of each sale

{{ stNotice }}

{{ stSelected.name }}

{{ stStatusLabel(stSelected.status) }}

{{ stTypeLabel(stSelected.type) }} · {{ stMoney(stSelected.price_cents) }} · {{ stSelected.sales.buyers }} buyers · {{ stMoney(stSelected.sales.revenue_cents, stSelected.currency) }} revenue

Before publishing: {{ stSelected.publish_problem }}

{{ stSelected.store_url }} View page Copied

Details

Rollout

How {{ stIsCourse ? 'the course\'s weeks, and the videos with them,' : stIsPlan ? 'the plan\'s weeks' : 'the videos' }} reach a buyer.

{{ stModeHint }}

Buyers see: {{ stSelected.release.summary || 'Add content to see the schedule.' }}

{{ stIsSeries ? 'Videos' : 'Video' }}

YouTube, Vimeo and Loom links play embedded; any other link is played as a video file. Give each video the week it belongs to and it opens with that week. Timings show what someone buying now would get.

{{ index + 1 }}

{{ video.title }}Free preview

{{ stVideoMeta(video) }}

Weeks

What someone buying now would get, and when. Each week's sessions go onto the buyer's calendar as it unlocks.

Choose a plan from your library to see its weeks.

W{{ week.week }}

{{ week.focus }} · {{ week.sessions }} sessions · {{ week.hours }} h

{{ stWhenRelative(week) }}

New discount code

No codes yet. A 100% code gives a product away, handy for your own athletes.

{{ coupon.code }} {{ stDiscountLabel(coupon) }}

{{ stProductName(coupon.product_id) }} · used {{ coupon.usage_count }}{{ coupon.usage_limit ? ' of ' + coupon.usage_limit : '' }} · ends {{ stWhen(coupon.end_date + 'T12:00:00') }}

{{ coupon.is_active ? 'Active' : 'Off' }}

No sales yet.

DateProductBuyerPaidStatus
{{ stWhen(order.paid_at || order.created_at) }} {{ order.product.name }}

{{ order.customer.name }}

{{ order.customer.email }}

{{ stMoney(order.total_cents, order.currency) }}{{ order.coupon_code }} {{ order.status === 'PROCESSING' ? 'Paid' : order.status === 'REFUNDED' ? 'Refunded' : 'Cancelled' }}