195

Here is what I usually do: Always develop with error_reporting on. Always develop with isDeveloperMode set to true. Just add SetEnv MAGE_IS_DEVELOPER_MODE 1 to your httpd.conf file (or corresponding file for Nginx or something else) If the extension is linked to a core functionality add the dependency in the declaration file <depends><Mage_Catalog /...


55

SUPEE-6788 released and admin routing changes turned off by default. This means that the patch include the fix, but that it will be disabled when installed. This will give you some additional time to make updates to your code and will give merchants flexibility to turn on this part of the patch once their extensions and customizations have been updated to ...


51

I use "CENTOS PHP 5.4.43 cURL 7.19.7" In downloader/lib/Mage/HTTP/Client/Curl.php, try changing: $this->curlOption(CURLOPT_SSL_CIPHER_LIST, 'TLSv1'); to $this->curlOption(CURLOPT_SSLVERSION, CURL_SSLVERSION_TLSv1);


33

I am a big fan of using modman so that I can develop and source control just my extension and leave the core files and folder structure unchanged. It is also makes testing across different installations run smoother. Oh and one massive tip always try to install your packaged extension locally on a clean install of magento before uploading it to Magento ...


33

After an hour going through the report I came up with the following list, it could be helpful for everyone I think. I will try to keep it updated as soon as I find more warnings/errors: Warnings Line exceeds 80 characters; contains X characters Or Line exceeds maximum limit of 100 characters; contains X characters Those one are the one I've seen ...


27

Prepare yourself, this is going to be a long one. Here goes. You will need the following files: app/code/local/[Namespace]/[Module]/Block/Adminhtml/[Entity]/Edit/Tab/Categories.php - the tab that will render the categories. <?php class [Namespace]_[Module]_Block_Adminhtml_[Entity]_Edit_Tab_Categories extends ...


26

Below are the few things I found which can help to reduce rejection and pass EQP process. Module Checks: Keep Your vendor name same as Vendor Name of your Marketplace account Create your extension with developer mode enabled Must have composer.json in root folder of extension Eg. app/code/Vendor/Module/composer.json" with correct configurations and ...


24

Andreas von Studnitz and Dr. Nikolai Krambrock gave a good presentation on code quality on the Meet Magento DE 2014. They distinguish between general code quality and Magento-specific code quality. In short, there are the following general rules: The use of structure elements - just like classes and methods - should be arranged in middle seizes classes. ...


21

Along the lines of other comments about detecting conflicts, we at ParadoxLabs have created a script to track down everything affected by APPSEC-1034 (admin controllers) and APPSEC-1057 (whitelist). It will also attempt to fix any bad controllers, since that's a fairly precise and invasive change to make. It doesn't cover APPSEC-1063 (SQL injection) or ...


19

If you sell your extension or share it with others, think about writing code that is human readable. don't make method too complex add DOC blocks to your methods * use proper variable names, like $productIds instead of $ids same for methods, public function myOnProductSaveMethod() {...} says ... nothing , but tryDisableInternetOnProductSave() will give a ...


18

As requested on Twitter and discussed on Meta I'll start here a debugging tutorial for non-devs. First I think (even thou magento tries to engage this) Magento is too complex for a merchant without developer/development team. But if you are brave and want to try it, we are giving our best here to help you. I think for some questions is the border between "...


18

You are using the incorrect setup class. Mage_Eav_Model_Entity_Setup has never had access to catalog-specific properties, which reside in the additional table (catalog_eav_attribute). You either need to register catalog/setup as your module's setup resource or (more likely) instantiate it directly in your setup script: $installer = Mage::getResourceModel('...


18

To run your extension again you need to remove your extension entry from setup_module table also remove your table which are created by your extension script then run below command php bin/magento setup:upgrade Thanks


17

Extensions are simply packed modules. In other words, you extend the features and functionality of Magento by writing a module. Then you have a choice to leave it as it is or pack it up (System > Magento Connect > Package Extensions). An extension (a packed module) is then published on magento connect


17

You could inject Magento\Framework\Module\ModuleListInterface in to your module helper class and then have a helper function to get it. Something like; <?php namespace [Vendor]\[ModuleName]\Helper; use Magento\Framework\App\Helper\Context; use Magento\Framework\Module\ModuleListInterface; class Data extends AbstractHelper { const MODULE_NAME = '...


16

First of all I want to say that this is an ugly way of doing things. Most probably the ugliest. If you didn't want to add the company name in here I will. It's interiorwebdesign.com. Most probably the things sent to their server are the magento version, the extension version and the url of your website. You can check for sure by doing base64_decode on the ...


16

As @Cags said, this is not (easily) possible because the ACL tree is loaded when the session is initialized (AKA when the admin logs in). A possible workaround would be to override the _isSectionAllowed method in system configuration controller: (Mage_Adminhtml_System_ConfigController::_isSectionAllowed) and make it reload the ACL tree. Something like: ...


14

Add this code in your custom theme or module in default.xml: app/design/frontend/Namespace/Themename/Magento_Theme/layout/default.xml <referenceContainer name="after.body.start"> <block class="Magento\Framework\View\Element\Template" name="custom.file" before="-" template="Magento_Theme::html/custom.phtml" ...


13

Yes, it's possible. you need to add an attribute for your main entity that has a custom source model. Let's say your entities are called Article and Author and you want the Article entity to have as attribute and Author so when you add/edit and article you can select from a dropdown one of all the authors. You need to add this in the setup class (...


13

I wish everyone will make up their minds and use the same term. Now we have extension, module, bundle, plugin and maybe others and it's getting silly. Basically a module is an extension. The only difference might be that what's in the core may not be considered extensions, but they are modules. So Mage_Catalog is a module but not an extension. Something_Else ...


13

Module is the technical term for anything you define in app/etc/modules Extension is the marketing term for published1 community modules (or generally any code that extends Magento functionality and is not a theme) Extensions usually consist of one or more modules. The ebizmarts MageMonkey extension for example comes with four actual modules that are ...


13

I assume you mean IWD OPC? If not you can ignore this answer. The checkout extension ships without translations. It should be fairly easy to generate those. First, you need to create i18n directory inside the module so the structure is <mage_dir>/app/code/Vendor/Opc/i18n Then generate the dictionary with magento shell tool; from : php bin/magento ...


12

I am an extension provider working with Enterprise, and wanted to share some of the reasons that are behind the decision to charge more for an Enterprise version extension. To be able to officially offer Enterprise version extensions on Magento Connect (and to access the testing versions), you need to be a Magento partner. This incurs a yearly fee with an ...


12

TL;DR; Software pricing is complicated, the answer to your question is all of the above. While Magento Community edition and Magento Enterprise Edition are very similar, there are differences in the two platforms. Does the extension work with EE's full page caching? I ran into an EE bug with Commerce Bug (the Magento debugging extension my business sells) ...


12

It took me way to long to realize that Tier prices looks the way I want. So after looking into how Magento does it with Tier pricing I ended up doing the following. Sorry in advance for the huge blocks of code but I thought it might be interesting for future reference. In my form class Redkiwi_Rkstorelocator_Block_Adminhtml_Rkstorelocator_Edit_Tab_General ...


11

A subjective question really requires a subjective answer. I'm not sure that this question will remain open; but I'll bite: In my experience with two VERY LARGE Magento module developers, the main reasons were the following technical/dev challenges: Full page cache hole-punching Customer persistence Customer segmentation Admin logging Order archival (...


11

check "maintance.flag" file is present in root folder. If yes delete that file and refresh again. refer this Link


11

Using Codesniffer with the MEQP1 or MEQP2 ruleset (depending on your version of Magento) will give you an idea about the Magento ruleset: https://github.com/magento/marketplace-eqp/tree/master/ This ruleset and the one running on Marketplace's submit process are NOT always perfectly in synch (though of course, that's the ideal), so you might get rejected ...


10

I have suggest simple solution. I think you want the link at product detail page. when some user click on the Download PDF Button then it will generate the PDF of that product only. For that you have to create one Helper Class. Suppose your Namespace will be Test and Module name will be Generatepdf. Step 1: Create the module Configuration file in \app\etc\...


10

Remove the record from the core_resource table where code matches your extension name. Clear the cache when you are done. Then just refresh any page.


Only top voted, non community-wiki answers of a minimum length are eligible