1

Hey everyone I know the title is vague so I will clarify here.

I have code that updates Customer attributes and Product attributes. Unfortunately you guys are all going to frown upon me because I run all these updates programmatically on the front-end pages... that's right! the phtml... My reasoning behind it was that users have to select certain drop downs to update their own attributes and product attributes so I kept everything together.

If I wanted to write code that effects ALL Products or Customers such as adding an attribute where would you suggest writing it? I know HOW to do it I just want to know WHERE you would place it, not necessarily the best place just where you do and why?

Sorry if you don't like how my question is formatted! I'll make sure to up-vote helpful tips and tricks ^^

I'm pretty sure I shouldn't write in any of the
app/code/core files
Possibly create a file in local and make custom modules?

  • Look into setup resources. Alan Storm has a good article about them. – Robbie Averill Jun 3 '16 at 21:47
  • I already read his article but if possible I want to avoid MYSQL queries – CodingMageSheen Jun 3 '16 at 21:54
  • I don't blame you, it's bad practice to use SQL queries anywhere in magento code – Robbie Averill Jun 3 '16 at 22:14
  • Direct raw SQL queries are definitely not the way to go. Sql queries using install scripts are not an issue. If you need them linked to an entity then always put them in the resource model and never somewhere else. And use the Magento native methods and never direct raw sql – Raphael at Digital Pianism Jun 3 '16 at 22:20
1

Two options:

If you want to run it only one time

  • sql script if it is database changing code
  • data script if it is a content changing script

If it runs more often than once

cronjob

| improve this answer | |
  • Do most people create new modules from scratch or touch on already existing ones? I'm only going to run it one time to give customers this new attribute – CodingMageSheen Jun 6 '16 at 18:22
  • ALWAYS create your own module NEVER touch other modules. If you do you are not able to update them ever again (as in: take the pain now, not later) – Fabian Blechschmidt Jun 6 '16 at 18:51
  • Alright I upvoted your answer thank you! If possible do you know of any good examples of code I can look over? By sql/data scripts am I running actual SQL code somewhere in my custom module? – CodingMageSheen Jun 6 '16 at 18:55
  • Inchoo is a great resource for such things: inchoo.net/magento/… – Fabian Blechschmidt Jun 7 '16 at 10:22

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.