Change Log

Version 7.0.0

Release August 22, 2022

  • ADDED: Adds support for PHP8 #373.
  • ADDED: Adds Void support to Stripe gateway #345.
  • ADDED: Adds PayPal Standard support with PayPal Credit, Credit Card, Venmo, Mybank, Bancontact, and EPS #387, #443.
  • ADDED: Adds PayPal Advanced support #442.
  • ADDED: Validation support to CartThrob Plugin System #458.
  • UPDATED: Bumps PHP requirement to 8.0 #403.
  • UPDATED: Fixes cart->info() behavior in PHP 8.1 #465.
  • UPDATED: Refactors Control Panel to native EE #364.
  • UPDATED: Moves Model directory into main source directory #425.
  • UPDATED: Moves beta settings to appropriate settings screens #426.
  • UPDATED: Moves Cartthrob_payment_gateway to CartThrob\PaymentGateways\AbstractPaymentGateway.
  • UPDATED: Updates Stripe gateway to use value of number_format_defaults_currency_code. Defaults to usd #454.
  • UPDATED: Updates cp_custom_menu to return the CartThrob sidebar service menu, allowing site admins to expose the CartThrob menu through ExpressionEngine's menu service #441.
  • UPDATED: Refactors cp_menu_array hook, allowing add-on developers to inject menu items into CartThrob's menu system #140.
  • UPDATED: Refactors payment gateway view code into EE views #478.
  • UPDATED: Updates Seed support for PHP8 and Seeder 1.3 #494.
  • REMOVES: Removes cartthrob/third_party path in favor of Plugin Service #422.
  • REMOVES: Removes previously deprecated methods.
  • REMOVES: Removes PayPal Express #387.
  • FIXED: Adds logger load #418.
  • FIXED: Issue where CarthThrob does not use values defined in the config file #455.

Version 6.3.0

Release February 24, 2022

  • ADDED: Added getSetting method to the PluginService for plugins to easily retrieve settings. Resolves issue with updated live rate plugins #375.
  • ADDED: Base emailService to improve support for sending notification.
  • ADDED: Moved Garbage Collection to a new GarbageCollectionSevice and a cli command to run garbage collection. Action-based garbage collection will be removed in a future version. #332.
  • UPDATED: Improved third-party tax plugin loading #371.
  • UPDATED: Error retrieving tax values from third-party tax plugins using new PluginService #380.
  • UPDATED: Added gateway, last four, credit card type, and transaction id to order seeding data when using Seeder #407.
  • FIXED: Resolved Tokenizer error when using gateway #393.
  • FIXED: Resolved xss_clean deprecation notices in order manager #382.
  • FIXED: Resolved issue where orders are always marked as "refunded" in the Order Manager when using SagePay #398.
  • FIXED: Resolved Order Manager Redirect loop in Product Report #405.

Version 6.2.0

Release January 05, 2022

  • ADDED: cartthrob:version console command for displaying CartThrob version.
  • ADDED: Stripe Payment Element Gateway with Apple Pay and Google Pay support.
  • ADDED: CartThrob Payment Gateway sample wiki and repo on Github.
  • ADDED: RefundForm method to Payment Gateways for injecting fields into the Order Manager Refund form from payment gateways.
  • ADDED: cartthrob_order_created extension hook.
  • ADDED: cartthrob_price_simple fieldtype now implements ColumnInterface for data display within EE's Entry Manager.
  • UPDATED: Allows support for multiple "to" email addresses on order status changed emails.
  • UPDATED: Improved refund support with Stripe, allowing the specification of a refund reason.
  • UPDATED: Moved Order Manager refund form to shared form view.
  • FIXED: Removed duplicate save notification on admin payment gateway screens.

Version 6.1.0

Release December 13, 2021

  • ADDED: Stripe gateway now captures credit card last four and card type.
  • ADDED: Refund processing hooks for cartthrob_on_refund_failure, cartthrob_on_pre_refund_attempt, cartthrob_on_post_refund_attempt.
  • ADDED: EE Pro Dashboard Widgets for recent orders and order totals.
  • ADDED: OrderTrait with generateOrderNumber and generateOrderTitle methods.
  • ADDED: Ability to register Tax Plugins with the PluginService.
  • ADDED: Seeder support for Order, Product, and Vault Seeds.
  • UPDATED: Removed ender, bean, bonzo, and qwery from cartthrob-tokenizer.js.
  • UPDATED: Discount support in Mollie gateway to submit discounts as separate line items.
  • UPDATED: cartthrob_cart.cart column is now longtext.
  • UPDATED: Improved method for determining oldest super admin. Used to assign author to orders where author is not present.
  • UPDATED: Upgraded Guzzle to 7.0 and Omnipay to 3.1.0.
  • UPDATED: Improves refund error handling from CartThrob Order Manager.
  • UPDATED: cartthrob_tax.percent column to a constraint of 6.
  • FIXED: Improved MySQL ONLY_FULL_GROUP_BY in Order Manager Discount Report.
  • FIXED: no_results tag not working in {exp:cartthrob:submitted_order_info}.
  • FIXED: radio option formatting in control panel.
  • FIXED: Trash icons.
  • FIXED: CartThrob installer was not assigning member roles to newly created templates.
  • FIXED: Notice when using get_shipping_options tag with shipping method that returns a flat fee. Tag now correctly renders no output without a notice.
  • FIXED: Incorrect setting of coupon_codes_array in Order Model.
  • FIXED: Notice in checkout_form tag when formExtra is unset.
  • FIXED: Unset variable error on bulk order update in Order Manager.

Version 6.0.2

Release May 28, 2021

  • ADDED: setRefunded() method to TransactionState for setting an order state to refunded in a payment plugin.
  • FIXED: Issue with ee()->order_model->get_order_from_entry incorrectly setting title and invoice number.
  • FIXED: Error obtaining oldest super admin id upon initial guest checkout in cases where default_member_id is not set.
  • FIXED: Update Order button on Order Manager orders screen no longer displays by default. Button only appears when orders are selected for updating.
  • FIXED: Undefined $formExtra warning during checkout.
  • FIXED: Removing debug code from print_invoice method.
  • FIXED: Double slash bug in AbstractModel when using CartThrob Subscriptions.
  • FIXED: Payment capture issue in the Order Manager that prevented admins from manually capturing payments from the Order Detail view of the Order Manager.
  • FIXED: Error when creating subscriptions with no end date when MySQL is in strict mode.
  • FIXED: Country display in Order Detail view of Order Manager. Country display now respects orders_convert_country_code config.
  • FIXED: Error preventing checkout return from PayPal Express.
  • DEPRECATED: Mbr_addon_builder->channel_dropdown_js(). Will be removed in CartThrob 7.

Version 6.0.1

Release May 7, 2021

  • ADDED: Ability to set Stripe Style Object from CartThrob's Payment Gateway admin.
  • FIXED: Issue with full billing address display in the Order Detail view of Order Manager.
  • FIXED: Updated download_file_form to support role_id instead of group_id. Now accepts multiple role_ids.
  • FIXED: Updated module admin permission check for ExpressionEngine 6.
  • FIXED: Updates to CartThrob control panel for ExpressionEngine 6 support.

Version 6.0.0

Release April 27, 2021

Beta release of CartThrob 6 for ExpressionEngine 6.

ADDED: Support for ExpressionEngine 6 UPDATED: Address formatting on Order Manager Order view.

Version 5.5.4

Release December 13, 2021

  • UPDATED: Removed ender, bean, bonzo, and qwery from cartthrob-tokenizer.js.
  • UPDATED: Discount support in Mollie gateway to submit discounts as separate line items.
  • FIXED: no_results tag not working in {exp:cartthrob:submitted_order_info}

Version 5.5.3

Release May 28, 2021

  • ADDED: setRefunded() method to TransactionState for setting an order state to refunded in a payment plugin.
  • FIXED: Update Order button on Order Manager orders screen no longer displays by default. Button only appears when orders are selected for updating.
  • FIXED: Issue with ee()->order_model->get_order_from_entry incorrectly setting title and invoice number.
  • FIXED: Undefined $formExtra warning during checkout.
  • FIXED: Removing debug code from print_invoice method.
  • FIXED: Payment capture issue in the Order Manager that prevented admins from manually capturing payments from the Order Detail view of the Order Manager.
  • FIXED: Error when creating subscriptions with no end date when MySQL is in strict mode.
  • FIXED: Country display in Order Detail view of Order Manager. Country display now respects orders_convert_country_code config.
  • FIXED: Error preventing checkout return from PayPal Express.

Version 5.5.2

Release May 7, 2021

  • ADDED: Ability to set Stripe Style Object from CartThrob's Payment Gateway admin.
  • FIXED: Issue with full billing address display in Order Detail view of Order Manager.

Version 5.5.1

Release April 26, 2021

  • FIXED: If CP session type is set to have the Session ID the links in the order_manager edit screen were broken.
  • FIXED: Error in Order Manager discount report when no discounts exist.
  • FIXED: Inventory reduction error where inventory was not properly reduced when checking out with multiple items in the cart.

Version 5.5.0

Release April 20, 2021

LTS release for ExpressionEngine 5 with support through April 20, 2022.

  • ADDED: Subscriptions support to CartThrob 5.5. Subscriptions requires the CartThrob Subscriptions add-on.
  • ADDED: New CartThrob\Model\AbstractModel model.
  • ADDED: New CartThrob\Model\CartthrobStatus model.
  • ADDED: New CartThrob\Model\NotificationEvent model.
  • ADDED: New CartThrob\Model\Permission model.
  • ADDED: New CartThrob\Model\PermissionItem model.
  • ADDED: New CartThrob\Model\Setting model.
  • ADDED: New CartThrob\Model\Tax model.
  • ADDED: New CartThrob\Model\Vault model.
  • ADDED: New CartThrob\Services\Order\OrderService service.
  • ADDED: New Cartthrob_config class to CartThrob core.
  • ADDED: New Discount Report to Order Manager.
  • ADDED: New shipping_phone field to order and member fields.
  • ADDED: Ability to save card_type to orders when card_type is supported by the gateway in use.
  • ADDED: Installer now adds order_shipping_phone, order_shipping_note, order_tracking_number, and order_refund_id fields when running channel installer.
  • ADDED: Installer now adds CartThrob Order Statuses when running channel installer.
  • ADDED: Ability to set Stripe Icon style in Stripe Payment Gateway.
  • ADDED: Ability to hide Postal Code in Stripe Payment Gateway.
  • ADDED: Ability to hide Stripe Icon in Stripe Payment Gateway.
  • ADDED: Ability to sort exp:cartthrob:countries using the orderby parameter.
  • ADDED: Ability to sort exp:cartthrob:country_select using the orderby parameter.
  • UPDATED: Code formatting for PSR-12.
  • UPDATED: CartThrob add-on namespace to CartThrob.
  • UPDATED: Stripe Version to 2020-08-27 from 2019-02-11.
  • UPDATED: set_config_customer_info method in CartThrob core to use EE's Member Model instead of raw queries.
  • UPDATED: Refactor of entire order manager interface to better align with EE5 UI and code standards.
  • UPDATED: Payment gateway loading for performance.
  • UPDATED: Installer now creates order_subtotal_plus_tax, order_shipping_plus_tax as cartthrob_price_simple fields instead of text fields when running channel installer.
  • UPDATED: Instances of ee()->get_settings to use ee('cartthrob:SettingsService') instead.
  • DEPRECATED: ee()->cart_model->create_cart(). Use ee()->cart_model->create() instead.
  • DEPRECATED: ee()->cart_model->delete_cart(). Use ee()->cart_model->delete() instead.
  • DEPRECATED: ee()->cart_model->read_cart(). Use ee()->cart_model->fetch() instead.
  • DEPRECATED: ee()->cart_model->update_cart(). Use ee()->cart_model->update_cart() instead.
  • DEPRECATED: ee()->coupon_code_model->process_coupon_codes(). Use ee()->coupon_code_model->process() instead.
  • DEPRECATED: ee()->coupon_code_model->validate_coupon_code(). Use ee()->coupon_code_model->validate() instead.
  • DEPRECATED: ee()->coupon_code_model->get_coupon_code_data(). Use ee()->coupon_code_model->get() instead.
  • DEPRECATED: ee()->cartthrob_members_model->create_member(). Use ee()->cartthrob_members_model->create() instead.
  • DEPRECATED: ee()->cartthrob_members_model->update_member(). Use ee()->cartthrob_members_model->update() instead.
  • DEPRECATED: ee()->cartthrob_members_model->validate_email_address(). Use ee()->cartthrob_members_model->validateEmailAddress() instead.
  • DEPRECATED: ee()->cartthrob_members_model->validate_member(). Use ee()->cartthrob_members_model->validate() instead.
  • DEPRECATED: ee()->cartthrob_emails->send_email(). Use ee()->cartthrob_emails->sendEmail() instead.
  • DEPRECATED: ee()->cartthrob_emails->log_email(). Use ee()->cartthrob_emails->log() instead.
  • DEPRECATED: ee()->order_model->can_update_order(). Use ee()->order_model->canUpdateOrder() instead.
  • DEPRECATED: ee()->order_model->create_order(). Use ee()->order_model->createOrder() instead.
  • DEPRECATED: ee()->order_model->get_member_last_order(). Use ee()->order_model->getMemberLastOrder() instead.
  • DEPRECATED: ee()->order_model->get_member_orders(). Use ee()->order_model->getMemberOrders() instead.
  • DEPRECATED: ee()->order_model->get_order_error_message(). Use ee()->order_model->getOrderErrorMessage() instead.
  • DEPRECATED: ee()->order_model->get_order(). Use ee()->order_model->getOrder() instead.
  • DEPRECATED: ee()->order_model->get_order_items(). Use ee()->order_model->getOrderItems() instead.
  • DEPRECATED: ee()->order_model->get_order_status(). Use ee()->order_model->getOrderStatus() instead.
  • DEPRECATED: ee()->order_model->get_order_cart_id(). Use ee()->order_model->getOrderStatus() instead.
  • DEPRECATED: ee()->order_model->update_order(). Use ee()->order_model->updateOrder() instead.
  • DEPRECATED: ee()->order_model->update_order_items(). Use ee()->order_model->updateOrderItems() instead.
  • DEPRECATED: ee()->order_model->get_order_id_from_session(). Use ee()->order_model->getOrderIdFromSession instead.
  • DEPRECATED: ee()->order_model->get_cart_from_order(). Use ee()->order_model->getCartFromOrder() instead.
  • DEPRECATED: ee()->order_model->save_cart_snapshot(). Use ee()->order_model->saveCartSnapshot() instead.
  • DEPRECATED: ee()->order_model->set_order_status(). Use ee()->order_model->setOrderStatus() instead.
  • DEPRECATED: ee()->order_model->set_order_transaction_id(). Use ee()->order_model->setOrderTransactionId() instead.
  • DEPRECATED: ee()->order_model->set_order_error_message(). Use ee()->order_model->setOrderErrorMessage() instead.
  • DEPRECATED: ee()->cartthrob_entries_model->load_entries_by_entry_id(). Use ee()->cartthrob_entries_model->loadEntriesByEntryId() instead.
  • DEPRECATED: ee()->cartthrob_entries_model->update_entry(). Use ee()->cartthrob_entries_model->update() instead.
  • DEPRECATED: ee()->packages_entries_model->load_entries_by_entry_id(). Use ee()->packages_entries_model->loadEntriesByEntryId() instead.
  • DEPRECATED: ee()->packages_field_model->load_fields(). Use ee()->packages_entries_model->loadFields() instead.
  • DEPRECATED: ee()->cartthrob_field_model->load_fields(). Use ee()->cartthrob_field_model->loadFields() instead.
  • DEPRECATED: ee()->cartthrob_file->file_debug(). Use ee()->cartthrob_file->fileDebug() instead.
  • DEPRECATED: ee()->cartthrob_file->get_mime(). Use ee()->cartthrob_file->getMime() instead.
  • DEPRECATED: ee()->cartthrob_file->output_streaming_file_headers(). Use ee()->cartthrob_file->outputStreamingFileHeaders() instead.
  • DEPRECATED: ee()->vault_model->update_vault(). Use ee()->vault_model->update() instead.
  • DEPRECATED: ee()->product_model->increase_inventory(). Use ee()->product_model->increaseInventory() instead.
  • FIXED: The use_billing_info input on the checkout_form not working in all cases. Now supports truthy/falsy values.
  • FIXED: An error related to tax-exempt discounts.
  • FIXED: Error related to FTPing CartThrob files to server. Symlink in vendor/bin/carbon causing error.
  • FIXED: Error with CartThrob status handling that caused order statuses to get out of sync.
  • FIXED: Error when logging as part of upgrade process from earlier versions.
  • FIXED: Deprecation warning related to mime type loading.
  • FIXED: Error related to file downloads.
  • FIXED: Warning in get_shipping_options tag.
  • REMOVED: The load_view method from Mbr_addon_builder.
  • REMOVED: Legacy Profile Edit support.

Version 5.4.6

Release December 28, 2020

  • FIXED: Error where CartThrob's plugin system would not load module methods and actions from registered CT plugins onto CartThrob namespace.
  • FIXED: Issue with manually forcing some cart values to zero.
  • FIXED: Ability to return $options array to override cart values in cartthrob_pre_process hook.

Version 5.4.5

Release December 19, 2020

  • FIXED: Issue where submitting the {exp:cartthrob:save_customer_info_form} form on a site's homepage resulted in an incorrect redirect and blank screen.
  • FIXED: Error where order items were not available to {exp:cartthrob:submitted_order_info} when issuing refunds.

Version 5.4.4

Release December 03, 2020

  • FIXED: Non-numeric value notices in CartThrob's order_model order_get_totals method.
  • FIXED: PHP Notice on AddToCartAction related to License generation.
  • FIXED: Pass by reference notice in Curl Library.
  • FIXED: Undefined index notice in CartThrob Order Manager Quick View.
  • FIXED: Price Modifiers Configurator FieldType not reducing inventory when inventory is enabled.
  • UPDATED: Updated {exp:cartthrob:cart_discount} tag to respect CartThrob's Number Formatting Defaults.
  • UPDATED: Updated {exp:cartthrob:cart_subtotal_minus_discount} tag to respect CartThrob's Number Formatting Defaults.
  • UPDATED: Updated {exp:cartthrob:cart_subtotal_plus_shipping} tag to respect CartThrob's Number Formatting Defaults.
  • UPDATED: Updated {exp:cartthrob:cart_subtotal_plus_tax} tag to respect CartThrob's Number Formatting Defaults.
  • UPDATED: Updated {exp:cartthrob:cart_subtotal} tag to respect CartThrob's Number Formatting Defaults.
  • UPDATED: Updated {exp:cartthrob:cart_tax} tag to respect CartThrob's Number Formatting Defaults.
  • UPDATED: Updated {exp:cartthrob:cart_total} tag to respect CartThrob's Number Formatting Defaults.
  • UPDATED: Updated {exp:cartthrob:cart_shipping} tag to respect CartThrob's Number Formatting Defaults.

Version 5.4.3

Release November 26, 2020

  • FIXED: Error triggered by logger in CartThrob's third-party autoloader.
  • FIXED: Error refunding payments from CartThrob Order Manager.

Version 5.4.2

Release November 23, 2020

  • FIXED: Updated CartThrob's license generation method on the purchased_items_model to use EE's Models rather than querying the database directly. Preserves compatibility with fields configured in earlier versions of EE.
  • FIXED: exp:cartthrob:item_options outputting incorrect {option_field} name.
  • FIXED: no_results tag on cart_items_info should be no_items instead. no_items not rendering when items there are no items.
  • FIXED: Updated Tag Parsing to correct for incorrect template output when using Speedy for performance.
  • FIXED: Error occurring when saving member profile data on a site that was previously upgraded from EE2.
  • DEPRECATED: Support for Profile:Edit. Will be removed in CartThrob 5.5.

Version 5.4.1

Release October 26, 2020

  • FIXED: Issues with view_encrypted_string and view_decrypted_string where encrypted strings would generate apache warnings or not decrypt.
  • FIXED: Issue where update_cart_form was not honoring use_billing_info setting in cases where the string was a false-like values.
  • FIXED: Issue where onError method in CartthrobTokenizer was not receiving the error message.

Version 5.4.0

Release October 9, 2020

  • ADDED: API payment gateway option to process payments with Authorize Only or Authorize and Capture.
  • UPDATED: Minor updates to demo templates.
  • FIXED: Issue where CheckoutAction was not honoring create_user parameter.
  • FIXED: Issues with the correct discount being applied with Free Order, Free Shipping, and Free Shipping Over X Discounts.
  • FIXED: Strict type comparison in debug_info tag was incorrectly comparing variable types and not honoring super admin setting.
  • FIXED: Issue with PayPal Express where gateway method was not properly decoded on return from PayPal.
  • FIXED: Error completing payment when Stripe triggers 3DS verification.

Version 5.3.2

Release September 25, 2020

  • UPDATED: Bumped version of zendframework/zend-diactoros to 2.2.1
  • UPDATED: Updated cartesian method in data_formatting_helper to use BenTools\CartesianProduct\cartesian_product.
  • FIXED: Issue where if Cartthrob was upgraded from a previous CartThrob version, and prior settings existed, those serialized settings are cleaned up to allow for new key structure. This change will prevent the "Auth name must be a string." PHP error.
  • FIXED: Fix for the Reports Google Chart on order manager home page. Change to JS library version.

Version 5.3.1

Release September 20, 2020

  • DEPRECATED: ee()->cartthrob->cart->clear() use ee()->cartthrob->cart_items or ee()->cartthrob->cart->clearAll() instead. Will be removed in CartThrob 6.
  • FIXED: Missing CartThrob Loader on Order Manager Install
  • FIXED: Notice when using clear_cart tag due to missing method.
  • FIXED: Non-numeric weight value generating notice.

Version 5.3.0

Release September 11, 2020

  • ADDED: API payment gateway integration
  • ADDED: Continued expansion of the PluginService for eventual replacement of third_party directory within CartThrob
  • ADDED: Trim tag parameter values of white space to reduce likelihood of unexpected outcomes
  • ADDED: Config service for accessing CartThrob settings outside of CartThrob
  • ADDED: {exp:cartthrob:is_in_stock} tag for determination of inventory state
  • ADDED: cartthrob_calculate_inventory extension hook for custom inventory calculation. This can be useful for integration with an ERP.
  • ADDED: custom_js parameter to the {exp:cartthrob:checkout_form} tag to disable pre-composed checkout JS and allow for fully custom implementations.
  • UPDATED: EE Channel Entry status will set to 'open' for authorized payments and to 'closed' otherwise if custom statuses are not set
  • UPDATED: CartThrob order status change emails now send after their respective extension hooks fire to allow for data changes prior to email generation
  • UPDATED: The cartthrob_save_customer_info_end hook will no longer fire if there are input validation errors from the {exp:cartthrob:save_customer_info} tag
  • UPDATE: Credit card modulus10 checking will no longer occur on payment gateways where the card details are not available to CartThrob (regardless of setting)
  • FIXED: openssl_decrypt() cipher warnings on {exp:cartthrob:gateway_select} tag
  • FIXED: {exp:cartthrob:gateway_fields_url} inadvertently removed
  • FIXED: Issue with repeated tags not have accurate tag data during parsing
  • FIXED: PHP notice in Cartthrob_cart where an undefined index was being accessed before checking for its existence
  • FIXED: Issue where {exp:cartthrob:item_options} with a row_id of zero (0) would not display the option values
  • FIXED: Issue with cart custom data not clearing after a successful transaction
  • FIXED: Issue with removing item from cart broke template parsing
  • FIXED: Fix to CartThrob installer bad method calls

Version 5.2.0

Release July 27, 2020

  • ADDED: Money object to progressively work towards better currency calculations and data consistency
  • ADDED: {order_items:total_results} tag within {exp:cartthrob:submitted_order_info} tag so it correctly parses the number of items in the completed order
  • ADDED: {exp:cartthrob:get_card_type} tag documentation
  • ADDED: {exp:cartthrob:coupon_code_count} tag documentation
  • ADDED: {exp:cartthrob:has_shippable_items} tag documentation
  • ADDED: cartthrob_boot hook which fires as soon as CartThrob is loaded by ExpressionEngine
  • ADDED: Third-party plugin service for registering addons
  • UPDATED: Control Panel backend code to begin towards a significant overhaul
  • UPDATED: The following method names have been translated for shipping plugin integrations
    • get_shipping() is now shippingRate() and must return a Money\Money object
  • UPDATED: Default response for {exp:cartthrob:arithmetic} is now an integer/float. Currency formatted response can be achieved with the format="yes" parameter.
  • FIXED: Improper use namespace of CartThrob Events class
  • FIXED: Issue with asynchronous order processing not processing all order items
  • FIXED: Issue with successful transactions not properly setting Order channel entry status
  • REMOVED: Rounding default option of "Round Up with Extra Precision" in favor of "Round Up". Causes calculation issues.
  • REMOVED: Rounding default option of "Swedish" in favor of "Round Nearest Value = 1.00"
  • REMOVED: Rounding default option of "New Zealand" in favor of "Round Nearest Value = 0.10"
  • REMOVED: Previously deprecated Cartthrob_payments methods slated for v5 removal. This should only affect custom payment gateways that did not address the deprecation notices.
  • REMOVED: Unused get_phone_number_array() helper in data_formatting_helper
  • REMOVED: Unused {exp:cartthrob:update_item} tag that was deprecated in CartThrob 2
  • REMOVED: Unused {exp:cartthrob:update_item_form} tag and update_item_action action that were deprecated in CartThrob 2.
  • REMOVED: Undocumented {exp:cartthrob:add_coupon_code} tag. Use Add Coupon Form
  • DEPRECATED: Deprecated folder-based third party plugin system. Will be removed in CartThrob 6.
  • DEPRECATED: arr() helper in data_formatting_helper
  • DEPRECATED: convert_card_type() helper in data_formatting_helper
  • DEPRECATED: convert_response_xml() helper in data_formatting_helper
  • DEPRECATED: convert_number_to_string() helper in data_formatting_helper
  • DEPRECATED: create_bool_string() helper in data_formatting_helper
  • DEPRECATED: get_formatted_phone() helper in data_formatting_helper
  • DEPRECATED: response_xml_array() helper in data_formatting_helper
  • DEPRECATED: sanitize_number() helper in data_formatting_helper
  • DEPRECATED: split_url_string() helper in data_formatting_helper
  • DEPRECATED: split_delimited_string() helper in data_formatting_helper
  • DEPRECATED: strip_punctuation() helper in data_formatting_helper
  • DEPRECATED: textarea_to_array() helper in data_formatting_helper
  • DEPRECATED: url_string_to_array() helper in data_formatting_helper
  • DEPRECATED: xml_to_array() helper in data_formatting_helper
  • DEPRECATED: Cartthrob_payments::gatewayOrderUpdate(). Unlikely this method should ever be called. Will be removed in CartThrob 6.
  • DEPRECATED: Cartthrob_shipping::pluginSettings($key, $default) for Cartthrob_shipping::settings($key, $default). Will be removed in CartThrob 6.
  • DEPRECATED: Cartthrob_shipping::cartHash($shipping) for Cartthrob_cart::hash($rehash). Will be removed in CartThrob 6.
  • DEPRECATED: Cartthrob_shipping::shippingRate() for Cartthrob_shipping::rate(Carthrob_cart $cart). Will be removed in CartThrob 6.
  • DEPRECATED: Form_builder::sanitize_number(). Will be removed in CartThrob 6.
  • DEPRECATED: Cartthrob_core::sanitize_integer(). Will be removed in CartThrob 6.
  • DEPRECATED: Cartthrob_core::sanitize_number(). Will be removed in CartThrob 6.
  • DEPRECATED: {exp:cartthrob:years_select} for {exp:cartthrob:year_select}. Will be removed in CartThrob 6.
  • DEPRECATED: {exp:cartthrob:get_cartthrob_logo}. Will be removed in CartThrob 6.
  • DEPRECATED: {exp:cartthrob:encrypt}. Will be removed in CartThrob 6.
  • DEPRECATED: {exp:cartthrob:decrypt}. Will be removed in CartThrob 6.
  • DEPRECATED: {exp:cartthrob:in_array}. Will be removed in CartThrob 6.
  • DEPRECATED: {exp:cartthrob:view_formatted_phone_number}. Will be removed in CartThrob 6.
  • DEPRECATED: consume_async_job action for consume_async_job_action for consistency. Will be removed in CartThrob 6.

Version 5.1.1

Release March 9, 2020

  • FIXED: Missing payment gateway error messaging (with focus on Stripe Payment Intents)
  • FIXED: Gateway multi-select issue in the CP
  • FIXED: Removal of invalid gateway selection from gateways included prior to v5 that were causing CP errors on upgrade

Version 5.1.0

Release January 13, 2020

  • ADDED: Support for specifying the gateway_method parameter on the {exp:cartthrob:checkout_form} for use with supporting gateways
  • REMOVED: Settings for no longer supported gateways. If there are settings for a custom gateway, the settings will not be removed.
  • REMOVED: Cartthrob_payments::gatewayOrderUpdate() no longer accepts a redirectUrl parameter. Redirects should be done via ee()->functions->redirect().
  • REMOVED: Cartthrob_payments::finalRedirect(). Redirects should be done via ee()->functions->redirect().
  • FIXED: Issue with email notifications not sending on successful payment
  • FIXED: Touch up of the mollie gateway payload
  • FIXED: Support in extload.php to call the proper payment gateway method after recent deprecation cleanup
  • FIXED: Order status dropdown on the Orders page in the EE control panel
  • FIXED: Multiple PHP notices and warnings around Cartthrob_item

Version 5.0.0

Release November 27, 2019

  • This is an identical release to the Beta but is tagged as the first full release of v5


Release November 15, 2019

  • Set minimum required PHP version to 7.1
  • NEW: Mollie payment gateway checkout


Release September 16, 2019

  • NEW: PayPal Express payment gateway checkout


Release September 12, 2019

  • NEW: Sage Pay Direct & Server payment gateway checkout
  • FIXED: Forcing Stripe API version 2019-02-11 to properly support PaymentIntents


Release September 5, 2019

  • NEW: Incorporated Omnipay 3 as the base for all payment gateway integrations
  • NEW: Dummy payment gateway for testing transactions without an actual gateway connection
  • NEW: Offline payment gateway for transactions with payment status managed indirectly with CartThrob
  • NEW: Stripe payment gateway with PaymentIntents/3D Secure checkout

Version 4.6.2

Release October 28, 2019

  • FIXED: Fix to prevent VAT calculation on shipping if cost is $0
  • FIXED: Added entry loading to reload after cache is cleared

Version 4.6.1

Release September 25, 2019

  • FIXED: Fix to VAT calculation for Mollie transactions
  • FIXED: Fix to set Mollie transactions to authorized after payment is complete

Version 4.6

Release August 15, 2019

  • UPDATED: Replaced deprecated assign_parameters() with ee('Variables/Parser')->parseTagParameters()
  • FIXED: Limited form processing via webhook to CartThrob channel entries only

Version 4.5.1

Release June 13, 2019

  • FIXED: 'Order Manager > Orders' dashboard now showing options for the status selects

Version 4.5

Release June 7, 2019

  • UPDATED: Clicking 'Save' on a price modifier preset with a preset selected will now update the selected preset instead of creating a new one
  • FIXED: Fixed CartThrob matrix JS errors when trying to add/remove rows
  • FIXED: Fix bug with deleting a price modifier preset that was causing PHP warnings
  • FIXED: Added a numeric version of tax calculation to match documentation for subtotal_plus_tax_numeric on {order_items} tag
  • FIXED: Removing use of deprecated Functions::assign_variables()
  • FIXED: Bug in installer preventing proper creation of image fields in product and package channels
  • FIXED: Bug in demo store templates preventing order history from loading the correct channel
  • FIXED: Offsite payment gateway redirect failure
  • FIXED: Issue with payment gateway state being assigned to flashdata

Version 4.4

Release May 3, 2019

  • UPDATED: Added support for Mollie payment gateway
  • UPDATED: Replaced deprecated xss_clean in favor of ee()->security->xss_clean
  • UPDATED: Significant deprecation of methods that will be removed in CartThrob 5 (see below)
  • UPDATED: The following methods now return a CartThrob\Transactions\TransactionState objects instead of an array. TransactionState object may continue to be accessed as an array until CartThrob 5.
    • ee()->cartthrob_payments->charge()
    • ee()->cartthrob_payments->chargeToken()
    • ee()->cartthrob_payments->createRecurrentBilling()
    • ee()->cartthrob_payments->deleteRecurrentBilling()
    • ee()->cartthrob_payments->createToken()
    • ee()->cartthrob_payments->updateRecurrentBilling()
    • ee()->cartthrob_payments->refund()
  • UPDATED: The following methods now take a CartThrob\Transactions\TransactionState object instead of an array for $auth
    • ee()->cartthrob_payments->checkout_complete()
    • ee()->cartthrob_payments->checkoutComplete()
    • ee()->cartthrob_payments->checkoutCompleteOffsite()
    • ee()->cartthrob_payments->gateway_order_update()
    • ee()->cartthrob_payments->set_status_authorized()
    • ee()->cartthrob_payments->set_status_canceled()
    • ee()->cartthrob_payments->set_status_declined()
    • ee()->cartthrob_payments->set_status_expired()
    • ee()->cartthrob_payments->set_status_failed()
    • ee()->cartthrob_payments->set_status_offsite()
    • ee()->cartthrob_payments->set_status_pending()
    • ee()->cartthrob_payments->set_status_processing()
    • ee()->cartthrob_payments->set_status_refunded()
    • ee()->cartthrob_payments->set_status_reversed()
    • ee()->cartthrob_payments->set_status_voided()
    • ee()->cartthrob_payments->setStatus()
  • FIXED: SQL Error when inserting order items when using CartThrob Fees
  • FIXED: Isolated issue with cartthrob_loader being unavailable due to CartThrob being removed from the package path
  • FIXED: Fix to clear a PHP warning when certain items with a particular structure are added to the cart
  • FIXED: Better handle canceling an XHR call to address uncaught exception console message on Package fieldtype XHR abort() call
  • FIXED: Issue with Product Configurator field type not adding production option price to item total price
  • FIXED: 500 error on demo store installation process
  • FIXED: Error when using the entry_id as order/invoice number setting for orders

The following methods are deprecated. Deprecation notices will be sent to the Developer Log, but the methods will not be removed until CartThrob 5.0.

  • DEPRECATED: {exp:cartthrob:states_select}. Use {exp:cartthrob:state_select} instead.
  • DEPRECATED: CartThrob matrix option_count modifier. Use total_results modified instead.
  • DEPRECATED: ee()->cartthrob_emails->send_email_from_array()
    • Use ee()->cartthrob_emails->send_email() instead
  • DEPRECATED: ee()->cartthrob_payments->alpha2_country_code($code)
    • Use alpha2_country_code($code) helper method instead
  • DEPRECATED: ee()->cartthrob_payments->alpha3_country_code($code)
    • Use alpha3_country_code($code) helper method instead
  • DEPRECATED: ee()->cartthrob_payments->response_script($gateway, $segments)
    • Use responseUrl($gateway, $segments) instead
  • DEPRECATED: ee()->cartthrob_payments->get_total()
    • Use ee()->cartthrob_payments->getTotal() instead
  • DEPRECATED: ee()->cartthrob_payments->set_total($total)
    • Use ee()->cartthrob_payments->setTotal($total) instead
  • DEPRECATED: ee()->cartthrob_payments->library_path()
    • Use ee()->cartthrob_payments->libraryPath() instead
  • DEPRECATED: ee()->cartthrob_payments->vendor_path()
    • Use ee()->cartthrob_payments->libraryPath() instead
  • DEPRECATED: ee()->cartthrob_payments->config($key)
    • Use ee()->cartthrob->store->config($key) instead
  • DEPRECATED: ee()->cartthrob_payments->theme_path()
    • Use ee()->cartthrob_payments->themeFolderUrl() instead
  • DEPRECATED: ee()->cartthrob_payments->payment_url()
    • Use ee()->cartthrob_payments->paymentUrl() instead
  • DEPRECATED: ee()->cartthrob_payments->process_payment($creditCardNumber)
    • Use ee()->cartthrob_payments->charge($creditCardNumber) instead
  • DEPRECATED: ee()->cartthrob_payments->fetch_template($template)
    • Use ee()->template_helper->fetch_template($template) instead
  • DEPRECATED: ee()->cartthrob_payments->lang($key)
    • Use ee()->lang->line($key) instead
  • DEPRECATED: ee()->cartthrob_payments->is_valid_gateway_method($method)
    • Use ee()->cartthrob_payments->isValidGatewayMethod($method) instead
  • DEPRECATED: ee()->cartthrob_payments->charge_token($token, $customerId, $offsite)
    • Use ee()->cartthrob_payments->chargeToken($token, $customerId, $offsite) instead
  • DEPRECATED: ee()->cartthrob_payments->create_recurrent_billing($amount, $creditCardNumber, $subData)
    • Use ee()->cartthrob_payments->createRecurrentBilling($amount, $creditCardNumber, $subData) instead
  • DEPRECATED: ee()->cartthrob_payments->update_recurrent_billing($id, $creditCardNumber)
    • Use ee()->cartthrob_payments->updateRecurrentBilling($id, $creditCardNumber) instead
  • DEPRECATED: ee()->cartthrob_payments->update_subscriptions($data, $id)
    • There is no replacement for this method as it was unimplemented.
  • DEPRECATED: ee()->cartthrob_payments->update_vault_data($data, $id)
    • Use ee()->cartthrob_payments->updateVaultData($data, $id) instead
  • DEPRECATED: ee()->cartthrob_payments->delete_recurrent_billing($id)
    • Use ee()->cartthrob_payments->deleteRecurrentBilling($id) instead
  • DEPRECATED: ee()->cartthrob_payments->subscription_info($data, $key, $default)
    • Use ee()->cartthrob_payments->subscriptionInfo($data, $key, $default) instead
  • DEPRECATED: ee()->cartthrob_payments->required_fields()
    • Use ee()->cartthrob_payments->requiredGatewayFields() instead
  • DEPRECATED: ee()->cartthrob_payments->load_lang($which, $path)
    • Use ee()->cartthrob_payments->loadLang($which, $path) instead
  • DEPRECATED: ee()->cartthrob_payments->create_url($path)
    • Use ee()->functions->create_url($path) instead
  • DEPRECATED: ee()->cartthrob_payments->parse_template($template, $data)
    • Use ee()->template_helper->fetch_and_parse($template, $data) instead
  • DEPRECATED: ee()->cartthrob_payments->year_2($year)
    • Use year2($year) helper method instead
  • DEPRECATED: ee()->cartthrob_payments->year_4($year)
    • Use year4($year) helper method instead
  • DEPRECATED: ee()->cartthrob_payments->curl_transaction($url, $data, $header, $mode, $suppressErrors, $options)
    • Use ee()->cartthrob_payments->curlTransaction($url, $data, $header, $mode, $suppressErrors, $options) instead
  • DEPRECATED: ee()->cartthrob_payments->curl_post($url, $params, $options)
    • Use ee()->cartthrob_payments->curlPost($url, $params, $options) instead
  • DEPRECATED: ee()->cartthrob_payments->curl_get($url, $options)
    • Use ee()->cartthrob_payments->curlGet($url, $options) instead
  • DEPRECATED: ee()->cartthrob_payments->curl_error_message()
    • Use ee()->cartthrob_payments->curlErrorMessage() instead
  • DEPRECATED: ee()->cartthrob_payments->curl_error_code()
    • Use ee()->cartthrob_payments->curlErrorCode() instead
  • DEPRECATED: ee()->cartthrob_payments->customer_id()
    • Use ee()->cartthrob_payments->customerId() instead
  • DEPRECATED: ee()->cartthrob_payments->order_id()
    • Use ee()->cartthrob_payments->orderId() instead
  • DEPRECATED: ee()->cartthrob_payments->input_post($key, $xssClean)
    • Use ee()->input->post($key, $xssClean) instead
  • DEPRECATED: ee()->cartthrob_payments->input_get($key, $xssClean)
    • Use ee()->cartthrob_payments->ee()->input->get($key, $xssClean) instead
  • DEPRECATED: ee()->cartthrob_payments->input_get_post($key, $xssClean)
    • Use ee()->input->get_post($key, $xssClean) instead
  • DEPRECATED: ee()->cartthrob_payments->input_cookie($key, $xssClean)
    • Use ee()->input->cookie($key, $xssClean) instead
  • DEPRECATED: ee()->cartthrob_payments->xss_clean($data)
    • Use ee('Security/XSS')->clean($data) instead
  • DEPRECATED: ee()->cartthrob_payments->split_url_string($data, $splitCharacter)
    • Use split_url_string($data, $splitCharacter) helper method instead
  • DEPRECATED: ee()->cartthrob_payments->convert_response_xml($xml)
    • Use convert_response_xml($xml) helper method instead
  • DEPRECATED: ee()->cartthrob_payments->get_formatted_phone($phone)
    • Use get_formatted_phone($phone) helper method instead
  • DEPRECATED: ee()->cartthrob_payments->get_language_abbrev($lang)
    • Use ee()->cartthrob_payments->getLangAbbr($lang) instead
  • DEPRECATED: ee()->cartthrob_payments->relaunch_session_full($sessionId)
    • Use ee()->cartthrob_payments->relaunchSession($sessionId) instead
  • DEPRECATED: ee()->cartthrob_payments->relaunch_session($sessionId)
    • Use ee()->cartthrob_payments->relaunchSession($sessionId) instead
  • DEPRECATED: ee()->cartthrob_payments->relaunch_cart_snapshot($orderId)
    • Use ee()->cartthrob_payments->relaunchCartSnapshot($orderId) instead
  • DEPRECATED: ee()->cartthrob_payments->gateway_exit_offsite($offsiteData, $url, $jumpUrl)
    • Use ee()->cartthrob_payments->completePaymentOffsite($url, $offsiteData, $formSubmission) instead
  • DEPRECATED: ee()->cartthrob_payments->send_email($details)
    • Use ee()->cartthrob_emails->send_email($details, $data) instead
  • DEPRECATED: ee()->cartthrob_payments->save_cart_snapshot($orderId, $inventoryProcess, $discountsProcessed)
    • Use ee()->cartthrob_payments->saveCartSnapshot($orderId, $inventoryProcess, $discountsProcessed) instead
  • DEPRECATED: ee()->cartthrob_payments->cart_id()
    • Use ee()->cartthrob->cart->id() instead
  • DEPRECATED: ee()->cartthrob_payments->set_status_offsite($state, $orderId, $emailData)
    • Use ee()->cartthrob_payments->setStatus(Cartthrob_payments::STATUS_OFFSITE, $state, $orderId, $emailData) instead
  • DEPRECATED: ee()->cartthrob_payments->get_order_status($orderId)
    • Use ee()->cartthrob_payments->getOrderStatus($orderId) instead
  • DEPRECATED: ee()->cartthrob_payments->update_order($data)
    • Use ee()->cartthrob->cart->update_order($data) instead
  • DEPRECATED: ee()->cartthrob_payments->set_order_meta($orderId, $status, $eeStatus, $transactionId, $errorMessage, $data)
    • Use ee()->cartthrob_payments->setOrderMeta($orderId, $status, $eeStatus, $transactionId, $errorMessage, $data) instead
  • DEPRECATED: ee()->cartthrob_payments->set_purchased_items_status($eeStatus, $orderId, $transactionId)
    • Use ee()->cartthrob_payments->setPurchasedItemsStatus($eeStatus) instead
  • DEPRECATED: ee()->cartthrob_payments->save_cart()
    • Use ee()->cartthrob->cart->save() instead
  • DEPRECATED: ee()->cartthrob_payments->jump_form($url, $fields, $hideJumpForm, $title, $overview, $submitText, $fullPage, $hiddenFields)
    • Use ee()->cartthrob_payments->jumpForm($url, $fields, $hideJumpForm, $title, $overview, $submitText, $fullPage, $hiddenFields) instead
  • DEPRECATED: ee()->cartthrob_payments->data_array_to_string($data)
    • Use http_build_query($data) instead
  • DEPRECATED: ee()->cartthrob_payments->round($number)
    • Use ee()->cartthrob->round($number) instead
  • DEPRECATED: ee()->cartthrob_payments->set_status_reversed($state, $orderId, $emailData)
    • Use ee()->cartthrob_payments->setStatus(Cartthrob_payments::STATUS_REVERSED, $state, $orderId, $emailData) instead
  • DEPRECATED: ee()->cartthrob_payments->gateway_order_update($state, $orderId, $returnUrl, $emailData)
    • Use ee()->cartthrob_payments->gatewayOrderUpdate($state, $orderId, $returnUrl, $emailData) instead
  • DEPRECATED: ee()->cartthrob_payments->set_status_authorized($state, $orderId, $emailData)
    • Use ee()->cartthrob_payments->setStatus(Cartthrob_payments::STATUS_AUTHORIZED, $state, $orderId, $emailData) instead
  • DEPRECATED: ee()->cartthrob_payments->process_cart()
    • Use ee()->cartthrob_payments->processCart() instead
  • DEPRECATED: ee()->cartthrob_payments->clear_cart($cartId = null)
    • Use ee()->cartthrob_payments->clearCart($cartId) instead
  • DEPRECATED: ee()->cartthrob_payments->relaunch_cart($cartId, $orderId)
    • Use ee()->cartthrob_payments->relaunchCart($cartId, $orderId) instead
  • DEPRECATED: ee()->cartthrob_payments->set_status_declined($state, $orderId, $emailData)
    • Use ee()->cartthrob_payments->setStatus(Cartthrob_payments::STATUS_DECLINED, $state, $orderId, $emailData) instead
  • DEPRECATED: ee()->cartthrob_payments->set_status_processing($state, $orderId, $emailData)
    • Use ee()->cartthrob_payments->setStatus(Cartthrob_payments::STATUS_PROCESSING, $state, $orderId, $emailData) instead
  • DEPRECATED: ee()->cartthrob_payments->set_status_expired($state, $orderId, $emailData)
    • Use ee()->cartthrob_payments->setStatus(Cartthrob_payments::STATUS_EXPIRED, $state, $orderId, $emailData) instead
  • DEPRECATED: ee()->cartthrob_payments->set_status_canceled($state, $orderId, $emailData)
    • Use ee()->cartthrob_payments->setStatus(Cartthrob_payments::STATUS_CANCELED, $state, $orderId, $emailData) instead
  • DEPRECATED: ee()->cartthrob_payments->set_status_voided($state, $orderId, $emailData)
    • Use ee()->cartthrob_payments->setStatus(Cartthrob_payments::STATUS_VOIDED, $state, $orderId, $emailData) instead
  • DEPRECATED: ee()->cartthrob_payments->set_status_refunded($state, $orderId, $emailData)
    • Use ee()->cartthrob_payments->setStatus(Cartthrob_payments::STATUS_REFUNDED, $state, $orderId, $emailData) instead
  • DEPRECATED: ee()->cartthrob_payments->set_status_pending($state, $orderId, $emailData)
    • Use ee()->cartthrob_payments->setStatus(Cartthrob_payments::STATUS_PENDING, $state, $orderId, $emailData) instead
  • DEPRECATED: ee()->cartthrob_payments->set_status_failed($state, $orderId, $emailData)
    • Use ee()->cartthrob_payments->setStatus(Cartthrob_payments::STATUS_FAILED, $state, $orderId, $emailData) instead
  • DEPRECATED: ee()->cartthrob_payments->final_redirect($returnUrl)
    • Use ee()->cartthrob_payments->finalRedirect($returnUrl) instead
  • DEPRECATED: ee()->cartthrob_payments->checkout_start($options)
    • Use ee()->cartthrob_payments->checkoutStart($options) instead
  • DEPRECATED: ee()->cartthrob_payments->set_gateway($gateway)
    • Use ee()->cartthrob_payments->setGateway($gateway) instead
  • DEPRECATED: ee()->cartthrob_payments->add_error($key, $value)
    • Use ee()->cartthrob_payments->addError($key, $value) instead
  • DEPRECATED: ee()->cartthrob_payments->module_enabled($module)
    • Use ee()->cartthrob_payments->moduleEnabled($module) instead
  • DEPRECATED: ee()->cartthrob_payments->create_member($options, $orderData)
    • Use ee()->cartthrob_payments->createMember($options) instead
  • DEPRECATED: ee()->cartthrob_payments->save_member_with_order($memberId, $orderId, $orderData)
    • Use ee()->cartthrob_payments->saveMemberWithOrder($memberId, $orderId, $orderData) instead
  • DEPRECATED: ee()->cartthrob_payments->update_order_by_id($orderId, $data)
    • Use ee()->cartthrob_payments->updateOrderById($orderId, $data) instead
  • DEPRECATED: ee()->cartthrob_payments->create_token($creditCardNumber)
    • Use ee()->cartthrob_payments->createToken($creditCardNumber) instead
  • DEPRECATED: ee()->cartthrob_payments->set_member_group($memberId, $groupId)
    • Use ee()->cartthrob_payments->setMemberGroup($memberId, $groupId) instead
  • DEPRECATED: ee()->cartthrob_payments->activate_member($memberId, $groupId)
    • Use ee()->cartthrob_payments->activateMember($memberId, $groupId) instead
  • DEPRECATED: ee()->cartthrob_payments->checkout_complete_offsite($state, $orderId, $completionType)
    • Use ee()->cartthrob_payments->checkoutCompleteOffsite($state, $orderId, $completionType) instead
  • DEPRECATED: ee()->cartthrob_payments->checkout_complete($state, $template, $return, $stopProcessing)
    • Use ee()->cartthrob_payments->checkoutComplete($state, $template, $return, $stopProcessing) instead
  • DEPRECATED: ee()->cartthrob_payments->xml_to_array($xml, $buildType)
    • Use xml_to_array($xml, $buildType) helper function instead
  • DEPRECATED: ee()->cartthrob_payments->strip_punctuation($text)
    • Use strip_punctuation($text) helper function instead
  • DEPRECATED: ee()->cartthrob_shipping->alpha2_country_code($code)
    • Use alpha2_country_code($code) helper function instead
  • DEPRECATED: ee()->cartthrob_shipping->alpha3_country_code($code)
    • Use alpha3_country_code($code) helper function instead

Version 4.3

Release March 11, 2019

  • UPDATED:'s deprecation of MD5 hash and addition of Signature Key
  • FIXED: A PHP notice in shipping plugin API when no shipping options are present
  • FIXED: Member model errors on member creation due to improperly accessing object attributes
  • FIXED: Several instances of math being done using a string instead of a number

Version 4.2

Release November 8, 2018

  • FIXED: Coupons sometimes being lost after use
  • FIXED: Price modifiers control panel JavaScript behavior
  • FIXED: A PHP error when using some offsite gateways
  • FIXED: Control panel path issues

Version 4.1

Release September 25, 2018

  • FIXED: Updates for the Sage Pay gateway
  • FIXED: Member fields not showing in members section
  • FIXED: Modifier field tag nested parser improvements
  • FIXED: A PHP notice in the product_model

Version 4.0.4

Release July 23, 2018

  • FIXED: Error in some cases when updating custom data
  • FIXED: Error in certain cases when working with some fields in EE3->EE4 upgrades
  • FIXED: Small bug fix to "sold out" message in sample templates

Version 4.0.3

Release July 7, 2018

  • FIXED: Switch some member-related actions to EE's member models
  • FIXED: Updates for some Multiple Site Manager-related changes

Version 4.0.2

Release July 5, 2018

  • UPDATED: Significant speed enhancements and query number reductions on some actions
  • FIXED: A member data issue in some cases when upgrading from CT 3

Version 4.0.1

Release July 3, 2018

  • UPDATED: Decreased the number of queries called by some methods

Version 4

Release July 2, 2018

  • UPDATED: ExpressionEngine 4 compatibility. Requires EE 4.3+
  • UPDATED: payment endpoints
  • FIXED: A number of small bugs

Version 3.3

Release July 2, 2018

  • UPDATED: payment endpoints
  • FIXED: A number of small bugs

Version 3.2

Release Sep 6, 2017

  • UPDATED: Additional support for use of Stripe vaults for charging later
  • FIXED: Class name error when creating packages
  • FIXED: Some price configurator JavaScript bugs
  • FIXED: PHP notices/warnings related to template groups in some scenarios
  • FIXED: Various other PHP warnings and notices
  • FIXED: Inventory issue in the "buy one get one" discount plugin

Version 3.1

Release March 6, 2017

  • UPDATED: Added ability to pass custom metadata with Stripe purchases
  • UPDATED: Option to add CartThrob to main EE3 navigation with custom menu item
  • FIXED: Adjustments for MySQL 5.6+ compatibility
  • FIXED: Various setting value escaping fixes
  • FIXED: Corrected issue where email notification template changes were not being read
  • FIXED: Corrected issue for is_in_cart when using on-the-fly products
  • FIXED: Order Manager visualization fixes
  • FIXED: Extload fix for compatibility with Transcribe
  • FIXED: EE3 path constant fixes
  • FIXED: Fixes for various PHP notice errors and PHP7 compatibility issues
  • FIXED: PSiGate payment gateway endpoint updates
  • FIXED: Various messaging/documentation updates

Version 3.0.2

Release June 1, 2016

  • FIXED: Clicking payment gateway selection checkbox labels caused all gateways to be selected
  • FIXED: missing fieldtypes in installer causing Grid_lib accepts_content_type error when trying to create new channel fields
  • FIXED: installer "Unable to locate the files needed to install this module" errors
  • FIXED: Required field form errors do not show field names
  • FIXED: missing button icons in EE 3.3.x
  • FIXED: Order items cleared when editing an order entry
  • FIXED: missing button icons
  • FIXED: Price simple field caused PHP errors because form_validation library was not loaded
  • FIXED: JS alerts in options configurator

Version 3.0.1

Release April 5, 2016

  • FIXED: Incorrect legacy fieldtype path causing PHP error during installation

Version 3.0.0

Release March 30, 2016

  • UPDATED: ExpressionEngine 3 compatibility. Requires EE 3.2+
  • UPDATED: EE3 Control panel styling
  • FIXED: Make sure lang file is loaded for CT matrix fieldtype
  • FIXED: Add missing shipping info from order_model->get_order_from_entry
  • FIXED: extload conflict with Zoo Visitor
  • FIXED: Unparsed {CSRF_TOKEN} in ajax responses
  • FIXED: Edge case bug in credit card verification helper
  • FIXED: Undefined variable: channel_dd bug
  • UPDATED: Show message in products tab if no channels exist
  • UPDATED: New SSL certificate for gateway
  • UPDATED: Force curl to use TLSv1 in Paypal gateways

Order Manager

  • ADDED: Export comma separated reports in Order Manager
  • FIXED: Allow partial refunds in Stripe gateway
  • FIXED: Update order properly when doing partial refund
  • FIXED: Add missing site_id lang
  • FIXED: CP form submissions could log you out in some cases

Version 2.71

Release March 30, 2016

  • FIXED: Make sure lang file is loaded for CT matrix fieldtype
  • FIXED: Add missing shipping info from order_model->get_order_from_entry
  • FIXED: extload conflict with Zoo Visitor
  • FIXED: Unparsed {CSRF_TOKEN} in ajax responses
  • FIXED: Edge case bug in credit card verification helper
  • FIXED: Undefined variable: channel_dd bug
  • UPDATED: Show message in products tab if no channels exist
  • UPDATED: New SSL certificate for gateway
  • UPDATED: Force curl to use TLSv1 in Paypal gateways

Order Manager

  • ADDED: Export comma separated reports in Order Manager
  • FIXED: Allow partial refunds in Stripe gateway
  • FIXED: Update order properly when doing partial refund
  • FIXED: Add missing site_id lang
  • FIXED: CP form submissions could log you out in some cases

Subscriptions / Permissions

  • ADDED: Allow multiple CC #s saved per account on same gateway
  • FIXED: Check if a subscription_start_date has been set as a parameter
  • FIXED: When a subscription field is present, only use the price if the subscription is enabled
  • FIXED: Save subscription ID to rebill orders
  • FIXED: Don't delete the vault token when subscription rebill fails, or you won't be able to do any subsequent rebill attempts
  • FIXED: Bug in subscriptions rebill where customer data was not pulling from original order

Version 2.70

Release September 14, 2015

  • FIXED: Issues with in-app support form.
  • FIXED: Issue where forms did not output errors under some conditions.
  • FIXED: Issue with Cardsave Server gateway callback.

Version 2.62

Release July 28, 2015

  • UPDATED: Compatibility with SagePay and SagePay server V3 VPS protocol.

Version 2.61

Release October 6, 2014

New Settings & Features

  • ADDED: tax by class tax plugin
  • ADDED: entry_date to order items table
  • FIXED: Tax not being charged properly on item options.
  • FIXED: Packages fieldtype was overwriting Price Simple length and prefix.
  • FIXED: Issue with status update notifications not being sent when using channel form.
  • FIXED: issue with ct payments where a bad token response might not return an error message.
  • FIXED: Store/cart.js.js template. The jquery gateway switching functionality in the default store/checkout template will now work correctly.
  • FIXED: Item specific discount limited by quantity plugin. Per item limits now function properly.
  • FIXED: Methods that send email alerts have had the return parameter updated to avoid "unable to load module" errors.
  • FIXED: Missing language fields in ogone alias gateway
  • FIXED: issue with orders where order ID's might be duplicated
  • FIXED: issue with Sage that was causing subscription payments to fail
  • FIXED: issue with ExtLoad on EE 2.9 (this fixes any errors you might see about EllisLab classes not loading when using extload.php)
  • FIXED: Custom data can now be saved in custom EE member fields.

Order Manager

  • ADDED: method to delete reports in the order manager
  • FIXED: Product Report now properly returns a product report when using date ranges.
  • FIXED: Status email notifications are now being sent when updating the status on the orders tab.
  • CHANGED: Changed customer reports to only show orders that have a status that matches the status set as "authorized/completed".

Subscriptions / Permissions

  • ADDED: Ability to change subscription plans using update_subscription_details
  • ADDED: subscription_plan_id as a valid name for subscription_select
  • ADDED: plan_image / support for file uploads in subscriptions plan creation.
  • ADDED: long_description / support for Rich Text Editor in description during subscriptions plan creation
  • FIXED: Various issues involving permissions when editing a subscription or subscription plan.
  • ADDED: next_billing_date variable to subscriptions tag.

Version 2.6

Released June 24, 2014

Notable improvements are:

  • Compatibility & testing with EE 2.8-2.9 (preview)
  • Tax rounding improvmemts and options
  • Fixes to Sage, WorldPay and gateways
  • Improvements to pagination and sorting in Order manager.
  • Many many fixes to Subscriptions, especially where rebilling and backend are concerned.

New Settings & Features

  • ADDED: change gateway fields method to cartthrob module to make it easier to get new gateway fields without creating a template just for that purpose. Now using AJAX you can simply call that action URL and get the gateway fields HTML for your specific gateway. This may not work correctly yet for gateways that inject javascript like Stripe.
  • ADDED: discount configuration field for purchased items channel
  • ADDED: item discount to the data that's captured for each item in the order items.
  • ADDED: method to change tax rounding method from rounding on each line item to rounding on the subtotal. US uses rounding on subtotal, UK uses rounding per item (usually). If rounding is set per item, line items and tax totals should line up when calculated by hand based on presented totals in the cart. When rounding is set up on subtotal, it will be possible that when calculating taxes by hand using presented subtotals on line items will vary slightly from total tax presented. Using this method, the tax total is less susceptible to rounding errors on the whole of the cart, but may look odd to customers if item totals including tax are also presented at the same time. This is not really an issue in the US where items are generally not shown "including tax". If you would like to use this method AND show line item totals including tax, you should note to the customer that the grand tax subtotal may vary slightly from displayed totals due to line-item rounding. Costs will typically vary from 0 to several decimal points depending on the number of items in the cart, the tax % and other factors that cause rounding differences when line item subtotals plus tax are displayed. Rounding many times and making calculations vs. rounding one time will generally lead to slight variations in overall tax totals.
  • ADDED: refund method to
  • ADDED: get_all_price_modifiers_end hook. This makes it simpler to modify price modifiers after they've been registered, right before they're ready to be returned. This can be useful for validation or option removal on a case by case basis.
  • ADDED: items to multi add to cart hook.
  • ADDED: member fields select class to MBR add-on builder.

Updated Tags & Fields

  • ADDED: item_tax and item_total_tax variables for cart items
  • ADDED: method to CT to allow third party apps to register as CT add ons. (basically add ons without cartthrob_ in the name.
  • ADDED: XID hash to add_to_cart tag to get around secure forms limitations.
  • CHANGED: moved some functions out of the driver into the cartthrob_members_model to reduce the need to do similar things twice.
  • FIXED: a number of installer errors in MBR Addon builder
  • FIXED: Added default refund value so there wouldn't be errors if submitting an empty refund form
  • FIXED: added in some missing language values.
  • FIXED: changed $this->EE-> to $this-> in cartthrob_members_model
  • FIXED: developer mode was always set to send "test" requests rather than live requests. In "developer" mode (rather than Live's 'test' mode) we should always be sending "live" requests for since it's in a sandbox at that point anyway.
  • FIXED: Double check purchased item channel exists in EE before creating a purchased_item entry; If an invalid channel is used, write to the log using log_message() and return false instead of an entry id.
  • FIXED: issue where cache was clearing out totals in cartthrob_cart
  • FIXED: issue where ct_tax, shipping and discount classes initialization methods didn't match the parameters required by the parent class.
  • FIXED: issue with add_to_head deprecated (for JS only) function being used indiscriminately
  • FIXED: issue with where trying to check out with a checkout amount and no items in your cart could cause a problem.
  • FIXED: issue with cartthrob core rounding where negatives were rounded into positives.
  • FIXED: issue with functions->set_cookiebeing used instead of input->set_cookie
  • FIXED: issue with is_in_cart returning 1 when it should return 0. Issue occurred when there were on the fly items mixed with items with entry-ids. is_in_cart would always return TRUE.
  • FIXED: issue with item_subtotal:plus_tax showing rounding incorrectly.
  • FIXED: issue with license numbers not getting set on all items in multi add to cart.
  • FIXED: issue with mod.cartthrob where price was not being set correctly when being added to the cart.
  • FIXED: issue with payments model where purchased items could not be updated due to a change in how purchased items lists were being returned by the order model
  • FIXED: issues with notifications missing or having erroneous values (they were being overridden by customer info which was sometimes blank if there was no saved order or member information)
  • FIXED: Price by Member Group needed to sanitize some price fields before performing calculations
  • FIXED: Price by Member Group wasn't rendering plus tax fields within the tag pair.
  • FIXED: purchased items model now sets the author id of purchased items to that of the author of the order, which helps when a third party system (like worldpay) calls back and the user is not logged in via that callback so the member ID might be missing at that point.
  • FIXED: Sanitized the amount values in the refund method to remove $ signs.
  • FIXED: several instances where EE's new conditionals mistake 0 for TRUE in conditional checking {if options_exist(where options_exist == 0) now evaluates to TRUE, so we have to return FALSE instead of an integer value of zero. Keep an eye out for this in other conditionals
  • FIXED: version comparator in CT upd. method
  • REMOVED: some member activation functions from payments lib because they've been moved to the cartthrob member model.
  • REMOVED: USPS and UPS shipping plugins (how'd they get in there!?!)
  • UPDATED: removed or changed Methods deprecated by EE 2.8x

Order Manager

  • ADDED: capture and void methods to order manager
  • ADDED: order manager now registers as a cartthrob add-on.
  • CHANGED: order manager uses 12 hour instead of 24 hour time by default now.
  • FIXED: issue in order manager where it was overriding the configured redirect method
  • FIXED: issue with order manager where an item containing an array of item options was outputting Array. Now it breaks the contents onto multiple lines
  • FIXED: Shipping field was mislabeled in refund form

Subscriptions / Permissions

  • ADDED: has_subscription_permission tag.
  • ADDED: method to subs model to get_subscriptions_without_vaults
  • CHANGED: customer name now comes from the screen name rather than a saved last name stored in an order. This makes it possible to "import" subs that do not have a related order.
  • CHANGED: made the system to get subscriptions much more flexible. It can now be passed a table prefix so that it can be used within complex joins with other tables.
  • FIXED: A string to array conversion bug in the permissions manager fieldtype
  • FIXED: Added cartthrob path in permission item model to fix unable to load model errors.
  • FIXED: issue in subscription model where too many pending items would be returned. This issue never made it into public releases
  • FIXED: issue where a new vault ID was generated for an existing subscription but was not added to the subscription during a subscription update.
  • FIXED: issue where ALL subscriptions could never be listed if no member id was specified. This is bad if you you are an admin wanting to view all subs in a template. We added the ability to list all for super admins (only supers at present)
  • FIXED: issue where an item end date was reached, subscription was not being held.
  • FIXED: issue with EXTLOAD where some systems using CRON could not use it because they were not telling the system they were running CLI commands. I added extra checks for systems (like PHP CGI) to identify whether ext load was being hit with an HTTP connection or a command line action.
  • FIXED: issue with get_pending_subscriptions where like-named vault values would override subscription values.
  • FIXED: issues where plan data was overriding subs data in the subscriptions tag if the sub was based on a plan
  • FIXED: several issues with payments lib where an item could be considered "processing" when it had in fact "failed" during a token generation operation
  • FIXED: some issues where a new subscription would be created if a subscription ID couldn't be found because it had been overwritten by a plan ID (also fixed the plan ID overriding the sub id)
  • FIXED: subs issue where any sub with a total occurrence of 0 (unlimited) would be put on hold.
  • FIXED: subs model. When a subscription is closed it sets the end date according to the last bill date + interval so that their subscription closes when it should rather than immediately upon cancellation
  • FIXED: subscriptions issue where entries with 0 set for total occurrences were never being set as a pending subscription
  • FIXED: subscriptions issue where start date was always being set to 1970
  • UPDATED: made it possible to add a subscription to the subscriptions table without a vault. The user can't be charged without a vault token, but at least there's an opportunity to then contact the customer to get them to update their billing details.
  • ADDED: "unlimited" language to settings view in subscriptions.
  • ADDED: create vault view to add a customer vault.
  • ADDED: vault edit view to edit customer vaults. Making it possible to change the owner of a vault, or the details of one.
  • ADDED: vault view to subscriptions to view existing customer vaults.
  • ADDED: delete vault method to remove customer vaults.
  • ADDED: a fix to remove "token" column from carttrob subscriptions table as it's not used.
  • ADDED: method to remove bad vault if a charge to it fails during a regular checkout
  • ADDED: (to CartThrob's notifications list) token missing notification. If a customer has a subscription but the token is missing a notification can be sent to the customer. You can use this to drive the customer to an update, or a re-signup page.
  • CHANGED: plan names are now listed in a drop down when creating or modifying subscriptions, rather than just the possibility to enter a plan ID in a text field.
  • FIXED: issue where pending subscriptions page would not properly limit displayed pending subscriptions and where sorting would not work correctly.
  • FIXED: issue where the wrong/default "description" would be listed in a subscription rather than its saved value.
  • FIXED: issue with MCP where permissions model was not loaded causing a PHP error
  • FIXED: issue with subs where incorrect member account was returned if the subscription was assigned to a deleted member. This caused problems with Pagination, and results per page.
  • FIXED: issue with subs where pending rebills were not being pulled for items with 0 total occurrences set.
  • FIXED: issue with subs where the manual next billing interface (charge now!) in the CP would not display the trial price even if it was still in the trial period
  • FIXED: issue with subscription settings where they could not be saved.
  • FIXED: issue with vault model where gateway might not be properly identified.
  • FIXED: issues with editing subscriptions with plans, where irrelevant plan default features would override the subscriptions features. (like used occurrences, used trial occurrences, status)
  • FIXED: issues with pagination in pending subscriptions where "dead" subscriptions without members would also be counted causing pagination to be slightly off… and sometimes some subs missing from the views altogether.
  • FIXED: issues with subs where certain columns looked as if they could be sorted when they really couldn't.
  • FIXED: subs issue where ALL subs were shown in pending subs tab if no subs were pending
  • FIXED: updated the method of getting the total count of all subscriptions. Previously it was getting subscriptions count based on the number of ORDERS with subs, rather than subs themselves. In some cases users will purchase multiple subs on one order, which caused the count to be off in some configurations fixes
  • ADDED: token library for using HOSTED CIM
  • ADDED: extra validation before creating token in
  • ADDED: sending description to during CIM token billings.
  • CHANGED: library to not require shipping address id or card code.
  • FIXED: issues in with token validation and profile creation for those without existing profiles.
  • FIXED: set CIM validation mode to 'liveMode'. By default it appears to be in 'test mode'
Sage Fixes
  • FIXED: token generation issue in Sage offsite where tokenhost was not defined
  • FIXED: issue with sage redirect. SecurityKey array key needed to be set in a different order when imploded into the MD5 hash.
  • FIXED: sage server token generation now fully works, as well as the immediate token billing upon token generation.
  • FIXED: Using 3D secure was causing purchased items to not be created

Version 2.5

Released January 23, 2014

  • Major updates and improvements to Subscriptions, Permissions, Installation, and cross-site selling with MSM.
  • Lots of bug fixes, including allowing Admins to checkout as a different member using that user's member id, without overwriting their own user data.
  • Each MSM site can now display and sell products from another MSM site. Each site controls its own product channel configurations & on which site orders should be saved. Mix & Match Go crazy. (Thanks Dorothy M for lighting a fire related to MSM and her efforts in developing and testing this functionality with us.)

Newton here: Unrelated to CartThrob itself, John Baxter has been pestering the heck out of me on lots of fronts (for good reason), one of them being development tools. I gotta tell you, his recommendations have been spot on and I've been pretty impressed at the increased speed with which I've been able to run down some really complex bugs. Thanks John, I appreciate your efforts.

New Settings & Features

  • ADDED: (MSM) Show all channels setting in the backend to make it easy to show / hide other sites channels in current site's cartthrob configuration.
  • ADDED: item_list template to provide an example of multi-add-to-cart operations for products and packages
  • ADDED: method to checkout as member by POSTing the member_id during checkout when logged in as an admin. You have to be set in CT settings as an administrator otherwise any submitted member_id is ignored
  • ADDED: method to hide debug_info using a setting so it can be left in templates and shown or hidden using a point-click interface in admin panel.
  • ADDED: support for capturing/configuration the selling site's site_id in the order channel. If you sell products on one site, but your order channel is on another site, this will capture the selling site's ID.

Updated Tags & Fields

  • ADDED: most_purchased tag. (Thanks Jubair)


Probably the most notable fixes are:

  • fix for MSM related checkout errors with off-site payment gateways,
  • fixed the checkout as admin functionality.
  • fixed packages item options issues
  • fixed item options issues in multi-add-to-cart
  1. FIXED: issue with ext load on MSM sites. NOTE you need need to specify the site_url also in the ext_load file when it's used on sites with MSM.
  2. FIXED: added additional checks to MBR add-on builder to limit the ability to delete items when a specific item ID is not passed. Basically if an entry id was not passed, in some instances active_record would delete everything in a specific table.
  3. FIXED: method to CT to now properly spit out the NAME of an add-on in the add-on drop down list of CartThrob addons. A change has to be made the addons' language files register it with cartthrob with the correct name. Therefore upgrades to each addon must be done to see this correction in action, or the language file needs to be modified at a minimum.
  4. UPDATED: Packages related templates correctly handle updating of item options
  5. FIXED: cartthrob_entries_model: explicitly removing entry_id as a key if it's set. Cannot insert the entry_id as it is auto-increment. A little help for those who cannot turn mysql option strict off. (Thanks Dorothy M)
  6. FIXED: Error in the quick save method of MBR add on builder. Was calling a version method that didn't exist.
  7. FIXED: errors in product_channels view. If no product channels existed it would cause PHP errors. Also reduced amount of code in this view.
  8. FIXED: issue in cartthrob_variables library where a PHP error could be thrown if item_options had not been initialized on a specific item.
  9. FIXED: issue in discount_amount_off_product where a discount could be set higher than the product's price itself.
  10. FIXED: issue in Forms library which caused clash with custom system messages add-on. No longer deleting all $_POST data which that other addon needed to work with. Originally we were deleting all $_POST data to an issue with EE where a bad javascript-go-back error would output to screen. I'd consider it an EE bug. I really should alert them to this.
  11. FIXED: issue in MBR add-on builder where a default value might overwrite a saved value in a setting. Sheesh that was an annoying bug to track down and fix.
  12. FIXED: issue in MBR package installer that was causing success template to output prematurely. (don't use flash data message_success or message_failure or EE will try to output content even if you don't want it to)
  13. FIXED: issue in product model with an uninitialized array variable when getting a products base_variation
  14. FIXED: issue with price options configurator fieldtype. Values are no longer wiped out when adding a new option to an option where no option_value has yet been set.
  15. FIXED: issue with version_compare use in the updater. PHP's Version compare is too picky so we switched to our own version comparison method.
  16. FIXED: problem with add-on loader in the drop down menu list. Some CT add ons weren't being registered as add ons correctly.
  17. FIXED: issue with cart.js where XID was not being sent with gateway changes, thus causing EE (with secure forms enabled) to balk at posting anything to a page without a fresh XID hash.
  18. FIXED: issue with cartthrob_payments lib where a token might be deleted from a vault on accident in rare situations.
  19. FIXED: issues in multi_add_to_cart_form where item options were being ignored
  20. FIXED: when packages are added to the cart that include two of the same item with different configurations, the cart can now correctly maintain multiple / different selections of item options for the similar items
  21. FIXED: multiple issues regarding the ability to use allow_selection conditional on packages items
  22. FIXED: Price quantity thresholds fieldtype now outputs correctly as a single tag.
  23. FIXED: sage server payment gateway. Changed the relaunch_cart_snapshot to relaunch_cart method to respawn the cart fully
  24. FIXED: Syntax error in Form_builder that was breaking in PHP 5.4

Under the hood improvements

Added support for enhanced installation (including data install & simplified template install methodology for add-ons)

  • ADDED: exempt_discount_from_tax config variable (can be added to EE's index.php in the $assign_to_config) to make it so that discounts do not affect taxes
  • ADDED: ability to automatically capture a product's site_id in add_to_cart_action and multi_add_to_cart_action
  • ADDED: get_base_price method to product model. To make it easier to get the price of an item from its own cartthrob_price method, or plain text field.
  • ADDED: get_price_modifier_value method to product model to make it easier to get information about a selected price modifier
  • ADDED: installation methods to MBR add-on builder
  • ADDED: method to install channel data in CT. Not fully implemented yet but auto install of sample data will be coming in a future release
  • ADDED: method to package installer to install channel data.
  • ADDED: method to packages field type to get at the configured total price of the package if a price is not set.
  • ADDED: method to set custom success messages in MBR add-on builder
  • UPDATED: installer now can include channel entry data
  • UPDATE: Added ability to use a comma separated list of zip codes in the default tax plugin's zip code fields.
  • ADDED: packages field and entries model to simplify channel and data installation
  • ADDED: php alternator in general settings view to automatically take care of zebra striping
  • ADDED: price field to packages field type with prefix (like price simple)
  • ADDED: Site ID function to cartthrob_item, and site_id as a property so that we can capture the site id of an item when it's added to a cart on a different site.
  • ADDED: some update keys to updater that were only present in legacy updates. Also made sure member_id column didn't get deleted from our table even if version compare is not working.
  • CHANGED: Checking info now automatically outputs into a different field group in gateway_fields variable
  • CHANGED: item_option_vars function to allow the ability to force an option to be set as selected
  • MOVED: order management model to CartThrob out of order_manager so that we could created the most_purchased tag
  • MOVED: member updating functions from the core driver into cartthrob_members model
  • FIXED: several function signatures to match those of parent

Order Manager

Primarily multiple-currency related changes

  • ADDED: method to localize time in order manager
  • ADDED: support to order manager for different currency prefixes derived from multi location add-on

Subscriptions / Permissions

Major fixes & enhancements throughout subscriptions & permissions especially concerned with template tags and backend administration.

  • ADDED: full set of templates to be used as examples for creating subscription sales sites.
  • ADDED: ability to set a permission on a subs plan
  • ADDED: ability to set more subscription options when adding an item to a cart.
  • ADDED: bettor error reporting in subs manager to make it more obvious when something has failed.
  • ADDED: members with vaults method to vault model
  • ADDED: method to permissions model to get permissions related to a specific sub_id
  • ADDED: method to permissions tag where you can pass a sub_id to check for active permissions. If the sub_id is closed, the permissions will not be assigned
  • ADDED: method to subscriptions field type to pull permissions that have been set in permissions manager
  • ADDED: method to subscriptions to find any vault data even if the token is missing so that we start with something, rather than having nothing to go on if something goes wrong with a transaction.
  • ADDED: method to update / close permissions if the related subscription is expired.
  • ADDED: method to use status and other db fields in subscription model to get_subscriptions. Now you can use status='open' or status='open|pending' as a parameter in the subscriptions tag to get information about subscriptions
  • ADDED: pending subscriptions view to subscriptions manager.
  • ADDED: method to see when next bill is expected for a certain sub.
  • FIXED: an issue with sequential order numbers in subscriptions
  • FIXED: clean_sub_data method in module no longer sets bad data if a specific key is not passed in. This allows sending of partial data sets without overwriting existing data that is not being updated
  • FIXED: issue in permissions backend where permissions couldn't be assigned manually. Form would just reload.
  • FIXED: issue where permissions were assigned twice when purchasing subscription products.
  • FIXED: issue with subscriptions field type where if you'd set it as the price field you'd get crazy prices back. Now it just gets the price of the sub as you might expect.
  • FIXED: issue with subscriptions model where arrays were not being serialized. This primarily affected permissions being saved correctly.
  • FIXED: issues in module where permissions were not being serialized and unserialized correctly, causing permissions added to a subscription to either be ignored, or only the first permission set to be used.
  • FIXED: issues with adding a plan to the cart where plan data was either being ignored or added incorrectly.
  • FIXED: issues with deleting subscription items from the backend.
  • FIXED: Many small issues and inconsistencies with Permissions and Subscriptions
  • FIXED: various fixes to subs and perms field types to get around incompatibility with GRID field type

Version 2.4

Released October 2, 2013

  • FIXED: issue with crud model where 'id' could be passed (on accident) as a blank bit of data on an insert. This caused errors to output because the system thinks it's an update with no proper ID, rather than an insert. So if it's an insert without an ID specifically set, we make sure there's no ID data passed at all.
  • FIXED: issue with world pay redirects
  • FIXED: issue with ext load where secure_forms was causing it not to work when it was turned on.

Version 2.3.9

Released September 9, 2013

  • CHANGED: Changed ext load to use third_party_path rather than themes folder path.
  • FIXED: issue with deleting items in update_cart_form
  • FIXED: issue with pagination in order manager and other addons
  • FIXED: issue with update / installation & safecracker hooks in CartThrob

Version 2.3.8

Released September 4, 2013

  • FIXED: Safecracker/Channel Form issue where submitting the channel_form would cause an error.
  • FIXED: Error due to EE's GRID field type. We have to add / remove package path in every function of our field types for CT's path so that it wouldn't mess up EE's GRID field type.

Version 2.3.7

Released August 29, 2013

  • ADDED: discount_amount to the discount_info tag
  • ADDED: Added a method to output setting information when using discount and coupon fields variable field pairs. Each setting can now be output as {tag} within the var-pair
  • ADDED: method to set the class of a product when added to the cart. Right now this is not being used by us, but it could be HUGE in terms of what it allows you to do with CT core and custom logic operations on a product class. Think of the difference between packages, standard products. This makes it possible to create your own wildly different product type. Right now there's still work to be done to make this even bigger, but this is going to be good... stay tuned.
  • ADDED: support for capturing address and name information in stripe, and capturing order id as well as order title in the description.
  • FIXED: an issue where price modifiers configurator was causing items added AFTER the configurator item to set "selected" incorrectly.
  • FIXED: BOGO "Discount Quantity" and "Per Item Limit" now work
  • FIXED: BOGO discount error where amount off was undefined when using entry id grouping.
  • FIXED: made language outputting more robust when item_option[] arrays are passed as "required" items.
  • FIXED: compatibility issue between Grid and CartThrob fieldtypes.
  • UPDATED: A bunch of field types require their own constructors in EE 2.7. They couldn't find CT's package path
  • UPDATED: Made CT compatible with EE 2.7

Version 2.3.6

Released July 31, 2013


  • FIXED: failing redirect when using secure forms and paypal. Previously other redirect issues were fixed, but this fix applies specifically to secure forms AND paypal in combination
  • FIXED: Issue where specifying a PixelAndTonic Matrix field AS the price field was causing CT to add $1 to the price of an item added to the cart from a channel containing this setup
  • FIXED: Issue with Addon builder where adding and removing rows was doubling up the adds/deletes and doing other wacky things with Javascript.

Order Manager

  • FIXED: order items previously required exact search terms when running a report. The system was originally using a "where" database call rather than a "like" database call in the search.
  • FIXED: status was being ignored in reports
  • FIXED: searching for order items would not respect the "any" status when set
  • FIXED: resending the "completed" order emails was sending back office and vendor emails to the customer as well as the customer email
  • FIXED: tracking emails were not being sent in some cases
  • FIXED: incorrect user data was being sent in some tracking emails. The tracking template was using current cart session data in some cases
  • FIXED: {customer_name} and {customer_email} were being ignored in the settings of various emails

Version 2.3.5

Released July 15, 2013

New Settings & Features

  • ADDED: method to save packages to purchased items in addition to sub items
  • ADDED: method to inject P:E field data into customer info ({your_field_name} will now be rendered within customer_info tag)
  • ADDED: custom data will now be inserted into matching profile:edit channel fields of the same name (with profile_ prefixed). For instance if you have custom_data:foo it will automatically fill a field called profile_foo if found in your profile:edit channel.
  • ADDED: setting for extra rounding precision. Adds one extra decimal place while doing calculations. Does not display this extra position, but will be used to within calculations to reduce potential rounding discrepancies especially when many items are being rounded at one time.


  • FIXED: issue where Canceled and Successful payments were not being redirected by PayPal successfully.
  • FIXED: issue where fingerprinting type was not being set correctly in sessions. If you do not use fingerprinting (which is off by default), this is irrelevant.
  • FIXED: issue where set_free_shipping discounts would not be turned off in certain cases where a customers cart no longer met the required criteria. Basically if you had a discount that sets free shipping, this allows it to be turned back off correctly.
  • FIXED: issue where order manager would not properly run an order report with specified products
  • FIXED: a few places where show_error was being used incorrectly. This basically fixes some issues with AJAX error outputting.
  • FIXED: issue with form_builder where show_error was using two different templates (user error template, and the general error.php hard coded template). Now it only uses the standard user error template as expected.
  • FIXED: Displayed error templates now longer include a broken back link.

CT Lite

  • UPDATE: Updated CT Lite to work with EE 2.6+

Order Manager

  • FIXED: issue with order manager where saving a order report with no title made it output as 0.
  • FIXED: Issue where Order Manager would throw errors if CartThrob was not installed.

Version 2.3.4

Released June 21, 2013

Updated Tags & Fields

  • UPDATE: Added methods for price:numeric and price:plus_tax_numeric to the price by member group fieldtype

Under the hood improvements

  • ADDED: $stop_processing state to checkout_offsite_complete to make it possible to tell the gateway stuff to NOT redirect after doing its thing... that way a gateway like sage server that can't have a redirect on complete will work correctly.
  • FIXED: Cartthrob emails lib needed fix for a missing FROM attribute when being utilized by third party modules that could cause an email not to be sent.


  • FIXED: error with FORM BUILDER where show_error was throwing an error when checkout form was being submitted via ajax and errors were reported.
  • FIXED: added an initialization method call to support tab to load config: variables. Basically this lets us get access to various configuration values that weren't necessarily present without initialization.
  • FIXED: Big update to ext load.php to make it work with EE 2.6x Also updated onboard documentation within it, made comments more organized
  • FIXED: issue with Sage server where "warning" errors would be output causing sage to fail the redirect.
  • FIXED: Added css hack to fix price modifier delete icons not showing up in FF.
  • FIXED: file helper wasn't getting loaded in api_payment_gateways file causing the subscriptions tab to throw errors

Order Manager

  • ADDED: email custom template method to Order Manager. This allows you to send custom emails from the manage/edit tab.
  • FIXED: add_tracking_to_order is now correctly sending emails.
  • FIXED: order manager had some uninitialized array indexes in SOME cases that we're now killing by using the element function

Version 2.3.3

Released May 29, 2013

Massive compatibility update for EE 2.6x

New Settings & Features

  • ADDED: ability to set Subscription ID field and Package ID field in purchased items settings.

Updated Tags & Fields

  • ADDED: extra tag parts to cart_discount to allow display minus_tax
  • ADDED: no results to vaults tag


  • FIXED: issue where purchased_ fields in purchased items channel would not be filled with custom data.
  • FIXED: issue with member creation brought upon by new member creation requirements in the database for 2.6x
  • FIXED: issue where cart was not cleared on return when using paypal express
  • FIXED: issue where channel model wasn't loaded in EE 2.6.1 in the notifications tab.
  • FIXED: issue where product inventory was being double reduced.
  • FIXED: set proper json encoding for EE 2.6x compatibility
  • FIXED: Updated relationship field syntax to template for EE 2.6
  • FIXED: Added checking for EE 2.6 to load installer.xml
  • FIXED: issue with pagination in MBR add-on builder. Now add ons like permissions manager will properly paginate
  • FIXED: members model now updates P:E custom field data on new member creation
  • FIXED: Issue with fresh CT installs not saving settings due to its confusion over updating a row, versus inserting a row.
  • FIXED: issues with profile edit, where fields with NO data were being inserted into the P:E channel with 0 instead of NULL

Under the hood improvements

  • ADDED: Added installer_legacy.xml for older EE versions

Order Manager

  • ADDED: date select to products report in order manager
  • FIXED: minor issues with Order Manager csv export titles
  • FIXED: issue with order manager showing failed and cancelled orders


  • FIXED: issue with subscriptions lib, where purchased items with sub ids could not be updated correctly.

Version 2.3.1

Released May 3, 2013

New Settings & Features

  • ADDED: ability to track package id in purchased items. Not currently a setting, but will eventually be. For now purchased_package_id when set as the name of a field will work
  • ADDED: discount over X for packaged items
  • ADDED: support to Moneris for US currency transactions

Updated Tags & Fields

  • ADDED: support for configuration_label in item options tag (for use with advanced configurator field type)

Under the hood improvements

  • ADDED: db_map to crud model to ensure that a bad key can't screw up sql calls
  • ADDED: MBR add-on builder to ct main
  • ADDED: new keys to transaction central payment gateway
  • ADDED: Test credit card numbers for Moneris now listed in onboard docs
  • CHANGED: For no good reason I changed the very ugly mixed php/html product channel field assignment code in product_channels.php to use straight up PHP to generate. I'm not a fan of alternate PHP syntax or mixing HTML with php. Makes it hard to read. If I had lots of time I'd do this all over the place. I don't… so this serves as an example if I ever feel like I wanna tackle this.
  • MOVED: Get settings into main CT lib
  • REMOVED: order_updated, completed, refunded notification events from order manager.


  • FIXED: eway payment gateway got some attention. Updated it to meet their latest API requirements and docs. Fixed an issue with formatting of expiration dates, added better support for sandbox testing
  • FIXED: issue where dead / deleted members would show up and throw errors in subs back end.
  • REMOVED: mbr add-on builder from subs


  • FIXED: cache directory issue with Helpspot API lib
  • FIXED: issue in email activation email sending text as a big blurb, rather than as a proper text file. Previously it was set to send as HTML. Changed to just TEXT
  • FIXED: issue where channels field assignments, default currency codes, etc could not be changed in CT settings
  • FIXED: issue where sub item inventory was not adjusted correctly when multiple quantities of a package was purchased. FIXED: issue with EE's updated secure forms. When a new user was created during checkout, all checkout operations would complete, but the redirect would not complete due to a change in the user's session ID, and EE's new use of Session ID rather than IP address in the secure forms system.
  • FIXED: Moneris gateway now has correct US live URL

Version 2.2.9

Released February 5, 2013

New Settings & Features

  • ADDED: Support for updating inventory when adding a line item to the order items entry. ADDED: added the ability to paypal express payment gateway to set html headers

Updated Tags & Fields

  • ADDED: hide_price parameter to get_shipping_options to make it less necessary to use the tag pair.
  • ADDED: is_subscription tag to cart items info
  • ADDED: plan_id parameter to cart items info
  • ADDED: plan_id to subscription plans tag.
  • FIXED: get purchased products now respects limit
  • FIXED: issue with update_subscription_details where various parameters could not be passed as variables.

Under the hood improvements

  • ADDED: shipping tax to the tax method for cases where there are no taxable items but the user wants to charge tax on shipping
  • ADDED: backup for helpspot URL in the accessory in case config can't be found.
  • ADDED: method to add meta to sub items of a package.
  • FIXED: NSM Version control
  • FIXED: permissions can now be text items.


  • ADDED: cartthrob_udpate_subscription_details hook.
  • FIXED: Permissions Manager was unable to delete or edit permissions. Changed MCP methods to use form_open instead of form_edit. Added isset check to squash variable errors in the edit and delete item view files.
  • FIXED: issue with update subscription details where the sub_id was being ignored.


  • FIXED: for EE 2.5.5 secure forms issue breaking redirects.
  • FIXED: problem where full_shipping_address wasn't taking use_billing_info into account
  • FIXED: typo. Changed shipping_plux_tax to shipping_plus_tax in the checkout action
  • FIXED: issue where expiration dates were not added to sub items of a package
  • FIXED: issue with adding items to the order items in the backend where adding new items wasn't updating inventory.
  • REMOVED: additional instance where purchased items would get saved in gateway exit offsite

Order Manager

  • ADDED: method to add additional custom printing templates to order manager.
  • FIXED: a number of issues regarding sorting & pagination of content in order manager and formatting of exports
  • FIXED: issue where inventory email setting was not available.
  • FIXED: issue with order manager where it would fail really bad if an orders channel was not set. Now just won't let you use app.

Version 2.2.7

Released February 1, 2013

Updated Tags & Fields

  • ADDED: allow_user_shipping in checkout form
  • ADDED: price modifiers configurator field type
  • ADDED: support for text field types in item options configurator
  • ADDED: tax_exempt and shipping_exempt parameters to add to cart form

New Settings & Features

  • ADDED: generate_random_member_data method to cartthrob members model. If you're a guest checking out with a subscription, and you have none of the required info needed for a subscription, a member is created for you using an email address like so: [email protected]
  • ADDED: commonly used store variables to install settings. You can now store some common store data like store name, description, address, google analytics tag
  • ADDED: email logging
  • ADDED: Helpspot access to support
  • ADDED: refund method to Stripe gateway
  • ADDED: support for displaying registered add ons in drop down (for users that have edit rights to those modules)
  • ADDED: entirely new set of templates using Twitter bootstrap.

Under the hood improvements

  • ADDED: method to inject meta directly as a parameter when adding items to cart. We may see more of this in the future as a method of having cross domain carts and other on-product data storage so we can move away from a reliance on going directly to the EE channel entry.
  • ADDED: note to stripe settings where testing CC numbers are located on Stripe's site.
  • ADDED: more detailed support for merging submitted and stored data in the order_model. Purpose: makes it easier for admin: guest checkouts to run robustly without overriding admin data.
  • ADDED: support for $extra_fields in payment gateways to automatically add additional fields to the gateway fields output.
  • ADDED: support for displaying gateway fields in twitter bootstrap format in Payment Gateway settings (enabled by default))
  • ADDED: support for is not null in order model.
  • ADDED: support for row_id in order items tag
  • ADDED: support for third party CRON jobs in ext load
  • ADDED: verify peer = false to gateway. Needed on some servers. Delete if you want extra security.
  • UPDATED: cart_examples templates (merging some files to reduce template groups)
  • UPDATED: configurator ajax
  • UPDATED: create_user now only creates the user if the payment is successful.
  • UPDATED: support for admin guest checkouts with create_user
  • UPDATED: updated support for showing 3rd party modules nav links in CT's backend settings
  • UPDATED: validation in cartthrob_members_model to disallow any member group lower than 4, & an earlier email validation warning to reduce erroneous secondary errors. Since email is all that's really needed, and we can't generate the other stuff without it, its announced early if it's missing or wrong

Order Manager

  • ADDED: Ability to search by "any" content in Order manager.
  • ADDED: method for determining if a user is a member in order management add-on.
  • FIXED: fixed a number of issues in order manager where the reports data or headers would be in correct.
  • FIXED: issue where order manager wasn't calculating totals correctly due to ignoring quantity when summing total per order.
  • FIXED: issue where order manager would throw copious errors if order channel fields were not mapped.
  • FIXED: issue where orders were grouped by member id (first) rather than email address). That means that some members with multiple email addresses will show up twice in an order list, but they won't ALL be grouped by an order admin ID if they purchased while logged out.
  • FIXED: issue with order manager not outputting the content of a report in the view BUT outputting it as a CSV.
  • FIXED: issue with order payment gateway in order manager.
  • FIXED: Order manager was not correctly outputting some searches
  • FIXED: Order manager would not update every status when told to do so on Edit view
  • FIXED: order manager: was having a problem running product specific reports.


  • ADDED: plan creation, deletion, update methods to subs model
  • ADDED: plans method to subs module to output data about plans in templates.
  • ADDED: rebill hold notification
  • ADDED: subscription update success event notification to CartThrob subscriptions library
  • ADDED: subscription_select to output encrypted values for selects. Way easier than the option:whatever syntax with pseudo tags. blech
  • ADDED: support for billing updates in Cartthrob_subscriptions library
  • FIXED: merged order data into subs customer data if customer data isn't set.
  • FIXED: a number of issues with subscriptions in payments lib. Basically if a subscription was being CRONned, it'd fail, due to the fact that it was trying to update and create a new token rather than charging an existing one. The update subscription system was interfering with the rebill system due, to similarities in naming conventions.
  • FIXED: added support for injecting a sub id during checkout to update an existing subscription
  • FIXED: bug where token was created, but not added to the vault
  • FIXED: email events in subs
  • FIXED: issue where vault data was overriding subs data in get_subscriptions method of subscription_model
  • FIXED: language issue with subs field type
  • FIXED: Major overhaul of the subs process for creation, rebill, and update. Identified and corrected many bugs connected with notifications, taxes, shipping costs & incorrect totals, last rebill dates, & various counts. Essentially the update & rebill events were bleeding into each other. They've been sorted out and are easier to follow now.
  • FIXED: Mcp issue with vault model being used when subs model should have been in the sub update method
  • FIXED: Permissions manager. Editing customer permissions didn't work, because it was trying to access a database table that it wasn't allowed to.
  • FIXED: Subs: issue where sub wouldn't be canceled out properly when all occurrences are used.
  • FIXED: Subs: PLan ID Was not showing in cp


  • FIXED: added some field checking in order model. Even though we were making sure fields had been configged… if they'd been deleted, the config remained, but the db columns were gone, causing some order manager and reporting DB errors due to looking for content in the missing columns
  • FIXED: a couple of template errors. Packages detail had the wrong channel specified. View cart was missing the row_id on the item options.
  • FIXED: Field_id issue with mod.cartthrob. Needed to load field model when handling package types
  • FIXED: bug in order model where meta configuration could cause an error if it were blank
  • FIXED: cartesian function was ignoring items with blank prices instead of assuming they should be 0
  • FIXED: cartthrob loader now checks to make sure that it's installed. Some add ons use loader, this makes sure things don't break if it hasn't been installed.
  • FIXED: check_inventory error
  • FIXED: added package path to price modifiers field type to correct issues when used as a fieldtype tag.
  • FIXED: added additional order_data_array keys including fisrt_name and last_name
  • FIXED: customer model now correctly supports across MSM site profile:edit
  • FIXED: display issue with order manager (payment gateway was not showing in header)
  • FIXED: expiration month & year were not being sent to the order array
  • FIXED: inventory issues with CartThrob where if inventory was less than zero, or there were active carts with a zero-inventory item in them, a logged in customer could still check out with them causing a backorder situation.
  • FIXED: issue in BOGO discount plugin where quantities weren't being counted when used with entry id grouping method.
  • FIXED: issue in curl_transaction with custom headers where an array of headers would fail, but a single header would not.
  • FIXED: issue in order model where a complete lack of coupon codes in an order could potentially cause a notice / warning in PHP.
  • FIXED: Issue where a tax set by using the tax hook was not being used in calculations for final checkout costs.
  • FIXED: issue in order model where where_in was being ignored.
  • FIXED: issue where AUP (allow user price) was being ignored)
  • FIXED: issue where cart would not clear if you were a super admin.
  • FIXED: issue where emails without an email_to would not be sent… which means that third party emails that don't NEED a to: would never be sent
  • FIXED: issue where it was possible for the gateway to not be set correctly during checkout.
  • FIXED: issue where price simple field type is causing problems when adjusting field length
  • FIXED: issue with ewayAuthCode
  • FIXED: issue with use_billing_info not working in order model.
  • FIXED: loaded member model to CT payments.
  • FIXED: no_tax issue where NO_TAX parameter is ignored.
  • FIXED: offline payments (and other processing payment types) was reporting the declined status rather than the processing status.
  • FIXED: price quantity thresholds now outputs price correctly.
  • FIXED: removed statuses that were outputting array to string conversion errors in the notification settings
  • FIXED: replaced URLs with masked URLs in cp where possible
  • FIXED: issue with taxable discount where quantity was not included.
  • FIXED: some shipping options select bugs
  • FIXED: table model could potentially throw an error if a table was previously installed, but was trying to install it instead of alter it.
  • FIXED: various bugs with create user in Payments lib
  • FIXED: update inventory when editing order bug
  • FIXED: duplicate purchased_item generation in gateway exit offsite.
  • REMOVED: eprocessing_network from root of third party folder
  • REMOVED: hidden currency code from PayPal express

Version 2.2

Released November 1, 2012

Updated tags:

  • ADDED: cart subtotal minus discount tag
  • ADDED: cart_subtotal_minus_discount tag
  • ADDED: option_price variable to item_options sub tag of order_items tag.
  • ADDED: subtags: discounted_price, discounted_price:numeric, discount, discount:numeric variables to cart_items_info
  • ADDED: {exp:cartthrob:cart_has_subscription} template conditional

New settings and features:

  • ADDED: allow_fractional_quantities setting. This setting allows you to take quantities in fractions instead of integers only
  • ADDED: commonly used store variables to install settings. You can now store some common store data like store name, description, address, google analytics tag
  • ADDED: email notifications for force_processing events (subscriptions)
  • ADDED: email reply-to to notifications to help with some systems like Gmail where they might consider email without a reply-to as spam
  • ADDED: entirely new set of auto-install templates using Twitter bootstrap.
  • ADDED: global_coupon_limit configuration variable that lets you allow more than one coupon code in use at a time. (this is in the config file)
  • ADDED: method to inject meta directly as a parameter. We will see more of this in the future as a method of having cross domain carts and other on-product data storage so we can move away from a reliance on going directly to the EE channel entry.
  • ADDED: price simple field now allows you to set the prefix. If you use Multi-Locaiton manager and have 3 different price fields… you can now those fields display the appropriate currency prefix in the channel.
  • ADDED: rebill_failure, rebill_success, rebill_final_failure email events
  • ADDED: refund method to Stripe gateway
  • ADDED: setting to choose whether rounding is done up or down.
  • ADDED: Settings for disabling rebilling of tax, shipping & discount
  • ADDED: subscription update success event notification to CartThrob subscriptions library
  • ADDED: support for displaying gateway fields in twitter bootstrap format in Payment Gateway settings (enabled by default))
  • ADDED: support for inventory increase
  • ADDED: support for number formatting in shipping_plus_tax
  • ADDED: support for product weight in the package channel.
  • ADDED: support for subscription billing updates in cartthrob_subscriptions library
  • ADDED: Twitter Bootstrap to themes folder
  • ADDED: You can now update product inventory by changing quantities on order items or deleting order items or deleting order entries
  • CHANGED: Discount plugin BOGO now allows you to use it in entry id or line item mode. Soooo many people tried to use BuyXGetX on items in the cart that were spread across multiple line items, and that would fail previously. Now it's a setting that you can control.

Under the hood improvements

  • ADDED: add_discount method to item based plugins
  • ADDED: extra options for shipping options errors
  • ADDED: gateway select tag to hide options that are not subs compatible if there are subs in the cart
  • ADDED: generate_random_member_data method to cartthrob members model. If you're a guest checking out with a subscription, and you have none of the required info needed for a subscription, a member is created for you using an email address like so: [email protected]
  • ADDED: get member first order in orders model.
  • ADDED: get subscriptions count function to subs model.
  • ADDED: method to form builder to add encoded array data (used for adding multiple meta parameters meta:something="" meta:somethingelse="") this will be important in the future
  • ADDED: method to keep tables model from dropping columns.
  • ADDED: more detailed support for merging submitted and stored data in the order_model. Purpose: makes it easier for admin: guest checkouts to run robustly without overriding admin data.
  • ADDED: more returned data to get_subscriptions method
  • ADDED: new functions to payments lib so that it was a little more legible; save_member_with_order, create_member, set_member_group, activate_member
  • ADDED: note to stripe settings where testing CC numbers are located on Stripe's site.
  • ADDED: output streaming file headers for better downloads support
  • ADDED: Per-item discount registry. This helps us output a list of discounts and what they've been applied for... either generally for the cart, or on specific items
  • ADDED: registered_discount class
  • ADDED: set_discounted_shipping
  • ADDED: Support for average_total in order model.
  • ADDED: support for billing updates in Cartthrob_subscriptions library
  • ADDED: support for converting array data to string data in channel entries model.
  • ADDED: support for dynamic, and option_price variables with order items field type
  • ADDED: support for more order id randomization in Moneris to ensure unique submits even when the customer hits the submit button twice in a row
  • MERGED: subscriptions manager module into CT subscriptions in preparation for launch
  • UPDATED: cart_examples templates (merging some files to reduce template groups)
  • UPDATED: create_user now only creates the user if the payment is successful.
  • UPDATED: get_all_totals function in Reports now supports manual start and end dates.
  • UPDATED: removed dependency of Locales lib on the Cartthrob_settings_model
  • UPDATED: support for admin guest checkouts when used with create_user
  • UPDATED: support for showing 3rd party modules nav links in CT's backend settings


  • FIXED: Added a missing coupon language line
  • FIXED: Added check for cartthrob_settings table so that a fatal error is not thrown if CT does not install fully.
  • FIXED: added fix for inventory not updating when processing an order later when using vaults
  • FIXED: added package path inclusion in fieldtypes
  • FIXED: base_price_subtotal was not using the base_price in its calculations
  • FIXED: Beanstream has more required fields and a handles state field correctly for non-us locations
  • FIXED: bug in PayLeap when charging token during rebill events
  • FIXED: bug where customer_email was wrong in subscription rebills
  • FIXED: bug where using existing vault via checkout_form vault_id param would not work properly
  • FIXED: cart class now checks whether coupons have been updated by the user to redetermine any shipping discounts. This helps get around discounts being set on shipping even though the coupon code has been cleared.
  • FIXED: cast some order item indexes as floats to kill off non-numeric data (this fixes the very large price amount in a line item issue)
  • FIXED: changed gateway fields to show expiration dates properly as dropdowns when using Stripe
  • FIXED: changed template tags that DO NOT loop through multiple rows of variables to use parse_variables_row and NOT parse count, total_results, etc. This fixes issues with count and total_results variables in looping tags
  • FIXED: coupon code model now respects global_coupon_limit config value. Previously if limit was set at 3, only 2 coupons code be used, if set at 4, only 3. This has been corrected.
  • FIXED: fixed typo in Stripe lang file regarding CartthrobTokenizer usage
  • FIXED: global coupon limit was not being honored
  • FIXED: global price was not overriding whatever price had been set on the item
  • FIXED: In tax settings, updated the state dropdown to be blank when using a zip code.
  • FIXED: issue where create_user_data was set as a boolean instead of an array, causing members not to be created.
  • FIXED: issue where decimal precision is set to zero, line items were sent to Paypal caused paypal to report mismatched order totals.
  • FIXED: issue where it was possible for the gateway to not be set correctly during checkout.
  • FIXED: Issue where members weren't being created and/or their group ids were not being set correctly. Previously the system was using the default group id assignment, rather than the group id that we were explicitly setting.
  • FIXED: issue where vault data was overriding subs data in get_subscriptions method of subscription_model
  • FIXED: issue with ewayAuthCode
  • FIXED: issue with taxable discount where quantity was not included.
  • FIXED: minor fixes to item registered discounts
  • FIXED: moved entry_submission_ready to entry_submission_end, so that the new published data's in the database and can be used. Notifications of updates will now work correctly when used with an entries tag.
  • FIXED: Paypal express now uses updated api url in sandbox
  • FIXED: Paypal pro now uses updated api url in sandbox
  • FIXED: price simple field type displays global price if one is set
  • FIXED: stripe now recognizes more currencies than just USD.
  • FIXED: two-mile login redirect was interfering with proper sessions creation so I moved up our extension hook call earlier in the process.
  • FIXED: updated the extension hook installation method so that it doesn't span across 2 different files. Now resides only in the MCP
  • FIXED: validation in cartthrob_members_model to disallow any member group lower than 4, & an earlier email validation warning to reduce erroneous secondary errors. Since email is all that's really needed, and we can't generate the other stuff without it, its announced early if it's missing or wrong
  • FIXED: variable parsing issue in cartthrob emails when constants are passed in as arrays
  • FIXED: various bugs with create user in Payments lib
  • FIXED: when member is created during checkout, the post checkout process now recognizes the member id, and completes operations based on that member id.

Version 2.1.5

Released September 7, 2012

  • ADDED: cartthrob_send_email hook
  • FIXED: discount_tax was reseting the discount tax for each item, causing it to report taxes erroneously. This was never included in the production version.
  • FIXED: count error with new item_options_count tag. Count wasn't being set.
  • FIXED: divide by zero bug
  • ADDED: support for item_options_total_results, item_options_count in the item options tag.
  • ADDED: support for item_options conditional in cart_items_info
  • FIXED: division by zero issue in cart class
  • ADDED: Support for turning off Profile:Edit and using Member system. This is mostly useful in systems where there's an MSM installation where one side uses P:E and the other doesn't.
  • ADDED: template fetch template hook to template helper (to fetch Low Variables and other "injected" global variables)
  • FIXED: issue with sortable checkboxes losing track of their settings
  • FIXED: array_fill_keys is not available to PHP < 5.2, so I changed the use of it to another method.
  • FIXED: bug where you couldn't delete all order items in an order
  • FIXED: cart->discount_tax() now correctly calculates tax on discounts when tax_exempt is used.
  • FIXED: removed "zip" as a mandatory parameter in worldpay
  • FIXED: added support for more field length validation in Sage Server and Sage Direct
  • FIXED: default related_items field was installed with wrong name
  • FIXED: bogo plugin now has better validation, leading to less failed discount applications
  • FIXED: a few issues with new shipping_data function in cartthrob_shipping class.
  • FIXED: issue where non taxable items were having their discount amount taxed.
  • CHANGED: so if plugin lang file did not exist, it would not cause EE error
  • ADDED: support for MSM configurations in Extload
  • FIXED: Stripe deprecated the amount variable being passed, so it's been removed.
  • ADDED: Support for item_options arrays in purchased items
  • ADDED: shipping_data method to Cartthrob_shipping
  • ADDED: ability to toggle save_member_data in checkout_form via $_POST
  • FIXED: JS in Stripe since they changed their API
  • FIXED: url_title helper doesn't shorten URLs by default. EE requires a length shorter than 75. I added support to keep the URL short.
  • ADDED: template_fetch_template hook to template_helper so injected global variables will get parsed in template
  • FIXED: issue with end_script in get_all_price_modifiers extension call. When end_script was called, the whole app stopped working. This is now fixed.
  • FIXED: SIM issue with parsing is fixed.
  • ADDED: price_plus_tax to order data array items
  • FIXED: bug where a order_items field name of "items" would cause MySQL error
  • FIXED: sim is now relaunching the full session rather than the order snapshot due to the way it parses templates.
  • FIXED: submitted order info was not taking into account set error messages in the session, and going to the database for error message reporting. This was only a problem if there was no redirect. ( sim and similar gateways might have been affected). Basically the error message was one step behind
  • FIXED: order items field type no longer allows the filed type to be named "items" (which is a reserved name)
  • FIXED: issues with ogone direct.
  • FIXED: word_separator issue in purchased items model when "dash" was being used as the word separator in url_titles
  • ADDED: support for file uploads in items added to the cart.
  • ADDED: enctype as an available attribute in form builder
  • ADDED: additional notification types for expired, canceled, refunded, voided, pending. Most of these were already in CT, but they've been enabled for future use

Version 2.1.4

Released July 17, 2012

  • CHANGED: price simple fieldtype to use FLOAT MySQL column type for easier sorting
  • ADDED: cartthrob_product_reduce_inventory hook
  • FIXED: changed ->price to ->price() in cart_item to fix a tax calculation bug.
  • FIXED: bug with subtotal_plus_tax php error in mod.cartthrob
  • ADDED: last_order_number as a configurable setting
  • FIXED: field_model was using array_merge on an array that needed to maintain array indexes. This has been changed to an alternate method to preserve array keys
  • UPDATED: Tax calculations are more streamlined now. In several cases taxes were essentially being recalculated by different functions. This lead to some subtle differences in reported taxes in different tags. Created new functions in cartthrob_item and cartthrob_cart to handle per item taxes, and cart level calculations. Cart level tax calculations now use per item calculations and then add the associated costs. In any case that I could find that has its own tax calculations I replaced those references with methods from _cart and _item.
  • CHANGED: moved inventory processing before email sending and discount processing to reduce possible problems with either of those systems influencing inventory management
  • FIXED: bug where my_locales.php didn't work properly in the mcp
  • FIXED: bug where profile:edit fields would not show on member settings in the CP if profile channel was on another MSM site
  • ADDED: order_items:total_quantity tag to order items fieldtype
  • ADDED: live_rates parameter to checkout_form. Requires updated live rates plugins to work.
  • FIXED: Bug in the tax DB add and edit views to use radio buttons instead of checkboxes.
  • UPDATED: CVV2 is now required for eWay per their revised SPEC
  • FIXED: Quantum had an issue with 3key Mismatch
  • FIXED: order items, in some rare cases would throw notice errors due to unset option_values manually set price modifiers
  • FIXED: bug where checkout_form could inadvertently throw a coupon code error
  • FIXED: bug where non-taxable items could be missing from total
  • ADDED: non_taxable_items and non_shippable_items methods to Cartthrob_cart
  • FIXED: issues with get_shipping_options where error_message wasn't being saved with the options when used in a tag pair.
  • FIXED: Paypal express now supports the price input override in addition to the price parameter in a checkout form
  • FIXED: Removed first name, last name, city and state as required in CDG Quantum
  • FIXED: moved shipping_error message inside of shipping options tag so it can be used inside loop.
  • FIXED: sim now sends correct number of line items
  • FIXED: Issue with sending a line item twice.
  • FIXED: made it so JSON payload of cart info only gets added to form submissions, not just any ajax request
  • ADDED: category groups to discounts w/ categories
  • FIXED: bug where template installer could fail on "search_excerpt"
  • UPDATED: gateway will attempt to add authorization_id to the order if a field named authorization_id is configured.
  • ADDED: ability to add JS to the head in a plugin (use add_to_head type. set JS in 'default' parameter. Use short_name and name parameters too.
  • FIXED: get_status stuff kept referring to the cache in orders model. This is bad if you check the status, make an update, and then check again somewhere else. I canned that for get_order_status and get_order_transaction_id not to use this feature.
  • FIXED: Order model doesn't use caching for get_order_status
  • ADDED: support for authorization code to away and anz_egate.
  • FIXED: Placed Evalmath in a class_exists wrapper
  • FIXED: Some debug() bug. Go figure.
  • FIXED: issue with has_permission where it was allowing you to see anything when logged out.
  • FIXED: error with format_debug where something was reported as an item, when it really wasn't.
  • FIXED: error in discount_info was causing multiple discounts to report exact same data.
  • ADDED: action parameter to all forms, useful for multi-lang setups
  • FIXED: Bug with Ct Matrix. $prefix_only was not initialized.
  • ADDED: Eprocessing, Cardsave, Pivotal gateways to core.

Version 2.1.3

Released May 9, 2012

  • FIXED: Per location rates now looks at shippable_items only
  • FIXED: bug causing php errors in safecracker during a status change (notifications)
  • CHANGED: cartthrob payments to unset the template parser before trying to use it again.
  • FIXED: bug in template helper library when using inline errors
  • CHANGED: urlencode/decode to base64 in get_notify_url
  • ADDED: download start and download end hooks.
  • FIXED: 252 & 253 errors
  • ADDED: cartthrob matrix fieldtypes to include a row_id tag variable even if one isn't defined
  • ADDED: support for UK and GB as GBR abbreviations
  • FIXED: bug in cartthrob_price_simple where cartthrob lib might not be loaded, causing PHP errors
  • FIXED: a problem with save customer info.
  • ADDED: Support for account types in gateway fields.
  • FIXED: bug where URL_THIRD_THEMES was not defined in EE < 2.4
  • FIXED: a bug in the csv2array function call
  • FIXED: jquery billing to shipping select bug. Added order_id to order_items in cart/account template.
  • ADDED: Some weight modifier code to core.
  • FIXED: replaced str_getcsv with custom function. str_getcsv is only available to php 5.3… so we needed to downgrade our function
  • UPDATED: PayPal express now allows you to select default payment screen (credit card or login)
  • FIXED: PayPal Express always uses HTTPS connections now, regardless of whether openssl_open is installed.
  • CHANGED: config file so you can load without loading EE first
  • FIXED: bug where email templates could grab from the wrong MSM site

Version 2.1.2

Released March 28, 2012

  • FIXED: bug that was causing multiple rates to be charged in Location Rates shipping plugin
  • FIXED: bug where {exp:cartthrob:order_items} would appear in the wrong order and conditionals like item:first_item could fail
  • FIXED: bug where customer info fields would not display using inline errors
  • FIXED: {checked} in {options} tag pair in {exp:cartthrob:item_options}
  • FIXED: bug causing php errors when an entry had no categories
  • ADDED: experimental search:your_field param to {exp:cartthrob:cart_items_info}
  • ADDED: field="your_field" param to {exp:cartthrob:item_options}
  • ADDED: GoCardless gateway
  • FIXED: Sage Server order id issue
  • FIXED: eWay now has corrected required fields for CVV2
  • FIXED: updated to new API
  • CHANGED: Removed jQuery dependency in CartthrobTokenizer, to avoid conflicts
  • FIXED: Paypal express better handles a few connectivity errors
  • FIXED: Some JS errors in MCP
  • FIXED: bug where {option_label} in item_options tag did not display the field name correctly
  • FIXED: Order items field now has price_numeric set
  • FIXED: Better error reporting for some conditions in PayPal
  • FIXED: Discounts now calculated before shipping because shipping was not being set to non_shippable correctly
  • ADDED: SafeCracker extension methods for status updates
  • FIXED: Issue with missing entry id variable
  • CHANGED: add on-the-fly item options can be added to package sub items, without explicitly marking "allow selection"
  • FIXED: member data to default to formatting "none" when using w/ profile:edit
  • ADDED: cartthrob:curl_proxy and cartthrob:curl_proxy_port config overrides (great for monitoring payment gateway actions in Charles app!)
  • ADDED: cartthrob:extload_path config override
  • FIXED: bug where created user on checkout was not set to member group pending if activation was required
  • FIXED: selected_shipping_option to show default option
  • FIXED: bug where inventory didn't report correctly when packages were in cart
  • FIXED: bug causing price modifier inventory calculation to be incorrect
  • FIXED: bug where license number would not get created if more than one added to cart with "split quantities" turned on
  • FIXED: tax is set to the default tax value when no tax rules are met
  • CHANGED: items only identify as package if there are one or more items in the package
  • FIXED: bug where it was difficult/impossible to set item options for package sub items
  • FIXED: bug where CI form_validation would throw php notice errors on submit

Version 2.1.1

Hotfix Released February 28, 2012

  • FIXED: bug when using matrix as price modifier and inventory would always be 1
  • FIXED: updater which did not work, even from 2.1.0

Released February 27, 2012

  • FIXED: bug where order_items tag would not properly print more than one row
  • UPDATED: Debug_info improvements
  • FIXED: bug where paypal express was not using new notification system
  • FIXED: bug where PHP in email templates did not work
  • ADDED form_builder_form_start hook
  • FIXED: notice PHP errors in order_model regarding payment_gateway and order_number
  • FIXED: bug when using order_items tag with member_id and entry_id param at the same time

Version 2.1.0

Released February 17, 2012

  • CHANGED: all new Installation templates with more succint syntax and better ajax
  • CHANGED: default fingerprint method to IP Address + User Agent
  • FIXED: bug where EE would error if you did not have a price field selected in CT Product settings
  • ADDED: order payment gateway field to orders channel
  • FIXED: bug where shipping would get charged when using free shipping plugin
  • ADDED: discount_info tag
  • ADDED: Global to DB taxes
  • FIXED: Minor issue with tax error reporting.
  • FIXED: hash to do_hash security method
  • FIXED: adding line items to taxes
  • FIXED: bug where custom reports tabs whose templates contained exp:cartthrob tags generated errors
  • FIXED: bug where you would lose your form data when using inline error handling
  • ADDED: low stock setting to product options
  • ADDED: subtotal_plus_tax to order items field type
  • FIXED: Selected gateway fields work with POST data (for ajax) also works with encoded values now.
  • FIXED: use_billing_info is now saved as customer info data
  • ADDED: nav support for linking to Global item options, CT Admin
  • FIXED: Various issues with use_billing_info
  • CHANGED: get_shipping_options to only output if there are any options.
  • CHANGED: Set up get download link to automatically add free_file when using Field and Entry id. It's removed if member id or group id are set.
  • FIXED: Packages field type now actually uses allow_selection conditional
  • FIXED: package respects allow_selection being deselected
  • FIXED: language is relaunched during relaunch_cart
  • FIXED: bug where PHP errors would show if your MSM site had zero channel fields
  • FIXED: bug in EE 2.4 and packages fieldtype filter wouldn't work
  • FIXED: bug where sequential order numbers would get messed up
  • ADDED: compatibility for EE2.4 file field image manipulations
  • ADDED: New event-based notifications system
  • FIXED: bug with mysql table indexing errors upon upgrade from older versions
  • FIXED: bug where price modifiers did not effect price under certain limited circumstances
  • FIXED: fieldtypes to be compatible with older versions of EE < 2.3

Version 2.0512

Released January 31, 2012

  • CHANGED: ExpressionEngine 2.4 compatibility
  • FIXED: bug where matrix-style settings (like tax and shipping) would give Disallowed Key Characters error
  • FIXED: Paypal express typo bug
  • FIXED: Email issues related to low_stock. Also added email->clear, which might help other email issues
  • FIXED: move position of jump form in payments lib which
  • FIXED: line items should now be being sent to PayPal correctly and saved in PP history
  • FIXED: switch bug that caused order_items to stop looping.
  • ADDED: support for mysql indexes in table_model and upd
  • ADDED: subtotal to order items field type
  • ADDED: support for item_options method to product model
  • FIXED: multi-add tax_exempt and shipping_exempt errors
  • FIXED: error with locales.php where numeric named states were not being recognoized
  • FIXED: tax discount calculation bug
  • ADDED: cartthrob_get_valid_discounts_end hook
  • FIXED: bug with is_in_cart reporting false positives
  • FIXED: bug where using the order_items field in safecracker caused php error

Version 2.0511

Released January 17, 2012

  • FIXED: bug where orders would fail due to error in get_order_status
  • FIXED: added open status check to is_purchased_item
  • ADDED: error_message support to get_shipping_options

Version 2.0510

Released January 12, 2012

  • CHANGED: memory improvements in a few models
  • FIXED: bug where "index" templates were not getting installed
  • CHANGED: hidden pre-install templates now begin with underscore rather than dot
  • UPDATED: Support view now outputs information about curl, ini_set, apache_setenv
  • FIXED: Price by member group did not output price with tax.
  • FIXED: multi add to cart form did not support price and weight parameters
  • ADDED plus tax to price by member group
  • FIXED: bug causing packages filter to break
  • CHANGED. multi-add-to-cart form now supports tax_exempt and shipping_exempt
  • FIXED: bug where package item_options were ignored when calculating item price
  • FIXED: bug where you could get negative tax
  • FIXED: bug in form_builder params switch
  • CHANGED: item tax is rounded on an item by item basis to account for better accuracy with swedish and nz rounding.
  • CHANGED: subtotal plus tax items calculate tax on an item by item basis.
  • FIXED: WorldPay with some probably soon to be unnecessary fixes
  • ADDED: percentage off over x discount discount plugin, and updated the lang file accordingly.
  • FIXED: template_helper to get template file when fetching template
  • FIXED: template_helper to have better parsing of template path
  • ADDED: Blank to states drop down.
  • ADDED: Support for item_option_labels meta
  • FIXED: bug where expiration_date on add_to_cart_form did not get added to purchased_items channel entry
  • ADDED: {categories} tag pair parsing to cart_items_info and order_items
  • FIXED: bug causing PHP error when deleting pre-installed text fields
  • ADDED: Support for saving custom_data to Profile:Edit fields
  • FIXED: Stripe language file error
  • REMOVED: display_settings from matrix fieldtypes and used save_settings instead
  • CHANGED: Cartthrob_payments::strip_punctuation, which was failing on non-PCRE installs
  • FIXED: Bug with tax calculations on tax free sale with discounts being taxed
  • ADDED: Free shipping over x discount plugin
  • FIXED: States drop down was returning list of short and long states if abbrev_value was set
  • FIXED: Various minor issues with default templates.
  • FIXED: Error reporting in Quantum gateway when wrong RestrictKey was sent
  • FIXED: bug where price modifier presets would add extra columns
  • FIXED: Minor issue with and pending payments
  • FIXED: Issue with notifications being generated by Sage when using ob_clean when no buffer existed
  • CHANGED: order_items to parse unparsed {item:foo} tags
  • FIXED: bug where cartthrob_entries_model::entry_vars would pull up field data from the wrong channel, even if field names matched
  • ADDED: split_delimited_string helper to data_formatting
  • FIXED: Small Sage Bug with country codes.
  • ADDED: order_id method to Cartthrob_payments
  • ADDED: default id of checkout_form to checkout_form
  • ADDED: error_variables alias to form_variables for backwards compatability with profile:edit
  • FIXED: regex in entry_vars to clean up false positives in tag pairs
  • FIXED: Auth changed to auth_only with
  • CHANGED: Minor changes in WorldPay related to "desc"
  • FIXED: Price overrides for PayPal Express when price is set explicitly in Checkout form.
  • ADDED: packages support to add_to_cart tag
  • FIXED: bug when adding a product to your cart in two or more different item option variations (ex. small & large), only one item options row would get its inventory reduced
  • UPDATED: item_options tag pair inside order_items
  • FIXED: CartThrob Tax Default (php error if rates not set)
  • FIXED: Per location rates issue with "by order" rates
  • FIXED: Update_item_form bug with $this->input instead of $this->EE->input
  • FIXED: PayPal Express bug with price set in checkout
  • FIXED: minor bug causing PHP notices when using packages
  • FIXED: bug where {ip_address} got parsed as blank inside forms
  • ADDED: missing lang key for item_options field validation
  • FIXED: bug where required captcha in checkout form was not triggering error

Version 2.0506

Released November 11, 2011

  • ADDED: logged_out_redirect tag to add to cart form
  • FIXED: cartthrob_order_items field type; cleaned up some of the plus_tax stuff
  • ADDED: Gateway a a customer info var (thought it was already in there)
  • FIXED: bug where inline styles in email templates would be removed
  • ADDED: protection for having duplicate gateway files in third_party and main gateway folder to prevent PHP errors
  • MOVED: Third party gateways to third party folder
  • FIXED: PayPal doesn't register more than 2 decimal precision. Sending 3 decimals was causing it to be screwed up
  • FIXED: Tax Standard (the database one) was having a problem correctly determining location in some situations.
  • FIXED: bug where checkout_form failed/declined redirects were not being respected
  • FIXED: bug where forms without any parameters would trigger RLS field is required errors
  • FIXED: bug unable to edit shipping settings
  • FIXED: bug when using item_option arrays and the item_options tag pair in order_items
  • FIXED: PHP error in cart_items_info when using arrays as item_options
  • ADDED: Support for EE Email debugger in emails lib
  • FIXED: Members model fix for versions of EE 2.2.1+ where login wasn't being set right since c_uniqueid no longer exists
  • FIXED: auto-install product_inventory field to NOT be an integer type
  • ADDED: captcha option to checkout_form
  • CHANGED: Explicitly removing shipping data from being sent to PayPal when the "do not send" shipping configuration is selected
  • ADDED: debug parameter to arithmetic tag
  • CHANGED: eWay now includes CVV2 by default (thanks Leevi Graham)
  • FIXED: bug where orderby="price" in price modifiers did not work properly
  • FIXED: bug where number formatting params wouldnt be used if you had previously set them in another tag
  • FIXED: bug where third_party discount plugins lang files weren't being loaded
  • FIXED: bugs related to price_plus_tax.
  • FIXED: bug where PHP error (Array to string convertion in Template) would occur when using custom data

Version 2.0503

Released November 1, 2011

  • FIXED: Bug with discounts and PayPal Express

  • FIXED: bug where coupons/discounts global limit did not decrement

  • FIXED: bug where error variables were not parsing correctly with more than one tag on the page

  • FIXED: bug where not required param in checkout_form did not work

  • FIXED: Bug in orders model with summing fields

  • ADDED: custom reports

  • FIXED: bug where third party language files and tax titles were not getting processed correctly

  • FIXED: bug where clear_customer_info did not also clear custom_data

  • ADDED: missing update_required view file

  • ADDED: warning if they somehow made it to settings panel without updating the module

  • FIXED: erroneous self-close tags in installer xml

  • CHANGED: moved installer templates into flat files

  • FIXED: bogo plugin previously required a discount quantity. now it doesn't

  • ADDED: core_ee: plus_tax to anywhere I could find that outputs pricing

  • ADDED: channel now a variable in cart items info

  • ADDED: subtotal with tax field and shipping with tax field to views, config. Needs to be added to auto-installer.

  • ADDED: all price field types now support various flavors of "with_tax"

  • ADDED: code for notifications system that uses papal style list of notifications

  • ADDED: price_with_tax to order items

  • ADDED: fields to order channel configuration

  • REMOVED: tax inclusive price checkbox

  • ADDED: support for my_locales.php

  • FIXED: Settings template had bug

  • FIXED: minor cleanup in several files to use the EXT.

  • FIXED: swapped the position of array_merge in a few instances where I wanted local changes to override channel entry data.

  • ADDED: EE 2.1.3 compatability to cartthrob_matrix fieldtypes

  • FIXED: bug where get_download_link would completely fail on PHP as CGI (calling apache_get_modules)

Version 2.0501

Released October 25, 2011

  • CHANGED: set ct menu to be off by default

  • CHANGED: added autodisable of ct menu if user has uploaded new files but not yet run module updates

  • ADDED: some missing lang fields regarding form validation

  • FIXED: bug regarding CartThrob menu and allowed member groups

  • CHANGED: got rid of the setting to show prices inclusive with tax. Need to change field types further to display additional variable with name like variable:plus_tax

  • FIXED: Bug in ct price modifiers field type that was throwing a safecracker error

  • FIXED: taxed price was not being formatted

  • CHANGED: Some language in PayPal Express

Version 2.0500

Released October 25, 2011

  • FIXED: bug where checkout_form would PHP error on allow_user_price

  • FIXED: bug where inventory column was missing in price modifier field when using SafeCracker

  • FIXED: Cartthrob_discount_free_shipping plugin had unwanted effects on discount/total calculations

  • FIXED: Eway didn't like ampersands. fixed.

  • ADDED: More features for PayPal express

  • FIXED: Minor error with in test mode

  • FIXED: ext load now throws better errors if the system folder can't be found.

  • ADDED: Per order shipping to per location rates

  • ADDED: global tag variables throughout module

  • CHANGED: Made some of the shipping choices in PayPal Express a little more obvious

  • CHANGED: got rid of curl_post in sage_s. Changed to curl_transaction.

  • FIXED: various issues with DB driven tax system

  • FIXED: removed duplicate country_code field in orders channel

  • CHANGED: removed "special" from tax view. Not used for now.

  • REMOVED: PayPal standard has been removed and pushed into our "CartThrob Extras" pit. Use PayPal Express instead. Standard sucks.

  • ADDED: X-sendfile support to cartthrob_file.

  • ADDED: Hooks to multi-add to cart

  • FIXED: ct payments had a PHP error in it

  • FIXED: test mode default problem with eway

  • FIXED: and elate error with expiration date

  • FIXED: world pay needed to have its entire session spawned again.

  • ADDED: line item support to paypal express. various other small changes and additions.

  • REMOVED: 301 header in tag_redirect method

  • ADDED: entry link to order items fieldtype

  • ADDED: session garbage collection as cron job option

  • FIXED: For some reason "admin" was set as default system folder in extload.php

  • FIXED: Removed "class="plugins" from payment gateway select box. It was throwing a JS error

  • ADDED: Some code to to better handle missing subscription information

  • CHANGED: Removed some hidden items from Sage

  • CHANGED: Updated language file in Sage to note how to add description and currency to checkout form

  • REMOVED: vestigial price modifier field mapping

  • ADDED: secure_action parameter to all forms.

  • CHANGED: PayPal express now supports effing credit cards. WHO KNEW it was a nearly undocumented setting. /me shrugs. Screw PayPal standard

  • CHANGED: Eway now uses order id instead of unique id in invoice number.

  • FIXED: small bug in item_options tag if item not set

  • FIXED: Moneris payment gateway was throwing PHP errors due to cURL problem.

  • ADDED: low search compatibility to price modifier field type

  • ADDED: inline error handling/CI form validation to all forms

  • ADDED: Packages fieldtype

Version 2.0457

Released September 26, 2011

  • CHANGED: also_purchased, has_purchased to use order_items table instead of relying on purchased items channel

  • ADDED: entry tag parsing to also_purchased

  • ADDED: ability to give products custom titles in add to cart

  • FIXED: shipping by weight threshold plugin to only use shippable items when calculating weight

  • ADDED: coupon_info and discount_info tags

  • FIXED: shipping to always be 0 if there are no shippable items in the cart

  • CHANGED: order_by params to orderby for consistency, order_by will still work due to fallback

  • FIXED: bug in paypal standard where individual item prices needed to be rounded

  • FIXED: bug when using set config and customer info currency code

  • FIXED: bug when using set config for custom values

  • FIXED: bug with addslashes from emails lib

  • ADDED: allow_selection conditional to item_options tag

  • ADDED: save_customer_info hooks

Version 2.0456

Released September 26, 2011

  • ADDED: Some troubleshooting documentation to docs.

  • ADDED: Some developer code samples for extensions and plugins.

  • FIXED: Various bugs in a multi-shipping custom addon

  • FIXED: You can now override the "title" of an item added using an entry ID.

  • FIXED: Bugs with cartthrob tax default

  • FIXED: various bugs and inconsistencies with Subscription

  • FIXED: if you manually set the price in the checkout, PayPal standard will now honor it and will output one line item Cart Total (or whatever's in the lang file)

  • FIXED: Updated some world pay URLs.

Version 2.0455

Released September 26, 2011

  • ADDED: extension hook for reports tab.

Version 2.0454

Released September 22, 2011

  • ADDED: PayStation payment gateway to dev branch

  • ADDED: Initial support for permissions to mod.cartthrob.php

  • FIXED: issues with existing subscription parameters and post variables.

Version 2.0453

Released September 21, 2011

  • Moving things around in dev branch. That's it.

Version 2.0452

Released September 21, 2011

  • Moving things around in dev branch. That's it.

Version 2.0451

Released September 21, 2011

  • Moving things around in dev branch. That's it.

Version 2.0450

Released September 21, 2011

  • Moving things around in dev branch. That's it.

Version 2.0449

Released September 21, 2011

  • Moving things around in dev branch. That's it.

Version 2.0448

Released September 21, 2011

  • Moving things around in dev branch. That's it.

Version 2.0447

Released September 21, 2011

  • Moving things around in dev branch. That's it.

Version 2.0446

Released September 21, 2011

  • Moving things around in dev branch. That's it.

Version 2.0445

Released September 21, 2011

  • Moving things around in dev branch. That's it.

Version 2.0444

Released September 21, 2011

  • Moving things around in dev branch. That's it.

Version 2.0443

Released September 20, 2011

  • Nothing too exciting here. Mostly text changes to plugins or minor fixes to items. A few things fixed/added to dev branch

  • FIXED: Various fixes to chase orbital gateway in dev branch

  • FIXED: discount percentage off over quantity fixed and tested.

  • FIXED: removed trans_key from being sent in SIM gateway

  • ADDED: Added and changed some files to the docs files.

  • ADDED: Tax default plus quebec tax plugin

  • ADDED: added some notes to the locales config file.

  • CHANGED: moved sale/authorization to advanced settings in paypal express.

Version 2.0442

Released September 20, 2011

  • This revision is mainly dedicated to making tax rates stored as single line items in a special tax database. The methodology used to calculate rates and look through settings hasn't changed however. Legacy plugins will not need to be changed to support this new system as it's in addition to rather than a replacement of the current system.

    • ADDED: get_tax_rates method to EE driver.
  • ADDED: new standard plugin that uses rates set in the database

  • ADDED: add_tax view

  • ADDED: edit_tax view

  • ADDED: delete_tax view

  • ADDED: tax model

  • CHANGED: update adds tax table

  • CHANGED: taxes view now shows add tax and has methods to edit and delete taxes.

  • CHANGED: "default" tax plugin is now a legacy plugin. Added setting to switch between database rates and current rates.

  • CHANGED: cartthrob_lang.php file now has customer facing and backend facing lang lines split into 2 distinct groups (That's for you LEE. Don't say I never did nothin for you)

  • FIXED: SIM now uses new ext load functionality

Version 2.0441

Released September 16, 2011

  • ADDED: shipping bulk quantity threshold to dev branch

  • ADDED: shipping max latter to dev branch

  • ADDED: language folders to live rates plugins

  • ADDED: USPS live rates to dev branch

  • ADDED: sandbox support to eWay gateway

  • ADDED: openssl_open checking added to PayPal express gateway. Connections are made with SSL if possible.

  • ADDED: ridiculous multi-address, multi-method shipping example to dev branch that incorporates UPS + flat rate shipping. Not something that's really releasable, but a good example for some intrepid developer hell-bent on doing something like this.

  • ADDED: More subscription keys to various functions in mod.cartthrob.php

  • ADDED: New control panel setting allows admin to select gateways that can be selected by user.

  • ADDED: gateway_select tag to allow customers to choose the gateway during checkout without having to roll-your-own.

  • ADDED: Default gateway selector in the control panel. Changing settings is now handled by a different drop down so you don't easily change your selected gateway. Masuga, I'm looking at you.

  • CHANGED: Fedex now selects the cheapest rate if no option has been set. Also added a few things to keep it more in line with UPS. Eventually going to strip some functionality out of these live rates plugins and add it to a library

  • CHANGED: Ups will attempt to get the cheapest rate now as well and set that as the option. Fixed minor bug as well that could have caused UPS to dump the shipping cost every time from memory

  • CHANGED: Year_select now has default name of "expiration_year" if none is set.

  • FIXED: Get_download_link bug where some variables were not instantiated and errors were then thrown in limited circumstances.

  • FIXED: issue with month_select where errors were thrown if attributes had not been set. Also added default name to month_select. Is now "expiration_month" if nothing is specified.

  • FIXED: Cartthrob field model will now order matrix data by specified row order

Version 2.0440

Released September 8, 2011

  • FIXED: Issues with Extload.php. Looks like it's about ready for business.

  • CHANGED: Added error code to PayPal Express

  • ADDED: Customer commissioned shipping plugin.

Version 2.0400

Released August 5, 2011

  • added hook to member login, to attach previously logged out carts to the member

  • added fingerprinting settings to CP

  • changed cp_menu default to false, which caused problems for some installs

  • added error suppression to cartthrob_file session_destroy

  • added cart->set_free(), cart->is_free(), changed free order discount plugin to use

  • fixed bug in IE8 where price fields were not indenting

Version 2.0399

Released August 5, 2011

  • CHANGED: curl_post was changed to curl_transaction in most places in the payment gateways. Some hosts don't like the curl library… so I'll go back to my curl_transaction function for most instances.

  • FIXED: Changed purchased_items_default_status to purchased_items_closed_status for purchased items that have been generated but are still processing

Version 2.0398

Released August 3, 2011

  • ADDED: Punctuation stripping function to Payments library.

  • ADDED: Chase Orbital / Paymentech to dev branch

  • FIXED: now strips punctuation from titles when they're being sent to as line items.

Version 2.0397

Released August 2, 2011

  • ADDED: Offsite payment status to config

  • ADDED: Set status offsite function to payments library

  • FIXED: Paypal now better handles cancelations, and now identifies transactions that have merely been left during payment, versus transactions that are being processed.

  • ADDED: Various updates to add offsite payment status as a selectable status for orders and purchased items.

Version 2.0396

Released August 1, 2011

  • CHANGED: Email lib now parses out to / from / subject with order data.

  • FIXED: Cleanup and bug fixes for Paypal Standard library related to new order updating system

  • FIXED: Bug fixes and cleanup in payments lib related to new order updating system

Version 2.0395

Released July 28, 2011

  • CHANGED: Email lib now parses out to / from / subject with order data.

  • FIXED: Cleanup and bug fixes for Paypal Standard library related to new order updating system

  • FIXED: Bug fixes and cleanup in payments lib related to new order updating system

Version 2.0394

Released July 28, 2011

  • added more flexibility to core loading in cartthrob session

  • added extra file protection to discount plugins api so unwanted files are not loaded

Version 2.0393

Released July 26, 2011

  • ADDED: cart_id function to payments library. Fix to relaunch cart function

  • FIXED: $this->EE->functions->set_cookie really needs an expiration, or it's nearly useless. Man… that took forever to figure out.

  • FIXED: _unserialize function added to order model.

Version 2.0392

Released July 26, 2011

  • fixed some bugs from the previous version

Version 2.0391

Released July 26, 2011

  • CHANGED: references to $this->EE->cartthrob_session->custom_userdata(); were changed to the cart_model

  • CHANGED: Overhaul of payments lib. Removed cart shortcuts (references) and added methods for relaunching the cart based on cart ids and order ids. Changed some existing sessions functions to using data loaded from the database. Changed gateway order update and gateway exit offsite to now save and pull data from the database.

  • REMOVED: member_member_login function in the extension was removed since we're not using it AND there was an error in it.

  • ADDED: Cart model. Carts are now stored in the DB.

  • ADDED: Getter methods for session id and cart id in the order model. Various small bug fixes

  • CHANGED: Variety of updates to PayPal Standard. Tweaks

Version 2.0390

Released July 26, 2011

  • fixed upd for this version

Version 2.0389

Released July 26, 2011

  • changed session library to not use PHP sessions, stored in database, and rather than store carts, refer to cart id

Version 2.0388

Released July 25, 2011

  • ADDED: New statuses (like expired, refunded, reversed). Currently only used by PayPal

  • ADDED: get_order_status, get_order_transaction_id, get_order_error_message and related setter methods to orders model

  • ADDED: save_cart_to_order function saves cart data in a snapshot state to the order meta table, get_cart_from_order will reinstantiate the cart data in a new session removed from the customer experience. This allows us to clear the cart data for the customer while still manipulating order data and inventory in entries, coupon data based on payment gateway interaction with the snapshot of the cart at the time the order was placed.

  • ADDED: Added internal statuses to config.php

  • ADDED: send_email_from_array method to CartThrob emails.

  • ADDED: set_order_meta function to Payments library. Allows you to add transaction id, error message and status to a non-ee table for non ADDED: send_email method to payments library. You can now pass an array of data that should be sent in an email

  • session based storage.

  • CHANGED: Cartthrob_emails library now checks order settings before sending admin and customer emails.

  • CHANGED: Broke out various steps in the gateway_order_update function into their own functions that can be called from payment gateways for fine tuned control over order updating.

  • CHANGED: submitted_order_info now looks in the new order_status database table for transaction id and error message.

  • CHANGED: Paypal now has a little more control over when inventory and coupons are processed. New advanced setting to control IPN verification method

  • FIXED: Added a few @ error suppression to output buffer commands in Sage gateways.

  • REMOVED: several unused methods in the payments library.

Version 2.0387

Released July 25, 2011

  • ADDED config override for cartthrob_third_party_path

  • UNDER-THE-HOOD: added ability to instantiate cart with a cart array

Version 2.0386

Released July 20, 2011

  • FIXED: bug in form_builder where security library wasn't loaded in EE 2.1.3

  • FIXED: bug where redirect cartthrob_payments didnt check to see if return url already is a full url

  • ADDED: {taxed_price} to item_option_vars

  • FIXED: bug in SagePay Direct where return redirection was failing

  • FIXED: bug in set_config_price_field (wrong DB table name)

  • FIXED: bug in set_config where values weren't persisting in the session

  • FIXED: bug set_config where used tag commands weren't being parsed out

  • FIXED: bug in Cartthrob_sage where _host and _3dhost needed to be set in initialize function

  • FIXED: bug in Cartthrob_sage where javascript 3dsecure jump form didnt submit

  • FIXED: bug where £ converted to char in number format defaults

  • FIXED: bug causing PHP errors clear_session_on_logout hook

  • FIXED: added package path to session_start and member_member_logout hooks

  • FIXED: bug where non-namespaced discount plugins would get loaded

  • ADDED: hook method to Cartthrob_payments

  • FIXED: bug in is_purchased_item

Version 2.0385

Released July 8, 2011

  • CHANGED: Set config will now output tagdata

  • CHANGED: Cleaned up entries model. Removed some unused code.

  • CHANGED: CartThrob payments library now processes before emails are sent… in case something fails when sending the emails, the cart functions will still clean themselves up.

  • FIXED: Various fixes for FedEx in dev branch

  • FIXED: Set config price field now has channel and channel_id parameters available.

  • ADDED: PayPal Pro recurrent billing gateway in dev branch

Version 2.0384

Released July 5, 2011

  • ADDED: customer location defaults in the shipping plugins library now looks through custom data. It also loads and uses the payments library (for now)

  • FIXED: UPS and FedEx changes in dev branch

Version 2.0383

Released July 5, 2011

  • FIXED: bug in CT menu causing php error (typo)

Version 2.0382

Released July 5, 2011

  • FIXED: bug where CT menu caused PHP errors when you have fewer than two channels

  • FIXED: bug in add to cart causing fatal PHP error, missing channel_has_fieldtype method in cartthrob_field_model

  • FIXED: bug where non-array price modifier presets were getting saved

Version 2.0381

Released July 5, 2011

  • ADDED: customer location defaults in the shipping plugins library now looks through custom data. It also loads and uses the payments library (for now)

  • FIXED: UPS and FedEx changes in dev branch

Version 2.0380

Released July 1, 2011

  • ADDED: UPS live rates plugin to dev branch

  • CHANGED: Sample code for FedEx live rates plugin

  • FIXED: FedEx plugin, minor fixes.

Version 2.0379

Released July 1, 2011

  • ADDED: htmlspecialchars fix to line items.

  • DEV: Added a PX Pay payment gateway, and discount_items_in_channel coupon plugin

  • FIXED: FedEx updated with a variety of fixes.

  • FIXED: version() to version in upd.cartthrob.php

  • FIXED: Changed member_member_logout hook to *really* destroy the session. Previously, on some systems, the session would not be completely cleared. We added a bit more destruction for those situations.

  • CHANGED: relaunch_session function in CartThrob Payments library now will manually recreate the users session if encrypted sessions are not available.

Version 2.0378

Released July 1, 2011

  • ADDED: CP main menu tab + setting to turn on/off

  • ADDED: cartthrob_discount_filter hook

  • ADDED: foo:numeric tags, aliases for foo_numeric tags

Version 2.0377

Released June 28, 2011

  • CHANGED: Now customer data is saved to member fields before users exit offsite for certain gateways.

  • CHANGED: Order model can now set member id manually rather than getting it from the session

  • FIXED: Core EE should now use "use_billing_info" and save data to shipping fields.

Version 2.0376

Released June 28, 2011

  • FIXED: window.console bug in previous version

Version 2.0375

Released June 28, 2011

  • FIXED: bug where cartthrob_matrix added rows would be disabled

Version 2.0374

Released June 28, 2011

  • ADDED: EE 2.2 compatibility

  • CHANGED: arithmetic tag uses new math lib, no longer throws PHP errors

Version 2.0373

Released June 27, 2011

  • ADDED: Support in shipping plugins API for creating default array keys in returned plugin options

  • ADDED: customer_location_defaults now has the ability to manually set the default as a parameter rather than just using the site defaults.

  • ADDED: Count and total_results variables to get_shipping_options

  • ADDED: Beta support for 3d in Sage

  • FIXED: Issue with Taxes API where tax_rate and tax_percentage were not returned.

  • FIXED: Typo in relaunch_session_full function

  • FIXED: changed activate_plugin to a non-encoded boolean in get_live_rates_form

  • FIXED: Various changes and fixes to the FedEx live rates plugin.

  • CHANGED: PayPal now sends line items. Tax and Shipping are also now line items, rather than specific PayPal definitions for "tax" and "shipping". Let me know if this causes a problem

Version 2.0372

Released June 21, 2011

  • ADDED: Sample Code for FedEx in dev branch

  • ADDED: Support for download chunking in the files library. Made some additions to file debug.

  • ADDED: Can automatically activate a shipping plugin during get_live_rates operation

  • FIXED: Files library had a few error conditions moved around. Turned of file compression at apache / ini level (where possible) to avoid GZIP issues with large downloads.

  • FIXED: Payment gateway language files are automatically loaded (I thought we were doing this before… apparently not). Language files were always required, but apparently not automatically loaded.

  • FIXED: Paths library doesn't automatically convert everything into an http url. If the url is preceeded with a slash, it is ignored (critical for server paths)

  • FIXED: PayPal Express now works properly during a "cancel" operation.

Version 2.0371

Released June 15, 2011

  • ADDED: FedEx to dev branch

  • ADDED: Several lines to the lang for live rates plugins, and months

  • ADDED: Shipping library

  • ADDED: Get_live_rates method and updated update_live_rates_action method to work with live rates plugins.

  • ADDED: Month_select method

  • ADDED: Tax view now will display multiple tax plugins (if any others are available)

  • FIXED: Fixed several discounts that used entry ids

  • FIXED: Sage_server, now uses ob_flush, etc to output sage responses. This should help notify sage correctly even if there are php notices or errors or other output erroneously printing to screen

  • CHANGED: Cartthrob_payments now uses $this->customer_info to reduce possibility of index errors.

  • CHANGED: Shipping API now supports shipping library.

Version 2.0370

Released June 15, 2011

  • added set_shipping method to Cartthrob_cart

  • added page_uri and page_url to entry vars

Version 2.0369

Released June 9, 2011

  • ADDED: relaunch_session_full method to the payments library in case you REALLY need to instantiate a full session again. Sometimes required if you want to manipulate a session from a 3rd party.

  • FIXED: Reports library now displays everything but items with failed, declined, and processing internal statuses.

  • FIXED: Renamed the bogo plugin

Version 2.0368

Released June 9, 2011

  • fixed bug in discount_model isset coupon_limit

  • fixed item subtotal calculation in email templates to use price_numeric instead of price

Version 2.0367

Released June 9, 2011

  • DEV: More order statuses

  • DEV: Support for more order update notifications

  • DEV: A few todos added to PayPal standard gateway

  • FIXED: Shipping by location quantity threshold now operates only on shippable items.

  • CHANGED: Payment gateway library allows you to avoid sending emails during gateway_order_update (eventually leading to notifications that can be specific to one gateway.) I'M LOOKING AT YOU PAYPAL!!!

Version 2.0366

Released June 8, 2011

  • FIXED: The payments gateway library now saves data to the database when gateway_exit_offsite is called. Even if encrypted sessions aren't being used, we'll save the session data to the DB so that it can be accessed later.

  • FIXED: The sessions_relaxed library will now call up an encrypted session from the DB and relaunch it into standard sessions.

Version 2.0365

Released June 8, 2011

  • FIXED: The payments gateway library now saves data to the database when gateway_exit_offsite is called. Even if encrypted sessions aren't being used, we'll save the session data to the DB so that it can be accessed later.

  • FIXED: The sessions_relaxed library will now call up an encrypted session from the DB and relaunch it into standard sessions.

Version 2.0364

Released June 7, 2011

  • Fixed default shipping per location rates.

Version 2.0363

Released June 7, 2011

  • ADDED: A few customer commissions in dev branch

Version 2.0362

Released June 7, 2011

  • ADDED: Get_download_link now has debug parameter

  • ADDED: Setting to use EE's session start hook in the case that there are cart loss problems.

  • ADDED: CartThrob file downloads library. Has better support for large file sizes (went back to using CT1's download methods instead of CI's force_download library.) Includes debugger to check if files exist, and to output names and locations of files to troubleshoot download problems.

  • NOTED: In Reports library; there are a few TODOs all related to default status.

  • CHANGED: the file dowload system to use new File library

  • CHANGED: Sessions relaxed library now supports "use encrypted sessions" setting. If not set, it will use standard PHP sessions, and will relaunch standard PHP sessions.

  • FIXED: Gateway_exit_offsite now has URL set as an optional parameter. If URL not present, the system will be updated, but the customer won't be redirected. Useful for payment gateways that (sadly) require jump pages because they require data to be POSTED to them (and you can't post from a post)

  • FIXED: Some users had reported issues with PC versions of FireFox and IE (various versions) dropping cart data unexpectedly. Though we couldn't identify the exact cause of this, we have at least added a workaround. There is now the option of turning off CartThrob's encrypted DB sessions, and instead using standard PHP sessions. I suspect that either an extension or hosting configuration conflicts with CT's method of taking over native PHP sessions. If this happens, the new setting can make the system use the default sessions handling.

  • FIXED: Problem with data filter library trying to do an array merge on a non-array.

  • FIXED: Paths library's get_server_path function now works (we weren't using it before really). It'll now correctly identify and output the server path of a local file or absolute URL.

  • FIXED: version function in MCP

  • FIXED: multi_add_to_cart_action needed to have the encrypt library loaded.

  • FIXED: purchased_entry_ids was returning the count, not the entry ids.

  • FIXED: dowload_file was attempting to ENCODE rather than DECODE data when the encrypted parameter was set (it's not really used anymore… but hey, I fixed it anyway)

  • FIXED: Get_download_link now correctly loading encrypt library.

  • FIXED: purchased_items function in Purchased Items Model. It wasn't returning the purchased items correctly

  • FIXED: was throwing an error if an entry ID was not passed in. Dynamic items were causing problems. Will now use 000 for entry id, if not available

  • FIXED: Attempted to work around a paypal issue with sending discount amounts greater than the cart items total. Will now send only the total cart without line itemed discounts and shipping if the discount amount will cause problems with PayPal

  • FIXED: Variety of fixes for WorldPay using real world testing. Various problems with template parsing and parameter formatting have been corrected.

Version 2.0361

Released June 1, 2011

  • ADDED: Untested BOGO coupon plugin

  • ADDED: Single flat rate shipping plugin

  • FIXED: Percentage off product had some content that was not using LANG files.

Version 2.0360

Released June 1, 2011

Version 2.0359

Released May 22, 2011

  • FIXED: Fixed an uninitiated variable called in data_formatting_helper

  • FIXED: Simplified code in save_customer_info single tag.

Version 2.0358

Released May 22, 2011

  • FIXED: Changed TPML to TMPL in 2 undocumented functions

  • FIXED: Corrected an issue with the redirect URL when an offsite payment gateway tried to redirect on a site with index.php in the URL

  • FIXED: Various PayPal Express fixes.

Version 2.0357

Released May 20, 2011

  • CHANGED: shipping and tax automatically return zero if cart is empty

  • ADDED: order entry tag parsing submitted_order_info

  • ADDED: entry_id and field params to get_download_link

Version 2.0356

Released May 19, 2011

  • CHANGED: Added processing status to submitted order info in auto-install templates

  • CHANGED: Moved some $auth statuses around in SageServer in hopes of avoiding an obscure bug

  • CHANGED: Added conditionally required fields to eWay for GEOIP anti-fraud.

Version 2.0355

Released May 16, 2011

  • ADDED: :label tag to price modifier fieldtype, {your_field:label}

  • FIXED: by location threshold shipping plugins were not using largest value when all thresholds were exceeded

Version 2.0354

Released May 14, 2011

  • ADDED: PayPal Express payment gateway (finally)

Version 2.0353

Released May 10, 2011

  • FIXED: Several cases where form_builder wasn't being loaded (caused problems using functions outside of CT)

  • FIXED: Entries model had a few extraneous EE objects.

  • FIXED: Made sure ini_set is_callable in the sessions library.

  • FIXED: dataformatting helper no longer throws index errors when merging arrays (and one is not an array)

  • FIXED: Order country is now saved (country codes were saved before… but not countries if set manually)

  • FIXED: Removed several required fields from gateway that weren't really required.

  • ADDED: Psigate 3rd party payment gateway

  • ADDED: Several user-requested tags were added to module (Not documented yet)

Version 2.0352

Released May 6, 2011

  • FIXED: bug where global discount settings, such as Limit By Member Group, were not displaying

Version 2.0351

Released May 3, 2011

  • REMOVED: Moved affiliator and notice into their own repositories. Does not affect CartThrob.

Version 2.0350

Released May 2, 2011

  • ADDED: Extra variable check in Paths library to account for servers with really mangled URL data.

  • FIXED: Explicitly added "form" helper. Bug was only noticeable when interacting with CartThrob through a third-party extension

  • FIXED: Removed a… um… *cough* hack to get around an EE entry time bug that has either been fixed, or is…. someone else's problem now. Lately there have been some entry time inconsistencies reported with EE2 upgrades. Our hack was originally used to get around these inconsistencies. Now it's not needed or not useful depending on your configuration.

  • FIXED: Paypal pro was not correctly sending its acceptable card types along to the system. Is now.

Version 2.0349

Released May 1, 2011

  • ADDED: Notice addon

  • CHANGED: Various Affiliator files were changed / fixed after testing.

Version 2.0348

Released April 28, 2011

  • FIXED: bug where user message template was being used for checkout declined/failed errors instead of redirecting

Version 2.0347

Released April 26, 2011

  • ADDED: Simple commerce view to affiliator

  • ADDED: transactions model

  • ADDED: transactions view

Version 2.0346

Released April 26, 2011

  • ADDED: Added token functions (devving… ) just starting

  • CHANGED: Updated a bunch of Affiliator stuff. More support for transaction tracking, SimpleCommerce and Brilliant Retail.

Version 2.0345

Released April 26, 2011

  • ADDED: SimpleCommerce support in Affiliator

  • ADDED: Payments views & features to Affiliator

  • CHANGED: Adjusted some languageThrob

  • FIXED: session_id was being used in Sage Direct. SOME session_ids contain commas… sage doesn't like commas. Now uses timestamp.

Version 2.0344

Released April 25, 2011

  • abstracted channel:entries tag parsing to cartthrob_entries_model, added member_downloads method as an example of this

  • added form validation via required and rules parameters in form_builder

  • made show_errors default on all forms

  • refinements to form_builder library

Version 2.0343

Released April 25, 2011

  • ADDED: Affiliator to Addons branch

Version 2.0342

Released April 25, 2011

  • FIXED: Formbuilder now loads data formatting helper correctly

  • FIXED: Content and language changes for CartThrob direct payment gateway

  • FIXED: Language fix for email view.

Version 2.0341

Released April 22, 2011

  • FIXED: small bug in last build in form_builder, added reset to initialize

Version 2.0340

Released April 22, 2011

  • ADDED: required param to all forms w/ validation via form_builder, still needs some tweaking

Version 2.0339

Released April 21, 2011

  • FIXED: bug where base_price was the same as price in cart_items_info

Version 2.0338

Released April 20, 2011

  • ADDED: variable_prefix (optional) tag to all tags

  • FIXED: bug where price modifier presets with spaces in the name would not save

Version 2.0337

Released April 19, 2011

  • FIXED: bug in sanitize_integer introduced recently that caused items to be removed from cart when updating quantity

  • FIXED: bug when checking for matrix fields in get_all_price_modifiers with no cols

Version 2.0336

Released April 18, 2011

  • FIXED: bug in email templates when using apostrophes

  • FIXED: bug where item_options: tag pairs not parsing in cart_items_info when using {price}

Version 2.0335

Released April 15, 2011

  • FIXED: bug where you were unable to save customer info values that were set as default customer location

  • FIXED: bug where you could not save other custom fields as anything but 'none' formatting

Version 2.0334

Released April 14, 2011

  • FIXED: Various lang fixes

  • CHANGED: Cartthrob payment gateway has more invoice detail

  • FIXED: Order id was lost in most recent release after purchase. Added back in.

  • FIXED: Corrections to BeanStream gateway

  • FIXED: Create user now honors EE's account authentication settings, and sends emails.

Version 2.0333

Released April 14, 2011

  • FIXED: bug where split items by quantity wasn't working in add_to_cart or update_cart

  • FIXED: bug causing php notice error when using {switch= in cartthrob fields

  • FIXED: bug where payment gateway libraries weren't being loaded in CP

  • simplified entry_vars method of cartthrob_entries_model

Version 2.0332

Released April 13, 2011

  • FIXED: bug where empty fields were being passed to fieldtype replace_tag

  • FIXED: bug where product model wasn't being loaded causing php error in ft.cartthrob_order_items

Version 2.0331

Released April 13, 2011

  • FIXED: js bug in cartthrob matrix fieldtype, missing semicolon (

  • FIXED: bug in cartthrob_direct payment gateway, incorrect classname

  • FIXED: bug in clear_cart, clear_customer_info was not working

Version 2.0330

Released April 13, 2011

  • ADDED: CartThrob Payment Gateway

Version 2.0329

Released April 13, 2011

  • CHANGED: Shortened length of notification URLs by replacing gateway and method with G and M

  • RENAMED: Sage server related files.

Version 2.0328

Released April 12, 2011

  • FIXED: Updater was causing DB error. Is now fixed.

Version 2.0327

Released April 8, 2011

  • ADDED: number formatting to get_shipping_options

  • ADDED: order_items stand alone tag

  • FIXED: PHP notice undefined index errors in cart_items_info

  • FIXED: bug where price simple fields could not be resized

  • abstracted entry/fieldtype parsing into cartthrob_entries_model

Version 2.0326

Released April 7, 2011

  • ADDED: Payleap payment gateway

  • ADDED: Support for passing in options to curl_transaction

  • ADDED: "title" and "invoice" to order data object.

  • FIXED: Minor bugs with SageServer

  • FIXED: Removed some irrelevant required fields from SageDirect

Version 2.0325

Released April 7, 2011

  • ADDED: number format currency code default to the default customer info

  • ADDED: refreshed XID hash as part of json object in ajax form returns

  • ADDED: "light" categories tag pair parsing in cart_items_info

  • FIXED: rows in cart_items_info were retaining values from previous row (

  • FIXED: bug where deleting one row of product channels deleted all product channels

  • CHANGED: db column in order_items from parent_id to order_id

Version 2.0324

Released April 5, 2011

  • added price_simple field with currency symbol select to branches

  • fixed bug in updater where row_id should've been row_order

  • fixed bug in cart_items_info where typography library was not being loaded

Version 2.0323

Released April 4, 2011

  • ADDED: cart_total_numeric, cart_subtotal_numeric, etc. to cart_info & cart_items_info for use in conditionals

  • ADDED: select which countries to show in countries/country_select tags in the CP

  • ADDED: add_blank parameter to country_select tag

  • FIXED: bugs in cart_items_info fieldtype parsing

  • FIXED: bug where order_items field was not parsing in channel entries, because they weren't saving properly

Version 2.0322

Released April 4, 2011

  • FIXED: PayPal order title = 0 issue. (Now displays default item from PayPal lang file.)

  • FIXED: Attempted to fix an inventory issue with multi-add-to-cart form.

Version 2.0321

Released April 2, 2011

  • ADDED: Low stock email view & settings

  • CHANGED: Product model reduce_inventory now returns revised stock level.

  • CHANGED: ee core reduce_inventory function now can trigger low stock emails

Version 2.0320

Released April 2, 2011

  • CHANGED: Added rate_price to flat rates shipping plugin

Version 2.0319

Released April 2, 2011

  • ADDED: Settings to control login of users created during checkout

Version 2.0318

Released April 1, 2011

  • FIXED: bug Cartthrob_shipping_by_location_quantity_threshold (

  • CHANGED: cartthrob_order_items field now uses custom DB table; this will allow us to make more advance order reports

  • FIXED: bug where payment gateway lang file wasn't being loaded

  • FIXED: bug in Languages library trying to load deprecated cartthrob_ext_lang

  • ADDED: auth array in checkout form to json response, added error message to json response

  • ADDED: fieldtype tag parsing in cart_items_info, as in channel:entries

Version 2.0317

Released March 31, 2011

  • FIXED: Create_user was not properly throwing errors when usernames / email addresses existed.

  • FIXED: added number_format to line items in so that it wouldn't choke on numbers like $99.9904012011

Version 2.0316

Released March 31, 2011

Version 2.0315

Released March 29, 2011

  • added return="" goes to current url in form builder

  • phpdoc'd a lot in the core app

  • refactored some code for consistency

Version 2.0314

Released March 26, 2011

  • ADDED: support for email address as username in member create

  • ADDED: tax_plugins folder in third_party folder

  • ADDED: price_plugins folder in third_party folder

  • ADDED: branch for third_party items

Version 2.0313

Released March 25, 2011

  • started PHPDoc'ing cartthrob core in anticipation of writing developer docs

Version 2.0312

Released March 25, 2011

  • ADDED: third_party/ folder for custom payment_gateways, discount_plugins, and shipping_plugins

  • CHANGED: settings saved notification to native EE CP notification

  • ADDED: retrieval of custom member data into session when using Save Member Data to custom fields

  • added extension method for starting session early in sessions_start (did not enable that hook yet)

Version 2.0311

Released March 23, 2011

  • FIXED: bug where total <= 0 didn't trigger a free auth (bypass payment gateway)

  • FIXED: bug in countries tag where country_code wasn't being parsed

  • ADDED: countries: prefix to countries tag variables in case of parse order / tag overlap

  • FIXED: bug in get_shipping_options creating optgroups

  • added reset_total, reset_shipping, reset_discount, reset_tax, reset_subtotal to Cartthrob_cart, so if you are changing config on the fly you can re-calculate these numbers

  • added reset_shipping to set_config_shipping_plugin

Version 2.0310

Released March 23, 2011

  • ADDED: NAB Gateway. Thanks AG!

Version 2.0309

Released March 23, 2011

  • FIXED: Added transaction_id to variables available for emails

Version 2.0308

Released March 23, 2011

Version 2.0307

Released March 23, 2011

  • FIXED: language change in paypal standard

Version 2.0306

Released March 22, 2011

  • ADDED: return url to form json responses

  • added all_countries method to locales library

  • added framework for selecting which countries to display (must enable later by showing locales view in settings)

Version 2.0305

Released March 21, 2011

  • FIXED: bug when checking reports with no orders yet saved

Version 2.0304

Released March 21, 2011

  • FIXED: bug where extension calls were using old universal_call_extension syntax causing PHP errors

  • FIXED: bug where entering a blank quantity in multi_add_to_cart_form would cause item to be added with 0 quantity

  • made item_options tag parsing a bit easier, moving most of the code into item_option_vars()

Version 2.0303

Released March 21, 2011

  • ADDED: session uses EE's cookie prefs and uses session lifetime pref

  • ADDED: price modifiers now auto-detected based on fieldtype

  • FIXED: style bug in settings nav

  • changed all objects to explicit by reference, stopped trusting PHP to do it right without it

Version 2.0302

Released March 21, 2011

  • FIXED: Language tweaks

  • FIXED: Multi add to cart now checks inventory levels.

Version 2.0301

Released March 18, 2011

  • ADDED: price_numeric tag to all the pricing tags, for conditionals {if price_numeric > 0}

  • ADDED: {select} and {options} tag pairs, {input} and {options_exist} single vars to item_options

Version 2.0300

Released March 18, 2011

Version 2.0299

Released March 18, 2011

  • FIXED: Paypal standard; fixed $clear bug

Version 2.0298

Released March 17, 2011

  • FIXED: Paypal standard PHP bug.

Version 2.0297

Released March 17, 2011

Version 2.0296

Released March 16, 2011

  • CHANGED: data_sorter library is no called data_filter (SafeCracker conflict)

  • started working on Cartthrob_item_package

Version 2.0295

Released March 16, 2011

  • FIXED: Paypal standard PHP bug.

Version 2.0294

Released March 16, 2011

  • UPDATED: noted that the Echo NVP gateway is untested.

  • FIXED: Paypal now clears cart if a transaction id is returned

  • UPDATED: noted some testing credit card numbers in SagePay and SagePay Server

Version 2.0293

Released March 15, 2011

  • ADDED: fieldtype auto-installation with module

  • ADDED: item_options:your_custom_field:your_custom_column parsing

Version 2.0292

Released March 15, 2011

  • ADDED: {filedir_x} parsing to cart_items_info

Version 2.0291

Released March 14, 2011

  • ADDED: Echo NVP gateway

Version 2.0290

Released March 14, 2011

  • added clear_session_on_logout setting

Version 2.0289

Released March 14, 2011

  • FIXED: gateway selection values are now easier to find.

Version 2.0288

Released March 14, 2011

  • added calendar helper for PHP installations without cal_days_in_month function (

  • added settings page for setting the encryption key, if it's not set you won't be able to access any other settings

Version 2.0287

Released March 14, 2011

  • ADDED: more robust PayPal IPN handling

Version 2.0286

Released March 14, 2011

  • added product meta to Cartthrob_item_product class

  • added calendar helper for PHP installations without cal_days_in_month function (

  • added "settings saved" confirmation when using CartThrob CP

  • load javascript library before calling redirect, to prevent PHP errors on ajax calls

  • fixed bug in download_file_form, where it wouldn't parse {site_url} variable

  • fixed bug where cart_items_info wasn't parsing entry custom fields (

Version 2.0285

Released March 14, 2011

  • FIXED: added inventory check to Add to cart form

  • FIXED: updated the form builder to use the EE's link builder functionality to get around base_url prodblem

  • FIXED: Language items missing from several of the offline payments gateways

  • ADDED: Save order payment gateway

Version 2.0284

Released March 14, 2011

  • Added ogone payment gateway.

Version 2.0283

Released March 11, 2011

Version 2.0282

Released March 11, 2011

  • Minor cleanup

Version 2.0281

Released March 10, 2011

  • fixed typos in template installer xml causing php "Cartthrob_by" error

Version 2.0280

Released March 10, 2011

  • updated template_xml theme url paths

Version 2.0279

Released March 10, 2011

  • updated auto install templates

  • removed $this->EE->cartthrob as an extension parameter throughout

Version 2.0278

Released March 9, 2011

  • updated default settings

  • tweaked template installation to set some default settings after installation

Version 2.0277

Released March 9, 2011

  • Language tweaks. Paypal: added support for "pending" statuses.

Version 2.0276

Released March 9, 2011

  • updated template_xml

Version 2.0275

Released March 9, 2011

  • fixed bug in default customer location dropdowns not showing selected value

Version 2.0274

Released March 9, 2011

  • added dropdowns to the states and countries selects in default customer location

  • sorted payment gateways alphabetically in the cp

  • fixed bug in data sorter library

Version 2.0273

Released March 9, 2011

  • made cartthrob_loader only load the core up if it's not already loaded

  • suppressed session_start error

Version 2.0272

Released March 9, 2011

  • added clear_cart to cartthrob_payments

Version 2.0271

Released March 9, 2011

  • removed $id property of cartthrob_cart

  • updated version number

  • added cartthrob_sessions db table updates to module installer/updater

  • removed login hook from extension

  • fixed cartthrob_session_relaxed to work with new cartthrob session

  • minor tweaks to cartthrob_session

Version 2.0270

Released March 8, 2011

  • Moved the new session library into the main branch. As far as I can tell it's more stable than CI's native session. Added note to session_relaxed. Minor tweaks to paypal.

Version 2.0269

Released March 8, 2011

  • Fixed lost $customer_info issue

Version 2.0268

Released March 8, 2011

  • fixed bug in new cartthrob session no need to unserialize

Version 2.0267

Released March 8, 2011

  • reverted existing cartthrob session library (accidentally overwrote old version in trunk)

Version 2.0266

Released March 8, 2011

  • added commented out update to db scheme in upd->update()

Version 2.0265

Released March 8, 2011

  • fixed bug in new cartthrob session library that did unnecessary serializing/unserializing

Version 2.0264

Released March 8, 2011

  • Removed some comments

Version 2.0263

Released March 8, 2011

  • more tweaks/streamlining to cartthrob session

Version 2.0262

Released March 8, 2011

  • Meh

Version 2.0261

Released March 8, 2011

  • Wrote the get_key function

Version 2.0260

Released March 8, 2011

  • Added a few variables to the constructor

  • Added now property and _get_time function

  • Added sess_gc function

Version 2.0259

Released March 8, 2011

  • added userdata property to new cartthrob sesssion library, changed _read _write to sess_read sess_right, cleaned up generate fingerprint

Version 2.0258

Released March 8, 2011

  • Added sess_destroy function to new sessions class

Version 2.0257

Released March 8, 2011

  • added custom_userdata and set_userdata methods to new cartthrob_session library

Version 2.0256

Released March 8, 2011

  • cleaned up code in new cartthrob_session

  • added user_data encryption + serialization to new cartthrob_session

Version 2.0255

Released March 8, 2011

  • added new cartthrob_session lib to branches

Version 2.0254

Released March 8, 2011

  • added language key for custom_data field validation

Version 2.0253

Released March 8, 2011

  • Fixed issue with a check for credit card numbers during checkout

Version 2.0252

Released March 8, 2011

  • fixed php error, in checkout_action where check_valid_cc_number() was called instead of modulus_10_check()

Version 2.0251

Released March 8, 2011

  • fixed bug in cartthrob_price_simple where padding was wrong when field was hidden

  • fixed bug in item_options when row_id was 0

  • added {option_value} tag to item_options

  • changed item_options vars to determine value of item_options:input tag if given row_id

Version 2.0250

Released March 8, 2011

  • added earlier parsing of option_field in item_options so you could use it as an {item_options:select} parameter

Version 2.0249

Released March 8, 2011

  • added if no_items tag to cart_items_info (if you have that tag nested no_results won't parse, so this is an alternate)

  • fixed bug where non-numeric quantities were allowed in update_cart_form

  • fixed bug where blank quantity would delete item in update_cart_form

Version 2.0248

Released March 8, 2011

  • Fixed some issues with rounding

Version 2.0247

Released March 8, 2011

  • Language fixes

Version 2.0246

Released March 8, 2011

  • Updated some of the gateways. Updated language file.

Version 2.0245

Released March 7, 2011

  • Made license number field display at bottom except when blank. Was getting annoyed by it always being open.

Version 2.0244

Released March 7, 2011

  • Added some new generic payment gateways

  • Added theme files for generic store

  • Changed offline payments a bit

  • Changed the dev template to use more fields

Version 2.0243

Released March 7, 2011

  • fixed bug where you'd get php errors in the product settings if you deleted a product channel

Version 2.0242

Released March 7, 2011

  • updated version number

Version 2.0241

Released March 7, 2011

  • removed var_dump in member_member_logout hook

Version 2.0240

Released March 7, 2011

  • fixed php error in cartthrob_shipping_flat_rates

Version 2.0239

Released March 7, 2011

  • updates to create user on checkout functionality

  • create user is ignored if you are logged in

  • logs user in after creation if no account activation is required

Version 2.0238

Released March 7, 2011

  • added error to checkout_action if logged out and guest checkout not allowed, instead of no_results

Version 2.0237

Released March 7, 2011

  • fixed php error in cartthrob_item (taxed_base_price)

Version 2.0236

Released March 7, 2011

  • added item_base_price to cart_items_info

  • added tax inclusive base price to cart_items_info

Version 2.0235

Released March 7, 2011

  • added add_package_path to fieldtype constructor

Version 2.0234

Released March 7, 2011

  • added tax_inclusive_price to fieldtypes

  • added add_package_path to fieldtypes

Version 2.0233

Released March 5, 2011

  • Minor language change.

Version 2.0232

Released March 4, 2011

  • Various language adjustments

  • Fixed swedish / new zealand rounding.

Version 2.0231

Released March 4, 2011

  • fixed bug where show_errors was defaulting to false instead of true

Version 2.0230

Released March 4, 2011

  • added row_switch, row_count, total_rows to cartthrob_matrix

Version 2.0229

Released March 4, 2011

  • Fixed minor shipping bug

Version 2.0228

Released March 4, 2011

  • fixed but in cart items info where item_subtotal always returned 0

Version 2.0227

Released March 4, 2011

  • added accurate price, shipping, weight, and title to order('items') saved order data

Version 2.0226

Released March 4, 2011

  • fixed bug where cartthrob order items fieldtype item:price was not formatting

  • tweak some custom fields in the template installer to not show field format

Version 2.0225

Released March 4, 2011

  • fixed bug where option_first_row, option_last_row weren't parsing correctly in item_options

  • streamlined cartthrob_emails library

  • fixed bug where admin subject and message were being used for customer notification email

  • fixed bug where a blank from/from name in customer notification email were not defaulting to EE webmaster email/webmaster name

Version 2.0224

Released March 3, 2011

  • Minor tweaks to Paypal standard, mostly in regard to logging various things.

  • Added ability for "processing" orders to save transaction IDs

Version 2.0223

Released March 3, 2011

  • Worked to get rid of return_processing. Not deprecated yet, but headed that way.

  • Added a few empty functions in preparation for more notification emails

  • Adjusted several of the redirect gateways to not use return_processing.

Version 2.0222

Released March 3, 2011

  • Fixed bug with coupon model having some missing indexes

  • Fixed some coupon bugs

  • Language fix for per location rates

  • Sage Server tweaks

Version 2.0221

Released March 3, 2011

  • Fixed discount plugins call to sanitize_number

Version 2.0220

Released March 3, 2011

  • fixed bug where coupon codes/discount plugins were not showing lang translations

Version 2.0219

Released March 3, 2011

  • fixed bug where calling TMPL->parse was removing cartthrob's package path from the core loader

Version 2.0218

Released March 3, 2011

  • Language and payment gateway tweaks. Added more default expiration years to payment API.

Version 2.0217

Released March 3, 2011

  • added workarounds for reloaded model errors in cartthrob_core_ee

Version 2.0216

Released March 3, 2011

  • added workarounds for reloaded library errors in ft.carthrob_matrix and ft.cartthrob_price_simple

  • added setup_all function to cartthrob_loader (so you can update all instances of cartthrob app objects throughout the system)

  • added setup_all call in cartthrob payments relaunch session

Version 2.0215

Released March 3, 2011

  • Fixed bug where $entry_id should have been $order_id

Version 2.0214

Released March 3, 2011

  • added item_options tag

Version 2.0213

Released March 3, 2011

  • Fixed issue with duplication of hidden fields on gateway fields.

Version 2.0212

Released March 3, 2011

  • fixed bug on reports page when no order channel was setup

Version 2.0211

Released March 3, 2011

  • changed is_callable to method_exists

Version 2.0210

Released March 2, 2011

  • Added jQuery.form.js to themes folder.

  • Added reports_header to cartthrob_lang

  • Changed is_callable to method_exists in API_cartthrob_shipping_plugins. You'd think that is_callable would tell you if a function is actually callable… but it was throwing bool (true)s like candy at a parade even when a function was undefined. So I switched it to method_exists, which was much less friendly towards false positives. WTF?!?!

Version 2.0209

Released March 2, 2011

  • fixed bug where forms weren't honoring attributes (id, class, name, onsubmit)

Version 2.0208

Released March 2, 2011

  • added lang keys for some reports tab data

Version 2.0207

Released March 2, 2011

  • added discount to reports

Version 2.0206

Released March 2, 2011

  • added reports library

  • significant additions to reports CP tab

Version 2.0205

Released March 2, 2011

  • fixed bug where get_item_shipping was being called even if method didn't exist

Version 2.0204

Released March 2, 2011

  • replaced {option} with {option_value} in auto-install templates

Version 2.0203

Released March 2, 2011

  • fixed some strange space characters in the config's email templates

Version 2.0202

Released March 2, 2011

  • fixed bug in extension installer

Version 2.0201

Released March 2, 2011

  • updated template xml

Version 2.0200

Released March 2, 2011

  • added start_year param to years and years_select

  • remove phantom required_field from paypal_standard

Version 2.0199

Released March 2, 2011

  • Further refinements to offsite gateways. They're starting to take shape.

Version 2.0198

Released March 2, 2011

  • added parse_template to cartthrob payments

Version 2.0197

Released March 2, 2011

  • added select.channels auto-loading for channel selects in settings form

  • added session relaxed library for 3rd party cul-de-sac/IPN order updating

  • added reload_session($session_id) to cartthrob payments

Version 2.0196

Released March 2, 2011

  • Bug fixes to shipping and discount plugins

Version 2.0195

Released March 2, 2011

  • added update_order method to cartthrob payments

Version 2.0194

Released March 1, 2011

  • Fixed data formatting helper split url string. Wasn't allowing me to pass in split character

  • Removed html from quantum.

  • various fixes to paypal pro

  • various fixes to paypal standard

  • language additions for paypal

  • fixed parse_str error on payment return

Version 2.0193

Released March 1, 2011

  • changed log method to use EE logger instead of codeigniter logger

  • fixed bug where no required fields caused checkout form to fail

Version 2.0192

Released March 1, 2011

  • fixed where api payment gateways wasnt running initialize

Version 2.0191

Released March 1, 2011

  • added tax inclusive price setting (displays item prices with tax computed on front end)

  • fixed bug in payment gateways using __construct instead of initialize

  • fixed bug where gateway selection wasn't being honored

Version 2.0190

Released March 1, 2011

  • added calculation caching flag to cart

  • updated default config to include email templates

  • fixed bug in split_url_string

  • added member configuration settings view

  • added member data field saving

  • added reset of use_billing_info in checkout form

  • added cart_weight tag

Version 2.0189

Released March 1, 2011

  • removed references to deprecated paths helper

  • fixed bug in form_builder action_complete where loading https helper caused error

  • removed trash button from custom columns in cartthrob matrix:table method

  • fixed bug in dev_template gateway PHP syntax error

  • fixed bug in cartthrob_emails where template-parsed message was not being sent

Version 2.0188

Released March 1, 2011

  • bug fix in cartthrob_email lib

  • added :table and :total_results parsing for cartthrob matrix fields

  • added item:first_row and item:last_row parsing for cartthrob order items field

  • removed dependency on text fieldtype in cartthrob simple price field

  • fixed bug where order data was not being passed to emails

Version 2.0187

Released March 1, 2011

  • Language file updates. Done with gateway language stuff

Version 2.0186

Released March 1, 2011

  • Payment gateway testing and modifications.

  • Made one fix (hopefully) to the email library. Still needs $order_data variable set, or converted to using object data.

Version 2.0185

Released February 28, 2011

  • Forgot a few things.

Version 2.0184

Released February 28, 2011

  • Language file changes primarily for linkpoint

Version 2.0183

Released February 28, 2011

  • Removed reference to languages_helper

Version 2.0182

Released February 28, 2011

  • Language related changes. Moved some things out of the main lang file into gateway specific lang files. Not quite done.

Version 2.0181

Released February 28, 2011

  • updated template installer xml

  • fixed field bugs in package installer library

  • removed @todo's from cartthrob_hooks

  • fixed bug w/ curl error message in authorize net

  • renamed price quantity thresholds field

Version 2.0180

Released February 26, 2011

  • moved CI reliant helpers to libraries

  • converted all decode_string, encode_string, and decode_bool calls to encrypt library

  • removed set_cache, paths, locales, languages, and customer_fields helpers

  • added paths, simple_cache, locales, languages libraries

Version 2.0179

Released February 25, 2011

  • added payment security view

  • added encoded payment gateway values to CP

  • changed encode_string and decode_string to use the encrypt library

  • added year_2 and year_4 methods to payment gateways

Version 2.0178

Released February 25, 2011

  • added payment security view

  • added encoded payment gateway values to CP

  • changed encode_string and decode_string to use the encrypt library

  • added year_2 and year_4 methods to payment gateways

Version 2.0177

Released February 25, 2011

  • fixed bug where also_purchased was not limiting itself to the purchased items channel, and was returning the purchased item entry_id, rather than the the associated product's entry_id

Version 2.0176

Released February 25, 2011

  • updated config file

Version 2.0175

Released February 25, 2011

  • fixed bug in year_select where optgroups were being added

Version 2.0174

Released February 25, 2011

  • Fixed small bug related to saving custom_data in save_customer_info_form

Version 2.0173

Released February 24, 2011

  • Gateway fixes

Version 2.0172

Released February 24, 2011

  • fixed bug in order_totals

Version 2.0171

Released February 24, 2011

  • set add_to_cart_form and multi_add_to_cart_form to ignore 0 quantity additions

Version 2.0170

Released February 24, 2011

  • added all customer info to order data for use in gateways

Version 2.0169

Released February 24, 2011

  • added row_id and entry_id params to cart_items_info

Version 2.0168

Released February 22, 2011

  • added price_quantity_thresholds fieldtype

Version 2.0167

Released February 22, 2011

  • removed cartthrob_price

Version 2.0166

Released February 22, 2011

  • added curl_transaction to payments lib/payment gateways

  • changed cartthrob_price to cartthrob_price_simple

Version 2.0165

Released February 22, 2011

  • Added total() to the gateways

Version 2.0164

Released February 22, 2011

  • deprecated most options from delete_from_cart form, only uses row_id now

  • added number formatting to price modifiers tag parsing

Version 2.0163

Released February 22, 2011

  • added curl_error_message() method to payments library

  • added use of curl_error_message to payment gateway

  • added automatic secure_return to form builder if request came over https

Version 2.0162

Released February 22, 2011

  • fixed bug in payments library for curl_post and curl_get

  • added total() method in payment gateways for use instead of $total property

  • fixed bug where unused custom_data: vars were not being parsed

  • fixed bug where order('items') in payment gateways did not contain titles

Version 2.0161

Released February 22, 2011

  • Fixed get_download_link, and updated download_file_action.

Version 2.0160

Released February 22, 2011

  • Changed module description to something more exciting.

Version 2.0159

Released February 22, 2011

  • Fixes to paths_helper (got rid of $this-> and changed to get_instance()). Fixed a regular expression that was intended to search for offsite links. Changed an occurrence of trim_slashes to rtrim to remove trailing slash.

Version 2.0158

Released February 21, 2011

  • fixed bug causing php error when no shipping plugin was selected

  • fixed bug causing php error in percentage off categories discount plugin

  • adjustments to session class

  • fixed bug where add_To_cart params were not keeping

Version 2.0157

Released February 21, 2011

  • More language file tweaks. EXCITING!!! naht.

Version 2.0156

Released February 21, 2011

  • Language file fixes.

Version 2.0155

Released February 21, 2011

  • fixed missing lang calls in views

Version 2.0154

Released February 21, 2011

  • Language file adjustments. Also typo changes to related view files, and one fix for

Version 2.0153

Released February 21, 2011

  • fixed parse_path

  • removed cartthrob_ext language file (this was getting confusing, consolidated all into cartthrob_lang)

  • fixed plugin_settings() bug in payment gateways

Version 2.0152

Released February 20, 2011

  • Updated gateways based on gatewayview changes

Version 2.0151

Released February 18, 2011

  • authorize net gateway prepped for gateway fields view

Version 2.0150

Released February 18, 2011

  • bug fixes

  • gateway view

  • removed static docs

Version 2.0149

Released February 17, 2011

Version 2.0148

Released February 16, 2011

Version 2.0147

Released February 15, 2011

  • fixes to update_cart_form

Version 2.0146

Released February 15, 2011

  • fixes to cart_items_info

Version 2.0145

Released February 14, 2011

  • bug fixes

  • category discounts plugin

  • price fieldtype

Version 2.0144

Released February 11, 2011

  • bug fixes

Version 2.0143

Released February 8, 2011

  • moved number formatting to new number library

  • fixed bugs in cart_info, cart_items_info

Version 2.0142

Released February 8, 2011

  • Made a small change in cartthrob_child. During testing the change ran faster & threw less errors. Now uses get_class_methods

Version 2.0141

Released February 7, 2011

  • fixed settings not saving on new install

  • fixed extension install bugs

  • changed template_installer to package_installer

Version 2.0140

Released January 28, 2011

  • Added comments to hooks class

Version 2.0139

Released January 28, 2011

  • Added 1 hook to get_hooks

Version 2.0138

Released January 20, 2011

  • Made a change to data_formatting_helper to ensure it returns a 0.

  • Made a note in Evalmath

  • Noted a major error in mod.cartthrob related to $this->cart->info();

Version 2.0137

Released January 20, 2011

  • Store:config function: changed isset to !empty. Was falsely returning positive if the key was set, but totally blank. Errors were thrown due to unset keys based on variables loaded with false-positive data elsewhere because of this.

Version 2.0136

Released January 20, 2011

  • Fixed @todo in flat rate shipping. Removed @todo from

Version 2.0135

Released January 19, 2011

  • fixed bug in matrix

Version 2.0134

Released January 19, 2011

Version 2.0133

Released January 19, 2011

  • Updating language files for shipping, tax, and discount plugins

Version 2.0132

Released January 19, 2011

Version 2.0131

Released January 19, 2011

  • Fixed some issues related to draggable support / UI positioning issues.

Version 2.0130

Released January 19, 2011

  • Finished jquery sortable matrix for settings

Version 2.0129

Released January 18, 2011

  • Changed some lang file names. Added jquery sortable to plugin matrix. Needs work.

Version 2.0128

Released January 18, 2011

  • Copy tweaks

Version 2.0127

Released January 18, 2011

  • Mostly minor copy tweaks

Version 2.0126

Released January 18, 2011

  • Language and display tweaks

Version 2.0125

Released January 18, 2011

  • added reports tab to CP

  • fixed some @todos

Version 2.0124

Released January 18, 2011

  • Shipping plugin corrections.

  • JS Changes to Products & Plugin matrix view.

Version 2.0123

Released January 18, 2011

  • Updated javascript on product channels page.

Version 2.0122

Released January 15, 2011

  • Added update_item_action

  • Cleared all from mod cartthrob. empty.

Version 2.0121

Released January 15, 2011

  • Added request_quote_form_submit (renamed functions to live_rates) added in support for deprecated older names.

Version 2.0120

Released January 14, 2011

Version 2.0119

Released January 14, 2011

  • move payment_gateways folder

Version 2.0118

Released January 14, 2011

  • move payment_gateways folder

Version 2.0117

Released January 14, 2011

  • move payment_gateways folder

Version 2.0116

Released January 14, 2011

  • move payment_gateways folder

Version 2.0115

Released January 14, 2011

Version 2.0114

Released January 14, 2011

  • added (old) docs to svn, still need to be updated massively

Version 2.0113

Released January 13, 2011

Version 2.0112

Released January 13, 2011

  • moved cartthrob/ and cartthrob_payments/ out of the libraries folder

Version 2.0111

Released January 12, 2011

Version 2.0110

Released January 12, 2011

Version 2.0109

Released January 11, 2011

  • Added worldpay language file

  • Renamed worldpay

  • Edited Settings Form

  • Edited CSS

  • Fixed spacing issue on radio buttings in CP

  • Split import and export settings into 2 views

  • Started cleaning up channels settings page (some JS still broken)

  • Started adding JS for channels settings page.

  • Deleted UPS plugin from shipping

  • Cleaned up plugins settings page (broke some JS I'm sure)

Version 2.0108

Released January 11, 2011

  • Added worldpay language file

  • Renamed worldpay

  • Edited Settings Form

  • Edited CSS

  • Fixed spacing issue on radio buttings in CP

Version 2.0107

Released January 10, 2011

Version 2.0106

Released January 10, 2011

  • moved cp stuff to mcp

  • removed cartthrob_cp library

  • moved form actions to mod

  • split settings into multiple pages

Version 2.0105

Released January 7, 2011

  • discount model, discount api, cart->discount

Version 2.0104

Released January 6, 2011

  • discount and shipping apis

Version 2.0103

Released January 6, 2011

  • Added member_login to member model.

Version 2.0102

Released January 5, 2011

  • Deleted one after SVN annoyance

Version 2.0101

Released January 5, 2011

  • Added all discount plugins. There are a few TODOs in there.

Version 2.0100

Released January 5, 2011

  • added filtering to cart::subtotal

Version 2.0099

Released January 5, 2011

  • auth['processing'] cont.

Version 2.0098

Released January 5, 2011

  • Added amount_off_over_x coupon

Version 2.0097

Released January 5, 2011

  • auth['processing'] cont.

Version 2.0096

Released January 5, 2011

  • added processing to auth

Version 2.0095

Released January 4, 2011

  • Added gateways:

  • Paypal Redirect

  • WorldPay Redirect

Version 2.0094

Released January 4, 2011

Version 2.0093

Released January 4, 2011

  • Made syntax changes

Version 2.0092

Released January 4, 2011

  • Added gateways:

  • realex_remote

  • transaction_central

  • sage_server (has TODOs)

  • paypal_pro (deleted UK.. now merged with pro)

  • Minor edit to sage gateway (fixed docs typo)

  • Added functions to Cartthrob_payments .... scaffolding for now. Need to create a lot of the offsite payment gateway functions.

Version 2.0091

Released January 3, 2011

  • Minor bugfix for Sage. Removed payment processor URL getter from list of old functions

Version 2.0090

Released January 3, 2011

  • Added and updated payment gateways. Sage US, Sage, Moneris

Version 2.0089

Released January 3, 2011

  • calculates shipping

Version 2.0088

Released January 3, 2011

  • Added and updated payment gateways

Version 2.0087

Released January 3, 2011

  • Updated payment gateways. Added a bit of documentation to the curl_post, curl_get functions in the Payment gateway.

Version 2.0086

Released January 3, 2011

Version 2.0085

Released January 3, 2011

  • cartthrob_payments library

  • save_settings quick_save func

  • purchased items update

Version 2.0084

Released January 3, 2011

  • bug fixes for presets

  • fixed cartthrob_settings table to have key as primary key

Version 2.0083

Released January 2, 2011

  • bug fixes

  • inventory controls

  • price modifier presets

Version 2.0082

Released December 23, 2010

  • inventory stuff still needs a lot of work

Version 2.0081

Released December 22, 2010

  • cartthrob_loader

Version 2.0080

Released December 22, 2010

  • cartthrob_loader

Version 2.0079

Released December 21, 2010

  • order model

Version 2.0078

Released December 21, 2010

  • Added members model.

Version 2.0077

Released December 20, 2010

Version 2.0076

Released December 17, 2010

Version 2.0075

Released December 16, 2010

  • coupon code model

Version 2.0074

Released December 15, 2010

  • Converted more shipping libraries. Converted a few gateways. Raised a few questions about how stuff should be converted in the @todos.

Version 2.0073

Released December 15, 2010

Version 2.0072

Released December 15, 2010

Version 2.0071

Released December 14, 2010

  • Added some content to views (headers and such).

  • Updated some shipping plugins

Version 2.0070

Released December 14, 2010

  • parse item options

Version 2.0069

Released December 13, 2010

Version 2.0068

Released December 6, 2010

Version 2.0067

Released December 3, 2010

Version 2.0066

Released December 3, 2010

Version 2.0065

Released December 1, 2010

Version 2.0064

Released November 30, 2010

  • updates to all views

Version 2.0063

Released November 30, 2010

  • updated a couple of functions

Version 2.0062

Released November 30, 2010

  • fixes for states/country_select

Version 2.0061

Released November 30, 2010

  • added index_form and shipping_form views

Version 2.0060

Released November 29, 2010

  • Rewrote arithmetic and associated functions

Version 2.0059

Released November 29, 2010

  • added top nav to view, and a shipping_form example page

Version 2.0058

Released November 29, 2010

  • Updated CP views to use accordion style

Version 2.0057

Released November 23, 2010

  • getting closer to a functional add_item/add_to_cart

Version 2.0056

Released November 22, 2010

  • updates to views

Version 2.0055

Released November 22, 2010

  • moved cartthrob and cartthrob_payments app to libraries folder

Version 2.0054

Released November 21, 2010

  • Updated views witth EE 2 style stuff. Missing a lot of javascript & classes & ids… but a first step

Version 2.0053

Released November 19, 2010

  • started order model

Version 2.0052

Released November 18, 2010

  • added authorize_net lang file

Version 2.0051

Released November 18, 2010

  • deleted cartthrob CI folder

Version 2.0050

Released November 18, 2010

  • added discount options view

  • added packages item typ

  • updated payment gateway system

Version 2.0049

Released November 17, 2010

  • added debug helper

  • added cartthrob_payment_ee driver

  • added shipping plugins to CP screen

  • moved CP from extension to module mcp

  • updated discount and shipping architecture

Version 2.0048

Released November 16, 2010

Version 2.0047

Released November 11, 2010

  • Added get_server _path to path helper.

  • Made some tweaks to file download system

Version 2.0046

Released November 11, 2010

  • checkout_form

Version 2.0045

Released November 11, 2010

  • added path helper

Version 2.0044

Released November 11, 2010

  • added path helper

  • removed build_form() in favor of form_setup()

  • tweaks

Version 2.0043

Released November 10, 2010

  • Added download_file_form

  • download_file_form_submit

  • also_purchased

  • cart_empty_redirect

  • total_items_count

  • updated check_cc_number_errors

  • _delete_from_cart_form_submit

  • states

Version 2.0042

Released November 10, 2010

  • sessions are saving now

Version 2.0041

Released November 10, 2010

  • Added some functions to the data_formatting_helper.

  • Converted several state related functions

Version 2.0040

Released November 9, 2010

  • added product model, cartthrob_model

  • updated core, cart, store, item product

  • added item_product

  • updated driver, module, form builder

  • updated session class

Version 2.0039

Released November 8, 2010

Version 2.0038

Released November 8, 2010

  • uncommented tabs function (commented out contents)

  • fixed form builder function (see Cartthrob_payments::somethingsomething)

Version 2.0037

Released November 6, 2010

  • Added credit card helper

  • Added remove_item method to cartthrob_cart

  • Added several functions to module.

  • Added module function comparison version: 1.6 to 2.1

  • added lines to lang file for credit card validation

Version 2.0036

Released November 5, 2010

  • added Cartthrob session library

  • moved drivers to separate directories

  • added plugins folder in core

Version 2.0035

Released November 4, 2010

  • Added note about sessions to core_ee

  • removed redundant function in languages_helper

  • mod.cartthrob attempted to create set_langauge

  • mod.cartthrob worked on add_to_cart_form

  • mod.cartthrob removed action function

  • mod.cartthrob added cart_entry_ids

  • mod.cartthrob added cart_info

Version 2.0034

Released November 4, 2010

  • updates to cart_items_info

Version 2.0033

Released November 4, 2010

  • Updates to form_builder library

Version 2.0032

Released November 4, 2010

  • Added data_sorter and form_builder libraries

  • Added add_to_cart_form to module

Version 2.0031

Released November 2, 2010

Version 2.0030

Released November 2, 2010

Version 2.0029

Released November 2, 2010

Version 2.0028

Released November 2, 2010

Version 2.0027

Released November 2, 2010

Version 2.0026

Released November 2, 2010

Version 2.0025

Released November 2, 2010

Version 2.0024

Released October 29, 2010

  • core

Version 2.0023

Released October 28, 2010

  • added dev notes

Version 2.0022

Released October 28, 2010

  • core app's architecture taking shape

Version 2.0021

Released October 21, 2010

  • gettin' somewhere on this architecture

Version 2.0020

Released October 21, 2010

  • architecture

Version 2.0019

Released October 21, 2010

  • architecture

Version 2.0018

Released October 21, 2010

  • architecture

Version 2.0017

Released October 21, 2010

  • architecture

Version 2.0016

Released September 16, 2010

  • added discount plugin api

  • added fieldtypes

  • removed tab

Version 2.0015

Released September 15, 2010

  • moved coupon_code_plugins to discount_plugins

Version 2.0014

Released September 15, 2010

  • changed cartthrob_coupon field to cartthrob_discount

Version 2.0013

Released September 15, 2010

  • views

Version 2.0012

Released September 15, 2010

Version 2.0011

Released September 15, 2010

Version 2.0010

Released September 15, 2010

Version 2.0009

Released September 15, 2010

Version 2.0008

Released September 10, 2010

  • added cartthrob payment codeigniter app

Version 2.0007

Released September 10, 2010

  • moved files to system folder

  • added themes folder

Version 2.0006

Released September 10, 2010

  • added template_xml view

Version 2.0005

Released September 9, 2010

  • renamed lang files

  • added Curl and Template installer libraries

  • added array_sort helper

  • more work on extension settings page

Version 2.0004

Released September 8, 2010

  • working on the extension

  • added locales_helper and states and countries in config

  • moved template installer to library

Version 2.0003

Released April 25, 2010

  • Added helpers

  • Added models

  • Started removing code from module controller

Version 2.0002

Released April 24, 2010

  • Set up EE 2.0 file structure

  • Added basic controllers

  • Copied files over from existing

Version 2.0001

Released April 24, 2010

  • Creating initial repository structure