Applied pull request patch https://github.com/magento/magento2/pull/12857.patch (created by @jonashrem) based on commit(s):
1. 351231dfb5d8779109607859fc3261ec6cd5b787
2. c92ae1b43eef87cfd348afbc019024b767faac2d
- Drop PHP 5.6 support
- Add PHP 7.1.x to the list of supported versions
- MAGETWO-60101: Suppress "deprecated" warning for mcrypt library
- MAGETWO-66299: Fix integration tests which fails due to arithmetic with invalid strings in CatalogImportExport
MAGETWO-63672: Upgrade outdated libraries w/composer (minor versions)
MAGETWO-65715: Upgrade zend Framework 1 to 1.12.20
- MAGETWO-66733: Fix cases where MySQL expression used in Order/Group statements and not wrapped with \Zend_Db_Expr
MAGETWO-52770: Upgrade composer to stable version
- Now Magento uses stable composer/composer v1.4.1
This is a micro-optimisation, but it avoids the overhead of two function
calls to determine whether the minimum required version of PHP is present.
I have also removed the conditional around the a call to gc_collect_cycles
within the tests since it checks for version 5.3+, and the minimum version
required to run Magento 2 should already satisfy that condition.
* Service Contracts:
* Implemented Bundle Product API
* Replaced Address Converted model with Address Mapper
* Refactored Customer web service routes and API functional tests to use latest service layer
* Implemented Configurable Product Module API
* Removed obsolete namespace Magento\Catalog\Service
* Price calculation logic:
* Removed complex JS price calculation on the frontend
* Fixed bugs:
* Fixed an issue where the path parameter routes were incorrectly matched in the REST web services
* Fixed an issue where $0.00 was shown as a configurable product price if variation did not add anything to product price
* Fixed an issue where the fatal error occurred when a user with read-only permissions for cart price rules attempted to open an existing cart price rule
* Fixed an issue where the 'An order with subscription items was registered.' message was displayed in an order if it has been placed using an online payment method
* Fixed an issue where the 'Warning: Division by zero' message was displayed when an invoice was opened for an order placed using an online payment method
* Fixed an issue where creating simple product through using API service led to an exception on the frontend
* Fixed an issue where it was impossible to perform advanced search for price range of 0 to 0
* Fixed an issue with the broken Search Terms Report page
* Fixed an issue with the broken Search Terms page
* Fixed an issue with a notice appearing in the Advanced Search when searching by a custom multiselect attribute
* Fixed an issue where Search did not work if word-request contained a hyphen
* Fixed an issue where searching by a title of bundle option returned empty result
* Fixed an issue where Maximum Query Length was not applied to Quick Search
* Fixed an issue where searching by product name did not return suggested search terms
* Fixed an issue with an incorrect dependency of the MySQL search adapter on CatalogSearch
* Fixed an issue with incorrect dependency of the Search library on the MySQL adapter
* Fixed an issue where Advanced Search always returned empty result for multiselect product attributes
* Fixed an issue where an admin user was redirected to the 404 page after deleting search terms through using mass action
* Fixed an issue where a product page was frozen when a configurable attribute was added to a current product template during saving a configurable product
* Fixed an issue where it was impossible to place an order with downloadable product that contained a link
* Fixed an issue where only parent category was displayed in layered navigation on the Search results page
* Fixed an issue where the Price attribute was incorrectly displayed in layered navigation if searching by this attribute
* Fixed an issue where importing configurable products set them out of stock
* Fixed an issue where drop-down lists were closing by themselves in Internet Explorer 9
* Fixed an issue where it was impossible to place an order using PayPal Payment Pro and 3D Secure
* Fixed an issue where bundle items were always marked as 'User Defined'
* Fixed an issue where view management selectors did not work in categories on the frontend
* Fixed an issue where the 'Base' image label was not applied to a first product image uploaded
* Fixed an issue where editing a product led to data loss and broken media links
* Fixed an issue where attributes could not be deleted from the Google Content Attributes page
* Fixed an issue where a product was unassigned from a category after it was edited by an admin user with read/edit permissions for product price only
* Fixed an issue where the fatal error occurred on the RSS page for new products and special products
* Fixed an issue where the fatal error occurred when adding a new Customer Address Attribute
* Fixed an issue where it was impossible to install Magento when specific time zones were set
* Fixed an issue where compiler.php failed not handle inheritance from virtual classes
* Fixed an issue where some locales were absent in the 'Interface Locales' drop-down in the backend
* Fixed an issue where the Offloader header did not work in the backend
* Fixed an issue where autoloader failed to load custom classes
* Fixed an issue where products did not disappear from the shopping cart after checkout
* Fixed an issue where changing quantity of a product in the shopping cart removed product from cart
* Fixed an issue where the Persistent Shopping Cart functionality was not available if Luma theme was applied
* Fixed an issue where the category tree was broken if editing a category name in specific cases
* Fixed an issue where 'Price as Configured' value was not updated for a bundle product after changing the value of the 'Price View' field
* Fixed an issue where the final product price was displayed incorrectly in a category and a product page if price display setting was set to exclude FPT, FPT description, and final price
* Fixed an issue where product price range was displayed incorrectly for bundle products
* Fixed an issue where the HTTP 500 error occurred on the Share Wishlist page
* Fixed an issue with the incorrect order of dispatching event adminhtml_cms_page_edit_tab_content_prepare_form and setting form values in the backend
* Fixed an issue where breadcrumbs were not displaying the fullpath
* Fixed an issue where only two of four widgets added to a CMS page were displayed
* Fixed an issue where it was impossible to save locale for an admin account after changing it
* Fixed an issue where icons were not loaded on a non-secure pages if secure URLs were used in the frontend
* Fixed an issue where overriding layouts did not work after renaming a theme
* Fixed an issue where the Permissions tree was not displayed when activating an integration
* Fixed an issue with duplicated and corrupted page layouts
* Fixed an issue where the 'Number of Products per Page' option did not work for widgets of the 'List' type
* Fixed an issue where HTTP and HTTPS pages shared cache content
* Fixed an issue where the 'Use Billing Address' checkbox did not affect did not affect the checkout experience
* Fixed an issue where it was impossible to create shipping labels
* Fixed an issue where the 'Payment Method' section was empty in billing agreements in the frontend if a billing agreement was created during the checkout
* Fixed an issue with Catalog Rule Product indexer invalidating the price index
* Fixed an issue where one of the price range fields was corrupted in the Advanced Search page
* Fixed an issue where a base product image that was smaller than the gallery image container was scaled up to fill the container on the View Product page in the frontend
* Fixed the layout issue on the Contact Us page
* Fixed an issue where search queries were not submitted when a search suggestion was clicked
* Fixed an issue where page footer overlapped products in categories in Internet Explorer 11
* Fixed UI issues in the Luma theme
* Fixed an issue when the fatal error occurred if a category was moved to another category that already contained category with the same URL key
* Fixed an issue where incorrect products were displayed on the Reviews tab for a configurable product
* Fixed an issue where fatal errors occurred when calling id() on a null store object
* Fixed an issue where navigation through the tabs on the Dashboard did not work properly
* Fixed an issue where prices for bundle products were incorrect on the category view and search view pages
* Fixed an issue where custom Customer attributes and Customer Address attributes were not displayed on the 'Create/Edit Customer' page in thebackend
* Fixed an issue where there were no validation for whether an option of a bundle product was created through the API
* Fixed an issue where bundle products created through using the API were not appearing in the frontend
* Fixed an issue where entity ID was missing for product thumbnail labels values
* Fixed an issue with the bad return from the Indexer launch() method
* Fixed an issue where an attempt to select product SKU in a shopping cart price rule redirected to the Dashboard
* Fixed an issue where the Search Terms Reports and Search Terms list did not work
* Fixed an issue where an error occurred when configuring Google API
* Fixed an issue where it was impossible to add a configurable product variation to an order in the backend
* Fixed an issue where there were no confirmation on deleting CMS pages/Blocks
* Fixed an issue with incorrect behavior of validation in the Quick Search field in the frontend
* Fixed an issue where it was impossible to select a row in the grid of CMS pages and CMS Blocks
* Fixed an issue where validation for minimum and maximum field value length was not performed for Customer attributes and Customer Address attributes when creating or editing a customer in the backend
* Fixed an issue with broken 'validate-digits-range' validation
* Fixed an issue where it was impossible to delete product templates
* Fixed an issue where products were not shown on a second website
* Fixed an issue where customer group was empty when adding group price during creating a product
* Fixed an issue with incorrect interval in LN for small values
* Fixed an issue where product attribute of the Price type was not displayed in layered navigation
* Fixed an issue with testCreateCustomer failing in parallel run
* Fixed an issue with the value of the 'Bill to Name' field always displayed instead of the value of the 'Ship to Name' in all order-related grids
* Fixed an issue where an error occurred when submitting an order int he backend when shipping and billing addresses were different
* Fixed an issue where the navigation menu was absent on product pages with Varnish used
* Fixed an issue where the underscore character was incorrectly handled when used with digits
* Fixed an issue where it was impossible to localize comments in the 'Max Emails Allowed to be Sent' and 'Email Text Length Limit' fields in the Wishlist configuration
* Fixed an issue where there were a logical error in joining the same table two times with different aliases
* Sample data:
* Created Luma Sample Data script
* GitHub requests:
* [#775](https://github.com/magento/magento2/issues/775) -- Can't save changes in configuration in Configuration->Advanced->System
* [#716](https://github.com/magento/magento2/issues/716) -- Wrong mimetype returned by getMimeType from Magento library
* [#681](https://github.com/magento/magento2/issues/681) -- Magento\Framework\Xml\Parser class issues
* [#758](https://github.com/magento/magento2/issues/758) -- Coding standards: arrays
* [#169](https://github.com/magento/magento2/issues/169) -- DDL cache should be tagged
* [#738](https://github.com/magento/magento2/issues/738) -- pub/setup missing in 0.1.0-alpha103
* Various improvements:
* Removed obsolete code from the Tax and Weee modules
* Merged the AdminNotification, Integration, Authorization, and WebAPI SQL scripts
* Removed the Customer Converter model and Address Converter model
* Created AJAX Authentication Endpoint for the frontend
* Removed Customer\Service\V1 service implementation in favor of the Customer\Api service implementation
* Removed the Recurring Billing functionality
* Added the 'suggest' node to composer.json files to mark modules that are optional
* Consolidated SQL install and data scripts for the rest of the modules
* Added static test verifying that README.md file exist in modules
* Removed obsolete code
* Removed license notices in files
* Eliminated invalid dependencies of the CatalogRule module
* Removed @deprecated methods from the code base
* Added test enforcing @covers annotation refers to only existing classes and methods
* Added the PHP Coding Standards Fixer configuration file to the project root
* Added Git hook to automatically correct coding style before actual push
* Added the ability to enforce no error log messages during tests execution
* Removed API interfaces from the Cms module
* Updated jQuery used to version 1.11
* Added wildcard prefix for all search words in search requests for Match query
* Renamed frontend properties for some of the product attributes
* Fixed the Magento\Centinel\CreateOrderTest integration test
* Improved invoking for functional tests
* Refactored StoreManagerInterface to avoid violating the modularity principle
* Improved the logic in the isSubtotal method in Magento\Reports\Model\Resource\Report\Collection\AbstractCollection
* Framework improvements:
* Added a copy of dependencies for Magento components to the root composer.json file
* Setup Tool improvements:
* Moved dependencies from setup/composer.json to the root composer.json and removed the former one
* Removed dependencies on unnecessary ZF2 libraries
* Removed dependency on exec() calls
* Removed tool dev/shell/run_data_fixtures.php in favor of Setup Toolphp setup/index.php install-data
* Removed tool dev/shell/user_config_data.php in favor of Setup Tool php setup/index.php install-user-configuration
* Added validation of the required information on each installation step in the Setup tool:
* Web UI:
* Removed the 'Test Connection' button in web setup UI; checking connection to the database server is now performed when the 'Next' button is clicked
* Added validation of URL format
* Added automatic adding of the trailing slash to the base URL field if a user did not provide one
* Added validation of admin user password
* Added validation of HTTPS configuration
* CLI:
* Added validation of CLI to display missing/extra parameters and missing/unnecessary parameter values
* Various improvements:
* Removed deprecated code from the Sales and SalesRule modules
* Stabilized functional tests for the following modules:
* Centinel
* Core
* RecurringPayment
* Sales
* Multishipping
* Newsletter
* Widget
* Fixed bugs:
* Fixed an issued where a product could not be found in customer wishlist when searched by name
* Fixed the invalid email template for Product Price Alert
* Fixed an issue where customer group did not change when invalid VAT number was specified
* Fixed integration tests coverage
* Fixed an issue where a customer was not redirected to the configurable product page after clicking Add to Card on the My Wish list page for a product which required configuration
* Fixed an issue where an error message was displayed when a customer tried to use checkout using PayPal Express Checkout
* Fixed an issue where it was impossible to place an order using Authorize Direct Post
* Fixed an issue where the page cache in Varnish mode didnt perform caching as required the cache
* Fixed an issue where it was impossible to specify layout container when creating or editing a widget
* Fixed an issue where a widget set to be displayed on certain type of product page was not displayed
* Fixed an issue where it was impossible to create a widget to be displayed in a sidebar
* Fixed an issue where a fatal error was thrown when trying to open a not existing page after disabling the 404 Not Found CMS page
* Fixed an issue where it was impossible to refresh CAPTCHA in the Admin panel
* Fixed an issue where two CAPTCHAs were displayed during guest Checkout
* Fixed an issued where clicking the Preview button on revision preview page did not open the Preview page
* Fixed an issue where the Magento\Framework\View\Element\AbstractBlockTest::testFormatTime failed randomly
* Fixed logic duplication and the conflicting implementation of the title API in admin
* Fixed an issue where JavaScript validation did not recognize the fields filled by automatic tests in the Create Customer form in the Admin panel
* Fixed an issue where a fatal error was thrown after mass update of the Stock Availability product attribute
* Fixed an issue where the Magento\SalesRule\Model\Resource\Report\CollectionTest::testPeriod CollectionTest::testPeriod integration test failed randomly
* Fixed issues with expandable frontend elements
* Fixed Blank & Luma themes UI bugs
* Fixed an issue where the Packages pop-up displayed incorrect information
* Fixed an issue where admin path became hidden when store address was too long
* Fixed the styling of variations without base image
* Fixed an issue where the Back link on a customer edit page led to the home page
* Fixed an issue where it was impossible to save system config from Advanced->System
* Fixed an issue where it was impossible to save a Return in the Admin panel
* Fixed a JavaScript issue where it was impossible to expand nested categories if responsive
* Fixed an issue where it was impossible to place an order using Authorize.net Direct Post in the Admin panel
* Framework improvements:
* Declaration of components in composer.json
* Added compiler for single-tenant mode
* Both ZF1 and ZF2 libraries are declared as Composer dependencies as "1.12.9" and "2.3.1" respectively
* ZF1 library is represented by 'magento/zendframework1', which is based on original "1.12.9" version and includes fixes for compatibility with Magento 2 application
* Layout improvements:
* Refactored layout building
* Performance improvements:
* Load product/category instances via repositories
* Mobile and Desktop CSS styles stored in separate files
* Service Contracts:
* Refactored the following modules to use new Customer service interfaces:
* Checkout
* Sales
* Multishipping
* GoogleShopping
* Persistent
* SalesRule
* Paypal
* Invitation
* Tax
* Newsletter
* Code review changes for Service Contracts for the CatalogInventory module
* Stabilized code after refactoring the Sales module to use new Customer service
* Stabilized code after refactoring the Checkout module to use new Customer service
* Deleted old CustomerAccount service tests
* Fixed base service object class to populate custom attributes correctly
* Fixed processing of array parameters in service interface for consolidated builder
* Fixed trace information for service exceptions in dev mode
* Implemented Bundle product API
* Accessibility improvements:
* Heading2-Heading6 hierarchy of content structure
* UI improvements:
* Style independent Error page in pub/errors styles
* Updated the content of certain default CMS Pages
* GitHub requests:
* [#691](https://github.com/magento/magento2/issues/691) -- Readonly inputs and after element html in the backend
* [#694](https://github.com/magento/magento2/issues/694) -- missing git tags in repo
* Modularity
* Log module became switchable
* New switchable module TaxImportExport was created
* Sales module improvement:
* Performance was improved
* Complexity of the order persistence logic was reduced
* Unit tests coverage for modules was increased:
* Magento\Rule
* Magento\Contact
* Framework:
* Composite and bundle save/load processors were added
* Support for the complex custom attributes were added
* Generic abstract data objects, that is simple and extensible (supports custom attributes), were created
* Search Library:
* Approach of matching the fields to table names was implemented
* MySQL Adapter Library for Match and Filtered query types was added
* Ability to filter queries was added
* Response handler for MySQL adapter was added
* XML declarations for full-text search were added
* Functional tests:
* Add Products to Order from Last Ordered Products Section
* Add Products to Order from Products in Comparison List Section
* Add Products to Order from Recently Compared Products Section
* Create Configurable Product
* Create Store
* Create Website
* Delete Product From Customer Wishlist On Backend
* Delete Store
* Delete Website
* Viewed Products Report
* Products In Cart Report
* Manage Product Review from Customer Page
* Mass Assign Customer Group
* New Account Report
* Update Product Review From Product Page
* Update Store
* Manage Product Review From Customer Page
* Other:
* Session.name ini set
* Calls to setPublicCookie became more secured
* Generating the session ID for sensitive data was added
* Fixed bugs:
* Placing the order from backend
* Redirecting the customer to empty shopping cart instead of displaying credit card iFrame on checkout with for PayPal Payflow Link
* Showing the message for multiple shipping address checkout in Authorize partial approval flow
* Mess detector failure
* flv_player security vulnerability
* Calling the inexistent method in cart with shopping cart price rules
* Overriding a non-empty custom attribute value with empty value in store view scope
* Editing in 'WYSIWYG editor' by clicking "Use Default" checkbox when switched to store view scope
* RSS list page vulnerability
* Applying the store View title on frontend for configurable attributes
* Viewing the uploaded sample in downloadable product
* Google Shopping: Problem with publishing products if change value for option 'Update Google Shopping Item when Product is Updated'
* Configuration scope of items' InStock status on order cancellation
* Creating the new customer in admin
* GitHub requests:
* #621-- Parse error: syntax error, unexpected T_OBJECT_OPERATOR
* #651-- Multishipping checkout add/edit address page issue
* Service layer implementation:
* Created the Admin Shopping Cart Service
* Created the Create Shopping Cart Items Service
* Created the Create Shopping Cart Shipping Address Service
* Created the Create Shopping Cart Billing Address Service
* Created the Service Layer for Orders
* Created CRUD service & APIs to manage options for configurable products
* Created CRUD service & APIs to manage options for bundle products
* Fixed bugs:
* Fixed an issue where adding a customer address with an invalid value of the custom address attribute caused a fatal error in SOAP
* Fixed an issue where the wrong FedEx rates were displayed
* Fixed an issue where the Bill Me Later option did not work in Payflow payment methods
* Fixed an issue where order comments were broken for orders placed with Authorize.net
* Fixed the naming of the My Account -> Recurring Payment page
* Fixed a UI elements issue in the disabled Magento_PayPalRecurringPayment and Magento_RecurringPayment modules
* Fixed an issue where it was impossible to save configuration of a configurable product when adding it to an order in the Admin panel
* Fixed an issue where the Select a store page was displayed during admin order creation when the Single Store mode was enabled
* Fixed an issue when an exception was thrown when attempting to open the Customer Account page if the Recently Viewed widget was configured for the store
* Updated the content of the Privacy Policy page
* Fixed an issue where it was possible to update a tax rate using the POST http method
* Fixed an issue where it was impossible to update Inventory Qty for a SKU using API
* Fixed a JavaScript syntax error on the Create New Customer page
* Fixed an issue where it was impossible to add new sample while creating a downloadable product
* Fixed a JavaScript which appeared when clicking the Add New Address button in the Address Book on the storefront
* Fixed an issue where it was possible to update Tax Rules using the PUT http method which is supposed to be used for create operation only
* Fixed an issue where it was possible to create a Tax Rule specifying a product tax class instead of a customer tax class and vice versa
* Fixed an issue with making websiteId a mandatory field when updating a customer using REST
* Fixed an issue where the default value was not applied after clicking the 'Use default' link for a product price field in the catalog in the Admin panel
* Fixed an issue where the price update mass action could not be performed
* Fixed a JS error in the cross-sells product settings in the Admin panel
* Added the following functional tests:
* Mass Delete Backend Customer
* Moderate Product Review
* Framework improvements:
* Added the ability to access admin functionality using admin user login for mobile
* Refactored and unified Access Control List (ACL) to make it more consistent
* Created a Cookie Manager (a cookie management class)
* Changes in functional tests:
* Enabled the CustomerMetadataService tests for SOAP
* Themes update:
* Fixed issues in the Blank theme
* Implemented improvements for the Blank theme, core templates and Storefront UI Library
* Modularity:
* Created the Notification library component and made it possible to disable the AdminNotification module
* Made it possible to disable the SendToFriend module
* Created an optional ConfigurableImportExport module to remove dependency between the CatalogImportExport and ConfigurableProduct modules
* Created an optional GroupedImportExport module to remove dependency between the CatalogImportExport and GroupedProduct modules
* Introduce search library:
* Created a Search request configuration
* Created a Query object structure from the XML declaration
* Composer Integration:
* Added support for using 3rd-party components as Composer packages
* Framework improvements:
* Reworked subsystem of static view files preprocessing
* Refactored implementation of the view files "fallback" and "collecting" (layout XML files, LESS files for @magento_import) mechanisms for better abstraction
* Used the concept of "view asset" in client code of the View library across the board
* Refactored and simplified LESS preprocessing library, mechanisms of merging and minifying static view files
* Reworked the way how links to static view files are generated and served):
* Changed the strategy of generating unique URL for view static files
* Separated the view files publication process from the page generation
* Added a separate entry point (pub/static.php) for file materialization
* View files deployment tool changes:
* Renamed CLI script from generator.php to deploy.php
* Fixed the known limitation of view files deployment tool of being unable to materialize files per languages. Now the list of intended languages can be provided as a CLI parameter
* Expanded the tool parameters
* Improved security and reliability of view files structure:
* Restructured the module view folder by file type: "web" view static files, "templates" module template files, and "layout" module layout files
* Reworked the theme module folder to repeat the same structure as in the module
* Added web folder to a theme root which contains static view files
* Renamed the pub/lib to lib/web. Currently there are no static files that are publicly accessible by default. All static view files may be subject of preprocessing
* Renamed the former lib to lib/internal
* Support of RequireJS:
* Adopted RequireJS library and implemented ability for modules or themes to introduce RequireJS configuration (aka shim-config)
* Refactored scripts in the Magento_ConfigurableProduct module to be loaded via RequireJS
* Tax calculation updates:
* Fixed tax calculation rounding issues when discount is applied
* Fixed extra penny problem when exact tax amount ends with 0.5 cent
* Fixed tax calculation errors when customer tax rate is different from store tax rate
* Added support to round tax at individual tax rate
* Fixed price inconsistencies between catalog and shopping cart
* Added support to maintain consistent price including tax for customers with different tax rates
* Added support to allow tax rules with different priorities to be applied to subtotal only
* Fixed bugs:
* Fixed an issue where it was impossible to place an order with Zero Subtotal Checkout using checkout with multiple addresses
* Fixed an issue where an irrelevant confirmation window appeared when placing an order with Zero Subtotal Checkout in the backend
* Fixed an issue where it was impossible to create an order for a new customer in the backend if gift options were enabled
* Fixed an issue where a wrong message about backordered items in cart was displayed in the backend
* Fixed an issue where it was impossible to perform a checkout with multiple addresses when the Validate Each Address Separately option in Multi-address Checkout was enabled
* Fixed an issue where the Minimum Order Amount option was applied to the orders
* Fixed an issue where the duplicated element caused problems when attempting to customize styling of the section
* Fixed an issue where a user was redirected to Dashboard when clicking the Search and Reset buttons on the Recurring Profile page
* Fixed an issue where the Enabled for RMA option was available for online shipping method in Magento 2 CE
* Fixed an issue when free shipping was applied even if the Free Shipping with Minimum Order Amount option was disabled
* Fixed an issue with not displaying a downloadable product with the Links can be purchased separately option enabled on the grouped product page
* Fixed an issue of not generating product price variations during configurable product creation
* Fixed an issue with incorrect work of category pager
* Fixed an issue with file permissions change after the system backup was run
* Fixed an issue with inconsistency between the REST request and response format
* Fixed an issue with the Magento Contact Us form not submitted if secure_base_url doesn't contain "https"
* Fixed an issue with incorrect display of the Price as configured field which didnt count product options cost
* Fixed an issue with incorrect redirect when clicking the product URL in Pending Review Rss
* JavaScript improvements:
* Added standard validation to the front-end address fields
* Implemented the wishlist widget
* Implemented the tabs widget
* Implemented the collapsible widget
* Implemented the accordion widget
* Implemented the tooltip widget
* Standardized widgets used on one page checkout