Delen op Social Media

0 Gedeeld
Klap 0Aantal keer gedeeld op Clap
0Aantal keer gedeeld op Clap
Toot 0Aantal keer gedeeld op Mastodon
0Aantal keer gedeeld op Mastodon
Deel 0Aantal keer gedeeld op Facebook
0Aantal keer gedeeld op Facebook
Deel 0Aantal keer gedeeld op Linkedin
0Aantal keer gedeeld op Linkedin
E-mail 0Aantal keer gedeeld op Email
0Aantal keer gedeeld op Email
WhatsApp 0Aantal keer gedeeld op Whatsapp
0Aantal keer gedeeld op Whatsapp
Kopieer 0Aantal keer gedeeld op Clipboard
0Aantal keer gedeeld op Clipboard
Afdrukken 0Aantal keer gedeeld op Print
0Aantal keer gedeeld op Print

Requirements

Joomla! 6 Joomla! 5 Joomla! 4 (EOL - Not supported) Joomla! 3 (EOL - Not supported) PHP 8.1+

  • Basic Joomla! knowledge available between the chair and the keyboard :)

Installation is easy!

  1. Download the package
  2. in the Back-end go to menu Extensions > Manage
  3. in the tab [Upload file package] click [browse]  and select your downloaded package
  4. click [Upload & Install], wait for the installation to finish

Component Configuration

  1. In the back-end go to menu Components > ochProjects.
  2. In the component click on the [Options] button and configure:
    1. [Company Profile] This is your information that willbe used on the invoices. Important: Your country is requiredd as it is used to determine EU VAT excemptions!
    2. [Email Sending] Configure the Email settings
    3. [Billing] Here you can configure the way your timelogs will be 'rounded up': no rounding = 1 minute , 5 / 6 / 10 / 15 / 30 / 60 minutes
    4. [Invoicing] Configure the Invoicing settings
    5. [Front-end] Configure to load the style sheet or not
    6. [Permissions], permissions are used for the administrator, but here you can also give front-end users rights via membership of Joomla User Groups (you need to create these):
      • Front End: View Own Logs/Invoices > this gives the user access to the front-end view
      • Front End: Approve Own Timelogs/Materials > this gives the user view + approve rights for his own timelogs
      • Front End: Create/Finalize Own Invoices > this gives the user view, approve and the right to initiate invoices for time and material logs
  3. [Optional] Install and publish a ochprojectspayment plugin: when none installed, invoiced need to be paid manually as well as the processing of the payments.
  4. Create SEF url menu items:
    1. ochProject » Dashboard > The front end's entry point - a logged-in Customer's own linked Customer(s), a Project-by-Project time/materials/invoicing summary, and what's new since their last visit.
    2. ochProject » Invoices > A logged-in Customer's own Invoices - view status and download the PDF, with Finalize for Customers granted that front-end permission.
    3. ochProjects » My Details > A self-service page where a logged-in Customer can view and edit their own contact/billing details.
    4. ochProjects » Payment Link > Never opened directly - creating this menu item just gives an Invoice's own online payment link a clean, memorable URL (named/aliased however you like) instead of the generic default. Visiting it always redirects straight to the Customer's configured payment gateway.
    5. ochProjects » Time Logs & Materials > A logged-in Customer's own Timelogs/Materials - search/filter/sort/paginate, with an Approve action for Customers granted that front-end permission.

Activate Joomla! One Click update and change-log integration

When you install the extension, it will automatically integrate with the Joomla Updater for both updates and change-logs.

On first use, the Joomla updater will prompt you with a 'Download Key is missing!' message.

  1. On this site: Go to [Tools > My Account > My Download Keys], and copy your Download ID#.
  2. On your site: Go to System > Update Sites, locate the extension, and paste the Download ID into the 'Download Key' field. Click [Save and Close].

Important:
If you're using this Download ID on a new server, you’ll receive an email to approve the device. Click the link in the email to enable downloads from this server.
Without approval, updates won’t be authorized, and the Joomla updater will display a 401 Unauthorized error when trying to fetch updates.

That’s it! You're all set.

ochProjects is equipped with a simple yet powerful system that enables you to place variables inserted into your templates into text fields. These variables are replaced by values and enable you to customize and personalize messages and text.

A variable consists of two parts: {object:field}

The object is the actual ochProjects object, so all fields in these objects are available.

If an object or field is not available, the variable will not be replaced and displayed as is.
If a field is empty (not filled in), the variable will be replaced with the value of the field (empty).

There is one more object, {subtemplate:alias}, which is not a field lookup but inlines another Template row's own rendered output - used to share the header/footer between the Invoice and Specification, and to build the Invoice's items table and payment information from their own separately editable Templates.

  Templates
Object Field Variable Header Footer Invoice Specification Invoice-items-row Invoice-items-table Invoice-items-summary-row Invoice-items-summary-table Invoice-payment-info-unpaid Invoice-payment-info-paid
config company_name {config:company_name} x                  
  company_address_line1 {config:company_address_line1} x                  
  company_address_line2 {config:company_address_line2} x                  
  company_postal_code {config:company_postal_code} x                  
  company_city {config:company_city} x                  
  company_country_code {config:company_country_code} x                  
  company_email {config:company_email} x x                
  company_phone {config:company_phone}   x                
  company_website {config:company_website} x x                
  company_registration_number {config:company_registration_number} x                  
  company_vat_number {config:company_vat_number} x                  
  company_account_holder {config:company_account_holder}                 x  
  company_iban {config:company_iban} x               x  
  company_bic {config:company_bic} x               x  
  company_bank_name {config:company_bank_name}                 x  
  company_bank_address {config:company_bank_address}                 x  
customer name {customer:name}     x              
  address_line1 {customer:address_line1}     x              
  address_line2 {customer:address_line2}     x              
  postal_code {customer:postal_code}     x              
  city {customer:city}     x              
  country_code {customer:country_code}     x              
  vat_number {customer:vat_number}     x              
invoice invoice_no {invoice:invoice_no}     x x         x  
  currency {invoice:currency}     x x x   x   x  
  issue_date {invoice:issue_date|shortdate}     x              
  due_date {invoice:due_date|shortdate}     x           x  
  subtotal {invoice:subtotal|amount}     x x            
  vat_rate {invoice:vat_rate}     x              
  vat_amount {invoice:vat_amount|amount}     x              
  total {invoice:total|amount}     x              
  notes {invoice:notes}     x x            
  items {invoice:items}       x            
  items_summary {invoice:items_summary}     x              
  items_rows {invoice:items_rows}           x        
  items_summary_rows {invoice:items_summary_rows}               x    
  payment_status {invoice:payment_status}     x              
  payment_status_key {invoice:payment_status_key}                 x  
  balance_due {invoice:balance_due}                 x  
  payment_info {invoice:payment_info}     x              
  payment_link {invoice:payment_link}     x              
  payment_qr {invoice:payment_qr}     x              
item description {item:description}         x          
  quantity {item:quantity}         x          
  unit {item:unit}         x          
  unit_price {item:unit_price|amount}         x          
  amount {item:amount|amount}         x   x      
  label {item:label}             x      
variable document_title {variable:document_title}     x              
  vat_treatment {variable:vat_treatment}     x              
subtemplate header {subtemplate:header}     x x            
  footer {subtemplate:footer}     x x            

Fields marked with |amount or |shortdate above are formatted for display (currency/number formatting, or a locale-appropriate short date) rather than shown as a raw database value.

The two invoice emails ("Invoice Sent", "Payment Received") are not built with this system - they are Joomla's own core Mail Templates (System > Mail Templates), using plain {TAG} syntax. Available tags: {CUSTOMERNAME}, {INVOICENO}, {TOTAL}, {CURRENCY}, {COMPANYNAME}, plus {DUEDATE} on the invoice email only.

The ochpayment - Mollie plugin is NOT part of the ochProjects package. You need an additional subscription.

This payment plugin gives your customers the possibility to pay via the Mollie Checkout. Mollie is a dutch payment provider that originally started out as an iDEAL payment gateway but currently has many different payment options you can configure in the Mollie dashboard:

  • Wero / iDEAL
  • Creditcard
  • Apple Pay (requires credit card)
  • Klarna
  • PayPal
  • Overboeking
  • Sofort
  • Cadeau cart
  • Bancontact
  • EPS
  • Giropay
  • Przelewy24
  • KBC/CBC Payment Button
  • Belfius Direct Net
  • Voucher
  • SEPA-incasso

Getting Started with Mollie

The plugin has the following configuration settings:

  • API Credentials Tab:
    • set the mode of the plugin, use Live on production sites, test when testing
    • Mollie Live API Key: the Mollie Live API key as generated for your Mollie account / site. This key will be used when Mollie Mode = Live
    • Mollie Test API Key: the Mollie Test API key as generated for your Mollie account / site. This key will be used when Mollie Mode = Test

Agency Bundle - 12 months

Supercharge your Joomla! toolbox with the Agency Bundle! Get all extensions plus 2 Hours of expert support – Subscribe today!
Meer Informatie

ochProjects - Mollie - 6 months

Enable your customers to pay with the flexible Mollie payment gateway.
Meer Informatie

The ochpayment - PayPal plugin is NOT part of the ochProjects package. You need an additional subscription.

This payment plugin gives your customers the possibility to pay via the PayPal Checkout. PayPal checkout will offer your Customer a dynamic set of payment options depending on variables like Country of origin. The following Payment providers are supported by PayPal

  • Creditcard or debit card
  • PayPal Credit
  • Bancontact
  • BLIK
  • EPS
  • Giropay
  • iDEAL
  • Mercado Pago
  • MyBank
  • Przelewy24
  • SEPA-lastschrift
  • Sofort
  • Venmo

You need to create a set of PayPal API credentials: 1 for the production environment and 1 for the sandbox (test) environment: https://developer.paypal.com/docs/platforms/get-started/

The credentails are configured in the plugin configuration.

Getting Started with PayPal

Webhook(s)

Add a webhook in your PayPal Developer Dashboard (Apps & Credentials > your app > Webhooks) pointing at your site's "index.php?option=com_ochprojects&task=invoice.webhook&processor=paypal" URL (Live and Sandox have their own webhooks!)

Webhooks should be subscribed to:

  • Payment capture completed (marks the Invoice paid)
  • Payment capture denied
  • Checkout order voided (logged for troubleshooting, no other action taken).

The plugin has the following configuration settings:

  • API Credentials Tab:
    • PayPal Mode: Live or Sandbox, set the mode of the plugin, use Live on production sites, sandbox when testing
    • Live Client ID: the PayPal Live Client ID key as generated in your PayPal Developer Dashboard This key will be used when PayPal Mode = Live
    • Live Secret: the PayPal Live Secret key as generated in your PayPal Developer Dashboard This key will be used when PayPal Mode = Live
    • Live Webhook ID: The ID PayPal assigns the webhook you register (see the note above) - needed to verify that a webhook call genuinely came from PayPal.
    • Sandbox Client ID: the PayPal Sandbox Client ID key as generated in your PayPal Developer Dashboard This key will be used when PayPal Mode = Sandbox
    • Sandbox Secret:the PayPal Sandbox Secret key as generated in your PayPal Developer Dashboard This key will be used when PayPal Mode = Sandbox
    • Sandbox Webhook ID: The ID PayPal assigns the webhook you register (see the note above) - needed to verify that a webhook call genuinely came from PayPal.

Agency Bundle - 12 months

Supercharge your Joomla! toolbox with the Agency Bundle! Get all extensions plus 2 Hours of expert support – Subscribe today!
Meer Informatie

ochProjects - PayPal - 6 months

Enable your customers to pay with the state-of-the-art PayPal checkout payment gateway.
Meer Informatie

The ochpayment - Stripe plugin is NOT part of the ochProjects package. You need an additional subscription.

This payment plugin gives your customers the possibility to pay via the Stripe Checkout. Stripe checkout will offer your Customer a dynamic set of payment options depending on variables like Country of origin and device. The following Payment providers are supported by Stripe

  • Creditcards
  • Canadia PADs
  • Afterpay / Clearpay
  • Alipay
  • Bancontact
  • Boleto
  • EPS
  • FPX
  • giropay
  • GrabPay
  • iDEAL
  • OXXO
  • P24
  • SEPA Direct Debit
  • Sofrt
  • WeChat Pay

The credentails are configured in the plugin configuration.

Getting Started with Stripe

Prerequisites

Before configuring the ochProjects - Stripe plugin on your website you to:

  1. Create a Customer Account on Stripe
  2. In the stripe Developers Dashboard you need to copy both the Live Secret key and Test Secret key (note: NOT the publishable keys) > https://dashboard.stripe.com/apikeys
  3. In the stripe Developers Dashboard you need to create a WebHook endpoint for both the Live Mode as well as the Test Mode > https://dashboard.stripe.com/webhooks
    1. URL: https://[yourdomain]/index.php?option=com_ochprojects&task=invoice.webhook&processor=stripe
    2. Events to send (6) :
      1. checkout.session.expired
      2. checkout.session.completed
      3. checkout.session.async_payment_succeeded
      4. checkout.session.async_payment_failed
  4. Configure all the Payment Methods that you want to use > https://dashboard.stripe.com/settings/payments

The plugin has the following configuration settings:

  • API Credentials Tab:
    • Stripe Mode: Live or Test, set the mode of the plugin, use Live on production sites, test when testing
    • Stripe Live Secret Key: the Stripe Live Secret key as generated in your Stripe Developer Dashboard. This key will be used when Stripe Mode = Live
    • Stripe Test Secret Key: the Stripe Test Secret key as generated in your Stripe Developer Dashboard. This key will be used when Stripe Mode = Test
    • Stripe Live WebHook Signing Secret: the Stripe webhook signing key as generated in your Stripe Developer Dashboard. This key will be used when Stripe Mode = Live
    • Stripe Test WebHook Signing Secret: the Stripe webhook signing key as generated in your Stripe Developer Dashboard. This key will be used when Stripe Mode = Test
    • Limit WebHook to Stripe IP Addresses: setting to only process webhook request originating from Stripe.

Agency Bundle - 12 months

Supercharge your Joomla! toolbox with the Agency Bundle! Get all extensions plus 2 Hours of expert support – Subscribe today!
Meer Informatie

ochProjects - Stripe - 6 months

Enable your customers to pay with the flexible Stripe payment gateway.
Meer Informatie

Tips & Tricks

  • none yet

Technical support and feature requests via our forum (You need a valid subscription to be able to post)

Joomla! 6 Joomla! 5 Joomla! 4 (EOL - Not supported) Joomla! 3 (EOL - Not supported) PHP 8.1+

Security updates Free Available to all licence holders within the support period, including expired subscriptions. Temporary download access (30 days) is activated for all license holders on the day of release.
Bug fixes & improvements Active subscription Available to customers with an active subscription.
New features Active subscription Available to customers with an active subscription.
End-of-life platforms Not available Security updates are not backported to Joomla or PHP versions that have reached end of life. Customers on unsupported platforms are advised to upgrade.

Conformite Europeenne EU Declaration of Conformity - ochProjects
Manufacturer OnlineCommunityHub, Netherlands
Product name ochProjects
Supported series 1.0.x (minor and patch releases included)
Product description Joomla extension - regular product with digital elements
CRA product class Regular product (CRA Annex III not applicable)
Conformity procedure Self-assessment - Article 32(1), Regulation (EU) 2024/2847
Supported platforms

Joomla! 6 Joomla! 5 Joomla! 4 (EOL - Not supported) Joomla! 3 (EOL - Not supported) PHP 8.1+

Support period Minimum 5 years from date of first purchase
Regulation Regulation (EU) 2024/2847 of the European Parliament and of the Council

Software Bill of Materials (SBOM)

Third-party libraries bundled with this extension. All versions have been verified against known vulnerability databases at the time of release.

Library Version
dompdf/dompdf v3.1.6
dompdf/php-font-lib 1.0.2
dompdf/php-svg-lib 1.0.2
sabberworm/php-css-parser v9.4.0
masterminds/html5 2.11.0
bacon/bacon-qr-code v3.1.1
dasprid/enum 1.0.7
endroid/qr-code 6.0.9
thecodingmachine/safe v3.4.0

See our vulnerability disclosure policy or report directly via the contact form.

Joomla! 6 Joomla! 5 Joomla! 4 (EOL - Not supported) Joomla! 3 (EOL - Not supported) PHP 8.1+

Security updates Free Available to all licence holders within the support period, including expired subscriptions. Temporary download access (30 days) is activated for all license holders on the day of release.
Bug fixes & improvements Active subscription Available to customers with an active subscription.
New features Active subscription Available to customers with an active subscription.
End-of-life platforms Not available Security updates are not backported to Joomla or PHP versions that have reached end of life. Customers on unsupported platforms are advised to upgrade.

Conformite Europeenne EU Declaration of Conformity - ochProjects - Mollie
Manufacturer OnlineCommunityHub, Netherlands
Product name ochProjects - Mollie
Supported series 1.0.x (minor and patch releases included)
Product description Joomla extension - regular product with digital elements
CRA product class Regular product (CRA Annex III not applicable)
Conformity procedure Self-assessment - Article 32(1), Regulation (EU) 2024/2847
Supported platforms

Joomla! 6 Joomla! 5 Joomla! 4 (EOL - Not supported) Joomla! 3 (EOL - Not supported) PHP 8.1+

Support period Minimum 5 years from date of first purchase
Regulation Regulation (EU) 2024/2847 of the European Parliament and of the Council

Software Bill of Materials (SBOM)

No third-party libraries bundled with this extension.

Library Version
   

See our vulnerability disclosure policy or report directly via the contact form.

Joomla! 6 Joomla! 5 Joomla! 4 (EOL - Not supported) Joomla! 3 (EOL - Not supported) PHP 8.1+

Security updates Free Available to all licence holders within the support period, including expired subscriptions. Temporary download access (30 days) is activated for all license holders on the day of release.
Bug fixes & improvements Active subscription Available to customers with an active subscription.
New features Active subscription Available to customers with an active subscription.
End-of-life platforms Not available Security updates are not backported to Joomla or PHP versions that have reached end of life. Customers on unsupported platforms are advised to upgrade.

Conformite Europeenne EU Declaration of Conformity - ochProjects - PayPal
Manufacturer OnlineCommunityHub, Netherlands
Product name ochProjects - PayPal
Supported series 1.0.x (minor and patch releases included)
Product description Joomla extension - regular product with digital elements
CRA product class Regular product (CRA Annex III not applicable)
Conformity procedure Self-assessment - Article 32(1), Regulation (EU) 2024/2847
Supported platforms

Joomla! 6 Joomla! 5 Joomla! 4 (EOL - Not supported) Joomla! 3 (EOL - Not supported) PHP 8.1+

Support period Minimum 5 years from date of first purchase
Regulation Regulation (EU) 2024/2847 of the European Parliament and of the Council

Software Bill of Materials (SBOM)

Third-party libraries bundled with this extension. All versions have been verified against known vulnerability databases at the time of release.

Library Version
paypal/paypal-server-sdk 2.4.0
apimatic/core 0.3.18
apimatic/core-interfaces 0.1.5
apimatic/jsonmapper 3.1.7
apimatic/unirest-php 4.0.8
php-jsonpointer/php-jsonpointer v3.0.2
psr/log 3.0.2
symfony/http-foundation v7.4.19
symfony/deprecation-contracts v3.7.1
symfony/polyfill-mbstring v1.38.2

See our vulnerability disclosure policy or report directly via the contact form.

Joomla! 6 Joomla! 5 Joomla! 4 (EOL - Not supported) Joomla! 3 (EOL - Not supported) PHP 8.1+

Security updates Free Available to all licence holders within the support period, including expired subscriptions. Temporary download access (30 days) is activated for all license holders on the day of release.
Bug fixes & improvements Active subscription Available to customers with an active subscription.
New features Active subscription Available to customers with an active subscription.
End-of-life platforms Not available Security updates are not backported to Joomla or PHP versions that have reached end of life. Customers on unsupported platforms are advised to upgrade.

Conformite Europeenne EU Declaration of Conformity - ochSubscriptions - Stripe
Manufacturer OnlineCommunityHub, Netherlands
Product name ochSubscriptions - Stripe
Supported series 5.2.x (minor and patch releases included)
Product description Joomla extension - regular product with digital elements
CRA product class Regular product (CRA Annex III not applicable)
Conformity procedure Self-assessment - Article 32(1), Regulation (EU) 2024/2847
Supported platforms

Joomla! 6 Joomla! 5 Joomla! 4 (EOL - Not supported) Joomla! 3 (EOL - Not supported) PHP 8.1+

Support period Minimum 5 years from date of first purchase
Regulation Regulation (EU) 2024/2847 of the European Parliament and of the Council

Software Bill of Materials (SBOM)

Third-party libraries bundled with this extension. All versions have been verified against known vulnerability databases at the time of release.

Library Version
stripe/stripe-php v21.3.2

See our vulnerability disclosure policy or report directly via the contact form.