Charity Foundation Website Development on 1C-Bitrix
A charity foundation website solves two tasks simultaneously: collects donations and proves money is spent transparently. Trust is the foundation's only currency, and each website element either strengthens or destroys it. 1C-Bitrix suits such projects thanks to the sale module (payments), info-blocks (projects, reports, stories), and built-in SEO tools for promoting non-commercial queries.
Assistance Projects
The "Projects" info-block is the main section. Each project is an element with properties:
- Name and Description—text with photo/video
- Target Amount—number
-
Collected Amount—number, auto-updated from
salemodule - Status—list: active collection, goal reached, completed
- Category—binding to directory (children, elderly, ecology, medicine)
- Photo Reports—multiple "file" property with dates
- Financial Report—PDF file
Progress bar is the key visual element. In news.detail component template, calculate percentage: collected / target × 100. CSS animation on page load. Color changes by threshold: green after 75%, yellow 30–75%, red below 30%. Next to it—donation count (count sale orders linked to project).
On project list page—sorting: "urgent" (deadline proximity), "almost funded" (percent > 80%), "new." Category filtering via catalog.smart.filter.
Donation Receipt System—Technical Core
Accepting money on a foundation website is more than a "Pay" button. It's recurring payments, multiple payment systems, fiscalization, project linking, and report generation. Let's examine the architecture.
sale Module as Foundation. Donation is structured as an e-commerce order, but simplified: no cart, no delivery, no inventory. Create catalog with single "product"—"Donation," where price is user-defined. Technically: e-commerce catalog info-block with one element, "Price" property in "BASE" price type set to 0—actual amount passed via parameter when adding to cart.
Quick Amount Buttons. On project page, place buttons: 100, 300, 500, 1000, 5000 currency units and "Other Amount" field. On button click—AJAX request adds "product" to cart with specified price and redirects to checkout. Parameter PROJECT_ID saved in order property—links payment to project for reporting.
Checkout Page. Minimal fields: name (optional—support anonymous donations), email (for receipt and thank you), amount, payment system choice, data processing consent checkbox. Component sale.order.ajax with custom template, with unnecessary steps removed.
Payment Systems. Connect at least two:
- CloudPayments—supports recurring via card tokenization, widget embedded via JS SDK. Payment system handler in Bitrix accepts CloudPayments callback and updates order status
-
YooKassa—for alternative methods: SBP (Fast Payment System), e-wallets. Standard Bitrix handler for YooKassa included in
salemodule
Recurring Donations—Main Technical Task. Regular donations (monthly) give foundation predictable income. Implementation via CloudPayments Subscriptions API:
- At first payment, user checks "Subscribe to monthly donation"
- CloudPayments saves card token and creates subscription via
POST /subscriptions/createwith params:Amount,Currency,AccountId,StartDate,Interval: Month,Period: 1 - Each month CloudPayments auto-charges and sends callback to site
- Callback handler creates new
saleorder linked to project and user - User receives thank-you email and subscription management link
Subscription Management—personal account page where user sees payment history, can change amount or cancel. Cancellation via POST /subscriptions/cancel CloudPayments API. Amount change—cancel current subscription and create new.
Fiscalization. Charity donations aren't VAT-taxable but need receipt. CloudPayments and YooKassa support auto-fiscalization via cash register (ATOL, OrangeData). In handler settings: tax system—USN, payment subject attribute—"payment," VAT rate—"no VAT."
Collected Amount Update. Handler for OnSaleOrderPaid event—on payment, get PROJECT_ID from order property and increment "Collected Amount" value in projects info-block. Project detail page cache clears via tagged cache.
Reporting and Transparency
Legal requirement (Federal Law "On Charitable Activity" and foundation charter): publish financial reports. Create "Reports" section with document info-block:
- Annual reports (PDF)
- Quarterly financial reports
- Per-project reports—auto-generated from
saledata: collected, spent (info-block property field), spending details (text field) - Founding documents, certificates, licenses
For transparency, add "Recent Donations" block to project page—list of last 10 orders: name (or "Anonymous"), amount, date. Display via sale.order.list with custom template, filtered by PROJECT_ID.
Volunteer Portal
Section for volunteers with registration via standard system.auth.registration component with additional fields: city, help direction, availability (weekdays/weekends). After registration—access to closed section with event schedule.
Schedule—"Events" info-block: name, date, time, place, spots available, registered users (multiple user binding). Event registration—button that via AJAX adds user ID to element property. At limit, button disables.
News and Beneficiary Stories
Two info-blocks: "Foundation News" (events, actions, press releases) and "Stories" (beneficiary stories with photos and video). Stories are powerful engagement tool: after reading, donation conversion increases. In story template—CTA block with "[name] Help" button and project progress bar linked to beneficiary.
SEO for Non-Commercial Queries
Non-commercial queries ("help children," "online donation," "charity foundation [city]") have low competition but specific optimization needs. Standard Bitrix SEO tools: section title and description templates, friendly URLs via urlrewrite.php, auto sitemap.xml. Microdata NonprofitOrganization schema.org on homepage, DonateAction on project pages.
Development Stages
| Stage | Content | Timeframe |
|---|---|---|
| Analytics | Federal Law requirements, payment system selection, project structure | 2–3 weeks |
| Design | Emotional but not overwhelming. Project layouts, donation forms | 2–3 weeks |
| Development | Info-blocks, sale module, CloudPayments/YooKassa integration, recurring payments |
5–6 weeks |
| Volunteer Section | Registration, schedule, personal account | 2–3 weeks |
| Content and SEO | Project population, stories, microdata setup | 2 weeks |
| Testing | Payment scenarios, recurring charges, mobile devices | 1–2 weeks |
A foundation website on Bitrix is about trust expressed in code. A progress bar updating in real time, public reports, transparent payment history—each element drives people to click "Help" and return again.







