🎁 LOYALTY US FOR BUSINESS
Your business dashboard

Business sign in

+(Number(s.monthly_price_cents)/100).toFixed(2):'You choose';billingNotice.textContent=s.subscription_status==='past_due'?'Payment failed. Please update your billing method.':(s.subscription_status==='expired'||s.subscription_status==='canceled')?'Paid features are restricted until the subscription is active.':'';paymentHistory.innerHTML=(d.payments||[]).map(p=>'
'+esc(p.status)+'$'+(Number(p.amount_paid_cents||0)/100).toFixed(2)+'
'+new Date(p.created_at).toLocaleDateString()+'
').join('')} async function loadBilling(){try{renderBilling(await billingCall('get_billing'))}catch(e){billingNotice.className='status warn';billingNotice.textContent=e.message}} async function startSubscription(){try{renderBilling(await billingCall('create_subscription'))}catch(e){billingNotice.className='status warn';billingNotice.textContent=e.message}} async function cancelSubscription(){if(!confirm('Cancel the subscription at the end of the billing period?'))return;try{renderBilling(await billingCall('cancel_subscription'))}catch(e){billingNotice.className='status warn';billingNotice.textContent=e.message}} rewardMessage.addEventListener('input',updateRewardPreview);rewardValue.addEventListener('input',updateRewardPreview);rewardActive.addEventListener('change',updateRewardPreview); if(token())showMerchant();else showLogin();