Posting in the Magento forums has been disabled pending the implementation of a new and improved forum solution which should better serve the community.

For new questions please post at magento.stackexchange.com, the community-run support site for the Magento community. We will be providing updates on the new forum solution soon. For questions or concerns please email community@magento.com.

Magento Forum

The freakin’ fields should not be empty! Oh my God! It’s not empty! 
 
marionnex
Member
 
Total Posts:  38
Joined:  2012-03-30
 

Hello Magento Experts,

Firstly, I would like to tell the reason why I am getting this error.
I have an existing 1.4.0.1 Magento installation with 7K items, 5K customers and 1K orders.

I have backed up my database and have exported it with size 2.95GB.
This existing 1.4.0.1 installation had a different setup with a usual installation.
Files and database are hosted separately.

Then, I have installed Magento 1.7.0.2 on another server. This is the third server which I use for testings.

Once installed, I created another database and uploaded the database from the 1.4.0.1 installation.
I did not touch anything from the app/etc/local.xml

Now, I have copied the tables from the old database to the new installation. I copied the:
customer tables, eav tables, product tables and catalog table, basically, all tables except core_config

Everythinig seem to be ok.
From the frontend, I can see the products, I can login using the current credentials, I can login as admin at the backend etc..
Everything is ok except for 2.

1.) From the backend, I can open the customer grid view but cannot edit any.
This is the error I see.
“Fatal error: Call to a member function setRenderer() on a non-object in /home/jadenbel/public_html/app/code/core/Mage/Adminhtml/Block/Customer/Edit/Tab/Account.php on line 77”

I know that its not a php file that im missing nor a string nor something to be added on the files. I know this is a database issue.
Why? Because this whole topic I am writing now is my second try for transferring this 1.4.0.1 database to work for 1.7 installation. On my first try, it was working. I can edit customers from the backend. Its just that I don’t know what table or column I added.

2.) On the frontend, I can login, I can view my dashboard as a customer. I can order, I can re-order, etc.
The problem is, I cannot register as a new customer. Whenever I fill out the new customer fields like:
First name, Last name, email address password, I get this error upon submitting:
First Name cannot be empty
Last Name cannot be empty
Invalid email address “”.

This happens as well with the registration during checkout.

Basically, its like putting something on the fields but magento is saying theres nothing entered.

I hope I was able to explain my problem very well.
Thank you..

Please help… This issue is running on my head for 5 days now.

 
Magento Community Magento Community
Magento Community
Magento Community
 
shappyking
Jr. Member
 
Total Posts:  6
Joined:  2012-12-12
 

Did you ever resolve this issue? as i am having the same problem.

 
Magento Community Magento Community
Magento Community
Magento Community
 
marionnex
Member
 
Total Posts:  38
Joined:  2012-03-30
 
shappyking - 30 May 2013 12:53 PM

Did you ever resolve this issue? as i am having the same problem.

Hello, fortunately yes yet unfortunately I came up with other problems which are minimal. Just simple problems.
I do apologize but I cannot state every step I took but these links might help you. You might need to go back end fort and jump back from first link to another to complete it. Its really complicated but it’s worth it. I really hope these can help you.

www.magentocommerce.com/wiki/1_-_installation_and_configuration/upgrading_magento
http://turnkeye.com/blog/magento-upgrade-guide/
http://www.magentocommerce.com/wiki/1_-_installation_and_configuration/magento_1.5_to_1.6_upgrade
http://www.magentocommerce.com/boards/v/viewthread/288285/#t399579
http://www.magentocommerce.com/magento-connect/vinai/extension/489/customer-activation

These links were my cheat links when I was still doing the site.
One thing I remember, From current version, I have followed 2nd link and upgraded to 1.5 through shell ssh.
After upgrading to 1.5, I upgraded to 1.6 through magento connect manager to 1.6.
Then slowly upgraded to 1.7 through magento connect manager and shell.

I really hope these helps…
The only thing that this certain problem occurs is when upgrading a magento installation.

 
Magento Community Magento Community
Magento Community
Magento Community
 
shappyking
Jr. Member
 
Total Posts:  6
Joined:  2012-12-12
 

Hello, thanks for your quick response, i see you sent me instructions on upgrading, i have actually already upgraded from 1.4.0.1 to 1.7.0.2 but i am getting these errors as you have mentioned

1.) From the backend, I can open the customer grid view but cannot edit any.
This is the error I see.
“Fatal error: Call to a member function setRenderer() on a non-object in /home/jadenbel/public_html/app/code/core/Mage/Adminhtml/Block/Customer/Edit/Tab/Account.php on line 77”

I know that its not a php file that im missing nor a string nor something to be added on the files. I know this is a database issue.
Why? Because this whole topic I am writing now is my second try for transferring this 1.4.0.1 database to work for 1.7 installation. On my first try, it was working. I can edit customers from the backend. Its just that I don’t know what table or column I added.

2.) On the frontend, I can login, I can view my dashboard as a customer. I can order, I can re-order, etc.
The problem is, I cannot register as a new customer. Whenever I fill out the new customer fields like:
First name, Last name, email address password, I get this error upon submitting:
First Name cannot be empty
Last Name cannot be empty
Invalid email address “”.

 
Magento Community Magento Community
Magento Community
Magento Community
 
marionnex
Member
 
Total Posts:  38
Joined:  2012-03-30
 

Hello,

I really didn’t have any turnaround for this. Not even a single clue what or which is causing but I’m certain that it is a database issue.
You might want to recheck, compare and the eav’s and attribute tables between your 1.4 and your new 1.7.

Some missing rows or entries.
I am not really sure that’s why I made a different approach when I upgraded.
My last resort was to re-upgrade which takes almost 2 hours for every upgrade.

Now, everything seem to work.
I just can’t point out how I did it.
Overall, I might have accidentally followed the correct way of upgrading my magento.

If I will be given a task to do the same thing, I’m afraid I can’t re-do it as and fail.

 
Magento Community Magento Community
Magento Community
Magento Community
 
ApproachGaret
Jr. Member
 
Total Posts:  8
Joined:  2014-04-11
 

I decided to partially create a new database and basically move the updated tables back over to the original.

I looked around everywhere but could not find a direct solution. I have 5000+ products deeply categorized and needed to preserve my old database.  This solution may have the side effect of needing to research the wishlist and customer logs for some, but this was not a problem for us. Posting on here since I had so much trouble finding any solution at all to this issue.

In regard to the error generated by a non-object calling SetRenderer() in ‘ Account.php on line 77 ‘ when editing/adding new customer accounts in the backend. This also fixed the issue of customers not being able to login and not being able to register with the form errors:

First Name cannot be empty 
Last Name cannot be empty 
Invalid email address

The issue only presents itself on sites which have performed an upgrade from one Magento version to another. I went clear from 1.3.1 to 1.9.0 and, in theory, this should work for anyone in between.

How to solve:

--Step 1: Create a temporary Magento installation at the same version you upgraded to--
Create a blank Magento install with a separate, empty database. Use the installer for the same version which you upgraded to causing the break. If you want to upgrade further, just continue updates until your main store is at the desired version before doing this.

During the installation copy the encryption key from your main store and give it to the installer.
(I think it is in app/etc/local.xml if you have lost it. Should be in the <crypt></crypt> tag)

In the **fresh installation**, be sure to use the same table prefix as you use in the upgraded installation.

--Step 2: Export your customers--
Go to the Magento admin dashboard in your **broken installation**.
In the menu, go to: System >> Import/Export >> Dataflow - Profiles

Choose the built-in profile ‘Export Customers’.
Choose Run Profile and follow the form buttons to start exporting customers.

--Step 3: Migrate the exported customer file to new install--
FTP, SSH or use a File Manager to get into the Magneto directory for your **broken installation**
From there, navigate to /var/export/export_customers.csv and download this file

Similarly, logout and FTP, SSH or use a File Manager to get into the Magento directory for your newly made **fresh installation**.
Navigate to /var and create a new directory called ‘import’. This is used by the system but does not exist by default.

Upload the export_customers.csv file into this directory. Alternatively you may do this through the backend in the next step.

--Step 4: Import your customers--
Now login to the admin dashboard of your new **fresh installation**.
As before, in the menu, go to: System >> Import/Export >> Dataflow - Profiles

Select ‘Import Customers’
Note: If you chose upload through the backend, you must make sure the file is uploaded before it will appear in the dropdown.
Select ‘Upload File’ on the left and browse to your export_customers.csv file. Now choose ‘’Save and Continue Edit’ to upload them

On the left choose ‘Run Profile’, if you uploaded the file already to /var/import you should see it in a dropdown list here.
After selecting this file, follow the form button(s) to run the importer.

--Step 5: Verify and Backup Customers--
Check to see that the import ran successfully and you have the same number of customers imported as you expected from your main site.

Using a tool such as HeidiSQL, MySQL Workbench, phpMyAdmin, Adminer or mysqldump via SSH - login to manage both of your databases.

Determine all tables which have the word ‘customer’ in them and export these tables for each database.
For instance, I ended up with two files databasename_main_customers.sql and databasename_temp_customers.sql

I don’t want to clutter the steps too much with info on using these. However, using HeidiSQL all I had to do was select the database I wanted, right click it, choose ‘Export Database as SQL’ and add a check to each table with customers in the name.  In phpMyAdmin select your database and choose the Export tab, there will be a select box where you can you control + click to select the customer tables.

I have attached an image of all the tables which I backed up for version 1.9.0
click here for image sorry i can’t seem to find the shortcode for this.

--Step 6: Drop customer tables--
In the **broken installation** only, your main site: drop all the same tables you just made a backup for. (anything with ‘customer’)

For phpMyAdmin, choose your main site’s database and you’ll see a big list. Check off each of these tables and at the bottom you’ll see a dropdown saying ‘With Selected’. Choose drop.

For phpMyAdmin, you probably have to select ‘Disable Foreign Key check’ on the page that comes up next; probably something similar for other tools. I did mine in HeidiSQL and did not have to do this, but it is common.

In either case, make sure those tables are fully dropped, not emptied, from your main store’s database.

--Step 7: Recreate the tables--
Stay or get logged in to you **broken installation’s database** (your main store). Select the appropriate database in whichever tool you use. Find either an import option or anywhere you may run a SQL script from a file.
- Plain MySQL: log in through SSH, use the mysql command, use your database and type ‘source myfile.sql’
- phpMyAdmin: select your main database, choose the ‘Import’ tab or possibly just go to the SQL tab and copy/paste.
- HeidiSQL: select your main database, go to File >> Load SQL file…

Whichever method you use, locate the SQL backup you generated from your **temporary installation’s database**. As mentioned, I named mine ‘databasename_temp_customers.sql’. Select this file and run the SQL.

This will regenerate all the tables you dropped from your main installation, using the corrected data and schema from the temporary installation.

--Step 8: Verify and Test--
Once that has completed, log back into your **main installation’s** admin dashboard. For good measure, you should probably clear all your caches. I re-indexed everything as well, but I don’t think that it was necessary.

Go to Customers >> Manage Customers from the menu. Check that you are now able to select a customer and edit their profile, etc,.. properly. Try to add a new customer from the backend and/or save and revert changes to make sure values are updating correctly.

Go to yoursite.com/customer/account/create/ - Try to register as a new customer and ensure that everything works here.
Go to yoursite.com/customer/account/login/ - Try to login as a registered customer and again ensure that everything works here.

Hopefully by this point, everything should be going smoothly!

--Step 9: Cleanup and Caveats--

Now you can delete your entire **temporary installation’s** database and all of it’s files and directory structure. You’re good to go.

Depending on some factors, this may or may not change some customer ids - I am not entirely sure about that. So -be sure- you made backups of your tables, you might have to deploy them to a temporary database and query them in order to match account names to their old ids. This would allow you to update some tables to reflect their new ids, such as wishlists etc.

Our IDs did not change. It could be that Magento’s export included all the needed information or it could be simply because all the accounts in our database were serialized nicely. Either way you will now have all your customers and their accounts back in business.

To query this, I suggest to perform a join on the backup of your temporary store’s _customer_entity table with the fields from the backup of your main store’s *old* _customer_entity table.

Using `email`, `store_id`, `website_id` and `group_id` you can match unique accounts across both versions and per `entity_id` as for instance join the `entity_id` from the old table to the backup of the temporary install as `old_id`. then you run through your main database and update anywhere there’s a customer entity reference with

`entity_idIN (SELECT `old_idFROM (your_join_statement) )
and update the reference from `old_id` to `entity_id`.

Again, we didn’t have to go through that trouble - so hopefully you wont either.

Cheers! -Garet

Hi, I tried the solution listed here a earlier but it did not work for me.

I’ve posted a potential solution, though it could be somewhat furthered to update wishlists, here on this post.

Thanks, -Garet
email me or find me at approach.im

 
Magento Community Magento Community
Magento Community
Magento Community
Magento Community
Magento Community
Back to top