Shopping Cart

Local plugins ::: local_shopping_cart
Maintained by it's meDavid Bogner, Wunderbyte LogoWunderbyte GmbH
This is a complete shopping cart system for Moodle. Plugins that want to sell items via the shopping cart have to implement a callback function. But you can use the booking plugin in order to sell courses, events and other items. For payments the Moodle payment gateway is used.

Shopping Cart 1.0.14

Moodle 4.1, 4.2, 4.3, 4.4, 4.5
Released: Tuesday, 12 August 2025, 8:51 PM

Version 1.0.14 (2025072800)

  • Bugfix: Fix collapsibles of new structured shopping cart history list feature.
  • Bugfix: Fixed annual (yearly) sections in new shopping cart history list collapsible sections feature.
  • Bugfix: ERPNext invoice creation

Version 1.0.13 (2025072400)

  • Improvement: Add addressbreaks placeholder to receipt
  • Bugfix: convert strings to floats in receipt

Version 1.0.12 (2025072100)

  • New feature: enable safer pay provider
  • Improvement: user experience during checkout process

Version 1.0.11 (2025071600)

  • Improvement: Termsandcondition clickable for mobile.
  • Bugfix: Newly introduced values of history items (timecreated, timemodified, serviceperiodstart, serviceperiodend) were missing in execute_returns() function of get_history_items webservice.
  • Bugfix: Replace hardcoded strings.
  • Bugfix: Localize country names.
  • Bugfix: Remove addfont roboto.
  • Bugfix: Fix json encoding for ERPnext invoices.

Version 1.0.10 (2025071300)

  • New feature: Structure shopping cart history into dynamic sections (quarterly, semi-annually...), including new settings for collapsible sections in shoppingcarthistory shortcode.
  • New feature: Placeholders for company, total gross, total net and vat.
  • Improvement: New function to get company name.
  • Improvement: Introduce new error type: LOCAL_SHOPPING_CART_CARTPARAM_PAYMENTACCOUNT.
  • Bugfix: Avoid permanent fallback on hardcoded receipt.
  • Bugfix: Don't print error in check_for_ongoing_payment when not in debug mode.
  • Bugfix: Replace hardcoded values in error message.
  • Bugfix: Prevent accessing nonexistent objectkey.
  • Bugfix: Add empty check for serviceperiod.
  • Bugfix: Require to avoid Exception - Warning: Undefined array key "itemname" for unprivileged roles.
  • Bugfix: No paymentaccountid being saved on form submit.

Version 1.0.9 (2025060400)

  • Improvement: Accessibility - Remove alt texts for decorative images in shopping cart - as they should not appear in screen readers.
  • Improvement: Fix ERPNext invoice creation.
  • Bugfix: Address ids & vat number were stored in history but not ledger table.
  • Bugfix: Fix unique identifier check and vatnr field precision.
  • Bugfix: Fix country name transfer to ERPNext.
  • Bugfix: Add context_helper class with fix_page_context function to fix page context for shortcodes.
  • Bugfix: Check for empty vatnumber instead of null to fix test.

Version 1.0.8 (2025052102)

  • Bugfix: Fix faulty upgrade logic.

Version 1.0.7 (2025052101)

  • Improvement: Switch to reusable moodle-plugin-ci.yml workflow.
  • Bugfix: Deal with textarea profile fields in receipt.
  • Bugfix: When payments are ongoing, we avoid mixing up our payables via the check_for_onfoign_payments.

Version 1.0.6 (2025052100)

  • Bugfix: Fix bug when required no identifier being issued properly.
  • Tests: Fix broken tests.

Version 1.0.5 (2025052000)

  • Improvement: Add Tax countrycode to vatid number
  • Improvement: Add company to address, make adress editable
  • Improvement: Change vat number to precision 24
  • Bugfix: Fix task names
  • Bugfix: Billing address needs to be linked after creating new customer
  • Bugfix: Fix settings and remove duplicate code
  • Bugfix: Avoid users seening checkouts of other users
  • Bugfix: Reintroduce check_for_ongoing_payment function on checkout page
  • Bugfix: Fix Moodle Code Checker errors
  • Bugfix: Fix upgrade and install.xml
  • Tests: Temporarily take out failing unit tests

Version 1.0.4 (2025050800)

  • Bugfix: Fix Erp Transmission

Version 1.0.3 (2025050500)

  • Bugfix: Make sure rebookingfee can never be rebooked.
  • Bugfix: Prevent missing context when using format_string in webservice.
  • Bugfix: Adding workaround for grunt stale issue.

Version 1.0.2 (2025040400)

  • Bugfix: Fixed a bug where modal form did not open because description was null.

Version 1.0.1 (2025032700)

  • Bugfix: Fixes for extra receipts in shopping cart history.

Version 1.0.0 (2025032000)

  • Improvement: Use persistent storage to harden the checkout process

Version 0.9.59 (2025031200)

  • Improvement: Make sure that cancelling is not possible for items marked for rebooking.
  • Bugfix: Correctly apply consumption
  • Bugfix: Make sure that missing terms and conditions do not break the checkout process.
  • Bugfix: Also fix additional terms and conditions.
  • Tests: Include time_mock class and first test which makes use of it (rough draft, to be cleaned)

Version 0.9.58 (2025030501)

  • Bugfix: Add new reservations table for persistant cart

Version 0.9.57 (2025030500)

  • Bugfix: Make sure userid is applied correctly for cashier checkout.

Version 0.9.56 (2025030400)

  • Improvement: userinfocard now supports aliases userinfo and userinformation.
  • Improvement: Add payment area to shopping cart.
  • Improvement: Userinfocard shortcode for shopping cart.
  • Bugfix: Global $USER uses id (not userid).
  • Bugfix: Fix get_user_data and test.
  • Bugfix: Fix tests for Moodle 4.2.
  • Bugfix: No button for cancel confirmation if only one item in cart was cancelled.
  • Bugfix: Make sure that delete_item task is only scheduled backwards and cart expiration time is set accordingly.
  • Test: delete redundant test.
  • Test: Next step to fix address tests, but still not working.
  • Test: add mocking of soap client to the tests.

Version 0.9.55 (2025021700)

  • Improvement: use modal factory checkout manager.
  • Improvement: apply taxes if owncountry.
  • Bugfix: Display credit bookings correctly even when tax is enabled.
  • Bugfix: Make sure combination of vat & taxes is applied correctly.
  • Bugfix: Avoid error on empty itemlist.
  • Bugfix: Fix some errors in vat checker.
  • Bugfix: use cartstore cache for saving values for tax & vat calculation.
  • Bugfix: fix option values external classes.
  • Bugfix: Add addresses to ledger in all cases.
  • Bugfix: Add missing params variable when creating invoice.
  • Bugfix: zero price is correctly attached when switching between prepages.
  • Bugfix: Fix reload_history webservice by making properties optional.
  • Test: finalize behat adjustments to the new UI.
  • Test: adjust behat (delays).
  • Test: adjust betah to updated UI of vatnr form.
  • Test: an attempt to adjust shopping_cart_taxes_VAT_addresses.feature to the UI changes.
  • Test: an attempt to fix behat in the shopping_cart_taxes_VAT.feature.

Version 0.9.54 (2025021102)

  • Improvement: strings localized, mandatory icon.
  • Improvement: Clean checkout template.
  • Improvement: deselect address after deleting.
  • Improvement: Show terms and conditions optionally.
  • Improvement: Delete address.
  • Improvement: Refactored class structure.
  • Improvement: Body process implementation.
  • Improvement: Add missing language string for cachedef.
  • Improvement: vatnrchecker get cached data.
  • Improvement: Cache address data.
  • Improvement: vat nr checker update.
  • Improvement: New item setup.
  • Bugfix: No error on empty item_list.
  • Bugfix: Render checkout manager page when not address is there.
  • Bugfix: checkout button, render order.
  • Bugfix: only with vat number setting.
  • Bugfix: Avoid missing userid message when only showing success.
  • Bugfix: Don't use $componentname when it's not defined.
  • Bugfix: Make sure that task delete_item is not duplicated involuntarily.
  • Bugfix: Don't delete items by duplicated task when we extend expiration time.
  • Bugfix: Fix return value for verify purchase.
  • Bugfix: Fix sorting of shopping cart history items on cashier.php.
  • Bugfix: Don't apply usercredit when input was changed in last moment.
  • Bugfix: Show correct items in checkout page.
  • Test: setup test environment.

Version 0.9.53 (2025021100)

  • Bugfix: Show correct items in checkout page.

Version 0.9.52 (2025020700)

  • Improvement: Improvement: Add setting to always return status 1 in verify purchase
  • Improvement: Add credit changes to shopping cart history for individual users #125

Version 0.9.51 (2025012900)

  • Improvement: Show cancel confirmations in shopping cart history. #124

Version 0.9.50 (2025012200)

  • New feature: Cancel confirmations in cash report (#122).
  • Improvement: Allow to increase price MUSI-573 #112
  • Improvement: Enable cashier to change value of downpayment MUSI-590 #113
  • Improvement: Linting (php 7.4 compatibility).
  • Bugfix: Don't use implicit int conversion #121
  • Bugfix: Missing entity name could create a problem.
  • Tests: new behat Scenario: Shopping Cart cashier: use installment and change downpayment (#121)
  • Tests: adjust behat to test downpayment along with discount (#121)
  • Tests: Add new unit test to test purchase and cancelation with discounts (to be extended).
  • Tests: Fix behat and PHPDoc.

Version 0.9.49 (2025011500)

  • Improvement: When no credits, it's 0 instead of empty in invoice.
  • Improvement: Do not hide receipts for cancelled items. #119
  • Bugfix: Fix erpnext.yml.
  • Bugfix: Correctly display time in receipt

Version 0.9.48 (2024122000)

  • Improvement: Add possibility to differentiate between receipts and extra receipts.
  • Improvement: Add default html for extrareceiptshtml (#116).

Version 0.9.47 (2024121800)

  • New feature: Modify expiration of item in cart #114.
  • Improvement: Add minutes & hour to coursestarttime.
  • Bugfix: Fix grunting.

Version 0.9.46 (2024121200)

  • Improvement: add labels to placeholders in checkout success
  • Bugfix: New placeholders semester, semestername, semestershort now really work
  • Improvement: apply daily sums to report table

Version 0.9.45 (2024121100)

  • New feature: Create receipts for ledger records without identifier (for example for credits paid back)
  • Improvement: New placeholder credits
  • Improvement: Add new semester placeholders to invoices (receipts)

Version 0.9.44 (2024120501)

  • Bugfix: Make sure we always get rid of the old costcenter

Version 0.9.43 (2024120500)

  • Improvement: Save address infos correctly to ledger.
  • Improvement: Display location of first session for options without global location.
  • Improvement: Show merchantref and customorderid at the right places. (Wunderbyte-GmbH/moodle-paygw_payone#5)
  • Improvement: Add semester placeholder (Wunderbyte-GmbH/moodle-mod_booking#660).
  • Bugfix: Bugfixes for receipts.
  • Bugfix: Fix lang string nopaymentaccountsdesc.
  • Bugfix: Show address also in credit card checkout.
  • Bugfix: Bugfix when wanting to consume credits with booking fee and non default costcenter #107.
  • Bugfix: Fix SQL for customorderid that broke behat. (Wunderbyte-GmbH/moodle-paygw_payone#5)

Version 0.9.42 (2024112500)

  • Improvement: Add support for Moodle 4.5.
  • Bugfix: Fix lang string.
  • Bugfix: Fix bug with merchantref (#97).
  • Bugfix: Store receipt correctly (#98).
  • Bugfix: No 2x for money icon in navbar.

Version 0.9.41 (2024112000)

  • Improvement: Add dependency for new version 2024112000 of Wunderbyte Table.

Version 0.9.40 (2024111900)

  • Improvement: Add filter for serviceperiod and numbers in itemname to report (Wunderbyte-GmbH/moodle-mod_booking#665).
  • Improvement: Add serviceperiod to download of report (Wunderbyte-GmbH/moodle-mod_booking#665).
  • Improvement: Update item price for in pricecontainer.
  • Improvement: When there is a merchantref, we show it instead of tid #91.
  • Improvement: Aggregate all installment receipts in shopping cart history. #92.
  • Bugfix: Fix for coursestarttime placeholder in invoice.
  • Bugfix: Fix icons of installments (too big on checkout.php).
  • Bugfix: Fix wrong paymentstatus for installments in shopping cart history #94.

Version 0.9.39 (2024110601)

  • Improvement: Add tests for costcenters
  • Bugfix: Correct application of costcenters
  • Bugfix: Return 0 quota if quota is disabled

Version 0.9.38 (2024110600)

  • Bugfix: Cast datatype in receipt
  • Bugfix: Apply given quota to cancel all user function

Version 0.9.37 (2024102500)

  • Improvement: Support coursestarttime in receipt
  • Bugfix: Use separate capability for searching users
  • Bugfix: Don't change buyfor user when we are in a webservice environment

Version 0.9.36 (2024102200)

  • Improvement: Set back buyforuser on every page except cashier.
  • Bugfix: Fix costcenter check with rebookingfee
  • Bugfix: storedpaymentaccountid can not block on empty cart
  • Bugfix: Make sure one can see other users receipt only with cashier capability

Version 0.9.35 (2024101702)

  • Bugfix: Function to check for rebookings not breaking checkout
  • Bugfix: Correctly trigger item_notbought event

Version 0.9.34 (2024101700)

  • Improvement: Disable rebooking without new item and display modal about checkout failures
  • Improvement: New phpunit test class to test credits

Version 0.9.33 (2024100700)

  • Improvement: Server callback verify_purchase improvement, triggers now transaction_complete
  • Bugfix: User Serverside callback only for checking, not actual verification

Version 0.9.32 (2024100400)

  • Bugfix: Make sure that default payment account on new option is actually the default one.
  • Bugfix: Fix image size on checkout page
  • Bugfix: If no rebooking information is stored, we don't allow rebooking.

Version 0.9.31 (2024100200)

  • Bugfix: Enable correct language switching
  • Bugfix: Fix localized navbar cart on page reload

Version 0.9.30 (2024093000)

  • Improvement: Use localized cart
  • Bugfixes: for costcenters and credits

Version 0.9.29 (2024092400)

  • Bugfix: Refresh history after purchase in cashier.php
  • Bugfix: Display credits for customers in shoppingcarthistory

Version 0.9.28 (2024092000)

  • Improvement: Make sure history list is correctly sorted
  • Bugfix: Correct handling of used credits in multi ccostcenter environment.
  • Bugfix: correctly attribute Credit after rebooking

Version 0.9.27 (2024091900)

  • Improvement: Fallback on empty costcenter
  • Bugfix: Costcenterlabel
  • Bugfix: Add missing variable
  • Bugfix: Make sure costcenter also works with single costcenter

Version 0.9.26 (2024091800)

  • Bugfix: Don't show payback buttons to normal users

Version 0.9.25 (2024091701)

  • Bugfix: Correct paymentstatus for installmentpayments
  • Bugfix: Switch between different costcenters led to wrong credit usage.

Version 0.9.24 (2024091700)

  • Improvement: Add description about coursestart used for installments
  • Bugfix: Pay back via credit manager works again. Payback is streamlined.
  • Bugfix: Fix bug when no costcenters are used
  • Tests: Adapt behat tests to new creditmanager
  • Tests: Fix behat test for new creditmanager functionality

Version 0.9.23 (2024091600)

  • Improvement: Add refund with cash and refund via transfer buttons to costcenter (sytling still needed)
  • Bugfix: Handling for empty costcenter
  • Bugfix: Number format for the credit on the cachier page

Version 0.9.22 (2024091300)

  • Improvement: Add example to costcenter strings
  • Bugfix: Use credits of right costcenter

Version 0.9.21 (2024091200)

  • Bugfix: handle multiple costcenters

Version 0.9.20 (2024091000)

  • Bugfix: As the item at this place might come from the ledger, we need a fallback to retrieve the serviceperiod.

Version 0.9.19 (2024090600)

  • Improvement: Add verify purchase webservice

Version 0.9.18 (2024090200)

  • Improvement: use dynamic form for user selector
  • Bugfix: syntax
  • Bugfix: reload history has now optional values
  • Bugfix: Small bugfixes in behat tests
  • Linting

Version 0.9.17 (2024082900)

  • Feature: Show costcenters including translations
  • GH-572 Add settings for costcenters
  • GH-572 save costcenters for credits

Versiion 0.9.16 (2024082600)

  • Bugfix: Don't create invoices when they are not really turned on
  • Bugfix: Protect js agains missing Dom elements
  • GitHub: fix mustache template

Version 0.9.15 (2024082000)

  • GitHub: linting & adjustments

Version 0.9.14 (2024080600)

  • Improvement: Add new field for costcenter in credits
  • Improvement: Enable events for booking rules
  • Improvement: Add support for Moodle 4.4

Version 0.9.13 (2024070600)

  • Bugfix: Add installmentdata to receipt

Version 0.9.12 (2024070600)

  • Improvement: Enable events for plugin mod_booking rules function
  • Improvement: Sort strings in alphabetical order to meet moodle 4.4 code style regulations

Version 0.9.11 (2024072400)

  • Bugfix: Safe shopping_cart history when no vatntnumber provided

Version 0.9.10 (2024071900)

  • Bugfix: Avoid double credit reduction in some cases
  • Bugfix: Default values for missing keys in webservice
  • Bugfix: Remove condition leading to incorrect userid

Version 0.9.9 (2024071800)

  • Improvement: enable filtered text display in additionalcashiersection
  • Improvement: Only show rebooking item if it's the same different costcenter
  • Improvement: Only accept rebooking items with with the same costcenter like in the cart
  • Improvement: Ajax reload for Shopping Cart history
  • Improvement: Enable variable bookingfees depending on costcenter
  • Bugfix: Fix different costcenter blocker

Version 0.9.8 (2024070400)

  • Improvement: Add more automatic tests

Version 0.9.7 (2024062800)

  • Feature: Add addresses for correct tax handling
  • Feature: Add support for automatic Invoice creation via ERP Next
  • Feature: Add VAt nr Checker

Version 0.9.6 (2024061200)

  • Bugfix: Small fix concerning paymentaccountid.

Version 0.9.5 (2024061000)

  • Improvement: Include billing and shipping adress.
  • Improvement: Setting to use prices as gross or net.
  • Improvement: Include tax categories and VAT checker.
  • Improvement: Add possibility to change payment accounts for individual items.
  • Bugfix: Price calculations for rebookings.
  • Bugfix: Price calculations for subbookings.

Version 0.9.3 (2024052101)

  • Bugfix: Fix incomplete ledger records.

Version 0.9.0 (2024052101)

  • Bugfixes: Add creation date to ledger.
  • Bugfixes: Installment checkbox.
  • Bugfixes: Correct price calculation.
  • Bugfixes: Duplicated treatment for rebooking.

Version 0.8.9 (2024051501)

  • Improvement: Add rebookingfee.
  • Bugfixes: A couple of rebooking bugs.

Version 0.8.8 (2024051500)

  • Improvement: Add Installments.
  • Bugfix: Missing ledger.

Version 0.8.7 (2024050800)

  • Bugfix: Show expirationdate correctly.
  • Bugfix: Make sure we correctly replace placeholter numbers.

Version 0.8.6 (2024043000)

  • New Feature: Add placeholder cashandcards for sum of non-online payments to daily sum.

Version 0.8.5 (2024042600)

  • New feature: Unfinished new feature for installment payments (do not use yet!). It has been added for testing purposes.
  • Improvement: Big design change - we switched to new price modifiers to manipulate prices if needed.
  • Improvement: Nice styling of installments page.
  • Improvement: Better styling of testing page which has been renamed to demo.php.
  • Improvement: Lots of new tests and improvements to overall code quality.

Version 0.8.4 (2024041000)

  • Improvement: Users in cashier can now be searched by ID also.
  • Improvement: Allow search for full user ID on cashier's page.

Version 0.8.3 (2024040200)

  • New feature: Define your own HTML template for the daily sums PDF download.
  • Improvement: Add function to check allowedcancel without db call.
  • Improvement: Add possibility to fetch last historyitem information when no historyid is given.
  • Improvement: Make add to cart button accessible via TAB.

Version 0.8.2 (2024032500)

  • Improvement: Keep itemid in ledger on rebooking #65.

Version 0.8.1 (2024032000)

  • Improvement: Fix Filter for new wunderbyte table api.
  • Improvement: Add new schistorid column to ledger.
  • Bugfix: Avoid "Limit" for oracle support.
  • Bugfix: Fix for #63.
  • Bugfix: Second fix for #63 - we need to get currency from config!
  • Bugfix: Make sure we have booking fee when deleting rebooking item.

Version 0.8.0 (2024031800)

  • New feature: New setting to limit the cash report download file to a certain number of rows.
  • Improvement: don't add booking fee on items with price 0.

Version 0.7.9 (2024031401)

  • Improvement: Show full terms and conditions.
  • Improvement: Better styling of checkout page.

Version 0.7.8 (2024031400)

  • New feature: Booked items can now be marked for rebooking and be rebooked into other items. This feature can be turned on by activating the setting 'local_shopping_cart | allowrebooking'.
  • Improvement: Add missing language strings.
  • Improvement: Better strings for free payments (when total price is 0).
  • Bugfix: Add missing cache definitions.
  • Bugfix: Fix some styles for images and icons.

Version 0.7.7 (2024030600)

  • Bugfix: Don't fail on space in img url for item picture.
  • Bugfix: Set service period on null for booking option without date.

Version 0.7.6 (2024022300)

  • New Feature: Rebooking credit - If you activate rebooking credit, a user will get refunded the cancelation and booking fee if (s)he cancels an item within the cancelation period and books another item.
  • Improvement: Add "Item not bought" event when component feedback fails.
  • Improvement: deliver_order on successfull payment if it failed for some reason.
  • Improvement: Check Feedback with success.
  • Bugfix: Function allow_add_item_to_cart needs to respect availability conditions.

Version 0.7.5 (2024021900)

  • New feature: Add possibility to custom user profile fields to receipt.
  • Improvement: Use "usecredit" state even when cache was purged.
  • Bugfix: Fix install.xml lines which were not compatible with upgrade.php.
  • Bugfix: When cancelling from cashier, we want to stay on page for selected user.
  • Bugfix: New wunderbyte table doesn't allow constructor.

Version 0.7.4 (2024020900)

  • Improvement: Slightly smaller addtocart button.
  • Improvement: Show a modal when trying to book a fully booked item. Also reload the page after pressing the OK button.
  • Bugfix: Fix cost center check and reinit() cart area when trying to book an item that is already in cart.

Version 0.7.3 (2024013000)

  • Bugfix: Make sure credit is always a float value and no string.

Version 0.7.2 (2024012400)

  • New feature: Add PDF download for daily sums, total sum and possibility to turn off daily sums and sums of current cashier.

Version 0.7.1 (2024012200)

  • Improvement: Localization, better description and default HTML for booking receipt.

Version 0.7.0 (2024011900)

  • Bugfix: Add setType to form.
  • Bugfix: Avoid error because of missing param when cart is full.
  • Improvement: Add placeholders for location and dayofweektime to receipt.
  • Improvement: Better feedback when "isallowed" callback returns false.

Version 0.6.10 (2024011600)

  • Bugfix: Fix error when item is already in cart.

Version 0.6.9 (2024011500)

  • Improvement: New interface for transaction_complete and check if payment classes implement it.
  • Bugfix: Fix call of transaction_complete so that it works with payunity, mpay24 and unigraz.
  • Bugfix: When cashier cancels, the items of the selected user should be removed from cart.

Version 0.6.8 (2024011000)

  • Improvement: Empty cart after cashier cancels, layout improvements and new discount icon.
  • Improvement: Improve Param types in external services, add context validation.
  • Improvement: More distinct css.
  • Improvement: Add privacy class #58.
  • Improvement: Add setting to decide wether to delete ledger on deletion request.
  • Improvement: Accessibility: Add aria-name for shopping cart icon.
  • Improvement: Rename some ids for better code quality.
  • Improvement: Add debugging modes to cash report.
  • Bugfix: Fix a bug where we returned success instead of error.
  • Bugfix: Fix css classes.

Version 0.6.7 (2023120500)

  • Improvement: Added support for Moodle 4.3 and PHP 8.2.
  • Bugfix: All plugin constants must start with uppercase frankenstyle prefix.

Version 0.6.6 (2023112200)

  • New feature: Create receipt PDF directly from shopping cart history list.
  • Improvement: Better receipts.
  • Improvement: Better string for internal annotation when booking option is cancelled.
  • Bugfix: Reintroduce lost textarea for receipthtml.

Version 0.6.5 (2023111300)

  • New feature: Add payment type to manual rebookings (will be added to annotation).
  • Improvement: On removing an item from the cart, we reload wb tables, if there are any.
  • Improvement: Code quality: Always use int and bool - never integer or boolean.
  • Improvement: We hide the checkout button on checkout.php if the cart is empty.
  • Bugfix: Fix namespaces.
  • Bugfix: Fix keys that were wrongly required in webservices.
  • Bugfix: Fix selector for items in cart, so disabling of addtocart button works correctly.

Version 0.6.4 (2023110200)

  • New feature: Introduce a new setting to avoid booking of items with different cost centers.

Version 0.6.3 (2023102000)

  • Improvement: Lots of new behat tests, fixes for GitHub actions etc.

Version 0.6.2 (2023101300)

  • Bugfix: Fix ERPNext invoice creation.
  • Bugfix: Decide if we want to use credit when cached value already got lost.
  • Bugfix: We cannot use singleton service in shopping cart. Use core_user::get_user instead.

Version 0.6.1 (2023100900)

  • New feature: Credits manager now supports individual credits corrections.
  • Improvement: Add Event to see when new entries are created in shopping cart history (and a payment process is started).
  • Bugfix: Fix FontAwesome6 issues.
  • Bugfix: $cachedrawdata was always set to true, so delete_item_task was never created!
  • Bugfix: Fix bugs with itemid 0 ledger records (cash transfer, cash transaction ...).
  • Bugfix: Fix linting errors and refactor behat tests.
  • Bugfix: Fix icons in cashier for Moodle 4.2.

Version 0.6.0 (2023092700)

  • New feature: Add new button to pay back credits via bank transfer.
  • New feature: Credits manager to add or pay back individual amounts of credits.
  • Improvement: Don't automatically hide notifications.
  • Bugfix: Where exception in history via allowed to cancel to blocked booking.
  • Bugfix: Make report pageable to allow very big requests.
  • Bugfix: Avoid double payout of credits during very heavy server load.
  • Bugfix: Make sure the cart does not expire during checkout process.
  • Bugfix: Reloading an item a second time should not set back expiration time.
  • Bugfix: We don't want to delete booking fee individually from cart, only in combination with other items.
  • Bugfix: Prevent duplicates in shopping cart history.
  • Bugfix: Make sure we have the fee before checkout.
  • Bugfix: Add FontAwesome 6 compatibility for Moodle 4.2.
  • Bugfix: Remove duplicated date in history_item.

Version 0.5.10 (2023091800)

  • Bugfix: By wrong browser date delete all items could be triggered in permanence.

Version 0.5.9 (2023091501)

  • Bugfix: Add rounding on cancel credits.

Version 0.5.8 (2023091500)

  • Test: Fix 2 scenarios (issue with notifications interception).
  • Test: Allow test items to be canceled.
  • Bugfix: Moodle exception: Exception - Class "local_shopping_cart\shopping_cart\context_system" not found.

Version 0.5.7 (2023091401)

  • Bugfix: Add missing implementation of allowed_to_cancel in service provider of shopping cart.

Version 0.5.6 (2023091400)

  • New feature: Create invoices via remote platform.
  • New feature: Do not allow cancellation of items if the items themselves do not allow cancellation (via callback).
  • Bugfix: Fix bugs in cash report.
  • Bugfix: Make sure we have the buyforuserid.
  • Bugfix: Cashier gets normal credit for her own cancelled bookings.
  • Bugfix: Make sure to throw an error if the identifier is not in db or not correct.

Version 0.5.5 (2023090600)

New features: * New feature: Transfer cash from one cashier to another cashier. * New feature: New setting to calculate consumation with fixed percentage and setting to apply only after service period start.

Improvements: * Improvement: If setting 'cashreportshowcustomorderid' is active, then we also show the custom order ID in shopping cart history.

Bugfixes: * Bugfix: Fix broken behat tests for green Github actions. * Bugfix: Schistorycache has to be casted to array.

Version 0.5.4 (2023083000)

New features: * New feature: Add net/gross settings for item prices.

Improvements: * Improvement: Better styling for terms and conditions.

Bugfixes: * Bugfix: When using more than one gateway itemid (identifier) of openorders entry is not unique. So fix that in report SQL. * Bugfix: When canceluntil date was missing, users could not book for themselves - also fixed strings. * Bugfix: Fix cashing and identifier errors on checkout page.

Version 0.5.3 (2023082300)

New features: * New feature: Introduce a new setting to show custom orderid instead of gateway orderid.

Improvements: * Improvement: Remove unnecessary event call of item_deleted at the wrong place.

Bugfixes: * Bugfix: Fix bookingfee check if cashier books for other user. * Bugfix: Daily sums need to sum up prices from local_shopping_cart_ledger (not local_shopping_cart_history).

Version 0.5.2 (2023081100)

New features: * New feature: Shopping cart now fully supports Mpay24 payment gateway.

Bugfixes: * Bugfix: Bugfix: sql_cast_to_char is only supported from Moodle 4.1 onwards. * Bugfix: Fix grunting js files. * Bugfix: Bugfix: Fix broken cash report SQL. * Bugfix: sql_cast_to_char is not supported for the first version of Moodle 4.1 so use ">" instead of ">=". * Bugfix: Missing cache definitions.

Tests and code quality: * Code quality: Lots of tiny improvements for GitHub actions. * Code quality: Added small adjustments for Moodle 4.2 compatibility. * Tests: New classes have been added in order to create payment gateway instances directly in DB for tests. * Tests: Refactoring of all behat tests to use new generator class which creates payment gateway instance in DB.

Version 0.5.1 (2023071200)

Improvements: * Improvement: Improvement: Add ID to cashier's user selector and some layout improvements.

Bugfixes: * Bugfix: 2-digit price format lost on page reload / checkout navigation. * Bugfix: Prevent selection of deleted users by cashier.

Tests: * Behat: Adjusting shopping_cart test (a) settings separated for better optimization; (b) to use 2-digits prices. * Behat: fix: replace "Choose" with "Continue". * Adjust github workflow to Moodle 401 (402) versions only.

Version 0.5.0 (2023062300)

Bugfixes: * Bugfix: Introduce new functions to convert prices to strings with 2 decimals right before rendering. * Bugfix: Missing isset check for credits. * Bugfix: Fix errors when payment gateway is missing or not supported and show a warning message if so. * Bugfix: Mixed DE/EN strings.

Version 0.4.9 (2023062200)

Improvements: * Improvement: New money icon to directly access cashier's desk from navigation. * Improvement: New config setting to activate manual rebooking at cashier's desk. * Improvement: Add a check to prevent duplicates in ledger (cash report) table. * Improvement: Switch cash report to wunderbyte table. * Improvement: Add local_wunderbyte_table as dependency to the moodle-plugin-ci.yml. * Improvement: Add gateway to fulltextsearch. * Improvement: Force 2 decimal digits always visible in prices.

Bugfixes: * Bugfix: Use new globalcurrency config setting instead of hardcoded 'EUR'. * Bugfix: Correct way of manual rebooking. * Bugfix: Add dependency for wunderbyte table. * Bugfix: Fixes for PHP 8.1 compatibility. * Bugfix: CSS - fix image size on cashier.php for cash payment confirmation.

Version 0.4.8 (2023061603)

New features: * New feature: New feature to allow manual rebooking for cashier (with annotation or order id).

Improvements: * Improvement: Fix cashier typos. * Improvement: New behat tests and fixes for Github actions. * Improvement: Mustache - fix JSON according to code changes. * Improvement: GitHub - add 3 templates to ignore list

Bugfixes: * Bugfix: Remove call of function error_occured_for_identifier as it leads to missing items in deliver_order function of service_provider.php.

Version 0.4.7 (2023060900)

Improvements: * Improvement: Correctly store partly used credits in cash report (ledger table). * Improvement: Show cash report above history on cashier page. * Improvement: Introduce new global currency config setting.

Bugfixes: * Bugfix: Do not write into credits table when credits are not used. * Bugfix: Ledger table may never be updated, prevent duplicates. * Bugfix: Commented out "flexcashpayment" as it was not implemented anyways. * Bugfix: Fix sql to check for open orders. * Bugfix: Avoid wasting identifiers in success routine of checkout.php.

Version 0.4.6 (2023052400)

Bugfixes: * Bugfix: Avoid duplicated entries in cash report.

Version 0.4.5 (2023052400)

Bugfixes: * Bugfix: Where cashier lost userid in combination with booking fee

Version 0.4.3 (2023052200)

Improvements: * Improvement: Add cancel without callback on component * Improvement: Add unique identifier table for better configurability of cart identifier

Version 0.4.2 (2023040600)

Bugfixes: * Bugfix: ID was not unique in SQL because there can be multiple orderids for the same item. * Bugfix: Only add event listener to cashout button if button is present. * Bugfix: Add missing inserts to ledger table when shopping cart history gets updated. * Bugfix: Add uniqueid to SQL in report.php so that we get no duplicates. * Bugfix: Correctly update ledger table (prices only if successful). * Bugfix: Fix a bug were credits were deduced twice which caused errors with balance checks.

Improvements: * Improvement: Add missing modulename string. * Improvement: Add class to cash report button. * Improvement: Improved the way we retrieve balance and added validations. * Improvement: Added area to log message of delete_item_task.

Version 0.4.1 (2023032100)

Bugfixes: * Bugfix: In shopping cart popover we always want black text even if navbar text color is set to white.

Version 0.4.0 (2023032000)

New features: * New feature: Booking fee can be activated either for each purchase process or only once per user.

Version 0.3.9 (2023031300)

Improvements: * Don't react on blocked item clicks. * Disabled cart items can't be clicked to unload item anymore. * No propagation stop on click on cart item.

Version 0.3.8 (2023022000)

Improvements: * First steps to support subbookings (in combination with Booking plugin). * Behat tests and improved code style. * Get rid of unnecessary functions. * Added "nojs" (no JavaScript) functionality to template. * Add unload item by click on disabled item. * Use standard moodle autocomplete to search users. * Layout: Add margin to cashout card. * Add possibility to unload simultaneously connected cart items via service_provider.

Bugfixes: * Avoid an error when user was not logged in. * Fix error: when shortcode is used to call this function when not logged in. * Several small fixes. * Fix legacy problem of non area adhoc tasks. * Fix js for shopping cart. * Fix error which sometimes interrupted ad-hock task/delete_item_task.php. * Fix name in services.php get_quota_consumed.

Version 0.3.7 (2023011200)

Improvements: * Lots of bugfixes. * Improved tax support. * Better code quality. * Added cashout functionality. * Behat tests.

Version 0.3.6 (2022121500)

Improvements: * Add area functionality for more than one item from every component * Add function to calculate paid back price via consumption

Version 0.3.5 (2022120500)

Improvements: * Add index for local_shopping_cart_credits for better performance. * Better string for submit button ("choose"). * Code quality (linting).

Version 0.3.4 (2022112900)

New features: * Added tax support.

Version 0.3.3 (2022112300)

Improvements: * Small design improvements and linting.

Version 0.3.2 (2022111600)

Improvements: * More robust js working

Version 0.3.1 (2022103100)

Improvements: * Speed Improvements * Add and fix behat tests

Version 0.2.4 (2022081400)

Improvements: * Add discount functionality

Version information

Version build number
2025072800
Version release name
1.0.14
Maturity
Stable version
MD5 Sum
cb700afad5189b572dc3d222b22c9754
Supported software
Moodle 4.1, Moodle 4.2, Moodle 4.3, Moodle 4.4, Moodle 4.5
  • Latest release for Moodle 4.1
  • Latest release for Moodle 4.2
  • Latest release for Moodle 4.3
  • Latest release for Moodle 4.4
  • Latest release for Moodle 4.5

Version control information

Version control system (VCS)
GIT
VCS repository URL
VCS tag
v1.0.14-stable

Default installation instructions for plugins of the type Local plugins

  1. Make sure you have all the required versions.
  2. Download and unpack the module.
  3. Place the folder in the "local" subdirectory.
  4. Visit http://yoursite.com/admin to finish the installation.