Hi all,
I am very new in Magento and from last few days I am trying to figure out how to add a Custom text field in the frontend for configurable product. I tried to do that but text-field text area is not showing up in the configurable product list of attributes. I can add drop down only.
I am looking for something that for example a customer want to buy a t-shirt and the text inside the t-shirt will be configurable from frontend product view page.
For example : custom text cost $5. There will be a checkbox in the product view page. When the customer click on it a text box will appear where he can add his text for the t-shirt. The $5 will automatically add with the checkout price.
I hope I am able to make you understand what I am trying to do. But, search a lot to figure it out but failed.
Thanks
Hi,
Please mention which version Magento you use?
The below solution is for Magento 1.x
I will mention two files which is use for configure product.
1. app/design/frontend/base/default/template/catalog/product/view/type/options/configurable.phtml
Here is define configure product drop box.
2. app/design/frontend/base/default/template/catalog/product/view.phtml
view.phtml is main view page which is include all type of product, price, image etc...
You have to include your code according to your requirement.
If this post is fulfill your solution then please mark as accept.
Thanks,
Dibyajyoti
Hello Man_in_Black,
Check out this example it might help you
Create a file as Mypackage/Mymodule/Setup/InstallData.php and aa the following code then
run setup upgrade and re-compile and clear cache.
<?php /** * Copyright © 2015 Ipragmatech. All rights reserved. */ namespace Mypackage\Mymodule\Setup; use Magento\Eav\Setup\EavSetup; use Magento\Eav\Setup\EavSetupFactory; use Magento\Framework\Setup\InstallDataInterface; use Magento\Framework\Setup\ModuleContextInterface; use Magento\Framework\Setup\ModuleDataSetupInterface; class InstallData implements InstallDataInterface { /** * Customer setup factory * * @var \Magento\Customer\Setup\CustomerSetupFactory */ private $_eavSetupFactory; /** * Init * * @param \Magento\Customer\Setup\CustomerSetupFactory * $customerSetupFactory */ public function __construct( \Magento\Eav\Setup\EavSetupFactory $eavSetupFactory ) { $this->_eavSetupFactory = $eavSetupFactory; } /** * Installs DB schema for a module * * @param ModuleDataSetupInterface $setup * @param ModuleContextInterface $context * @return void */ public function install( ModuleDataSetupInterface $setup, ModuleContextInterface $context ) { /** @var EavSetup $eavSetup */ $eavSetup = $this->_eavSetupFactory->create([ 'setup' => $setup ]); /** @noinspection PhpUnnecessaryFullyQualifiedNameInspection */ $eavSetup->addAttribute(\Magento\Catalog\Model\Product::ENTITY, 'is_feature', [ 'group' => 'Product Details', 'type' => 'int', 'backend' => '', 'frontend' => '', 'label' => 'Is Feature', 'input' => 'select', 'source' => 'Magento\Eav\Model\Entity\Attribute\Source\Boolean', 'visible' => true, 'default' => '0', 'frontend' => '', 'unique' => false, 'note' => '', 'required' => false, 'sort_order' => '', 'global' => \Magento\Eav\Model\Entity\Attribute\ ScopedAttributeInterface::SCOPE_GLOBAL, 'used_in_product_listing' => true, 'visible_on_front' => true ]); } }
Hi,
This can easily be solved using native Magento functionality. No code changes is required as suggested with above posts.
You can add 'Custom Options' to a product (both configurable and simple). Look for 'Custom Options' or 'Customizable Options' when editing the product. You can then add free text field or area, and also choose to set a fee for it if you like.
Hope that helps - let me know if you want me to add some screenshots.
Hi,
This works!!! BUT
Can I make this for all products? (of my selected products?) Can I do this in a attributeset??
Thnx for the reply in advance
Dear Manish,
This php code reports some errors in lines 47 - 53 and 71 on dreamweaver.
Can you please check and revert? also how do we execute this file?
Please kindly inform if this file allows us to add custom text field as a configurable attribute like drop-down input type in a configurable product.
Regards,
Tolga