Install

Works with Drupal: 7.x

Using Composer to manage Drupal site dependencies

Downloads

Download commerce-7.x-1.0-rc2.tar.gztar.gz 305.01 KB
MD5: 6ba485c1fce1535f3b3e2957e616f394
SHA-1: 1f0f87b7d8693f185e965af6c20ccde6a277c963
SHA-256: ea7f00531b2334e56ebc558eff4dc4b2ff79680af97b010a661592481f882268
Download commerce-7.x-1.0-rc2.zipzip 417.62 KB
MD5: 5b66fbe0d0050c12820fe8b9939f5086
SHA-1: 7307879ac790040b1b9ba51d74e04d0f3b9a5f3b
SHA-256: ab80586a1b08be4a0e946fc6f9631701e55909cd08687e92ad1935ff136eaf2d

Release notes

Note: We rolled an RC3 to fix a regression introduced by #1223046.

This release incorporates a number of very helpful bug fixes for developers. We're paying special attention to mitigating as many errors as possible for developers working with the EntityMetadataWrapper, and we wanted to get these fixes out to you as soon as possible. The full list of changes are below, but the primary things for you to take note of are:

  • Products with NULL prices will no longer cause wrapper errors. They will instead be treated as disabled products and will therefore be unpurchasable.
  • When entities referenced by other entities are deleted, we no longer use the entity metadata wrapper to avoid a majority of the errors that were being reported. We're now doing a direct deletion ourselves, which is just as well since we want to ensure references are deleted from every language in a reference field.
  • Our entity access function has been seriously cleaned up, meaning all entity permissions should actually work properly now. This does mean you need to ensure your users have access to view their own orders if you want them to have access to them on their account Orders tab.
  • VAT style taxes can now be rounded at the unit price level, resolving rounding errors at the line item total and order total levels. You must run update.php to get the new round_mode column added to your commerce_tax_type table. You can adjust rounding settings on a per-tax type basis.
  • We've implemented our first step toward "pessimistic entity locking." This only governs orders right now and will prevent an order from being loaded and saved asynchronously, which could have led to data loss. Developers interacting with the cart line item API directly may encounter db_transaction() errors that have been resolved in Drupal core. However, you must update to Drupal 7.x-dev to get the fix, as it was committed after Drupal 7.7. Once Drupal 7.8 is out, this should no longer be an issue.
  • The function commerce_line_items_quantity() has been updated so its second argument requires an array of line item types instead of a single type name. If you are using this function in a custom module or theme, you must update it. An additional helper function was added for when you're calculating the total quantity of products in the cart. Thus if you were using commerce_line_items_quantity($line_items, 'product') before, you would now use commerce_line_items_quantity($line_items, commerce_product_line_item_types()).

Changes since 7.x-1.0-rc1 (32 commits):

  • Update access checks for the create product / customer profile menu items to pass full product and customer profile objects instead of just a type string.
  • #1195588 by rfay: remove a duplicate invocation of the commerce_cart_product_remove event / hook.
  • #1203722 by das-peter: add a conversion_callback parameter to currency info arrays to more easily accommodate multiple currency conversion strategies.
  • #1245158 by rfay, rszrama: fix 'create / edit / delete any' type permission checks in commerce_entity_access() and add restrict access notification to our 'edit / view any' permission definitions.
  • #1245108 by Dippers: use end() instead of array_pop() when comparing the parent of a triggering element in line item manager widget validation.
  • #1137840 by rszrama: implement tax rounding on a per tax type basis to round VAT style taxes at the unit price level as opposed to the order total.
  • #1243306 by Damien Tournoud: implement pessimistic entity locking to prevent overwriting order data between queries.
  • #1244276 by rszrama: add a condition to prevent a notice if someone tries to define a payment settings variable in a Rules action.
  • #1157266 by davidwhthomas, rszrama: use field based access for downloading files attached to products instead of entity based access.
  • #1115734 by rszrama: properly wrap orders before using commerce_line_items_quantity().
  • #1115734 by arbel, rszrama: update the empty checks for the cart menu item, block, and form to explicitly count product line items on the given order.
  • #1243682 by OscarH: add proper currency formatting for SEK.
  • #1186130 by rszrama: move line item reference deletion to happen before line items are deleted but in the same transaction.
  • #1212482 by Dippers: change the order of base table updates and hook invocation on entity inserts / updates.
  • #1234242 by rszrama: follow-up commit for this issue to remove an unnecessary duplication of the view any bundle of entity type permission checks.
  • #1234242 by rszrama: fix typos in commerce_entity_access() and only have it perform authenticated ownership checks; updated the Cart module's order access alteration to be based on permissions for viewing completed orders by anonymous users.
  • #1234258 by rszrama: update the Customer module's integration with Address Field to only remove fieldsets from address fields on profile forms that have a single address field, no longer depending on the commerce_customer_address field name.
  • #1225450 by rszrama: ensure a role was loaded before attempting to add it to an array of matching roles in our custom user validation plugin.
  • Add proper handling for products that don't have a price (i.e. their price amount value is NULL). These cannot be added to the cart, will not be rendered as 0.00, and will be removed from the cart if the price is no longer available for a product that was previously added to the cart.
  • #1235946 by twistor: check to ensure price amount values are valid numeric strings before handling conversion from decimal to integer amounts.
  • #1227676 by rszrama: do not alter the remove element of customer profile reference widgets on order forms when the element's profile does not have an ID; add a failsafe to the *_can_delete() functions to prevent invocation of their respective hooks in the event the entity being checked does not have an ID, as delete operations cannot in fact be performed on those unsaved entities.
  • Remove the use of entity_metadata_wrapper() from commerce_entity_reference_delete().
  • Remove some leftover watchdog() messages from commerce_order_commerce_customer_profile_can_delete().
  • #1237908 by OscarH: fix the line item type filtering in commerce_line_items_quantity() by correcting a variable name.
  • #1238354 by Chi: use t() for labels in commerce_product_field_extra_fields().
  • Expose the entity type in the Views definitions so that the Entity API module can define an 'Entity' row style for us.
  • #1222034 by jsacksick: fix wrong variable name in commerce_entity_access(). Needs tests.
  • #1223046 by googletorp: Use #access to hide unwanted fields to add flexibility.
  • #1221032 by teohhanhui: add currency formatting for Malaysian Ringgit.
  • Add a pair of API functions to the Tax module for calculating the total tax collected in a line item and returning the full price component arrays.
  • Separate credit card type validation from credit card number validation via the Luhn algorithm.
  • Update the Payment module's credit card support to include all bank card types listed on Wikipedia with card type validation based on number length and valid ranges.
Created by: rszrama
Created on: 11 Aug 2011 at 04:32 UTC
Last updated: 1 Aug 2018 at 23:53 UTC
New features
Bug fixes
Insecure

Other releases