Name-tag-admin-1000
So here’s a little snippet which lets you Add Magento admin programatically. This comes in VERY handy if your client doesn’t give you the admin login to their website (in time). I’m impatient and don’t want to have to go through the hassle of sending mails which will get bounced around a few people before reaching the appropriate person who can give me an account.

This was stolen from some other place on the web, who probably stole it from somewhere else again 🙂

So there’s basically two ways to instantiate a Magento block. The one that should work everywhere is:

And then there’s the one which you can use in a controller which extends, for example, Mage_Core_Controller_Front_Action

Turns out there is a slight undocumented change in the latest PATCH SUPEE-6788 which caused problems for almost all of our Magento clients: the password reset link that got mailed to customers directed them to a page with no form to actually reset the password.

Turns out a change was made to customer.xml which causes this if you have copied over customer.xml to your own store views. customer_account_resetpassword was renamed to customer_account_changeforgotten and the block type was also changed.

The exact changed are outlined here:

customer_account_changeforgotten

A client mentioned that he kept having to reindex the Product Flat Data but the notification in the admin section never went away. While trying to reindex from command line I was greeted with the following error:

Turns out this problem was caused by products which were deleted but still existed in the product flat data table.
To find these products you can run this query:

In this case it was nearly 80 products! To fix it you can just delete them with this query:

So we stumbled onto this problem with a new customer who was using a module called Techtwo_Mailplus. When trying to make a rest connection HHVM would cause the following exception to be thrown: Invalid chunk size “” unable to read chunked body. This did not happen with their old server which ran bog standard PHP DSO. Now, I was not looking forward to debugging it because it’s a complex module and the error eventually ended up in Zend_Rest_Client after tracing it through 4 other files and multiple functions in those files. However, I stumbled onto this post which gave me the solution: http://framework.zend.com/issues/browse/ZF-741

To fix the Techtwo_Mailplus module I edited app/code/community/Techtwo/Mailplus/Helper/Rest.php and around line 160 you will find:

This is the spot where you can add the fix from the Zend post. So just add it to the end of this part so it looks like this:

I don’t have time to figure out exactly why this happening but forcing HTTP version 1.0 seems to “walk a different path” in Zend Framework and doesn’t hit the part that causes the error.

During an import I managed to get the order wrong of the selectable attributes of some Magento Configurable products. So I had to change the sort order of the Magento configurable attributes. It took me a little while to figure out how to fix this but it as pretty easy actually. You can find the function below which will loop over all configurables and set a new position value if there are more than 1 attributes. It does not seem to matter if position is greater than the amount of attributes or if it skips a number.

I saw this error today while updating a shop to Magento 1.9.1.0 while trying to re-index from the commandline using the indexer.php, turns out it was as easy to solve as just flushing the cache. In our case a redis-cli flushall but always make sure Magento didn’t spontaniously create a var/cache dir or even a dir in /tmp/, it likes to do that if your config is not rock solid.

4449_CE191BlogGraphic_r1v1

Another version of Magento (1.9.1.0) was released and this one promises some welcome fixes!

As always here’s a download link off my VPS which should be faster than the official download location:
https://robotsystematic.com//magento/magento-1.9.1.0.tar.gz
md5sum: 79ca01aa9736a402e68ec34361222b96 magento-1.9.1.0.tar.gz

The full release notes can be found here:
http://www.magentocommerce.com/knowledge-base/entry/ce19-later-release-notes

The most notable changes/fixes for me are:

  • Magento Community Edition 1.9.1 works with MySQL 5.6 and PHP 5.5
  • Improved product save performance with a large number of rule-based product relations.
  • Catalog price rule expiration dates are observed.
  • Improved indexing performance.
  • The Update on Save option works properly (reindexing is not required).

After importing lots of data into Magento I had problems reindexing. I had no experience with fixing indexing errors Magento before and digging through the EAV structure in MySQL is not something you look forward to. Turns out there was a pretty easy fix for this which basically makes sure that all the tables are actually linking to an existing product. If there is a link to a product that doesn’t exist (anymore) for some reason you can expect to see errors like:

It’s as easy as running the following SQL commands:

Original post where I found this:
http://stackoverflow.com/questions/8111889/cant-re-index-new-products-after-upgrading-to-version-1-6/19837851#19837851