Walkthrough

In this article, we will walk you through the BitcartCC admin panel user interface and show you how to navigate through different options.

When creating an account, if you're the first user registered on the instance, you'll granted superuser rights(full control over the server). On third-party hosts it usually not so, but if you're hosting your own instance you'll of course become the full owner of it.

After you created the account on the BitcartCC instance hosted by yourself or a third-party, you'll see a lot of information cards.

Information cards in your admin panel

Note about the night mode of the panel. By default, admin panel uses day mode, but if in your local time it is from 8 pm to 6 am, night mode will be enabled automatically 😉 You can configure it by clicking the moon icon in the top right corner of the page.

Admin panel's day mode

Each information card contains summary about something in your account: wallets, stores, products, invoices, etc.

By clicking Details button in any of the cards you will be able to see full information about specific unit.

Note, wallets balance is displayed not in BTC, but in abstract currency. It is a sum of all your balances in different currencies.

If you're a superuser, you can click on profile icon in the top right corner of the page to visit server settings page.

Server management button

From server settings page, you can control the users of your server, and many more. For more information, check Server Settings FAQ

Now, to the other common settings.

Each page basically contains one common thing - a datatable.

It is a feature-rich datatable, supporting searching, ordering, create/edit/delete actions, batch actions, and some additional actions depending on what page you're on. For example, on stores page, you can configure email settings for a store by clicking email icon in actions column.

Actions example

Wallets

The core of BitcartCC is creating a wallet. In BitcartCC, one wallet represents one currency.

Default currency is btc, you can change that. When creating wallet, just select currency code from the ones available on your instance (btc,ltc etc.). Wallets may have a name and their xpub.

The nice feature of BitcartCC is that it does not require your private keys, but it supports many different formats.

You can enter (x/y/z)pub - public key, (x/y/z)prv - private key, or even electrum seed - providing easiest migration possible from many wallets, especially electrum. If you don't have an xpub yet, we recommend you create a wallet somewhere. Electrum wallet provides the best integration with BitcartCC, check Architecture page for more information.

When creating a wallet, it will get synced very fast (depends on the size of the wallet, but shoudn't take too long), and BitcartCC will fetch it's balance and display it.

Wallets page
Create wallet pop-up

By clicking arrow near any of the rows, you can view some additional details, like wallet xpub.

Wallet details

Stores

You can create unlimited amount of stores in BitcartCC.

Each store can contain any amount of products and associated invoices. Store is a base entrypoint for anything related to checkout.

Store may have multiple wallets connected. That way, connecting different wallets with different base currencies, you can achieve multicurrency checkout.

Selecting multiple wallets of the same currency is NOT recommended. On invoice creation, BitcartCC will pick the first wallet of that currency, returned by database(they might be returned in any order).

Stores page
Create store pop-up

If you want to send customers invoices on successful checkout, you should configure email server.

To do that, click on email icon in actions column, and enter SMTP server details.

Store email is the email used to send messages from, and the display email in BitcartCC POS store.

Email host, port, login and password are credentials for your SMTP server. Email host shoudn't include any http:// or https:// parts. If your SMTP server requires TLS, turn on SSL/TLS switch.

When done(you should click save button first), click on Test ping button to see if your setup is working.

Note for gmail SMTP servers, you should enable access by turning on less secure apps (it is still secure, gmail apps aren't the requirement). You might also need to allow access on a new account.

From the email settings pop-up, you will also be able to load a ready preset for some popular email server providers.

Email server settings

Your store is the main configuration point for all the futher actions with it, like invoice creation.

You can configure different policies from your store settings.

Store checkout settings

By clicking on settings icon, you will be presented with the store checkout settings pop-up, where you can change different settings affecting the checkout.

  • Invoice expiration time, in minutes. It affects the timer displayed in the checkout. It is the time in which the customer must send the payment, otherwise invoice is marked as expired

  • Use HTML templates - whether to render templates of email message sent to customer as html or as plain text. For more information, see this guide.

Store checkout settings

Discounts

It is optional page for your initial setup, you may skip it for now.

In many cases you might want to add some discounts to your store. New year discounts, other holidays? Limited time promocode discounts? Discount when paying in your preferred currency? Anything is possible with BitcartCC.

Just provide a percent(integer) for your discount, and discount apply conditions:

  • promocode(optional, when not provided discount is always applied when other conditions succeed)

  • end date

  • currencies(comma separated list of currency to apply to, or empty to apply to all currencies)

You can link discounts to products in the products page.

When one invoice at creation time has matched multiple discounts, BitcartCC will pick the best discount(by percent).

Discounts page
Create discount pop-up

Products

Products are your base selling unit. Create your products, link them to your stores, add product details - and they will get displayed in your store POS!

BitcartCC supports many different information for creating products:

  • Amount, displayed in store POS in USD

  • quantity(how many products of the same kind available)

  • product category(used for filtering in store POS to classify your products)

  • Discounts applied to the product(see previous section)

  • Product status(like in stock, not available, up to you)

  • Download url(for digital content, will be sent to customer in email)

  • Store, from which to take wallets and other information

  • Date of creation(auto-filled)

  • Product image(supports cropping, rotating and many more!)

  • Product description

Products page
Image preview
IDs of connected discounts
Click on any ID to copy it
Create product pop-up
Create a perfect image for your product (:
Store POS reflecting entered products information

Invoices

This page can be used to monitor your paid invoices, create new invoices and send them to friends, or to pay an invoice.

Supported information:

  • Price is the price in store's default currency, which will be converted to payment method's currency when generating payment URL

  • Currency, used to override store's default currency if needed

  • Store, from which to take wallets and other information

  • Connected products(for store POS, optional)

  • Promocode, if customer entered it during checkout process (auto-filled)

  • Notification URL where to send IPN notifications on invoice status change (more below)

  • Redirect URL, customer will be redirected to it after successful checkout.

  • Buyer email, if customer entered it during checkout process(auto-filled)

  • Order ID, used by external integrations like woocommerce, track your orders by searching for order id(auto-filled)

  • Discount - ID of the discount applied during invoice creation(auto-filled)

  • Invoice status, more below

  • Date of creation (auto-filled)

  • Payment methods - not editable fields, displaying checkout information

If your invoice contains connected products, you'll be able to know which products were bought by the customer. The name of the store will be used on checkout.

When converting to payment method's currency, destination currency's maximum decimal points is taken in mind, and the price is being formatted as per currency settings. The convert, the exchange rate is used. See this page for more information.

Notification URL

If you fill in notification URL, BitcartCC instance will send IPN notifications to that URL via a POST request.

It will send the following json data:

{"id": invoice_id, "status": new_status}

When invoice status changes(Pending->complete, Pending->expired, etc.), notification will be sent.

It's up to you how to process that IPN notification. You should also verify that data sent is correct, as theoretically, anyone can send that POST request if they know your IPN handler URL. So, check that sent status is the same as the one got from get invoice request.

Invoices statuses can be one of the following:

  • Pending (in progress)

  • complete (invoice paid)

  • invalid (unexpected error)

  • expired

  • In progress (lightning network status)

  • Failed (lightning network status)

After invoice creation, you'll be able to view checkout information by clicking show button in payment methods column. It will display a so-called "invoice preview", it is not a fully functional checkout, but just an information dialog to display payment methods(it ignores invoice status).

By clicking open checkout you'll be redirected to full checkout, respecting invoice statuses and other things. Invoice URL can be safely shared with others and used for checkout right from your admin panel.

Invoices page
Create invoice pop-up
Preview payment methods in the admin panel
Invoice expired
Invoice paid
Full checkout page

Notification providers

On this page you can configure your notification providers, to later connect them to your stores.

Supported information:

  • Notification provider name for display

  • Provider to use, you can choose of many available ones

  • Provider options, differing from provider to provider

Notification providers page
Create notification provider pop-up
Choice of various providers

Each notification provider has different settings. Refer to their documentation about how to get certain settings. After that, select needed provider, fill in the settings and save changes.

Then you can reuse notification providers by connecting them to needed stores!

When notification provider is connected, on each successful order it will be run to deliver a notification to you.

Connect notification provider to store
Sample notification via telegram provider

Templates

On templates page you can override global server templates, or create custom ones.

Available fields:

  • Name of template, you can select from built-in ones or type in a new one

  • Template text

All templates in BitcartCC are rendered via Jinja2.

Read about it's syntax in their template designer documentation.

Read more about example usages of templates in BitcartCC here

Templates page
Create template pop-up
Default templates list

Template selection rules

When a template is being requested to render (for example, when sending notification via notification providers, or composing email message), it is selected in the following order:

  1. If this product or store has template connected, it will be used

  2. If it has no template connected, default global store or product template will be used (named store or product), if exists

  3. If none of templates above are customized, default templates are used

Changing object's templates

On some pages, for example, stores or products pages, you will be able to edit templates per each item (per each product, per each store, etc.) If so, on such pages you will see the following icon:

Edit templates icon

By clicking on it, you will be able to override default templates for this item. Such templates are always used the first if they are set.

Edit default templates pop-up

Note that in the example image above it is not neccesary to connect default templates for each store, as the template we created is named notification, therefore overriding default ones for each store.