Downloads
Release notes
*** Please do not USE this version of ECommerce. Please take a look at the development version of v3 ***
Following is a list of all the changes made to the system to incorporate
the new modules written by Sammy Spets. Modules added to the system are:
Core modules
ec_anon (anonymous purchasing)
ec_mail (mail handler module)
Contrib modules
ec_recurring (recurring products subsystem)
ec_roles (role assignments)
ec_useracc (user account provision)
E-commerce has had its internals revamped in two areas: recurring products and mails. Of particular note are the following feature enhancements:
- Create, update and delete product expiry schedules through a purpose-built schedule management interface. This is independent of the products they are assigned to.
- Active purchases using an updated schedule are updated with the new schedule automatically. E.g a customer buys a product that expires in a month and you choose to change it to two months for everyone that purchased it. Update the schedule to two months and all active purchases will be extended to two months automatically.
- An expiry schedule can not be deleted if it is attached with an unexpired purchase (either active or renewed).
- Products are set to be recurring (have expiry date) by selecting an expiry schedule in the product attributes.
- Send emails reminding customers that a previous purchase is expiring.
- Any number of reminder emails can be added to an expiry schedule.
- Each reminder email can be scheduled individually throughout the system.
- The expiration of accounts is performed automatically through the cron hook. Set it up to run at 5am system time.
- Roles can be given to and removed from customer accounts when payment is received.
- Roles can be given to and removed from customer accounts when a product expires.
- A user account can be created when payment is received.
- A user acccount can be blocked when a product expires.
- A free product that creates a user account has a mandatory email confirmation step before the account is accessible. Cleaning of accounts that aren't confirmed is automated through the cron hook.
- Emails templates are now edited through a centralized interface.
- Tokens (used to be called variables) available for a given mail are given on a page linked through the mail editing interface.
- Mails (such as Ask Customer and Cancel Transaction) display an interface where all tokens are substituted. Through this interface a user can add more tokens and click the Preview button to perform the
substitution.
Here are some extra bits of information about how the implementation has changed. This list is intended for developers as a quick reference of what will need to be changed in their custom modules.
- Anonymous purchasing (ec_anon)
- Variable 'store_auth_cust' (set from admin/store/settings) has been deprecated in favour of ec_anon_policy. To map the old values to the new constants:
store_auth_cust == 0: ECANON_POLICY_OPTIONAL
store_auth_cust == 1: ECANON_POLICY_NEVER - The default anonymous purchasing policy has been changed to ECANON_POLICY_OPTIONAL allowing both anonymous customer and account holder purchases.
- IMPORTANT: The ec_anon module is required for all ecommerce installations!
- Variable 'store_auth_cust' (set from admin/store/settings) has been deprecated in favour of ec_anon_policy. To map the old values to the new constants:
- Recurring subsystem (ec_recurring) since original alpha release.
- Renamed tables ec_recurring_schedule to ec_recurring_expiration and ec_recurring to ec_recurring_schedule. This was done to reflect their contents better.
- The ec_roles table has been changed to have a field for removing roles at purchase time. The field names have been renamed to buy_add, buy_del, exp_add, exp_del.
- Store
- store_email_form() has now been deprecated and replaced with ec_mail_selection_form() and ec_mail_send_varmail_form(). Any modules calling store_email_form() will need to be changed to call one of the other two functions.
- store_email_text() and its associated hook are now deprecated and replaced by ec_mail's implementation. Modules implementing mails now need to use hook_mail_types() and hook_mail_reset().
- hook_store_email_alter() has been removed from use in both 4.7 and 5.0 as hook_mail_alter() in Drupal 5 core replaces it.
- Email sending in the store admin interface has been revamped and it's now possible to see a preview of the mail and add new variables (supported by that mail type) to the mail.
- Email template admin has become centralised through the ec_mail module. Settings pages now have a selection list of mails suitable for each mail. This new system can be extended much more easily to support
translations of each mail so multilingual sites can send mails in a user's native tongue. This is planned as a future addition to the system. - Mail tokens (previously called variables) are now centralised and consistent throughout E-commerce.
- Added code to ensure ec_mail and ec_anon are installed before store can be installed or updated.
- Added store_transaction_mail_form(). This function is a wrapper for ec_mail_send_varmail_form() and makes display of a form (like ask customer form) a two line affair. Those mail forms now allow you to preview the mail! Along with that you can add tokens to the mail (variables) and click the preview button to have them filled! Please tell me how much you love that feature! :)
- Added store.deps.inc, which contains dependency checking code so module_install() functions can reuse the code.
- Recurring product fields (is_recurring, price_interval, price_unit, price_cycle and auto_charge) have been removed from ec_transaction_product.
- Coupon module
- Changed mail handling from store_email_* to ec_mail functions.
- Added code to ensure ec_mail is installed before coupon can be installed or updated.
- Shipping module
- Changed mail handling from store_email_* to ec_mail functions.
- Added code to ensure ec_mail is installed before shipping can be installed or updated.
- Payment module
- Recurring email and role settings have been removed.
- Cart module
- Product renewal code has been removed.
- Product module
- Recurring product fields (is_recurring, price_interval, price_unit, price_cycle and auto_charge) have been removed.
- How nodes look now with recurring information:
- node->is_recurring TRUE if the product is recurring.
- node->schedule[] is the schedule array.
- node->schedule['reminders'][] is the reminders array.
- node->expiry_schedule[] is the entry for that product from ec_recurring_expiration. This is only set in hook_recurringapi().
- node->roles[] is the roles array.
- node->useracc is the user accounts array