== OpenCart v1.4.9.5 ==

FIXES:
- Fixed Regression Weight Class Description saving in admin
- Fixed Missing mail parameter admin order update
- Fixed setting.php and installer to use common Email regex
- Fixed firstclass for USPS new V4 api and international settings
- Fixed css for alternating row colors in admin
- Fixed paypoint live method
- updated royal mail rates
- Fixed store breadcrumb page not found issue
- Updated sagepay_direct to use explode instead of split()
- Admin category cache updated to be separate from the catalog

ADDED:
- Added some additional htaccess override options for those that can't use php.ini.
- Reduced admin user name validation to 1 char
- Updated UPS admin controller to use optimized coding method
- Added UPS insurance & avg dimensions
- Added new paypal standard currency
- Additional weight-based mail features
- Additional Flat Rate & Free Shipping features
- Added product option validation for products in the cart to avoid product with no option
- Updated admin product controller to use new array_merge languages
- Added Max Qty for products
- Added callback code to nochex

DELETED:
- setMinQty() function removed. Min and Max qty check moved and simplified in main the getProducts() function in the cart library



== OpenCart v1.4.9.4 ==

FIXES:
- Colspan fixed for admin product list when no products found
- Search not working on all pages fixed
- Removed Foreach in Cache::get function since it returns after the first file anyway
- Added touch() to cache file before unlink to avoid the file race condition
- Add IP back to order edit page (accidentally removed in 1.4.9)
- Removed language status check for download edit
- Fixed language autodetect to check if language is enabled
- Fixed php error when loading information controller with no information_id
- Possible additional fixes for mail to use base64 encoding in subject
- Fixed column width issue fpr product totals in admin order edit
- Updated Paypal Standard to latest patch + auto-bypass for 0.00 totals
- Fixed text_error in category page
- Email validation simplified to check for *@*.*
- Fixed security issue with Moneybookers payment gateway
- Fixed USPS issues do to 2011 change
- Fixed flat rate wording on description (broke in 1.4.9)
- Fixed Paypal Pro currency conversion issue

ADDED:
- Specials listed in the admin product list also show when start or end is 0000-00-00
- Allow resetting invoice id to 1 by changing invoice prefix
- Added invoice_date field to order to store the date the invoice was generated
- Added invoice date to actual invoice print
- Added additional help text for some features to explain their function better
- New Account Create alert mail option
- Added email to db insert for admin on new install
- Converted setting.php controller to use the new proposed optimization standard methods (cut filesize in half)
- Added additional security params in htaccess
- Additional minor code optimizations
- Updated USPS to use RateV4 API
- New Account Success continues to checkout/shipping instead of checkout/cart since it is more intuitive
- Removed fedex placeholder files since they reference a deprecated api
- Added date header to mail class to help prevent spam filtering


== OpenCart v1.4.9.3 ==

FIXES:
- BUG: Notice: Undefined index: postcode_required if country set to please select
- BUG: customer checks out and wants to change either the Shipping or Payment address, a "The page you requested cannot be found" error appears
- BUG: Homepage modules cannot use document library class methods because the "header" module was loading before the homepage modules.
- BUG: Disabling Bestseller items causes the limit to be (limit-1)
- BUG: setting controller had copy/paste bug for icon/logo check
- BUG: php.ini setting "max_upload_filesize" should be "upload_max_filesize" which explains why it didn't work
- BUG: Paypal standard sandbox mode shows "text_testmode" instead of the correct testmode message
- BUG: Postcode callback for address page was wrong
- BUG: When reviews disabled, sort by still shows reviews in list
- BUG: undefined index: default on customer edit screen for multiple addresses
- BUG: mail subject and sender were not decoding html for ", &, ', , etc causing mail not to send


Added:
- Additional attempts to get rid of the cache unlink error messages
- Paypal passing of state and phone for credit card address
- Copied products are disabled by default and marked with [*]
- Product Price Column on Product List page including special price
- Google Base Feed support for currency (USD, EUR, GBP)
- Removed "self" from related products and category parents
- Improved document class loading in header.php
- Enhanced currency library functions
- Added Trim to address details to avoid spaces
- Added UCWords to address details to auto capitalize
- Alternating color rows for admin lists
- Added x_invoice_num to authorize.net
- Added slight improvement to category caching for empty categories
- Added support for discounts greater than product total for paypal standard
- Added Hawkey's improved version of Admin Order Edit. This version comes with the following improvements and limitations:
---- It will allow you to add or delete products and it will update the Subtotal, TAX and Total.
---- It will also recognize if a product is a Special even-tough it will not show the special price in the list
---- It will recognize Quality discount with date, customer group, and quantity.
---- It will NOT let you change the payment nor the shipment method.
---- It will NOT let you change the Shipping costs.
---- Be aware that if you change the sort order of the "Extension->Order Total" area, it will not map correctly to the values in previously edited orders.


== OpenCart v1.4.9.2 ==

FIXES:
- Deleting orders throws error "Notice: Undefined index: subtract"
- Email address fields do not support "-" dash characters.
- Guest Checkout adds store tax even when from a non-taxable address
- Images with uppercase extensions don't resize properly
- CSRF vulnerability in 1.4.8, 1.4.9, and 1.4.9.1
- Geo Zones not deleting properly
- Search parameters not correctly encoded such as # character
- USPS has some typos and incorrect tax class
- Editing customer removes default shipping address designation
- Sales report not calculating tax

Added:
- new "default" radio button in customer edit (as part of fix above)
- email regex pattern is now defined one time as a constant instead of being redefined in 8 places as a variable. Now it can be edited in the system/startup.php file
- Added Cumbria to the UK zone list

== OpenCart v1.4.9.1 ==

FIXES:
- Frontend not viewable in Maintenance Mode, even when logged in as admin.
- Adding items to cart shows no products in cart
- Deleting Downloads from Admin does not remove file
- Paypal warning about Receiver Email doesn't match
- Cart sidebox checkout button is HTTP instead of HTTPS
- Paypal Standard not passing Handling and other order fees.
- Paypal Standard not setting state for Authorization mode.
- Transparent PNG Images not always working.
- Unchecking all user group options gives foreach error when logging in with a user in that group
- Product report grouped by product_id instead of model since that is a not a unique field
- Maintenance mode bypass for payment callback updates
- Product stock restore on order delete
- Restored the default --None-- option in the order status list (added in 1.4.8 and lost in 1.4.9)
- Improved default confirm message to be clear about the action
- Fixed Search page bookmark
- Added support for + in email addresses
- Fixed page total for filter by customer group on admin customer list
- Admin user and Customer email logins were case-sensitive
- Fixed account/invoice error when no order id is supplied
- Fixed HTTP to HTTPS in breadcrumb for account related pages
- Partial fix for & in storename and contact form

== OpenCart v1.4.9 ==

FIXES:
- Fixed additional email for loop issue causing "Please Wait" and "Error Send To Required"
- Improved featured products query to make all status checks and return all pertinent data to match latest and bestseller queries.
- If no shipping, tax zone set to buyer's payment zone instead of default store zone
- Session uses full path for session to prevent session sharing
- Removed unneeded products variable from admin order.php
- Removed error on empty language file
- admin/controller/catalog/review.php double text validation cleaned up
- Admin Order Edit now supports product options & updated grand total

ADDED:
- Feature Module uses category-style selector for products
- Extension install/uninstall hook. Now when you install/uninstall extensions, if they have their own install/uninstall functions, they will be triggered.
- Logout destroys session completely. 
- sort by model
- Cache for featured products
- Cache for categories
- Image class supports proper extension name on resize and transparency for png and gif.
- Extensions will "self-clean" if the files are deleted without uninstalling the extension first.
- Restored "Show Out Of Stock warning" option in setting
- Parent Category pages show image next to description
- Select All / Unselect All to all checkbox lists
- Postcode required option added to countries. Now postcode can be required on a per-country basis.
- Coupon code can be entered on Payment AND Confirm page, for those payments that skip the payment page
- New Paypal Improved. Itemized products, PDT support, debug messaging and more.
- Added Northern Ireland zones to UK
- FilesMatch check in htaccess to prevent viewing of tpl and ini files



== OpenCart v1.4.8b ==

- Removed old latest code from home.php
- Improved the token ignore
- currency has check before format
- tag search count fix
- added load seo for the info module
- Stock subtract bug fixed
- fixed success/error message clear on admin extension page
- fixed unlimited coupon setting fixed
- fixed extra field requirement in store edit
- Fixed download push feature
- Added if statement around welcome box to not show if empty
- Fixed some typos
- Fixed category name validation to match db length (255)
- Fixed default address option on edit address
- Fixed tax from defaulting to store tax when display prices with tax is off


== OpenCart v1.4.8 ==

FIXED:
- Coupon discount check only for flat value coupons
- Pagination in search & specials
- Worldpay not updating order
- Admin Country, Zone, & Download pagination
- Thickbox agree to terms fix on checkout payment page
- Continue button with ajax add to cart off goes to not found
- Division by zero if catalog/admin item limit set to 0 (tho it should not be possible)
- UPS error scenarios weren't showing properly
- UPS weight display at the title instead of redundantly per-rate
- UPS Test mode confusion cleared up
- USPS weight display at the title instead of redundantly per-rate
- removed "source" for ckeditor to cut down filesize
- Add $config->set('config_language', $languages[$code]['code']); to index.php
- Changed new tables for product_tags and stuff to utf8_bin
- Order Comments not included in email
- Added default invoice id & prefix to install/upgrade.sql
- Added conditional check for the admin header base path: (HTTPS_SERVER) ? HTTPS_SERVER : HTTP_SERVER;
- restore all languages in backend even if disabled
- replaced add to cart javascript: $('#add_to_cart').removeAttr('onclick'); to allow handling by other scripts.
- sort arrow images were reversed
- Perpetual Payments Test mode confusion cleared up
- Featured limit default - add (int) to limit in model to prevent error
- Specials fix for limit in sidebox
- Going to wrong page while using SEO now shows error page
- Fixed Combined Tax rate issue
- Fixed Low Order Fee order total typo for tax setting
- Fixed Sales tax issue for non-shipped products to use payment address
- Install admin email not populating the user table
- Update royal mail rates or make them editable from admin
- Fix pp standard to use the update statuses and so that curl and fsock both use the proper "else" options.
- Changed default success message "2-5 working days" to be more vague
- Reordered the children for "common/header" to appear last so that document class methods can be called from within modules.
- Fix default weight/length to default to what the setting has.
- Bestsellers wasn't updating immediately after purchase because the cache wasn't cleared on purchase



ADDED:
- Category Description Name to be longer than 32 (255)
- SEO proper "not found" redirect
- mail parameters field to mail tab (useful for adding authentication "-f" options and more)
- Full Customer Details in admin
- Manual Order Edit
- Additional checkbox for order update (Notify = send email, Update = add history)
- confirm delete added to admin delete/uninstall actions
- Longer email fields (96)
- Added product tags to bottom of product page for easy cross-referencing.
- Auto-select first radio button for shipping or payment
- increased contact form character count from 1000 to 3000
- Fixed bug in thickbox js to allow use of rel tag for prev/next additional images with main image in popup
- Show category description info even where there are no products
- add customer email to invoice under the payment address
- added order comments on invoice
- moved some inline javascript to external files (ajax add to cart now in ajax_add.js)
- moved coupon box to the payment page to allow coupons to change the possible payment options (i.e. freecheckout for 100% discount coupons)
- Comments to order invoice
- Counts for all tabs on product page
- Optional checkbox to push updated downloads to all previous customers upon new version save
- Added current download filename under the input box on admin download form
- Options -Indexes and tpl file disallow to default .htaccess file to prevent showing directory listings
- CSRF Fix for new admin user insert (captcha on user edit form)
- Additional Images & Related products count added to tab on product page by default
- Fixed LIQPAY confirm button
- Disable Reviews option
- Enhanced Order Email (HTML Admin emails)
- Guest Checkout separate addresses
- Enter key for Product filter in admin
- Telephone number on invoice
- Validation check to Product Copy (Daniels request)
- Add model to the related products in product edit
- Automatic Copyright in admin footer
- Added MetaKeywords to products and categories
- Added return on language load to allow simple array merge for language files
- Added Send Newsletter By Products Purchased
- Lots of improvements to cart sidebox (ajax delete item, all totals, view/checkout links)
- GET method for add to cart
- Add to cart button in all modules? small + button?
- Stock decrease option moved to product level
- Minimum Order Qty (per-product)
- Product "cost" field
- Add back default sort order
- Individual zone/country/postcode for products
- Cross-linked related products (relationship goes both ways now). Relating product A to B also relates B to A
- Maintenance Mode
- Multiple Email address for store email
- remove/combine the Show Out of stock. Just show it when Stock checkout is no and product is out of stock
- Add IP Address to order view
- Freecheckout integrated into core.
- Low Order Fee only applies if there is a subtotal, allowing free products to remain free
- Homepage is now modular and new "home" position for modules configurable in admin
- Additional ability to use "modularized" sideboxes on main page (3 across) by adding the module to the $this->children list.
- Free Checkout as part of the core
- Comments saved if payment checkbox not checked
- Added customer email, telephone, ip to order email to make it more complete
- Admin Token system for CSRF security
- Royal Mail rates update


== OpenCart v1.4.7 ==

FIXED:
- Coupon discount taking more than the product total. Now matches max product total
- "Total" order total module allowed negative totals if discounts exceeded total. Now stops at 0
- Several language duplicates removed
- Some city names updated in sql
- Fixed potential filemanager while loop error with readdir (Based on php.net's recommendation)
- Fixed sagepay array for FailureURL
- Fixed weight based shipping not supporting 0 cost
- Fixed document $styles and $scripts on header.tpl to properly support the correct options
- Shifted the shipping POST check to avoid reloading rate request when going to the payment page and not using quote session check
- Cleaned up field size inconsistencies with email length between the validation checks and the db
- Fixed login link to correct "&" vs "&amp;";
- Account approve not allowing logins for existing customers
- Fixed Google Sitemap xml error to correct "&" vs "&amp";
- Sort by price converting to string issue
- store_url duplication in customer approval email
- Fixed typo in customers "awating" approval function names
- Fixed typo in order model for "notifiy" in the update function
- Fixed incorrect Customers Awaiting Approval count on admin dashboard


ADDED:
- Universal Upgrade Script (supports upgrades as far back as v1.3.0)
- Category Status in admin (per-category)
- Information Status in admin (per-item)
- Country Status in admin
- Zone status in admin
- Shipping Quote Session option in admin
- Added version constant at the top of the startup.php file to allow programmatic usage
- Added page warning on pages with multi-tabs to show error at top instead of just the field errors so it is clear
- Items per page for admin rows configurable via admin
- Items per page for catalog items configurable via admin (per store)
- Show Weight on Cart page option in admin (per store)
- Latest Module
- Specials Module
- Featured Module
- Disable coupon order total will also disable coupon entry box on front end
- Persist original route if login required
- Disabling language removes requirement from need for entry in admin
- Thickbox agree terms on checkout and create
- Added Model Search checkbox on Advanced Search
- Added Popular Products model function (Order by Viewed) for future use.
- Added $product_info array to the product to make echoing additional fields easier
- Improved order data return without double processing/subset
- Added support for common base product discount pricing
- Added Improved language support. Fallback to English for missing entries to avoid fatal errors over missing language file
- Added setting language from url ...route=common/home&language=de
- Added setting currency from url ...route=common/home&currency=USD
- Added Product Tag table and added search support in tags.



