Skip to content

Release Notes

Information

Releases use the following numbering system: {major}.{minor}.{incremental}

  • major: Major refactoring or rewrite - make sure you read and test very carefully!
  • minor: Breaking change in some circumstances, or a new feature. Read carefully and make sure you understand the impact of the change.
  • incremental: A "safe" change / improvement. Should always be safe to upgrade.

  • [BC]: Items marked with [BC] indicate a breaking change that will require updates to your code if you are using that code in your extension.

1.3.0 (2026-08-05)

  • Add support for anonymous (not logged in) users. The cart is tracked via a session_id field when there is no logged in contact, instead of contact_id. [BC] CRM_Shoppingcart_BAO_Cart::getCurrentCart() has been renamed to getCurrentOpenCartID() - update any code calling it directly.
  • Cart.Submit API now accepts a contactID param, for submitting an anonymous cart once a contact has been identified/created (eg. via an Afform submit handler).
  • The cart_id filter automatically applied to the "View My Cart" SearchDisplay is now configurable via the new shoppingcart_cart_display_names setting, instead of being hardcoded to View_My_Cart_Table. See docs/setup.md.
  • Fix mapping of related entities (Participant/Event, Membership/MembershipType) so entity_table/entity_id and the Event title are looked up correctly.
  • Don't apply discounts to zero-cost lineitems.
  • Show full error details on the frontend when Cart.Submit fails.

1.2.1 (2026-02-18)

  • Fix setting unit_price/line_total when there is no discount and quantity > 1. This changes CartItem.discounted_amount to CartItem.discounted_line_total and CartItem.discounted_unit_price - you need to update your searches!
  • Increase priority of validate listener (for compatibility with Formbuilder Payments).
  • Improve handling of lineitems.
  • Add CiviDiscount dependency.