diff --git a/RELEASE_NOTES.txt b/RELEASE_NOTES.txt
index a072725d9c..de3ea51e0f 100644
--- a/RELEASE_NOTES.txt
+++ b/RELEASE_NOTES.txt
@@ -1,3 +1,472 @@
+==== 1.6.0.0 ====
+
+=== Major Highlights ===
+Minimum Advertised Price
+Persistent Shopping Cart
+Shipping Integration with Label printing support
+
+=== Improvements ===
+XmlConnect package release v21
+Order Payment Action for Express Checkout (PayPal)
+- Added settings Authorization Honor Period and Order Valid Period into EC tab in the backend
+- Automatically new authorize transaction created after order transaction
+- Automatically cancel order after the expiration of Order Valid Period
+- Automatically authorize transaction void\create after the expiration of Authorization Honor Period
+Implemented Authorize.Net 'hold for review' status shows up as 'declined' in Magento
+Add Dynamic sku option for configurable products
+Moneybookers Multistore System Configuration
+Moneybookers OBT Defaults
+PrototypeJS upgraded to 1.7
+
+=== Changes ===
+Removed deprecation.js because its not compatible with prototype 1.7
+Relations between models and resource models were revised for better support of multiple databases
+- Varien_Db_Adapter_Pdo_Mysql revised
+- Introduced Varien_Db_Adapter_Interface, Varien_Db_Ddl_Table
+- Introduced new classes named resource helpers
+- Backwards comatibility and known issues
+-- Error appears after Customer Group saving with name length more than 32
+Deprecated GoogleBase module (http://googlemerchantblog.blogspot.com/2010/12/new-shopping-apis-and-deprecation-of.html)
+- Google Shopping Extension is available for the replacement
+
+=== Fixes ===
+Fixed Google checkout shipping (merchant and carrier calculated) returns only default prices
+Fixed Custom option prices for simple products are GLOBAL
+- fixed website price scope for simple products when product is linked to few websites with separate store views
+Fixed Custom Price for Bundled Product should be disabled in Admin Panel
+Fixed Configurable products. Incorrect pricing with super attributes price in percents
+- percentage of price is taken from final product price
+Fixed Label of system Customer Attribute, that was changed, is not displayed
+Fixed Taxes are not correctly calculated if bundle with dynamic price is about to partially return
+Fixed No ability to create Shipping Labels with several packages (in case with decimals Qty of products)
+Fixed Special symbols as search keywords return error page
+Fixed Changes in URL rewrite suffix cannot be reverted
+Fixed Taxes are not correctly calculated if bundle with dynamic price is about to partially return
+Fixed Product is deleted from shopping cart by editing grouped product
+Fixed Product view page doesn't reflect last visited category
+Fixed Customer is linked in order even if it is deleted from Magento
+Fixed Exception is shown when Email to a Friend page is opened using URL in case when this feature is disabled
+Fixed Missing "?" placeholders in class Varien_Cache_Backend_Database
+Fixed There are no server side validation of first character of Attribute Code (it should be letter)
+Fixed Edit cart item return unnecessary error message
+Fixed Product Custom Option values titles are not saved
+Fixed Newsletters are not sent
+Fixed Preview URL for CMS Pages template contain two question mark
+Fixed Partial refund orders with downloadable products affect status of all downloadable links
+Fixed AddToCart takes forever if a configurable has massive count of child products
+Fixed Mage_Tag_IndexController::saveAction() contains business logic of creating tag relation
+Fixed Frontend: If second customer logs in and does not select the "Remember Me" then the previous long-term cookie does not removes
+Fixed Frontend: After new customer registration with "Remember Me" and pressing "Logout" the long-term cookie session doesn't apply if in configuration on backend ""Remember Me" Default Value" - No
+Fixed Currency problems. Back office TAX calculation on the product edit page
+Fixed UPS shipping quotes are incorrect
+Fixed Quote CollectTotals performance issue
+Fixed PayPal Checkout Error Duplicate Order ID
+- added additional exception handling which sets transaction to pending
+Fixed In report Products Ordered configurable and its associated simple product appear and are counted
+Fixed Multi select attributes not importing/exporting correctly
+Fixed Google Bot User Agent and compare product issue
+Fixed Bundle price display issue with tier pricing
+Fixed No validation of Customs Value field
+Fixed Form for adding new customer is shown instead customer's information page
+- correct customer ID passed to URL generator
+Fixed With IE9 impossible to do drag and drop actions in Admin
+- added support of Range.createContextualFragment for IE9
+Fixed Countries with no Zip code still have it as required field in address
+Fixed Anchor category does not display products from subcategories
+Fixed Place of "Options Details" is wrong in wishlist for composite products
+Fixed 3D Secure + PayPal Website Payments Pro in UK prevents non-3D secure cards from working
+Fixed When creating new order for customer registered on multiple websites, account/website mismatch causes issues
+Fixed Shipping method is calculating based on default shipping address instead of 'Same as billing' setting in backend
+Fixed Global variables in js.js
+Fixed Observers from adminhtml are do not work when use Soap
+Fixed Item quantity changed to 1 if added space
+Fixed Row total is incorrectly calculated as negative number
+Fixed HTML validation fails for pages with multiple grids
+Fixed Can not log in to MCM if connect.cfg is incorrect
+Fixed Incorrect use of chmod in Varien_Io_File::streamClose()
+Fixed Unable to return full amount on PayPal if partial credit memo is done and customer applied Store Credit
+Fixed Import Issue when attribute values not unique
+Fixed Wrong customer group in order creation process in Admin panel
+Fixed "Unable to save invoice" message appears when admin captures money when authorization transaction is no longer valid
+Fixed Wishlist doesn't save configured composite products if MAP is enabled
+Fixed Empty items grid is present, after deleting last item
+Fixed Incorrect Tax Calculation when "Apply Tax On:Original price only" but custom price is not entered
+Fixed Unable to place order with Authorize.net Direct Post payment method in IE 9
+Fixed Ability to bypass configuration setting for the Admin area URL route
+Fixed Ability to create package with decimals Qty of products, for which "Qty Uses Decimals" set to "No"
+Fixed Excess semicolon in warning message, during creating Shipping Labels (in case with invalid Packaging Type)
+Fixed msrp_display_actual_price_type (MAP:Display Actual Price) field is not exported
+Fixed Incorrect Customs Value in Create Packages in case when price value contains decimals
+Fixed Incorrect warning message, after Additions products with Qty that exceeds maximum available quantity
+Fixed Catalog price rule doesn't work with contains condition and value which contains only cents
+Fixed No store base currency beside Customs Value
+Fixed Catalog Price Rule not applying to imported products
+Fixed Incorrect "Shipper" and "Ship to" information in Shipping Label (in case with UPS)
+Fixed Images are not imported via new Import functionality
+Fixed Packages Print looks incorrectly
+Fixed MAP. In the JS pop-up link "Checkout with PayPal" displayed only under FF
+Fixed Extra double-quote in transactional email template app/locale/en_US/template/email/password_new.html
+Fixed No ability to create Shipping Label for product with non-integer weight in Ounces (USPS - First-Class Mail International Package)
+Fixed Layout issue if RSS is On
+Fixed Previous customer information stays on the page header while one page checkout in process
+Fixed Out of Stock Configurable product is displayed as In Stock
+Fixed In the up-sell products "click to see price" link displayed, when settings "In cart", "Before Order Confirmation" is used
+Fixed MAP. On the onepage, in the Wishlist block, link "Click for Price" is not active
+Fixed Frontend: the products in Shopping Cart is transferred to other customer, if this customer is logged in in "My Account" page
+Fixed Wrong prices are displayed for placed order with downloadable product
+Fixed Shipping amount display issue when placing an order on the backend
+Fixed Length, Width, Height are not passed to shipping carrier, during package creation (in case with DHL)
+Fixed Disabled fields in Create Packages Pop-up with Girth field looks incorrectly
+Fixed Customer address that affect tax calculation does not affect persistent customer
+Fixed Ability to create more products in Shipping Labels than products in the order/shipment (in case with decimals Qty of products)
+Fixed No ability to create Shipping Labels with several packages (in case with decimals Qty of products)
+Fixed Formed items grid looks incorrectly, during package creation
+Fixed Incorrect total weight of bundle product
+Fixed Shopping Cart Rule Not Working Properly
+Fixed Javascript error on "forgot your password" validation
+Fixed When custom price is applied on an order in the admin, Price Incl tax on the order is the same as Excl tax
+Fixed Edit cart item return unnecessary error message
+Fixed Unable to save HTML code in attribute options
+Fixed In the Wishlist text message appears in 2 rows, when MAP is applied for product that is in the wishlist
+Fixed Unable to apply coupon code to order with zero subtotal
+Fixed Nonexistent blank option in multiple select form attribute
+Fixed Cannot add widget to packages or themes containing underscore in name
+Fixed Product's sort order by position works incorrect with negative numbers
+- allowed negative numbers
+- corrected sorting by position
+Fixed Incorrect Grand Total calculation when "Buy X get Y free" discount applied
+Fixed Wrong product's quantity in the Wishlist after updating 'Shopping Cart'
+Fixed Unneeded URL translation in admin template
+Fixed Incorrect subtotal on invoice creation page (Order with Tax and Discount)
+- hidden tax amount was added to collect process
+Fixed When we add new address to address book during onepage checkout, not shown customer address attributes are taken from saved address attribute value
+Fixed Street Address input box missing on create order form in admin
+Fixed MAP enabled. In the wishlist block product price displayed when it should not
+Fixed Qty field is not disabled if even check-box unselected
+Fixed No ability to create Shipping Label with decimals Qty of products (in case with FedEx International)
+Fixed FedEx Shipping Method unavailable (in case with Request Courier drop off type)
+Fixed Unable to upgrade Magento when installed extension without max version
+Fixed Wrong calculation price of Bundle product
+- fixed sub item prices calculation
+Fixed Incorrect products weight in Shipping Label (in case with USPS Int.,FedEx Int. and decimal Qty)
+Fixed Gateway URL Absent in FedEx Shipping Module
+Fixed Google checkout shipping (merchant and carrier calculated) returns only default prices
+Fixed Frontend: the products in the Shopping Cart is not transferred to other customer, if this customer is logged in or register after clicks on "Checkout with Multiple Addresses", "Google Checkout" or "PayPal"
+Fixed Unable to login to site after adding SID to URL
+Fixed Image in description doesn't shown in compare grid
+Fixed Missed validation for space charter in begin of unique fields
+Fixed Impossible to sort blocks
+Fixed Incorrect behavior of Offline Refunds for an Order when Adjustment fee is specified
+Fixed Order saving error on backend
+Fixed Customer logged out by wrong SID cached in blocks
+Fixed System->Configuration->Advanced->Admin->Startup page->"Startup Page" drop-down - Optgroups are displayed after child elements
+Fixed Removed unused code from Varien_File_Uploader
+Fixed DHL Shipping Methods unavailable (in case with package type letter)
+Fixed Error via using Global Search [Search in Admin]
+Fixed Error is presented by saving address, creating order with created attributes type Image File or file(attachment)
+Fixed Package contents should be specified dynamically while creating shipping labels for the USPS International shipping methods
+Fixed Product option with file type input is not being transferred from wishlist to the cart
+- add mergeBuyRequest method to Mage_Wishlist_Model_Item
+- add checking of custom add to cart URL in Mage_Catalog_Block_Product_View
+Fixed Import: Imported file is not saved to var/importexport
+Fixed Reports for Sales do not work except PayPal Settlement if several order statutes were selected
+Fixed No disabling of package type and dimensions fields (in case with USPS Domestic)
+Fixed Wrong behavior of composite configurable product during adding to the Shopping Cart via backend
+Fixed Package Types that not available for current Shipping Method displayed in Create Packages pop-up
+- added/removed several methods/packages for UPS shipping according to SRS
+Fixed "Notify for Quantity Below" does not work
+Fixed Frontend: Tier price not always applied to Mini Shopping Cart
+Fixed Void button is present on Order page, Authorization transaction is not closed when payment action is set to "authorize and charge" - Google Checkout
+Fixed MAP is applied to a Bundle product with dynamic price
+Fixed No ability to create Shipping Label with package size "Oversize"
+Fixed Button "Add to Cart" located in JS-popup (with Display Actual Price = On Gesture) doesn't work
+Fixed Incorrect Shipping Label for USPS Library Mail Shipping Methods
+Fixed Duplicating customer's addresses through placing order (backend)
+Fixed Updating the qty of products from backend does not allow checkout on Frontend
+- added ability to Quote and Quote items to track errors and remove them, when fixed, so whole 'error' status from Quote/Quote Item can be removed
+- removed duplicating messages on Cart View page
+Fixed No ability to create Shipping Label even if "Residential Delivery" set to "Yes" (in case with FedEx Home Delivery)
+Fixed Button "Add new address" for customer works incorrect (backend)
+Fixed It should be possible to set Minimum Qty Allowed in Shopping Cart setting via backend
+Fixed Cart Subtotal is shown incorrect in sidebar shopping cart
+Fixed Grid/list view settings do not save
+Fixed Cannot assign custom filter to the grid column
+Fixed Wishlist - product custom options are lost after customer login
+Fixed Saved products will be matched each target rule
+Fixed Taxes are not displayed in the catalog from frontend for Bundle products
+- re-factored work with taxes for bundle product
+Fixed Unable to save year less than 1970 in DOB customer attribute
+- added DATETIME type to DDL
+- fixed customer attributes to have same as pre-MMDB default values
+Fixed "Grand Total" is not displayed for a configurable product that contains product where DAP = display before order confirmation
+Fixed 'Click for price' not clickable after pressing 'Review' link in category
+Fixed Bundle price display issue with tier pricing
+- not considering tier price at bundle product's view page in price range
+Fixed Frontend: In the block "Recently Viewed Products" the products of two customers are mixed
+Fixed Error with Advanced Search (in case with Date Attribute)
+Fixed Tax Rate ignores set values of Post/Zip codes Range From-To and applies it to Address with any Zip codes
+Fixed Wishlist - Comment lost on config update
+Fixed Import cannot handle UTF-8 characters
+Fixed Welcome email template for store view scope is being ignored
+Fixed Incorrect behavior of bundle product during creating Shipping Label with Customs value (in case when Price: Fixed, Ship Bundle Items" set to Separately)
+Fixed Order status isn't changed when payed via PayPal if registered email differs characters cases (upper and lower)
+Fixed Unwanted orders are shown in Sales->Orders list when the date filter affects to the day when DST changes apply
+Fixed Payment method "Credit Card (saved)" does not display fields for fill in card information when product price is 0.00
+Fixed Available to create online invoice after performing void for order
+Fixed MAP configuration must contain default text for "Default Popup Text Message" and "Default "What's This" Text Message"
+Fixed Backwards compatibility loss results in fatal error in Google Shopping module
+- added all previous DDL constants to DDL Table, they are deprecated and being converted to new supported types
+- added support for 'char' attributes
+- fixed several incompatibilities in DDL Table
+Fixed No ability to create Shipping Label with package type "Flat-Rate Box" (in case with USPS International)
+Fixed Frontend: The block "Compare Products" with product is present on catalog page after adding the product to this block and clicking on "Not..?"
+Fixed Fatal error when trying to open configurable product with super attribute not in the appropriate attribute set
+Fixed Unable to return full amount on PayPal if partial credit memo is done and customer applied Store Credit
+Fixed When creating new order for customer registered on multiple websites, account/website mismatch causes issues
+Fixed Import Issue when attribute values not unique
+Fixed After upgrading Magento website left in the maintenance mode
+Fixed Ability to create more Shipping Labels than products in the order(shipment)
+Fixed Street Address and Street Address 2 are mixed up in request to shipping carrier (in case with USPS International)
+Fixed PayflowLink doesn't work (error "Payment has been declined. Please try again." is shown, Order is canceled)
+Fixed Shopping cart price rule with attribute does not work when "Use Flat Catalog Product" enabled
+Fixed Upgrade checking after cache flushed
+Fixed Frontend: Tier price not always applied to Mini Shopping Cart
+Fixed A message for the case when shipping label is created from the order should be modified
+Fixed Spelling mistake in abbreviations unit of mass measurement (lbs, kgs)
+Fixed FedEx Ground Shipping Method unavailable (if others FedEx Shipping Methods unavailable)
+Fixed Incorrect Signature Confirmation options in the drop-down (in case with UPS)
+Fixed Frontend: Catalog Price Rule does not apply to Mini Shopping Cart after login current customer
+- add recollect total prices for quote on customer register
+Fixed Fatal error when requesting non-existent file from Media directory
+Fixed Button "Add to Cart" located in JS-popup (with Display Actual Price = On Gesture) doesn't work
+Fixed Headers sent twice or three times when file downloading
+Fixed Shipping method is calculating based on default shipping address instead of 'Same as billing' setting in backend
+Fixed No ability to create more that one online Partial Invoice with Google Checkout
+- parent transaction will be closed on payment model level;
+- fixed exception error in Mage_Tax_Model_Resource_Calculation
+Fixed Cross Sell Sorting Not Working
+Fixed No ability to create Shipping Label for USPS - First-Class Mail International Package
+Fixed Notification remove link in admin redirects to homepage on frontend in IE8
+Fixed Incorrect behavior of image gallery
+Fixed 'On Gesture' option is not applied on products' level
+Fixed The message that appears instead or totals in the shopping cart and mini shopping cart should be modified
+Fixed Void button present when order is fully invoiced
+Fixed No ability to create Shipping Label with package type "Flat-Rate Box" (in case with USPS International)
+Fixed MAP behavior for RSS feed pages should be changed (only "Click for price" link should be present)
+Fixed PayflowLink doesn't work (error "Payment has been declined. Please try again." is shown, Order is canceled)
+Fixed Incorrect Online Refund amount in Magento, when Adjustment Fee is specified (Google Checkout)
+Fixed Brazil PayPal requirements upgrade
+Fixed No ability to create Shipping Label with package type "Flat-Rate Box" (in case with USPS International)
+Fixed Issue with add to cart action, possible to add to cart a quantity of N+1 for a product
+Fixed No ability to create Shipping Label if "ship to" in Canada (in case with UPS)
+Fixed Wrong content in export file (all export types)
+Fixed "Mysql" must be renamed to "MySQL" in installer
+Fixed File overwriting during Import/Export
+Fixed Reuse of adapter utilities in helper
+Fixed MAP behavior for RSS feed pages should be changed (only "Click for price" link should be present)
+Fixed When changing locale that has Unicode characters, the countries are not sorting correctly
+Fixed Importing customers via CSV
+Fixed Two void transactions created when using Payment Action = Order in PayPal Express
+Fixed Issue with newsletter subscriptions and logged in customers
+Fixed Frontend: Long-term cookie session is not over after click on "(Not..?)" link
+Fixed Mismatch counts of products for different scope
+Fixed Wrong config setting are implemented for MAP functionality in admin on product's level
+Fixed Street Address and Street Address 2 are mixed up in request to shipping carrier (in case with USPS International)
+Fixed No ability to create Shipping Label if "ship to" in Canada (in case with UPS)
+- fixed MonetaryValue to be whole number
+Fixed Package Types that not available for current Shipping Method displayed in Create Packages pop-up
+Fixed Add verification into predispatch observers used in persistent shopping cart
+Fixed Canceled orders should be excluded from Tax Reports
+Fixed No ability to create Shipping Label with package type "Flat-Rate Box" (in case with USPS International)
+Fixed Import/Export: Append Complex Data works incorrect with grouped products
+- check behavior was added
+Fixed Fatal error appears on get shipping rates for UPS if system base currency <> merchant country currency
+Fixed Map in the frontend link has "Click to see price" name, but must be "Click for price"
+Fixed Taxes are not displayed in the catalog from frontend for Bundle products
+Fixed Available to delete drop down attribute which used in configurable product
+Fixed MySQL error with "max_allowed_packet" during check data step for a huge .csv file
+- Changed value for constant DB_MAX_PACKET_COEFFICIENT in Mage_ImportExport_Model_Resource_Helper_Mysql4
+Fixed Invalid requests to USPS API
+Fixed No ability to input some value in dimensions field in case for package type with non-standard dimensions
+Fixed Packages Pop-up looks incorrectly
+Fixed Caching config in Database results in endless recursion
+Fixed No Signature Confirmation in Packages pop-up
+Fixed Package Types that not available for current Shipping Method displayed in Create Packages pop-up
+Fixed "NaN" instead of two dashes in Package pop-up (in case with disabled Length, Width and Height fields)
+Fixed Prefix and suffix aren't visible in Register Form
+- Modified persistent customer templates
+Fixed Unable to Checkout with Multiple Addresses with Registration
+Fixed Not work shipping methods Fedex & DHL
+- Re-factored DHL, FedEx, Ups, USPS
+- Fixed minor bugs for frontend(package.phtml, view.phtml) and backend (popup.phtml, shippingmethod.phtml)
+Fixed When we do reindex from console, folder var/log changes permissions from 0777 to 0775
+Fixed Package Types that not available for current Shipping Method displayed in Create Packages pop-up
+Fixed Orders placed through PayPal marked as "Suspected Fraud"
+- Added formatting amount into comparing
+Fixed Enable Log Cleaning option is not working properly
+Fixed Incorrect transparency of PNG image in indexed non-alpha mode
+Fixed Value from Total Weight field is not passed to shipping carrier (in case with DHL and UPS)
+Fixed After enabling dashboard chart admin user is unable to login to admin panel
+Fixed Sorting on Please Select products to Add doesn't work
+Fixed Catalog Price Rules - the rule is saved but not applied
+Fixed Package Types that not available for current Shipping Method displayed in Create Packages pop-up
+Fixed Cross Sell Sorting Not Working
+Fixed Error when obtaining missed file over get.php
+Fixed Package Types that not available for current Shipping Method displayed in Create Packages pop-up
+Fixed Unable to save Poll for more than one Store
+Fixed Mage_Directory_Helper_Data::getRegionJson doesn't translate region names
+Fixed Static block in the Main Content Area overlaps border of the catalog of products
+Fixed 3D secure with Saved CC works incorrectly
+Fixed Unable add Gift Options for Individual Items
+Fixed Customer Reports
+- avoid selections group by null customer id
+Fixed Mysql4 install error
+Fixed "What's this?" link is absent, "Click for price" link doesn't work for shared Wishlist page
+Fixed Incorrect Row Total Calculation in Refund
+- changed tax counting algorithm(now it counts tax for single item)
+Fixed Incorrect recipient name of Shipping Label
+Fixed Missing "Street Address Line 2" in Shipping Label (in case with DHL)
+Fixed After upgrading Magento website left in the maintenance mode
+Fixed Frontend: JavaScript error appears if user registered on Checkout Page
+Fixed Added items to the Wishlist in the "Manage Shopping Cart" are not shown
+Fixed Information is not saved in DB after placing order during checkout
+Fixed Reports data wrong even after refreshing lifetime statistics
+Fixed Frontend can be broken by recursion
+Fixed Sub items are not displayed for the order for bundles, if user use Return and Orders link
+- added renderers for non-simple product types
+Fixed Error message for the case when store information is incomplete should be changed
+Fixed MAP behavior for RSS feed pages should be changed accordingly to SRS (only "Click for price" link should be present)
+Fixed Exception after upgrade Magento via diff files
+Fixed Frontend: The block "Compare Products" is empty after relogin
+Fixed Frontend: Catalog Price Rule does not apply to Mini Shopping Cart after login current customer
+- remove checking if customerGroupId exists because quote is loaded with existed customerGroupId as guest
+Fixed Unable to delete product with tag in pending status
+Fixed Images not imported using new Import/Export
+
+=== Known issues ===
+If you see the Service Temporarily Unavailable page after refreshing the frontend, open the Magento installation directory on the server and remove the maintenance.flag file. Then go to Magento var directory and remove the cache directory
+- this issue only exists immediately after upgrading correct
+Incorrect address in request to shipping carrier (DHL International) in case when address contains letter with diacritic
+No ability to save created package when origin address in Germany (in case with UPS Express)
+Two products are in the same row in Shipping Label (in case with FedEx International Priority)
+Incorrect tracking number in the Shipping Label (in case with "Federal Express - Ground" shipping method)
+No ability to save created package when origin and destination in Europe (in case with UPS Standard)
+
+
+
+==== 1.6.x-devel-115929 ====
+
+=== Fixes ===
+Fixed Currency problems. Back office TAX calculation on the product edit page
+Fixed UPS shipping quotes are incorrect
+Fixed Quote CollectTotals performance issue
+Fixed PayPal Checkout Error Duplicate Order ID
+- added additional exception handling which sets transaction to pending
+Fixed In report Products Ordered configurable and its associated simple product appear and are counted
+Fixed Multi select attributes not importing/exporting correctly
+Fixed Google Bot User Agent and compare product issue
+Fixed Bundle price display issue with tier pricing
+Fixed No validation of Customs Value field
+Fixed Form for adding new customer is shown instead customer's information page
+- correct customer ID passed to URL generator
+Fixed With IE9 impossible to do drag and drop actions in Admin
+- added support of Range.createContextualFragment for IE9
+Fixed Countries with no Zip code still have it as required field in address
+Fixed Anchor category does not display products from subcategories
+Fixed Place of "Options Details" is wrong in wishlist for composite products
+Fixed 3D Secure + PayPal Website Payments Pro in UK prevents non-3D secure cards from working
+Fixed When creating new order for customer registered on multiple websites, account/website mismatch causes issues
+Fixed Shipping method is calculating based on default shipping address instead of 'Same as billing' setting in backend
+Fixed Global variables in js.js
+Fixed Observers from adminhtml are do not work when use Soap
+Fixed Item quantity changed to 1 if added space
+Fixed Row total is incorrectly calculated as negative number
+Fixed HTML validation fails for pages with multiple grids
+Fixed Can not log in to MCM if connect.cfg is incorrect
+Fixed Incorrect use of chmod in Varien_Io_File::streamClose()
+Fixed Unable to return full amount on PayPal if partial credit memo is done and customer applied Store Credit
+Fixed Import Issue when attribute values not unique
+Fixed Wrong customer group in order creation process in Admin panel
+Fixed "Unable to save invoice" message appears when admin captures money when authorization transaction is no longer valid
+Fixed Whishlist doesn't save configured composite products if MAP is enabled
+Fixed Empty items grid is present, after deleting last item
+Fixed Incorrect Tax Calculation when "Apply Tax On:Original price only" but custom price is not entered
+Fixed Unable to place order with Authorize.net Direct Post payment method in IE 9
+Fixed Ability to bypass configuration setting for the Admin area URL route
+Fixed Ability to create package with decimals Qty of products, for which "Qty Uses Decimals" set to "No"
+Fixed Excess semicolon in warning message, during creating Shipping Labels (in case with invalid Packaging Type)
+Fixed msrp_display_actual_price_type (MAP:Display Actual Price) field is not exported
+Fixed Incorrect Customs Value in Create Packages in case when price value contains decimals
+Fixed Incorrect warning message, after Additions products with Qty that exceeds maximum available quantity
+Fixed Catalog price rule doesn't work with contains condition and value which contains only cents
+Fixed No store base currency beside Customs Value
+Fixed Catalog Price Rule not applying to imported products
+Fixed Incorrect "Shipper" and "Ship to" information in Shipping Label (in case with UPS)
+Fixed Images are not imported via new Import functionality
+Fixed Packages Print looks incorrectly
+Fixed MAP. In the JS pop-up link "Checkout with PayPal" displayed only under FF
+Fixed Extra double-quote in transactional email template app/locale/en_US/template/email/password_new.html
+Fixed No ability to create Shipping Label for product with non-integer weight in Ounces (USPS - First-Class Mail International Package)
+Fixed Layout issue if RSS is On
+Fixed Previous customer information stays on the page header while one page checkout in process
+Fixed Out of Stock Configurable product is displayed as In Stock
+Fixed In the up-sell products "click to see price" link displayed, when settings "In cart", "Before Order Confirmation" is used
+Fixed MAP. On the onepage, in the Wishlist block, link "Click for Price" is not active
+Fixed Frontend: the products in Shopping Cart is transferred to other customer, if this customer is logged in in "My Account" page
+Fixed Wrong prices are displayed for placed order with downloadable product
+Fixed Shipping amount display issue when placing an order on the backend
+Fixed Length, Width, Height are not passed to shipping carrier, during package creation (in case with DHL)
+Fixed Disabled fields in Create Packages Pop-up with Girth field looks incorrectly
+Fixed Customer address that affect tax calculation does not affect persistent customer
+Fixed Ability to create more products in Shipping Labels than products in the order/shipment (in case with decimals Qty of products)
+Fixed No ability to create Shipping Labels with several packages (in case with decimals Qty of products)
+Fixed Formed items grid looks incorrectly, during package creation
+Fixed Incorrect total weight of bundle product
+Fixed Shopping Cart Rule Not Working Properly
+Fixed Javascript error on "forgot your password" validation
+Fixed When custom price is applied on an order in the admin, Price Incl tax on the order is the same as Excl tax
+Fixed Edit cart item return unnecessary error message
+Fixed Unable to save HTML code in attribute options
+Fixed In the Wishlist text message appears in 2 rows, when MAP is applied for product that is in the wishlist
+Fixed Unable to apply coupon code to order with zero subtotal
+Fixed Nonexistent blank option in multiple select form attribute
+Fixed Cannot add widget to packages or themes containing underscore in name
+Fixed Product's sort order by position works incorrect with negative numbers
+- allowed negative numbers
+- corrected sorting by position
+Fixed Incorrect Grand Total calculation when "Buy X get Y free" discount applied
+Fixed Wrong product's quantity in the Wishlist after updating 'Shopping Cart'
+Fixed Unneeded URL translation in admin template
+Fixed Incorrect subtotal on invoice creation page (Order with Tax and Discount)
+- hidden tax amount was added to collect process
+Fixed When we add new address to address book during onepage checkout, not shown customer address attributes are taken from saved address attribute value.
+Fixed Street Address input box missing on create order form in admin
+Fixed MAP enabled. In the wishlist block product price displayed when it should not
+Fixed Qty field is not disabled if even check-box unselected
+Fixed No ability to create Shipping Label with decimals Qty of products (in case with FedEx International)
+Fixed FedEx Shipping Method unavailable (in case with Request Courier drop off type)
+Fixed Unable to upgrade Magento when installed extension without max version
+Fixed Wrong calculation price of Bundle product
+- fixed sub item prices calculation
+Fixed Incorrect products weight in Shipping Label (in case with USPS Int.,FedEx Int. and decimal Qty)
+Fixed Gateway URL Absent in Fedex Shipping Module
+Fixed Google checkout shipping (merchant and carrier calculated) returns only default prices
+Fixed Frontend: the products in the Shopping Cart is not transferred to other customer, if this customer is logged in or register after clicks on "Checkout with Multiple Addresses", "Google Checkout" or "PayPal"
+Fixed Unable to login to site after adding SID to URL
+Fixed Image in description doesn't shown in compare grid
+Fixed Missed validation for space charter in begin of unique fields
+Fixed Impossible to sort blocks
+Fixed Incorrect behavior of Offline Refunds for an Order when Adjustment fee is specified
+Fixed Order saving error on backend
+Fixed Customer logged out by wrong SID cached in blocks
+Fixed System->Configuration->Advanced->Admin->Startup page->"Startup Page" drop-down - Optgroups are displayed after child elements
+Fixed Removed unused code from Varien_File_Uploader
+Fixed DHL Shipping Methods unavailable (in case with package type letter)
+Fixed Error via using Global Search [Search in Admin]
+Fixed Error is presented by saving address, creating order with created attributes type Image File or file(attachment)
+
+
+
==== 1.6.0.0-rc2 ====
=== Major Highlights ===
diff --git a/app/Mage.php b/app/Mage.php
index 856ee9b9a1..3760a1ce98 100644
--- a/app/Mage.php
+++ b/app/Mage.php
@@ -154,8 +154,8 @@ public static function getVersionInfo()
'minor' => '6',
'revision' => '0',
'patch' => '0',
- 'stability' => 'rc',
- 'number' => '2',
+ 'stability' => '',
+ 'number' => '',
);
}
diff --git a/app/code/community/Find/Feed/Model/Import.php b/app/code/community/Find/Feed/Model/Import.php
index f72041f037..c97ca991a3 100755
--- a/app/code/community/Find/Feed/Model/Import.php
+++ b/app/code/community/Find/Feed/Model/Import.php
@@ -116,7 +116,11 @@ protected function _createFile()
$attributesRow = array();
foreach ($attributes as $key => $value) {
if ($this->_checkAttributeSource($product, $value)) {
- $attributesRow[$key] = $product->getAttributeText($value);
+ if (is_array($product->getAttributeText($value))) {
+ $attributesRow[$key] = implode(', ', $product->getAttributeText($value));
+ } else {
+ $attributesRow[$key] = $product->getAttributeText($value);
+ }
} else {
$attributesRow[$key] = $product->getData($value);
}
diff --git a/app/code/core/Mage/Admin/sql/admin_setup/mysql4-upgrade-1.5.9.9-1.6.0.0.php b/app/code/core/Mage/Admin/sql/admin_setup/mysql4-upgrade-1.5.9.9-1.6.0.0.php
index 5555a65def..18926eddc2 100644
--- a/app/code/core/Mage/Admin/sql/admin_setup/mysql4-upgrade-1.5.9.9-1.6.0.0.php
+++ b/app/code/core/Mage/Admin/sql/admin_setup/mysql4-upgrade-1.5.9.9-1.6.0.0.php
@@ -102,7 +102,7 @@
),
'password' => array(
'type' => Varien_Db_Ddl_Table::TYPE_TEXT,
- 'length' => 40,
+ 'length' => 100,
'comment' => 'User Password'
),
'created' => array(
diff --git a/app/code/core/Mage/Adminhtml/Block/Cms/Page/Grid/Renderer/Action.php b/app/code/core/Mage/Adminhtml/Block/Cms/Page/Grid/Renderer/Action.php
index 68bdeeb329..70b2416579 100644
--- a/app/code/core/Mage/Adminhtml/Block/Cms/Page/Grid/Renderer/Action.php
+++ b/app/code/core/Mage/Adminhtml/Block/Cms/Page/Grid/Renderer/Action.php
@@ -24,12 +24,18 @@
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
*/
-class Mage_Adminhtml_Block_Cms_Page_Grid_Renderer_Action extends Mage_Adminhtml_Block_Widget_Grid_Column_Renderer_Abstract
+class Mage_Adminhtml_Block_Cms_Page_Grid_Renderer_Action
+ extends Mage_Adminhtml_Block_Widget_Grid_Column_Renderer_Abstract
{
public function render(Varien_Object $row)
{
$urlModel = Mage::getModel('core/url')->setStore($row->getData('_first_store_id'));
- $href = $urlModel->getUrl('', array('_current'=>false)) . "{$row->getIdentifier()}?___store={$row->getStoreCode()}";
+ $href = $urlModel->getUrl(
+ $row->getIdentifier(), array(
+ '_current' => false,
+ '_query' => '___store='.$row->getStoreCode()
+ )
+ );
return ''.$this->__('Preview').'';
}
}
diff --git a/app/code/core/Mage/Adminhtml/Block/Customer/Edit/Tab/Addresses.php b/app/code/core/Mage/Adminhtml/Block/Customer/Edit/Tab/Addresses.php
index 87ec8ea558..1f63a781e1 100644
--- a/app/code/core/Mage/Adminhtml/Block/Customer/Edit/Tab/Addresses.php
+++ b/app/code/core/Mage/Adminhtml/Block/Customer/Edit/Tab/Addresses.php
@@ -123,6 +123,10 @@ public function initForm()
->initDefaultValues();
$attributes = $addressForm->getAttributes();
+ if(isset($attributes['street'])) {
+ Mage::helper('adminhtml/addresses')
+ ->processStreetAttribute($attributes['street']);
+ }
foreach ($attributes as $attribute) {
$attribute->unsIsVisible();
}
diff --git a/app/code/core/Mage/Adminhtml/Block/Sales/Order/Create/Form/Address.php b/app/code/core/Mage/Adminhtml/Block/Sales/Order/Create/Form/Address.php
index 6b2761a828..9daeae6fe2 100644
--- a/app/code/core/Mage/Adminhtml/Block/Sales/Order/Create/Form/Address.php
+++ b/app/code/core/Mage/Adminhtml/Block/Sales/Order/Create/Form/Address.php
@@ -105,7 +105,12 @@ protected function _prepareForm()
$addressForm = $this->_getAddressForm()
->setEntity($addressModel);
- $this->_addAttributesToForm($addressForm->getAttributes(), $fieldset);
+ $attributes = $addressForm->getAttributes();
+ if(isset($attributes['street'])) {
+ Mage::helper('adminhtml/addresses')
+ ->processStreetAttribute($attributes['street']);
+ }
+ $this->_addAttributesToForm($attributes, $fieldset);
$prefixElement = $this->_form->getElement('prefix');
if ($prefixElement) {
diff --git a/app/code/core/Mage/Adminhtml/Block/Sales/Order/Create/Items/Grid.php b/app/code/core/Mage/Adminhtml/Block/Sales/Order/Create/Items/Grid.php
index d0c2a72339..ca65d53c32 100644
--- a/app/code/core/Mage/Adminhtml/Block/Sales/Order/Create/Items/Grid.php
+++ b/app/code/core/Mage/Adminhtml/Block/Sales/Order/Create/Items/Grid.php
@@ -178,11 +178,28 @@ public function getQuoteAddress()
}
}
+ /**
+ * Define if specified item has already applied custom price
+ *
+ * @param Mage_Sales_Model_Quote_Item $item
+ * @return bool
+ */
public function usedCustomPriceForItem($item)
{
return $item->hasCustomPrice();
}
+ /**
+ * Define if custom price can be applied for specified item
+ *
+ * @param Mage_Sales_Model_Quote_Item $item
+ * @return bool
+ */
+ public function canApplyCustomPrice($item)
+ {
+ return !$item->isChildrenCalculated();
+ }
+
public function getQtyTitle($item)
{
$prices = $item->getProduct()->getTierPrice();
diff --git a/app/code/core/Mage/Adminhtml/Block/Sales/Order/Create/Shipping/Method/Form.php b/app/code/core/Mage/Adminhtml/Block/Sales/Order/Create/Shipping/Method/Form.php
index df9fc65a08..60a0ecb44a 100644
--- a/app/code/core/Mage/Adminhtml/Block/Sales/Order/Create/Shipping/Method/Form.php
+++ b/app/code/core/Mage/Adminhtml/Block/Sales/Order/Create/Shipping/Method/Form.php
@@ -31,7 +31,8 @@
* @package Mage_Adminhtml
* @author Magento Core Team
*/
-class Mage_Adminhtml_Block_Sales_Order_Create_Shipping_Method_Form extends Mage_Adminhtml_Block_Sales_Order_Create_Abstract
+class Mage_Adminhtml_Block_Sales_Order_Create_Shipping_Method_Form
+ extends Mage_Adminhtml_Block_Sales_Order_Create_Abstract
{
protected $_rates;
@@ -138,6 +139,16 @@ public function getIsRateRequest()
public function getShippingPrice($price, $flag)
{
- return $this->getQuote()->getStore()->convertPrice(Mage::helper('tax')->getShippingPrice($price, $flag, $this->getAddress()), true);
+ return $this->getQuote()->getStore()->convertPrice(
+ Mage::helper('tax')->getShippingPrice(
+ $price,
+ $flag,
+ $this->getAddress(),
+ null,
+ //We should send exact quote store to prevent fetching default config for admin store.
+ $this->getAddress()->getQuote()->getStore()
+ ),
+ true
+ );
}
}
diff --git a/app/code/core/Mage/Adminhtml/Block/Sales/Order/Shipment/Packaging.php b/app/code/core/Mage/Adminhtml/Block/Sales/Order/Shipment/Packaging.php
index 7390704e0d..7b12d64e53 100644
--- a/app/code/core/Mage/Adminhtml/Block/Sales/Order/Shipment/Packaging.php
+++ b/app/code/core/Mage/Adminhtml/Block/Sales/Order/Shipment/Packaging.php
@@ -66,11 +66,12 @@ public function getConfigDataJson()
$createLabelUrl = $this->getUrl('*/sales_order_shipment/createLabel', $urlParams);
$itemsGridUrl = $this->getUrl('*/sales_order_shipment/getShippingItemsGrid', $urlParams);
foreach ($this->getShipment()->getAllItems() as $item) {
- $itemsQty[$item->getId()] = $item->getQty();
- $itemsPrice[$item->getId()] = $item->getPrice();
- $itemsName[$item->getId()] = $item->getName();
- $itemsWeight[$item->getId()] = $item->getWeight();
- $itemsProductId[$item->getId()] = $item->getProductId();
+ $itemsQty[$item->getId()] = $item->getQty();
+ $itemsPrice[$item->getId()] = $item->getPrice();
+ $itemsName[$item->getId()] = $item->getName();
+ $itemsWeight[$item->getId()] = $item->getWeight();
+ $itemsProductId[$item->getId()] = $item->getProductId();
+ $itemsOrderItemId[$item->getId()] = $item->getOrderItemId();
}
} else if ($orderId) {
$urlParams['order_id'] = $orderId;
@@ -78,25 +79,27 @@ public function getConfigDataJson()
$itemsGridUrl = $this->getUrl('*/sales_order_shipment/getShippingItemsGrid', $urlParams);
foreach ($this->getShipment()->getAllItems() as $item) {
- $itemsQty[$item->getOrderItemId()] = $item->getQty()*1;
- $itemsPrice[$item->getOrderItemId()] = $item->getPrice();
- $itemsName[$item->getOrderItemId()] = $item->getName();
- $itemsWeight[$item->getOrderItemId()] = $item->getWeight();
- $itemsProductId[$item->getOrderItemId()]= $item->getProductId();
+ $itemsQty[$item->getOrderItemId()] = $item->getQty()*1;
+ $itemsPrice[$item->getOrderItemId()] = $item->getPrice();
+ $itemsName[$item->getOrderItemId()] = $item->getName();
+ $itemsWeight[$item->getOrderItemId()] = $item->getWeight();
+ $itemsProductId[$item->getOrderItemId()] = $item->getProductId();
+ $itemsOrderItemId[$item->getOrderItemId()] = $item->getOrderItemId();
}
}
$data = array(
- 'createLabelUrl' => $createLabelUrl,
- 'itemsGridUrl' => $itemsGridUrl,
- 'errorQtyOverLimit' => Mage::helper('sales')->__('The quantity you want to add exceeds the total shipped quantity for'),
- 'titleDisabledSaveBtn' => Mage::helper('sales')->__('Products should be added to package(s)'),
- 'validationErrorMsg' => Mage::helper('sales')->__('The value that you entered is not valid. Please use numeric value.'),
- 'shipmentItemsQty' => $itemsQty,
- 'shipmentItemsPrice' => $itemsPrice,
- 'shipmentItemsName' => $itemsName,
- 'shipmentItemsWeight' => $itemsWeight,
- 'shipmentItemsProductId' => $itemsProductId,
- 'customizable' => $this->_getCustomizableContainers(),
+ 'createLabelUrl' => $createLabelUrl,
+ 'itemsGridUrl' => $itemsGridUrl,
+ 'errorQtyOverLimit' => Mage::helper('sales')->__('The quantity you want to add exceeds the total shipped quantity for some of selected Product(s)'),
+ 'titleDisabledSaveBtn' => Mage::helper('sales')->__('Products should be added to package(s)'),
+ 'validationErrorMsg' => Mage::helper('sales')->__('The value that you entered is not valid.'),
+ 'shipmentItemsQty' => $itemsQty,
+ 'shipmentItemsPrice' => $itemsPrice,
+ 'shipmentItemsName' => $itemsName,
+ 'shipmentItemsWeight' => $itemsWeight,
+ 'shipmentItemsProductId' => $itemsProductId,
+ 'shipmentItemsOrderItemId' => $itemsOrderItemId,
+ 'customizable' => $this->_getCustomizableContainers(),
);
return Mage::helper('core')->jsonEncode($data);
}
@@ -174,6 +177,21 @@ public function getDeliveryConfirmationTypeByCode($code)
return '';
}
+ /**
+ * Return name of content type by its code
+ *
+ * @param string $code
+ * @return string
+ */
+ public function getContentTypeByCode($code)
+ {
+ $contentTypes = $this->getContentTypes();
+ if (!empty($contentTypes[$code])) {
+ return $contentTypes[$code];
+ }
+ return '';
+ }
+
/**
* Get packed products in packages
*
@@ -301,4 +319,40 @@ public function getContentTypes()
}
return array();
}
+
+ /**
+ * Get Currency Code for Custom Value
+ *
+ * @return string
+ */
+ public function getCustomValueCurrencyCode()
+ {
+ return Mage::app()->getStore()->getBaseCurrencyCode();
+ }
+
+ /**
+ * Display formatted price
+ *
+ * @param float $price
+ * @return string
+ */
+ public function displayPrice($price)
+ {
+ return $this->getShipment()->getOrder()->formatPriceTxt($price);
+ }
+
+ /**
+ * Get ordered qty of item
+ *
+ * @param int $itemId
+ * @return int|null
+ */
+ public function getQtyOrderedItem($itemId)
+ {
+ if ($itemId) {
+ return $this->getShipment()->getOrder()->getItemById($itemId)->getQtyOrdered()*1;
+ } else {
+ return;
+ }
+ }
}
diff --git a/app/code/core/Mage/Adminhtml/Block/Sales/Order/View/Info.php b/app/code/core/Mage/Adminhtml/Block/Sales/Order/View/Info.php
index e890537526..4adcd860bd 100644
--- a/app/code/core/Mage/Adminhtml/Block/Sales/Order/View/Info.php
+++ b/app/code/core/Mage/Adminhtml/Block/Sales/Order/View/Info.php
@@ -79,7 +79,7 @@ public function getCustomerGroupName()
public function getCustomerViewUrl()
{
- if ($this->getOrder()->getCustomerIsGuest()) {
+ if ($this->getOrder()->getCustomerIsGuest() || !$this->getOrder()->getCustomerId()) {
return false;
}
return $this->getUrl('*/customer/edit', array('id' => $this->getOrder()->getCustomerId()));
diff --git a/app/code/core/Mage/Adminhtml/Block/Sales/Order/View/Items/Renderer/Default.php b/app/code/core/Mage/Adminhtml/Block/Sales/Order/View/Items/Renderer/Default.php
index 09f170ccf5..11a3531257 100644
--- a/app/code/core/Mage/Adminhtml/Block/Sales/Order/View/Items/Renderer/Default.php
+++ b/app/code/core/Mage/Adminhtml/Block/Sales/Order/View/Items/Renderer/Default.php
@@ -212,4 +212,33 @@ public function canDisplayGiftmessage()
'order_item', $this->getItem(), $this->getItem()->getOrder()->getStoreId()
);
}
+
+ /**
+ * Display susbtotal price including tax
+ *
+ * @param Mage_Sales_Model_Order_Item $item
+ * @return string
+ */
+ public function displaySubtotalInclTax($item)
+ {
+ return $this->displayPrices(
+ $this->helper('checkout')->getBaseSubtotalInclTax($item),
+ $this->helper('checkout')->getSubtotalInclTax($item)
+ );
+ }
+
+ /**
+ * Display item price including tax
+ *
+ * @param Mage_Sales_Model_Order_Item $item
+ * @return string
+ */
+ public function displayPriceInclTax(Varien_Object $item)
+ {
+ return $this->displayPrices(
+ $this->helper('checkout')->getBasePriceInclTax($item),
+ $this->helper('checkout')->getPriceInclTax($item)
+ );
+ }
+
}
diff --git a/app/code/core/Mage/Adminhtml/Block/Tag/Customer/Grid.php b/app/code/core/Mage/Adminhtml/Block/Tag/Customer/Grid.php
index 2ee941387b..e6dc2556bb 100644
--- a/app/code/core/Mage/Adminhtml/Block/Tag/Customer/Grid.php
+++ b/app/code/core/Mage/Adminhtml/Block/Tag/Customer/Grid.php
@@ -115,7 +115,7 @@ protected function _prepareColumns()
public function getRowUrl($row)
{
- return $this->getUrl('*/customer/edit', array('id' => $row->getCustomerId()));
+ return $this->getUrl('*/customer/edit', array('id' => $row->getId()));
}
}
diff --git a/app/code/core/Mage/Adminhtml/Block/Widget/Form.php b/app/code/core/Mage/Adminhtml/Block/Widget/Form.php
index 16a3a76dd2..8ffb587e94 100644
--- a/app/code/core/Mage/Adminhtml/Block/Widget/Form.php
+++ b/app/code/core/Mage/Adminhtml/Block/Widget/Form.php
@@ -197,8 +197,10 @@ protected function _setFieldset($attributes, $fieldset, $exclude=array())
$element->setAfterElementHtml($this->_getAdditionalElementHtml($element));
- if ($inputType == 'select' || $inputType == 'multiselect') {
+ if ($inputType == 'select') {
$element->setValues($attribute->getSource()->getAllOptions(true, true));
+ } else if ($inputType == 'multiselect') {
+ $element->setValues($attribute->getSource()->getAllOptions(false, true));
} else if ($inputType == 'date') {
$element->setImage($this->getSkinUrl('images/grid-cal.gif'));
$element->setFormat(
diff --git a/app/code/core/Mage/Adminhtml/Block/Widget/Grid/Column/Filter/Abstract.php b/app/code/core/Mage/Adminhtml/Block/Widget/Grid/Column/Filter/Abstract.php
index a073af3e18..9e4d2d0488 100644
--- a/app/code/core/Mage/Adminhtml/Block/Widget/Grid/Column/Filter/Abstract.php
+++ b/app/code/core/Mage/Adminhtml/Block/Widget/Grid/Column/Filter/Abstract.php
@@ -31,37 +31,77 @@
* @package Mage_Adminhtml
* @author Magento Core Team
*/
-class Mage_Adminhtml_Block_Widget_Grid_Column_Filter_Abstract extends Mage_Adminhtml_Block_Abstract implements Mage_Adminhtml_Block_Widget_Grid_Column_Filter_Interface
+class Mage_Adminhtml_Block_Widget_Grid_Column_Filter_Abstract extends Mage_Adminhtml_Block_Abstract
+ implements Mage_Adminhtml_Block_Widget_Grid_Column_Filter_Interface
{
+ /**
+ * Column related to filter
+ *
+ * @var Mage_Adminhtml_Block_Widget_Grid_Column
+ */
protected $_column;
+ /**
+ * Set column related to filter
+ *
+ * @param Mage_Adminhtml_Block_Widget_Grid_Column $column
+ * @return Mage_Adminhtml_Block_Widget_Grid_Column_Filter_Abstract
+ */
public function setColumn($column)
{
$this->_column = $column;
return $this;
}
+ /**
+ * Retrieve column related to filter
+ *
+ * @return Mage_Adminhtml_Block_Widget_Grid_Column
+ */
public function getColumn()
{
return $this->_column;
}
+ /**
+ * Retrieve html name of filter
+ *
+ * @return string
+ */
protected function _getHtmlName()
{
return $this->getColumn()->getId();
}
+ /**
+ * Retrieve html id of filter
+ *
+ * @return string
+ */
protected function _getHtmlId()
{
- return $this->getColumn()->getGrid()->getVarNameFilter().'_'.$this->getColumn()->getId();
+ return $this->getColumn()->getGrid()->getId() . '_'
+ . $this->getColumn()->getGrid()->getVarNameFilter() . '_'
+ . $this->getColumn()->getId();
}
- public function getEscapedValue($index=null)
+ /**
+ * Retrieve escaped value
+ *
+ * @param mixed $index
+ * @return string
+ */
+ public function getEscapedValue($index = null)
{
return htmlspecialchars($this->getValue($index));
}
+ /**
+ * Retrieve condition
+ *
+ * @return array
+ */
public function getCondition()
{
$helper = Mage::getResourceHelper('core');
@@ -79,10 +119,14 @@ protected function _escapeValue($value)
return str_replace('_', '\_', str_replace('\\', '\\\\', $value));
}
+ /**
+ * Retrieve filter html
+ *
+ * @return string
+ */
public function getHtml()
{
return '';
}
}
-
diff --git a/app/code/core/Mage/Adminhtml/Helper/Addresses.php b/app/code/core/Mage/Adminhtml/Helper/Addresses.php
new file mode 100644
index 0000000000..6ccfb65b63
--- /dev/null
+++ b/app/code/core/Mage/Adminhtml/Helper/Addresses.php
@@ -0,0 +1,51 @@
+
+ */
+class Mage_Adminhtml_Helper_Addresses extends Mage_Core_Helper_Abstract
+{
+ const DEFAULT_STREET_LINES_COUNT = 2;
+
+ /**
+ * Check if number of street lines is non-zero
+ *
+ * @param Mage_Customer_Model_Attribute $attribute
+ * @return Mage_Customer_Model_Attribute
+ */
+ public function processStreetAttribute(Mage_Customer_Model_Attribute $attribute)
+ {
+ if($attribute->getScopeMultilineCount() <= 0) {
+ $attribute->setScopeMultilineCount(self::DEFAULT_STREET_LINES_COUNT);
+ }
+ return $attribute;
+ }
+}
diff --git a/app/code/core/Mage/Adminhtml/Model/Sales/Order/Create.php b/app/code/core/Mage/Adminhtml/Model/Sales/Order/Create.php
index 8400c80e83..f8b15930a9 100644
--- a/app/code/core/Mage/Adminhtml/Model/Sales/Order/Create.php
+++ b/app/code/core/Mage/Adminhtml/Model/Sales/Order/Create.php
@@ -290,6 +290,10 @@ public function initFromOrder(Mage_Sales_Model_Order $order)
$this->_initBillingAddressFromOrder($order);
$this->_initShippingAddressFromOrder($order);
+ if (!$this->getQuote()->isVirtual() && $this->getShippingAddress()->getSameAsBilling()) {
+ $this->setShippingAsBilling(1);
+ }
+
$this->setShippingMethod($order->getShippingMethod());
$this->getQuote()->getShippingAddress()->setShippingDescription($order->getShippingDescription());
@@ -1439,9 +1443,6 @@ public function createOrder()
$quote = $this->getQuote();
$this->_prepareQuoteItems();
- if (! $quote->getCustomer()->getId() || ! $quote->getCustomer()->isInStore($this->getSession()->getStore())) {
- $quote->getCustomer()->sendNewAccountEmail('registered', '', $quote->getStoreId());
- }
$service = Mage::getModel('sales/service_quote', $quote);
if ($this->getSession()->getOrder()->getId()) {
$oldOrder = $this->getSession()->getOrder();
@@ -1461,9 +1462,13 @@ public function createOrder()
}
$order = $service->submit();
- if (!$quote->getCustomer()->getId() || !$quote->getCustomer()->isInStore($this->getSession()->getStore())) {
+ if ((!$quote->getCustomer()->getId() || !$quote->getCustomer()->isInStore($this->getSession()->getStore()))
+ && !$quote->getCustomerIsGuest()
+ ) {
$quote->getCustomer()->setCreatedAt($order->getCreatedAt());
- $quote->getCustomer()->save();
+ $quote->getCustomer()
+ ->save()
+ ->sendNewAccountEmail('registered', '', $quote->getStoreId());;
}
if ($this->getSession()->getOrder()->getId()) {
$oldOrder = $this->getSession()->getOrder();
diff --git a/app/code/core/Mage/Adminhtml/Model/System/Config/Source/Admin/Page.php b/app/code/core/Mage/Adminhtml/Model/System/Config/Source/Admin/Page.php
index 2ae0f09a85..44fc4fb394 100644
--- a/app/code/core/Mage/Adminhtml/Model/System/Config/Source/Admin/Page.php
+++ b/app/code/core/Mage/Adminhtml/Model/System/Config/Source/Admin/Page.php
@@ -66,7 +66,7 @@ protected function _createOptions(&$optionArray, $menuNode)
$children = array();
if(isset($menu['children'])) {
- $this->_createOptions($optionArray, $menu['children']);
+ $this->_createOptions($children, $menu['children']);
}
$optionArray[] = array(
diff --git a/app/code/core/Mage/Adminhtml/controllers/Catalog/Product/AttributeController.php b/app/code/core/Mage/Adminhtml/controllers/Catalog/Product/AttributeController.php
index 639a86d515..90af67c2d1 100644
--- a/app/code/core/Mage/Adminhtml/controllers/Catalog/Product/AttributeController.php
+++ b/app/code/core/Mage/Adminhtml/controllers/Catalog/Product/AttributeController.php
@@ -158,26 +158,26 @@ protected function _filterPostData($data)
//labels
foreach ($data['frontend_label'] as & $value) {
if ($value) {
- $value = $helperCatalog->stripTags($value);
+ $value = $helperCatalog->escapeHtml($value);
}
}
//options
if (!empty($data['option']['value'])) {
foreach ($data['option']['value'] as &$options) {
foreach ($options as &$label) {
- $label = $helperCatalog->stripTags($label);
+ $label = $helperCatalog->escapeHtml($label);
}
}
}
//default value
if (!empty($data['default_value'])) {
- $data['default_value'] = $helperCatalog->stripTags($data['default_value']);
+ $data['default_value'] = $helperCatalog->escapeHtml($data['default_value']);
}
if (!empty($data['default_value_text'])) {
- $data['default_value_text'] = $helperCatalog->stripTags($data['default_value_text']);
+ $data['default_value_text'] = $helperCatalog->escapeHtml($data['default_value_text']);
}
if (!empty($data['default_value_textarea'])) {
- $data['default_value_textarea'] = $helperCatalog->stripTags($data['default_value_textarea']);
+ $data['default_value_textarea'] = $helperCatalog->escapeHtml($data['default_value_textarea']);
}
}
return $data;
@@ -200,7 +200,7 @@ public function saveAction()
//validate attribute_code
if (isset($data['attribute_code'])) {
- $validatorAttrCode = new Zend_Validate_Regex(array('pattern' => '/^[a-z_0-9]{1,255}$/'));
+ $validatorAttrCode = new Zend_Validate_Regex(array('pattern' => '/^[a-z][a-z_0-9]{1,254}$/'));
if (!$validatorAttrCode->isValid($data['attribute_code'])) {
$session->addError(
$helper->__('Attribute code is invalid. Please use only letters (a-z), numbers (0-9) or underscore(_) in this field, first character should be a letter.'));
@@ -278,7 +278,6 @@ public function saveAction()
//filter
$data = $this->_filterPostData($data);
-
$model->addData($data);
if (!$id) {
diff --git a/app/code/core/Mage/Adminhtml/controllers/Tax/RateController.php b/app/code/core/Mage/Adminhtml/controllers/Tax/RateController.php
index 9decba622a..1b07be9157 100644
--- a/app/code/core/Mage/Adminhtml/controllers/Tax/RateController.php
+++ b/app/code/core/Mage/Adminhtml/controllers/Tax/RateController.php
@@ -292,14 +292,17 @@ protected function _importRates()
1 => Mage::helper('tax')->__('Country'),
2 => Mage::helper('tax')->__('State'),
3 => Mage::helper('tax')->__('Zip/Post Code'),
- 4 => Mage::helper('tax')->__('Rate')
+ 4 => Mage::helper('tax')->__('Rate'),
+ 5 => Mage::helper('tax')->__('Zip/Post is Range'),
+ 6 => Mage::helper('tax')->__('Range From'),
+ 7 => Mage::helper('tax')->__('Range To')
);
$stores = array();
$unset = array();
$storeCollection = Mage::getModel('core/store')->getCollection()->setLoadDefault(false);
- for ($i = 5; $i < count($csvData[0]); $i++) {
+ for ($i = count($csvFields); $i < count($csvData[0]); $i++) {
$header = $csvData[0][$i];
$found = false;
foreach ($storeCollection as $store) {
@@ -369,6 +372,9 @@ protected function _importRates()
'tax_region_id' => ($regions[$v[1]][$v[2]] == '*') ? 0 : $regions[$v[1]][$v[2]],
'tax_postcode' => (empty($v[3]) || $v[3]=='*') ? null : $v[3],
'rate' => $v[4],
+ 'zip_is_range' => $v[5],
+ 'zip_from' => $v[6],
+ 'zip_to' => $v[7]
);
$rateModel = Mage::getModel('tax/calculation_rate')->loadByCode($rateData['code']);
@@ -407,9 +413,13 @@ public function exportPostAction()
'country_name' => Mage::helper('tax')->__('Country'),
'region_name' => Mage::helper('tax')->__('State'),
'tax_postcode' => Mage::helper('tax')->__('Zip/Post Code'),
- 'rate' => Mage::helper('tax')->__('Rate')
+ 'rate' => Mage::helper('tax')->__('Rate'),
+ 'zip_is_range' => Mage::helper('tax')->__('Zip/Post is Range'),
+ 'zip_from' => Mage::helper('tax')->__('Range From'),
+ 'zip_to' => Mage::helper('tax')->__('Range To')
));
- $template = '"{{code}}","{{country_name}}","{{region_name}}","{{tax_postcode}}","{{rate}}"';
+ $template = '"{{code}}","{{country_name}}","{{region_name}}","{{tax_postcode}}","{{rate}}"'
+ . ',"{{zip_is_range}}","{{zip_from}}","{{zip_to}}"';
$content = $headers->toString($template);
$storeTaxTitleTemplate = array();
diff --git a/app/code/core/Mage/Api/Model/Server/Handler/Abstract.php b/app/code/core/Mage/Api/Model/Server/Handler/Abstract.php
index 91a14ad616..d379edd75a 100644
--- a/app/code/core/Mage/Api/Model/Server/Handler/Abstract.php
+++ b/app/code/core/Mage/Api/Model/Server/Handler/Abstract.php
@@ -38,6 +38,7 @@ abstract class Mage_Api_Model_Server_Handler_Abstract
public function __construct()
{
set_error_handler(array($this, 'handlePhpError'), E_ALL);
+ Mage::app()->loadAreaPart(Mage_Core_Model_App_Area::AREA_ADMINHTML, Mage_Core_Model_App_Area::PART_EVENTS);
}
public function handlePhpError($errorCode, $errorMessage, $errorFile)
diff --git a/app/code/core/Mage/Bundle/Block/Adminhtml/Catalog/Product/Edit/Tab/Attributes.php b/app/code/core/Mage/Bundle/Block/Adminhtml/Catalog/Product/Edit/Tab/Attributes.php
index 47f581f2b9..710a939bc7 100644
--- a/app/code/core/Mage/Bundle/Block/Adminhtml/Catalog/Product/Edit/Tab/Attributes.php
+++ b/app/code/core/Mage/Bundle/Block/Adminhtml/Catalog/Product/Edit/Tab/Attributes.php
@@ -113,7 +113,7 @@ function changeTaxClassId() {
}
$mapEnabled = $this->getForm()->getElement('msrp_enabled');
- if ($mapEnabled) {
+ if ($mapEnabled && $this->getCanEditPrice() !== false) {
$mapEnabled->setAfterElementHtml(
'
+
diff --git a/app/design/adminhtml/default/default/template/importexport/import/form/before.phtml b/app/design/adminhtml/default/default/template/importexport/import/form/before.phtml
index 48a1ecc843..7c4ee95464 100644
--- a/app/design/adminhtml/default/default/template/importexport/import/form/before.phtml
+++ b/app/design/adminhtml/default/default/template/importexport/import/form/before.phtml
@@ -64,6 +64,8 @@
if (newActionUrl) {
formElem.action = newActionUrl;
}
+ formElem.action += (formElem.action.lastIndexOf('?') != -1 ? '&' : '?')
+ + 'form_key=' + encodeURIComponent(formElem.form_key.value);
this._submit();
formElem.target = oldTarget;
formElem.action = oldAction;
diff --git a/app/design/adminhtml/default/default/template/page/header.phtml b/app/design/adminhtml/default/default/template/page/header.phtml
index 6ae3c48f54..1c43c2cf6b 100644
--- a/app/design/adminhtml/default/default/template/page/header.phtml
+++ b/app/design/adminhtml/default/default/template/page/header.phtml
@@ -27,7 +27,7 @@
/** @var $this Mage_Adminhtml_Block_Page_Header */
?>