Passionate about Bitcoin, I am a co-founder of the Africa Bitcoin Conference and other major initiatives in the Democratic Republic of Congo to promote its adoption. I support Bitcoin businesses that wish to establish and grow on the African continent.
- Create your first online store with be-BOP
- Personalize your showcase and your products
- Configure available payment methods
- Understand the best practices for selling effectively online with be-BOP
Prerequisites for installing be-BOP on your own server
S3-compatible storage
- MinIO self-hosted
- Amazon S3 (AWS)
- Scaleway Object Storage
- S3_BUCKET: bucket name
- S3_ENDPOINT_URL: access link to your S3 service
- S3_KEY_ID and S3_KEY_SECRET: your access codes
- S3_REGION: the region of your S3 service
MongoDB database in ReplicaSet mode
- Install MongoDB locally with ReplicaSet mode enabled
- Use an online service like MongoDB Atlas
- MONGODB_URL: database connection address
- MONGODB_DB: database name
Node.js environment
corepack enableGit LFS installed
git lfs install command. Once these prerequisites are in place, you're ready to move on to the next step: downloading and configuring be-BOP.Creating a Super-Admin account
- Go to
yourresiteweb/admin/login - Create a super-admin account with a secure login and password
Back-Office configuration and security
/admin/Settings. In the section dedicated to security (e.g. "Admin Hash"), define a unique string (Hash). Once registered, the back-office URL will be modified (e.g. /admin-yourhash/login) to restrict access to unauthorized persons.Communications setup
SMTP configuration (e-mail)
Nostr configuration
Compatible payment methods
Bitcoin Onchain
- Go to the Payment Settings menu
- Click on Bitcoin Nodeless to access On-Chain payment parameters.
- Complete the following fields:
| Field | Description | Example to Use |
| BIP Standard | The type of addressing used | BIP84 (for addresses in bech32 format starting with bc1) |
| Extended Public Key | Your Zpub (or Xpub depending on the wallet used) | zpub... (extracted from your Bitcoin wallet) |
| Derivation Index | The starting index for address generation | 1 |
| Mempool URL | The URL of the mempool service used to track transactions | https://mempool.space |
Lightning Network
Payment Settings menu, click on Phoenixd- In the "Payment Settings" menu, click on
Swiss Bitcoin Pay - Log in to your Swiss Bitcoin Pay account (or create one if you don't already have one).
- Enter the API Key supplied by Swiss Bitcoin Pay, then click on "Save"
PayPal
- Go to the
Payment Settingsmenu - Click on `PayPal
- In your Paypal account (developer section), enter the
Client IDand theSecret - Select the currency of your choice (e.g. USD, EUR, XOF, etc.)
- Click on `save
SumUp
- Start by entering your API Key, a confidential key supplied by SumUp when you created your developer account. It establishes a secure connection between your SumUp account and the software.
- Fill in the
Merchant Codefield with the unique code that identifies your business within the SumUp platform. This code is essential for associating transactions with your business. - In the
Currencyfield, choose the main currency you use for your transactions (e.g. EUR, USD, CDF, etc.). - Once all fields have been filled in correctly, click on the
Savebutton to save your settings. The system will then establish the link with your SumUp account, and your software will be ready to accept payments.
Stripe
- Enter the secret key provided in the Stripe dashboard.
- Complete the Public Key field, also provided by Stripe.
- Select the principal currency.
- Save the configuration, then click
Save.
Currency configuration
- Select the main currency (
Main currency) - Select `Secondary currency
- Define reference currency (
Price reference currency) - Indicate `Accounting currency
Configuration of recovery access via email or Nostr
/admin/settings, via the ARM module, make sure that the super-admin account includes an email address or a recovery pub, thus facilitating the procedure if you forget your password.Language settings
Interface and Identity configuration in be-BOP
/Admin > Merch > Layout section in the settings. Start by configuring the Top Bar, the Navbar and the Footer.Le Top Bar
Configuration steps:
- In the
Brand namefield, enter the name of your company, organization or product. This name will appear at the top of the Interface and will represent your main visual identity. - Indicate the website title: the title chosen should summarize the purpose of the platform. This title can appear in the header or in the browser tab.
- Add Website description: this is where you enter a brief description of your initiative. This description helps contextualize the tool for users and can also be used for SEO purposes.
Links in the Top Bar
Links section lets you add shortcuts to important pages in your application or on external sites. These links are displayed directly in the Top Bar, offering your users fast, structured access.Configuration steps:
- Enter link name (Text): in the
Textfield, enter the name or label of the link as it will appear (e.g. Home, Contact, Help...). - Indicate link address (Url): in the
Urlfield, enter the full address of the target page (internal or external). - Add other links if necessary: each configuration line lets you add an additional link using the
TextandUrlfields. - Save links: once all links have been entered, click on the "Add top bar link" button to save them.
La Nav Bar
- Enter link name (
Text): on the configuration line, start by filling in theTextfield. This corresponds to the name of the link displayed in the navigation bar (examples: Dashboard, Users, Settings...). - Enter the link address (
Url): next to theTextfield, you'll find theUrlfield. In this field, enter the address of the page to which the link should redirect. This can be an internal route or a link to an external page. - Add multiple links if required: below the first line, new
TextandUrlfields are available for adding as many links as required. Each line represents an additional navigation link. - Save links: once you've entered all the elements, click on the
Add nav bar linkbutton to save and display the results in the navigation bar.
The Footer
- Enable display of the "Powered by be-BOP" label: activate the
Display Powered by be-BOPbutton to display this label in the footer. - Enter the name of the link (Text): fill in the Text field, which corresponds to the wording of the link in the footer (examples: Terms, Privacy, Contact...).
- Indicate link address (
Url): in theUrlfield, enter the address of the target page (internal or external). - Add more links if required: use the additional lines to create as many links as you like.
- Save links: click on the "Add footer link" button to save links.
Visual personalization
Admin > Merch > Pictures.Go to Pictures section
Admin > Merch > Pictures.Add a new image
New Picture.Select a local file
Choose Files, then select an image from your hard disk.Select the file to import
Naming the image
Name of the picture field.Add image
Add to finalize the import.Seller Identity Setup
Identity settings
Admin > Identity (or Settings > Identity), this section lets you configure your company's administrative and legal information.Legal information
- Business name: official company name.
- Business ID: legal identifier or registration number (RCCM, SIRET...).
Business address
- Street: postal address (street, number...).
- Country: country.
- State: province or region.
- City: city.
- ZIP code: postal code.
Contact information
- Email: professional email address.
- Phone: company phone number.
Bank account
- Account holder name: name of the account holder.
- Account holder Address: holder's address.
- IBAN: International Bank Account Number.
- BIC: SWIFT/BIC code.
Billing
- Click on
Fill with main shop informationsto pre-fill the data. - Very-top-right issuer information: field for legal/tax information visible on invoices.
- Click
Updateto save changes.
Physical store address
Admin > Settings > Identity or a dedicated section. This will enable it to be displayed on official documents and in the footer if necessary.Product Management
Creating a new product
Admin > Merch > Products to add or modify a product. Fill in the following fields:Basic information
- Product Name: name of the product (e.g. BOP T-shirt limited edition).
- Slug: URL identifier without spaces (e.g.
tshirt-bop-edition-limitee). - Alias (optional): useful for quick addition to the basket via a dedicated field.
Pricing
- Price Amount: product price (e.g.
25.00). - Price Currency: currency (EUR, USD, BTC, etc.).
- Special products:
- this is a free product.
- this is a pay-what-you-want product.
Product options
- Single product (
standalone): only one addition possible per order (e.g. donation, admission ticket). - Product with variations:
- Don't check
Standalone. - Check
Product has light variations (no stock difference). - Add:
- Don't check
- Name (e.g. Size),
- Values (e.g.: S, M, L, XL),
- Price differences if applicable (e.g.:
+2 USDfor XL).
Stock management
Advanced options when creating a product (Stock, Delivery, Tickets, etc.)
Product with limited stock
The product has a limited stock. This activates automatic tracking of remaining quantities. Once this box is checked, a field appears to indicate the available stock.- Reserved stock → products in baskets not yet paid for
- Stock sold → products already purchased
Admin > Config > Cart reservation (value in minutes)Product to be delivered?
The product has a physical component that will be shipped to the customer's Address. This is useful for all products to be sent physically (books, t-shirts, etc.)Other options
- Ticket: tick if the product is a ticket for an event
- Booking: check if this is a reservation slot (e.g.: session, appointment)
Action Settings (bottom)
| Platform | Product Visible | Addable to Cart |
| Eshop (public site) | ✔️ | ✔️ |
| Retail POS (point of sale) | ✔️ | ✔️ |
| Google Shopping | ✔️ | ✔️ |
| Nostr-bot (bot sales) | ✔️ | ✔️ |
Creation and customization of CMS pages and widgets
Mandatory CMS pages
Admin > Merch > CMS. You'll see a list of existing pages and can add new ones with Add CMS page.- Inform your visitors (e.g. terms of use)
- Comply with the law (e.g. privacy policy)
- Explain certain store features (e.g. IP collection, 0% VAT)
- About us / Who we are
- Support us / Donations
- FAQ
- Contact
- etc.
Layout and graphic elements
Admin > Merch > Layout. You can customize the visual elements of your site:Top Bar
- Modify or delete links (EX: HOME, ABOUT US,...)
- Navigation between key sections of the site
Navbar (main navigation bar)
- Present in the grey area below the top bar
- Contains quick access to:
Config,Payment Settings,Transaction,Node Management,Widgets, etc. - Directors only
Footer
- Editable from
Admin > Merch > Layout - Contains: contact information, useful links, legal notices..
Customize visuals
Admin > Merch > Pictures- Change the main logo
- Modify or add layout images
Site description
Pictures, it allows you to display a summary or slogan in the header or footer, depending on the theme.Integrating widgets into CMS pages
Widget creation
Admin > Widgets- Challenges: challenges or missions
- Tags: categories or keywords
- Sliders: image carousels
- Specifications: Specifications tables
- Forms: forms (contact, feedback, etc.)
- Countdowns: timers
- Galleries: image galleries
- Leaderboards: user rankings
Integration into CMS pages
| Objective | Tag to Insert |
| Display a product | [Product=slug?display=img-1] |
| Display an image | [Picture=slug width=100 height=100 fit=contain] |
| Integrate a slider | [Slider=slug?autoplay=3000] |
| Add a challenge | [Challenge=slug] |
| Add a countdown | [Countdown=slug] |
| Integrate a form | [Form=slug] |
slug: unique widget identifierdisplay=img-1: product-specific imagewidth,height,fit: image dimensions and style- autoplay=3000`: time in ms between two slides
- Easy to insert (copy and paste)
- Dynamic: any modification to the widget is automatically reflected
- No developer required
Order management and reporting
Order tracking
Admin > Transaction > OrdersVisualization and search
- order Number: order number
- product alias: product identifier or name
- payment Mean": payment method used (card, crypto, etc.)
Email: customer email
Details of each order
- Products ordered
- Customer information
- Delivery address (if applicable)
- Any notes associated with the order
Possible actions on an order
- Confirm order (if pending)
- Cancel an order (in the event of a problem or customer request)
- Add labels (for internal organization)
- Consult / add internal notes
Reporting and export
Report content
- Order Detail: number of orders, status (confirmed, cancelled, pending), evolution
- Product Detail: products sold, quantities, popular products
- Payment Detail: amounts collected, breakdown by payment method
Data export
- Download data in CSV format
- Open them in Excel, Google Sheets, etc.
- Archiving for administrative or accounting use
- Use them for internal reports
Nostr Messaging configuration (optional)
- Decentralized notifications
- Login without password
- Interface light administration
Generating and adding the Nostr private key
- Click on Create nsec if you don't have one.
- The system can generate it automatically.
- Alternatively, you can use an existing key (e.g. from Damus or Amethyst).
- Copy the
nseckey - Add it to your
.env.local(or.env) file: ```env NOSTR_PRIVATE_KEY=YourNsecIciKey
Features activated with Nostr
- Send alerts for orders, payments or system events
- For administrators or users
- Accessible via a Nostr client
- Enables fast, mobile-friendly management
- Login by secure link (sent via Nostr)
- Greater user safety and fluidity
Design and theme customization
Admin > Merch > ThemeCreating a theme
- Colors: for buttons, backgrounds, text, links, etc.
- Fonts: choice of typefaces for titles, paragraphs, menus
- Graphic styles: borders, margins, spacing, block shapes
Customizable sections
- Header: top navigation bar
- Body: main content
- Footer: bottom of page
Theme activation
- Click on Save
- Activate it as the store's main theme
Configuring e-mail templates
Admin > Settings > TemplatesCreating / editing templates
- Subject: the subject of the email (e.g. "Your order has been validated")
- HTML Body: HTML content displayed in the email
Using dynamic variables
{orderNumber}}: replaced by the actual order number{invoiceLink}}: link to the invoice{websiteLink}}: URL of your website
Advanced tips
- Create emails that are responsive for easy reading on mobile devices
- Add action buttons (pay, download, track order)
- Test your emails by sending them to yourself before publication
Configuring specific tags and widgets
Tag management
Admin > Widgets > TagCreating a tag
- Tag Name: tag name displayed
- Slug: unique identifier (no spaces or accents)
- Tag Family: groups tags by category
Available families:
- creators`: authors or producers
- retailers: salespeople or points of sale
Temporal: periods or dates- events: associated events
Optional fields
- Title
- Subtitle
- Short content
- Full content (in French)
- CTAs (action buttons)
Using tags
- Allocated to products
- Integrated into CMS pages with a tag: [Tag=slug?display=var-1]
Configuration of downloadable files
Admin > Merch > FilesAdding a file
-
Click on New file
-
Inform:
- File name (e.g. Installation guide)
- File to upload (PDF, image, Word...)
Using the link
- CMS page (as text link or button)
- A e-mail client (via a template)
- A product sheet (e.g. manual download)
Nostr-bot
Main features
Relay management
- Add or remove relays used by the bot
- Optimize the reach and reliability of sent messages
Automatic introduction message
- Activate an automatic message on first user interaction
- Ideal for:
- Presenting your service
- Send a useful link (e.g. FAQ, contact, order)
Certification of your `npub
- Add a logo and a public name
- Link to a verified web domain
- Enhances the credibility and recognition of your Nostr identity
Nostr-bot use cases
- Sending order confirmations to you
- Automatic response to events (e.g. new order)
- Creating a decentralized customer interaction
Overloading translation labels
Settings > LanguageLoading and editing
- Download language files
- Modify existing texts
- Add your own translations
Add to cart by Ajouter au panier or Acheter.Teamwork & Point of Sale (POS)
User and access rights management
Creating roles
Admin > Settings > ARMSuper Admin, POS, Ticket checker).- write access: write access
- read access: read access
- forbidden access: sections interdites
User creation
Admin > Settings > ARM, add a user with:- login
- alias
- email recovery
- (optional)
recovery npubfor connection via Nostr
Point of Sale (POS) configuration
Assigning the POS role
Point of Sale (POS) in: Admin > Config > ARM/pos or /pos/touchPOS-specific features
Quick addition via alias
/cart, a field allows you to add a product:- By scanning a bar code (ISBN, EAN13)
- By entering a product alias manually
Means of payment
- Species
- Credit card
- Lightning Network (crypto)
- Others according to configuration
- VAT exemption: applicable on justification (NGOs, foreigners...)
- Gift discount: exceptional discount with compulsory comment
Client-side display
/pos/session is intended for a secondary screen (HDMI, tablet...):- Products in progress
- Total amount
- Method of payment
- Discounts applied
/pos.POS summary
| Function | Description |
| POS Role | Assigned via ARM |
| Main Interface | /pos or /pos/touch |
| Customer Display (Screen 2) | /pos/session |
| Payment | Cash, card, Lightning, etc. |
| Product Addition | Alias or barcode scanning |
| Discounts / VAT | With mandatory managerial justification |
Author
This tutorial has been written by Gloire Wanzavalere
You can say thanks by tipping the professor.
Credits
This tutorial has not been proofread yet
The original content has been translated by AI, but human review is necessary to ensure its accuracy.
7 500 sats3 750 sats1 875 satsEvery content on the platform is the result of a collaborative effort: each lesson, translation, and revision is made possible by the work of contributors. For this reason, we are always looking for proofreaders who can review our content in many languages. If you want to participate in the proofreading process, please reach out in our Telegram group and read our tutorial. We remind you that this content is open-source - licensed under CC BY-SA - so it can be freely shared and used, as long as the original source is credited.
