In this blog, we are going to learn how to add a new field in the product pricing tab for the product V2 page in PrestaShop.
We will add a new field MSRP (tax inc.) as you can see in the below image.
So let’s see together how to do that with PrestaShop.
Sometimes, we need to add new fields in the pricing tab so the admin can enter and save the field data.
We will get it only by changing in module main file.
Thanks to the available hooks, it’s super easy to add new fields in the form!
We will register the ‘actionProductFormBuilderModifier‘ hook in our module using the below code.
$this->registerHook( array( 'actionProductFormBuilderModifier', ) );
After registering, We will do the below code in our module main file.
public function hookActionProductFormBuilderModifier(array $params) { $msrp = 'your field value from DB'; $form_builder_modifier = new FormBuilderModifier(); $form_builder = $params['form_builder']; $pricingTabFormBuilder = $form_builder->get('pricing'); $contextLocale = Tools::getContextLocale($this->context); $form_builder_modifier->addAfter( $pricingTabFormBuilder, // the pricing tab 'retail_price', // the input/form from which to insert after/before 'msrp_price', // your field name MoneyType::class, // your field type [ 'required' => false, 'attr' => [ 'placeholder' => 'MSRP (tax inc.)', 'data-display-price-precision' => CommonAbstractType::PRESTASHOP_DECIMALS, 'data-price-specification' => json_encode($contextLocale->getPriceSpecification($this->context->currency->iso_code)->toArray()), ], 'row_attr' => [ 'class' => 'retail-price-tax-excluded', ], 'currency' => $this->context->currency->iso_code, 'constraints' => [ new NotBlank(), new Type(['type' => 'float']), new PositiveOrZero(), ], 'default_empty_data' => 0.0, 'modify_all_shops' => true, 'label' => 'MSRP (tax inc.)', // you can remove the label if you dont need it by passing 'label' => false // 'label_attr' => [ // customize label with any HTML attribute // 'title' => 'h2', // 'class' => 'text-info', // ], // this is just an example, but in real case scenario, you could have some data provider class to handle more complex cases 'data' => $msrp, 'empty_data' => '', 'form_theme' => '@PrestaShop/Admin/TwigTemplateForm/prestashop_ui_kit_base.html.twig', ] ); }
In the above code, we have used the FormBuilderModifier class to add a new column in the pricing tab form builder.
That’s all about this blog. Hope it will help you.
If you are facing any issues or doubts in the above process, please feel free to contact us through the comment section.
We would be happy to help.
Also, you can explore our PrestaShop Development Services & a large range of quality PrestaShop Modules.
For any doubt contact us at [email protected].
Be the first to comment.