<?xml version="1.0"?>
<rss version="2.0"><channel><title>Addons, modules and themes developers Latest Topics</title><link>https://forum.prestashop.com/forum/9-addons-modules-and-themes-developers/</link><description>Addons, modules and themes developers Latest Topics</description><language>en</language><item><title>PrestaShop Module Devtool : LOTR Command</title><link>https://forum.prestashop.com/topic/1106290-prestashop-module-devtool-lotr-command/</link><description><![CDATA[<p>
	Package composer à installer : <a href="https://packagist.org/packages/websenso/prestashop-module-devtools" rel="external nofollow">https://packagist.org/packages/websenso/prestashop-module-devtools</a><br />
	<br />
	Je suis fier de vous présenter LOTR Command, le nouvel outil ultime pour les développeurs de modules PrestaShop — conçu pour tester et corriger le code source afin de satisfaire au mieux les exigences du <a href="https://validator.prestashop.com/" rel="external nofollow">Validateur de modules PrestaShop.</a>
</p>

<p>
	Compatible PrestaShop 8.x &amp; 9.x, il exécute en une seule commande un pipeline qualité complet : AutoIndex, Header Stamp, PS Version Checker, PHPStan, PHP-CS-Fixer et un validateur maison basé sur les règles de Validator. Il prend également en charge le mode --dry-run, la génération de ZIP de release et la soumission directe à la validation en ligne pour fixer les dernières alertes manuellement.
</p>

<p>
	Le projet est encore en cours de développement — certains contrôles du validateur maison ne reflètent pas encore parfaitement les résultats du Validateur, mais l'outil représente déjà un gain de temps considérable. Contributions et retours bienvenus !
</p>

<p>
	<br />
	<br />
	<strong>ENGLISH</strong>
</p>

<p>
	I'm proud to introduce the new ultimate PrestaShop Module Developer Tool — LOTR Command — designed to test and fix module source code to best fit the PrestaShop Online Module Validator standards.
</p>

<p>
	Compatible with PrestaShop 8.x &amp; 9.x, it runs a full quality pipeline in one command: AutoIndex, Header Stamp, PS Version Checker, PHPStan, PHP-CS-Fixer, and a homemade validator. It also supports --dry-run preview, release ZIP generation, and direct online validation submission to manually fix the remaining alerts
</p>

<p>
	This is still a work in progress — some homemade validator checks may not yet perfectly mirror validator.prestashop.com results, but it's already a massive time-saver. Contributions and feedback are welcome!
</p>
]]></description><guid isPermaLink="false">1106290</guid><pubDate>Tue, 24 Mar 2026 07:52:25 +0000</pubDate></item><item><title>[Seek advice] New theme using Hummingbird ?</title><link>https://forum.prestashop.com/topic/1106239-seek-advice-new-theme-using-hummingbird/</link><description><![CDATA[<p>
	For a friend, I am about to migrate a site from Prestashop 1.7 to 9, with its custom theme (based on classic).
</p>

<p>
	I read about the upcoming 9.1 and the new Hummingbird theme, now in RC1.
</p>

<p>
	The database / functional migration was rather smooth, but about the theme I wonder whether to wait for the 2.0 release or start right away using Hummingbird 1.0.1.
</p>

<p>
	Can anyone shed some light on their experience in terms of release reliability for these themes and whether 1.0.1 should be consider "stable"/(er) ?<br />
	By the sound of it, it seems 2.Hummingbird 2.0 is basically a rewrite, which scares me because 1.0.1 was only released ~ Sept. 2025, a mere 7 months ago.
</p>

<p>
	<br />
	I am aware that a new release (of anything) has its associated risks, but perhaps I can tap on existing / specific experience here.
</p>
]]></description><guid isPermaLink="false">1106239</guid><pubDate>Fri, 20 Mar 2026 17:11:05 +0000</pubDate></item><item><title>[solved] In order details, numerical amount of product is in &#x20AC; while the order totals and the currency sign displayed every where is another currency</title><link>https://forum.prestashop.com/topic/1106177-solved-in-order-details-numerical-amount-of-product-is-in-%E2%82%AC-while-the-order-totals-and-the-currency-sign-displayed-every-where-is-another-currency/</link><description><![CDATA[<p>
	We develop a payment module that do most payments in €.
</p>

<p>
	We got notified by a customer that when the order is in another currency (like US$), in the order details, the numerical amount in the product lines is in € while the order totals and the currency sign displayed every where (including next to the product amount) is another currency.
</p>

<p>
	More importantly, the same happens on the invoice.
</p>

<p>
	See attached image, the product cost 22.94€, this is his base price is the shop base/default currency, or 25.24$ when the frontend is set to US$ (here with a fixed and fake conversion of 1.1).
</p>

<p>
	<strong>I could reproduce it easily</strong> on v9.0, but the customer is on v8.2 and apparently this could also happen in v1.7.  
</p>

<p>
	See topic below that also describe the issue and a solution on v1.7 I cannot use, as a module developer.
</p>
<iframe allowfullscreen="" data-embedauthorid="581206" data-embedcontent="" data-embedid="embed4673756862" style="height:217px;max-width:502px;" data-embed-src="https://forum.prestashop.com/topic/1102354-wrong-product-prices-in-order-details-when-using-multiple-currencies-prestashop-176x-solution/?do=embed"></iframe>

<p>
	 
</p>

<p>
	The amount displayed in the product line is the one in the order_detail DB table.
</p>

<p>
	The customer that notified us says that it happens with our module but not other modules, and I do imagine this is not a general Prestashop bug.
</p>

<p>
	Our module transform the cart into an order in a module front controller like so <span>:</span>
</p>

<pre class="ipsCode prettyprint lang-html prettyprinted"><span class="pln">$this-&gt;module-&gt;validateOrder(
    $cart-&gt;id,
    Configuration::get($status),
    $response_amount,
    $payment_method,
    null,
    ['transaction_id' =&gt; $transaction-&gt;getOrderRef()],
    $response_currency,
    true,
    $customer-&gt;secure_key
);
	</span></pre>

<p>
	The $response_currency here is correct, and I already looked deep into `validateOrder()` and related methods, the currency is the correct one everywhere I looked.
</p>

<p>
	<strong>So to your knowledge what can impact the shown amount of the product lines like that based on the module ?</strong><br />
	<br />
	Thanks in advance !
</p>

<p>
	 
</p>

<p>
	<a class="ipsAttachLink ipsAttachLink_image" href="//media.invisioncic.com/t336404/monthly_2026_03/Capturedcran2026-03-17161039.png.0521fd8652d257193a83b00342ec4fd0.png" data-fileid="342211" data-fileext="png" rel=""><img alt="Capture d'écran 2026-03-17 161039.png" class="ipsImage ipsImage_thumbnailed" data-fileid="342211" data-ratio="48.9" style="height:auto;" width="1000" data-src="//media.invisioncic.com/t336404/monthly_2026_03/Capturedcran2026-03-17161039.thumb.png.34a360b561fbc74f8fa7f999658737c8.png" src="https://forum.prestashop.com/applications/core/interface/js/spacer.png" /></a>
</p>
]]></description><guid isPermaLink="false">1106177</guid><pubDate>Wed, 18 Mar 2026 08:21:25 +0000</pubDate></item><item><title>How to develop showcase website</title><link>https://forum.prestashop.com/topic/1060936-how-to-develop-showcase-website/</link><description><![CDATA[<p>
	Dear community,<br /><br />
	I'm new to prestashop and have a project of e-commerce for a client that I think about developing on prestashop. It is a B2B shop the company has many feature they want regaarding the shop the sales, paiment options, multilingual, international, .... This is why I thought about prestashop.<br />
	The company wants also to redevelop and integrate there showcase web site that present the company, the history, their image...... For sur they want something modern and very catchy, with a hand made design, paralax animation, 3D objects,....<br /><br />
	At first look Prestashop seems very limited regarding developing that part, and I don't know Prestashop well enough to see how difficult would that be. Can I have your thoughs, what are the options?<br /><br />
	Thank you very much
</p>
]]></description><guid isPermaLink="false">1060936</guid><pubDate>Mon, 21 Feb 2022 15:13:36 +0000</pubDate></item><item><title>Product customisation module</title><link>https://forum.prestashop.com/topic/1106189-product-customisation-module/</link><description><![CDATA[<p>
	Hello everyone, 
</p>

<p>
	I’m looking for a module that allows my customers to personalise products with an image. In my mind, the module should work as follows:
</p>

<ul>
	<li>
		Firstly, we will have to create a canvas for each customisable product: a circle with a diameter of 10 cm for a coaster, a rectangle measuring 8 x 10 cm for a mug, etc.
	</li>
	<li>
		If the product or combination is customisable, a button will appear; clicking on it will open an editing window showing the product (for example, the coaster or mug) with the canvas superimposed on it, and the customer will be able to upload a photo and make some basic adjustments: move it, rotate it, or zoom in or out.
	</li>
	<li>
		When the client is happy with how it looks, it will click a "Save" button and a version of the customer's image, with the canvas applied as a mask, will be saved as a SVG file (or if nor, as JPG or PNG). 
	</li>
	<li>
		Ideally, the module could alert the customer that the photo does not meet the minimum resolution requirements. 
	</li>
</ul>

<p>
	What options are available to me on the market? 
</p>

<p>
	Thank you very much and best regards
</p>
]]></description><guid isPermaLink="false">1106189</guid><pubDate>Wed, 18 Mar 2026 11:16:48 +0000</pubDate></item><item><title>Site very slow. How to Defer parsing of Javascript ?</title><link>https://forum.prestashop.com/topic/901948-site-very-slow-how-to-defer-parsing-of-javascript/</link><description><![CDATA[
<p style="background-color:#ffffff;color:#251b5b;font-size:14px;">
	Hello,
</p>

<p style="background-color:#ffffff;color:#251b5b;font-size:14px;">
	I have install version 1.7.4.2 on which there is a very long loading time..
</p>

<p style="background-color:#ffffff;color:#251b5b;font-size:14px;">
	The analyze on GTmetrix shows that : "Defer parsing of Javascript".
</p>

<p style="background-color:#ffffff;color:#251b5b;font-size:14px;">
	But I can't find anywhere how to fix it.
</p>

<p style="background-color:#ffffff;color:#251b5b;font-size:14px;">
	Is someone have an idea ?
</p>

<p style="background-color:#ffffff;color:#251b5b;font-size:14px;">
	This is a printscreen : <a href="http://prntscr.com/ktet6h" rel="external nofollow" style="background-color:transparent;color:#251b5b;">http://prntscr.com/ktet6h</a>
</p>

<p style="background-color:#ffffff;color:#251b5b;font-size:14px;">
	Thank you very much for your help.
</p>
]]></description><guid isPermaLink="false">901948</guid><pubDate>Wed, 12 Sep 2018 06:58:23 +0000</pubDate></item><item><title>Error in Choose Layout [SOLVED]</title><link>https://forum.prestashop.com/topic/1105961-error-in-choose-layout-solved/</link><description><![CDATA[<p>
	When I try to access the "Choose Layout" section, I get this error.
</p>

<p>
	Online site<br />
	PrestaShop 8.2.4<br />
	PHP 8.1
</p>

<p>
	Could not parse property path "[]". Unexpected token "[" at position 0.<br />
	ExceptionLogs 2Stack Trace<br />
	Symfony\Component\PropertyAccess\Exception\<br />
	InvalidPropertyPathException<br />
	in vendor/symfony/symfony/src/Symfony/Component/PropertyAccess/PropertyPath.php (line 111)<br />
	in vendor/symfony/symfony/src/Symfony/Component/Form/FormConfigBuilder.php -&gt; __construct (line 573)<br />
	in vendor/symfony/symfony/src/Symfony/Component/Form/Extension/Core/Type/FormType.php -&gt; setPropertyPath (line 47)<br />
	in vendor/symfony/symfony/src/Symfony/Component/Form/ResolvedFormType.php -&gt; buildForm (line 131)<br />
	in vendor/symfony/symfony/src/Symfony/Component/Form/Extension/DataCollector/Proxy/ResolvedTypeDataCollectorProxy.php -&gt; buildForm (line 95)<br />
	in vendor/symfony/symfony/src/Symfony/Component/Form/ResolvedFormType.php -&gt; buildForm (line 128)<br />
	in vendor/symfony/symfony/src/Symfony/Component/Form/Extension/DataCollector/Proxy/ResolvedTypeDataCollectorProxy.php -&gt; buildForm (line 95)<br />
	in vendor/symfony/symfony/src/Symfony/Component/Form/FormFactory.php -&gt; buildForm (line 82)<br />
	in vendor/symfony/symfony/src/Symfony/Component/Form/FormFactory.php -&gt; createNamedBuilder (line 40)<br />
	in vendor/symfony/symfony/src/Symfony/Component/Form/Form.php -&gt; createNamed (line 877)<br />
	in vendor/symfony/symfony/src/Symfony/Component/Form/Extension/Core/EventListener/ResizeFormListener.php -&gt; add (line 80)<br />
	in vendor/symfony/symfony/src/Symfony/Component/EventDispatcher/EventDispatcher.php -&gt; preSetData (line 264)<br />
	in vendor/symfony/symfony/src/Symfony/Component/EventDispatcher/EventDispatcher.php -&gt; doDispatch (line 239)<br />
	in vendor/symfony/symfony/src/Symfony/Component/EventDispatcher/EventDispatcher.php -&gt; callListeners (line 73)<br />
	in vendor/symfony/symfony/src/Symfony/Component/EventDispatcher/ImmutableEventDispatcher.php -&gt; dispatch (line 44)<br />
	in vendor/symfony/symfony/src/Symfony/Component/Form/Form.php -&gt; dispatch (line 353)<br />
	in vendor/symfony/symfony/src/Symfony/Component/Form/Extension/Core/DataMapper/PropertyPathMapper.php -&gt; setData (line 52)<br />
	in vendor/symfony/symfony/src/Symfony/Component/Form/Form.php -&gt; mapDataToForms (line 389)<br />
	in vendor/symfony/symfony/src/Symfony/Component/Form/Form.php -&gt; setData (line 493)<br />
	in vendor/symfony/symfony/src/Symfony/Component/Form/FormBuilder.php -&gt; initialize (line 208)<br />
	in vendor/symfony/symfony/src/Symfony/Component/Form/FormFactory.php -&gt; getForm (line 32)<br />
	FormFactory-&gt;create()<br />
	in src/PrestaShopBundle/Form/Admin/Improve/Design/Theme/PageLayoutCustomizationFormFactory.php (line 77) <br />
	public function create(array $customizablePages) { $theme = $this-&gt;themeRepository-&gt;getInstanceByName($this-&gt;shopThemeName); $pageLayoutCustomizationForm = $this-&gt;formFactory-&gt;create(PageLayoutsCustomizationType::class, [ 'layouts' =&gt; $this-&gt;getCustomizablePageLayouts($theme, $customizablePages), ]); return $pageLayoutCustomizationForm; }<br />
	PageLayoutCustomizationFormFactory-&gt;create()<br />
	in src/PrestaShopBundle/Controller/Admin/Improve/Design/ThemeController.php (line 405)<br />
	in vendor/symfony/symfony/src/Symfony/Component/HttpKernel/HttpKernel.php -&gt; customizeLayoutsAction (line 169)<br />
	in vendor/symfony/symfony/src/Symfony/Component/HttpKernel/HttpKernel.php -&gt; handleRaw (line 81)<br />
	in vendor/symfony/symfony/src/Symfony/Component/HttpKernel/Kernel.php -&gt; handle (line 201)<br />
	Kernel-&gt;handle()<br />
	in admin/index.php (line 84)
</p>

<p>
	<a class="ipsAttachLink ipsAttachLink_image" data-fileext="jpg" data-fileid="342052" href="//media.invisioncic.com/t336404/monthly_2026_03/IIMG.jpg.3180d400af18cc2fb76ca677351b25b1.jpg" rel=""><img alt="IIMG.jpg" class="ipsImage ipsImage_thumbnailed" data-fileid="342052" data-ratio="86.5" style="height:auto;" width="1000" data-src="//media.invisioncic.com/t336404/monthly_2026_03/IIMG.thumb.jpg.587985e5af3abb9c7e97e7eeff5aa708.jpg" src="https://forum.prestashop.com/applications/core/interface/js/spacer.png" /></a>
</p>
]]></description><guid isPermaLink="false">1105961</guid><pubDate>Mon, 09 Mar 2026 11:55:15 +0000</pubDate></item><item><title>[WAREHOUSE] Problem with updating PrestaShop to 9.0.3 and the Warehouse theme.</title><link>https://forum.prestashop.com/topic/1105469-warehouse-problem-with-updating-prestashop-to-903-and-the-warehouse-theme/</link><description><![CDATA[<p>
	 
</p>

<p>
	The update completed successfully (more or less).<br />
	It was necessary to modify services.yml and form_builder.yml, changing :create' to ', 'create' ] and adding a few additional adjustments.
</p>

<p>
	After the update, I cannot access product categories:
</p>

<blockquote class="ipsQuote" data-ipsquote="">
	<div class="ipsQuote_citation">
		Quote
	</div>

	<div class="ipsQuote_contents">
		<p>
			"Fatal error: Uncaught --&gt; Smarty Compiler: Syntax error in template<br />
			file:/home/sklepvid/domains/vidos-domofony.pl/public_html/themes/warehouse/templates/catalog/_partials/sort-orders.tpl<br />
			on line 66<br />
			href="{$showPerPageUrl|add_url_param:'resultsPerPage':12}"<br />
			unknown modifier 'add_url_param'<br />
			&lt;-- thrown in<br />
			/home/sklepvid/domains/vidos-domofony.pl/public_html/themes/warehouse/templates/catalog/_partials/sort-orders.tpl<br />
			on line 66"
		</p>
	</div>
</blockquote>

<p>
	Additionally, the entire homepage is basically crashing as well (in debug mode):<br />
	 
</p>

<pre class="ipsCode prettyprint lang-html prettyprinted"><span class="pln">/home/sklepvid/domains/vidos-domofony.pl/public_html/var/cache/dev/smarty/compile/warehouselayouts_layout_left_column_tpl/4d/34/b9/4d34b97b53748b5bbd43ed2baf6df3e2646e3440_2.file.head.tpl.php on line 232
"&gt;
Warning: Undefined array key "iqitTheme" in /home/sklepvid/domains/vidos-domofony.pl/public_html/var/cache/dev/smarty/compile/warehouselayouts_layout_left_column_tpl/4d/34/b9/4d34b97b53748b5bbd43ed2baf6df3e2646e3440_2.file.head.tpl.php on line 492

Warning: Attempt to read property "value" on null in /home/sklepvid/domains/vidos-domofony.pl/public_html/var/cache/dev/smarty/compile/warehouselayouts_layout_left_column_tpl/4d/34/b9/4d34b97b53748b5bbd43ed2baf6df3e2646e3440_2.file.head.tpl.php on line 492

Warning: Trying to access array offset on value of type null in /home/sklepvid/domains/vidos-domofony.pl/public_html/var/cache/dev/smarty/compile/warehouselayouts_layout_left_column_tpl/4d/34/b9/4d34b97b53748b5bbd43ed2baf6df3e2646e3440_2.file.head.tpl.php on line 492
/home/sklepvid/domains/vidos-domofony.pl/public_html/var/cache/dev/smarty/compile/warehouselayouts_layout_left_column_tpl/c9/54/71/c9547107dc31c6d3f470a404ef435b1980df1607_2.file.layout-both-columns.tpl.php on line 53

Warning: Attempt to read property "value" on null in /home/sklepvid/domains/vidos-domofony.pl/public_html/var/cache/dev/smarty/compile/warehouselayouts_layout_left_column_tpl/c9/54/71/c9547107dc31c6d3f470a404ef435b1980df1607_2.file.layout-both-columns.tpl.php on line 53

Warning: Trying to access array offset on value of type null in /home/sklepvid/domains/vidos-domofony.pl/public_html/var/cache/dev/smarty/compile/warehouselayouts_layout_left_column_tpl/c9/54/71/c9547107dc31c6d3f470a404ef435b1980df1607_2.file.layout-both-columns.tpl.php on line 53
"&gt;

Warning: Undefined array key "iqitTheme" in /home/sklepvid/domains/vidos-domofony.pl/public_html/var/cache/dev/smarty/compile/warehouselayouts_layout_left_column_tpl/c9/54/71/c9547107dc31c6d3f470a404ef435b1980df1607_2.file.layout-both-columns.tpl.php on line 68

Warning: Attempt to read property "value" on null in /home/sklepvid/domains/vidos-domofony.pl/public_html/var/cache/dev/smarty/compile/warehouselayouts_layout_left_column_tpl/c9/54/71/c9547107dc31c6d3f470a404ef435b1980df1607_2.file.layout-both-columns.tpl.php on line 68

Warning: Trying to access array offset on value of type null in /home/sklepvid/domains/vidos-domofony.pl/public_html/var/cache/dev/smarty/compile/warehouselayouts_layout_left_column_tpl/c9/54/71/c9547107dc31c6d3f470a404ef435b1980df1607_2.file.layout-both-columns.tpl.php on line 68
&gt;/home/sklepvid/domains/vidos-domofony.pl/public_html/var/cache/dev/smarty/compile/warehouselayouts_layout_left_column_tpl/c9/54/71/c9547107dc31c6d3f470a404ef435b1980df1607_2.file.layout-both-columns.tpl.php on line 74

Warning: Attempt to read property "value" on null in /home/sklepvid/domains/vidos-domofony.pl/public_html/var/cache/dev/smarty/compile/warehouselayouts_layout_left_column_tpl/c9/54/71/c9547107dc31c6d3f470a404ef435b1980df1607_2.file.layout-both-columns.tpl.php on line 74

Warning: Trying to access array offset on value of type null in /home/sklepvid/domains/vidos-domofony.pl/public_html/var/cache/dev/smarty/compile/warehouselayouts_layout_left_column_tpl/c9/54/71/c9547107dc31c6d3f470a404ef435b1980df1607_2.file.layout-both-columns.tpl.php on line 74
"&gt;
Warning: Undefined array key "iqitTheme" in /home/sklepvid/domains/vidos-domofony.pl/public_html/var/cache/dev/smarty/compile/warehouselayouts_layout_left_column_tpl/a5/ca/a0/a5caa068081b05397bac6c88ba325ae01c10c17a_2.file.header.tpl.php on line 94

Warning: Attempt to read property "value" on null in /home/sklepvid/domains/vidos-domofony.pl/public_html/var/cache/dev/smarty/compile/warehouselayouts_layout_left_column_tpl/a5/ca/a0/a5caa068081b05397bac6c88ba325ae01c10c17a_2.file.header.tpl.php on line 94

Warning: Trying to access array offset on value of type null in /home/sklepvid/domains/vidos-domofony.pl/public_html/var/cache/dev/smarty/compile/warehouselayouts_layout_left_column_tpl/a5/ca/a0/a5caa068081b05397bac6c88ba325ae01c10c17a_2.file.header.tpl.php on line 94


Warning: Undefined array key "iqitTheme" in /home/sklepvid/domains/vidos-domofony.pl/public_html/var/cache/dev/smarty/compile/warehouselayouts_layout_left_column_tpl/a5/ca/a0/a5caa068081b05397bac6c88ba325ae01c10c17a_2.file.header.tpl.php on line 104

Warning: Attempt to read property "value" on null in /home/sklepvid/domains/vidos-domofony.pl/public_html/var/cache/dev/smarty/compile/warehouselayouts_layout_left_column_tpl/a5/ca/a0/a5caa068081b05397bac6c88ba325ae01c10c17a_2.file.header.tpl.php on line 104

Warning: Trying to access array offset on value of type null in /home/sklepvid/domains/vidos-domofony.pl/public_html/var/cache/dev/smarty/compile/warehouselayouts_layout_left_column_tpl/a5/ca/a0/a5caa068081b05397bac6c88ba325ae01c10c17a_2.file.header.tpl.php on line 104


Warning: Undefined array key "iqitTheme" in /home/sklepvid/domains/vidos-domofony.pl/public_html/var/cache/dev/smarty/compile/warehouselayouts_layout_left_column_tpl/a5/ca/a0/a5caa068081b05397bac6c88ba325ae01c10c17a_2.file.header.tpl.php on line 119

Warning: Attempt to read property "value" on null in /home/sklepvid/domains/vidos-domofony.pl/public_html/var/cache/dev/smarty/compile/warehouselayouts_layout_left_column_tpl/a5/ca/a0/a5caa068081b05397bac6c88ba325ae01c10c17a_2.file.header.tpl.php on line 119

Warning: Trying to access array offset on value of type null in /home/sklepvid/domains/vidos-domofony.pl/public_html/var/cache/dev/smarty/compile/warehouselayouts_layout_left_column_tpl/a5/ca/a0/a5caa068081b05397bac6c88ba325ae01c10c17a_2.file.header.tpl.php on line 119

/home/sklepvid/domains/vidos-domofony.pl/public_html/var/cache/dev/smarty/compile/warehouselayouts_layout_left_column_tpl/a5/ca/a0/a5caa068081b05397bac6c88ba325ae01c10c17a_2.file.header.tpl.php on line 141

Warning: Attempt to read property "value" on null in /home/sklepvid/domains/vidos-domofony.pl/public_html/var/cache/dev/smarty/compile/warehouselayouts_layout_left_column_tpl/a5/ca/a0/a5caa068081b05397bac6c88ba325ae01c10c17a_2.file.header.tpl.php on line 141

Warning: Trying to access array offset on value of type null in /home/sklepvid/domains/vidos-domofony.pl/public_html/var/cache/dev/smarty/compile/warehouselayouts_layout_left_column_tpl/a5/ca/a0/a5caa068081b05397bac6c88ba325ae01c10c17a_2.file.header.tpl.php on line 141
"&gt;
Warning: Undefined array key "iqitTheme" in /home/sklepvid/domains/vidos-domofony.pl/public_html/var/cache/dev/smarty/compile/warehouselayouts_layout_left_column_tpl/a5/ca/a0/a5caa068081b05397bac6c88ba325ae01c10c17a_2.file.header.tpl.php on line 145

Warning: Attempt to read property "value" on null in /home/sklepvid/domains/vidos-domofony.pl/public_html/var/cache/dev/smarty/compile/warehouselayouts_layout_left_column_tpl/a5/ca/a0/a5caa068081b05397bac6c88ba325ae01c10c17a_2.file.header.tpl.php on line 145

Warning: Trying to access array offset on value of type null in /home/sklepvid/domains/vidos-domofony.pl/public_html/var/cache/dev/smarty/compile/warehouselayouts_layout_left_column_tpl/a5/ca/a0/a5caa068081b05397bac6c88ba325ae01c10c17a_2.file.header.tpl.php on line 145

Warning: Undefined array key "iqitTheme" in /home/sklepvid/domains/vidos-domofony.pl/public_html/var/cache/dev/smarty/compile/warehouselayouts_layout_left_column_tpl/a5/ca/a0/a5caa068081b05397bac6c88ba325ae01c10c17a_2.file.header.tpl.php on line 148

Warning: Attempt to read property "value" on null in /home/sklepvid/domains/vidos-domofony.pl/public_html/var/cache/dev/smarty/compile/warehouselayouts_layout_left_column_tpl/a5/ca/a0/a5caa068081b05397bac6c88ba325ae01c10c17a_2.file.header.tpl.php on line 148

Warning: Trying to access array offset on value of type null in /home/sklepvid/domains/vidos-domofony.pl/public_html/var/cache/dev/smarty/compile/warehouselayouts_layout_left_column_tpl/a5/ca/a0/a5caa068081b05397bac6c88ba325ae01c10c17a_2.file.header.tpl.php on line 148

Warning: Undefined array key "iqitTheme" in /home/sklepvid/domains/vidos-domofony.pl/public_html/var/cache/dev/smarty/compile/warehouselayouts_layout_left_column_tpl/a5/ca/a0/a5caa068081b05397bac6c88ba325ae01c10c17a_2.file.header.tpl.php on line 151

Warning: Attempt to read property "value" on null in /home/sklepvid/domains/vidos-domofony.pl/public_html/var/cache/dev/smarty/compile/warehouselayouts_layout_left_column_tpl/a5/ca/a0/a5caa068081b05397bac6c88ba325ae01c10c17a_2.file.header.tpl.php on line 151

Warning: Trying to access array offset on value of type null in /home/sklepvid/domains/vidos-domofony.pl/public_html/var/cache/dev/smarty/compile/warehouselayouts_layout_left_column_tpl/a5/ca/a0/a5caa068081b05397bac6c88ba325ae01c10c17a_2.file.header.tpl.php on line 151

Warning: Undefined array key "iqitTheme" in /home/sklepvid/domains/vidos-domofony.pl/public_html/var/cache/dev/smarty/compile/warehouselayouts_layout_left_column_tpl/a5/ca/a0/a5caa068081b05397bac6c88ba325ae01c10c17a_2.file.header.tpl.php on line 154

Warning: Attempt to read property "value" on null in /home/sklepvid/domains/vidos-domofony.pl/public_html/var/cache/dev/smarty/compile/warehouselayouts_layout_left_column_tpl/a5/ca/a0/a5caa068081b05397bac6c88ba325ae01c10c17a_2.file.header.tpl.php on line 154

Warning: Trying to access array offset on value of type null in /home/sklepvid/domains/vidos-domofony.pl/public_html/var/cache/dev/smarty/compile/warehouselayouts_layout_left_column_tpl/a5/ca/a0/a5caa068081b05397bac6c88ba325ae01c10c17a_2.file.header.tpl.php on line 154

Warning: Undefined array key "iqitTheme" in /home/sklepvid/domains/vidos-domofony.pl/public_html/var/cache/dev/smarty/compile/warehouselayouts_layout_left_column_tpl/a5/ca/a0/a5caa068081b05397bac6c88ba325ae01c10c17a_2.file.header.tpl.php on line 157

Warning: Attempt to read property "value" on null in /home/sklepvid/domains/vidos-domofony.pl/public_html/var/cache/dev/smarty/compile/warehouselayouts_layout_left_column_tpl/a5/ca/a0/a5caa068081b05397bac6c88ba325ae01c10c17a_2.file.header.tpl.php on line 157

Warning: Trying to access array offset on value of type null in /home/sklepvid/domains/vidos-domofony.pl/public_html/var/cache/dev/smarty/compile/warehouselayouts_layout_left_column_tpl/a5/ca/a0/a5caa068081b05397bac6c88ba325ae01c10c17a_2.file.header.tpl.php on line 157

Warning: Undefined array key "iqitTheme" in /home/sklepvid/domains/vidos-domofony.pl/public_html/var/cache/dev/smarty/compile/warehouselayouts_layout_left_column_tpl/a5/ca/a0/a5caa068081b05397bac6c88ba325ae01c10c17a_2.file.header.tpl.php on line 160

Warning: Attempt to read property "value" on null in /home/sklepvid/domains/vidos-domofony.pl/public_html/var/cache/dev/smarty/compile/warehouselayouts_layout_left_column_tpl/a5/ca/a0/a5caa068081b05397bac6c88ba325ae01c10c17a_2.file.header.tpl.php on line 160

Warning: Trying to access array offset on value of type null in /home/sklepvid/domains/vidos-domofony.pl/public_html/var/cache/dev/smarty/compile/warehouselayouts_layout_left_column_tpl/a5/ca/a0/a5caa068081b05397bac6c88ba325ae01c10c17a_2.file.header.tpl.php on line 160

Warning: Undefined array key "iqitTheme" in /home/sklepvid/domains/vidos-domofony.pl/public_html/var/cache/dev/smarty/compile/warehouselayouts_layout_left_column_tpl/a5/ca/a0/a5caa068081b05397bac6c88ba325ae01c10c17a_2.file.header.tpl.php on line 163

Warning: Attempt to read property "value" on null in /home/sklepvid/domains/vidos-domofony.pl/public_html/var/cache/dev/smarty/compile/warehouselayouts_layout_left_column_tpl/a5/ca/a0/a5caa068081b05397bac6c88ba325ae01c10c17a_2.file.header.tpl.php on line 163

Warning: Trying to access array offset on value of type null in /home/sklepvid/domains/vidos-domofony.pl/public_html/var/cache/dev/smarty/compile/warehouselayouts_layout_left_column_tpl/a5/ca/a0/a5caa068081b05397bac6c88ba325ae01c10c17a_2.file.header.tpl.php on line 163

Warning: Undefined array key "iqitTheme" in /home/sklepvid/domains/vidos-domofony.pl/public_html/var/cache/dev/smarty/compile/warehouselayouts_layout_left_column_tpl/a5/ca/a0/a5caa068081b05397bac6c88ba325ae01c10c17a_2.file.header.tpl.php on line 166

Warning: Attempt to read property "value" on null in /home/sklepvid/domains/vidos-domofony.pl/public_html/var/cache/dev/smarty/compile/warehouselayouts_layout_left_column_tpl/a5/ca/a0/a5caa068081b05397bac6c88ba325ae01c10c17a_2.file.header.tpl.php on line 166

Warning: Trying to access array offset on value of type null in /home/sklepvid/domains/vidos-domofony.pl/public_html/var/cache/dev/smarty/compile/warehouselayouts_layout_left_column_tpl/a5/ca/a0/a5caa068081b05397bac6c88ba325ae01c10c17a_2.file.header.tpl.php on line 166

/home/sklepvid/domains/vidos-domofony.pl/public_html/var/cache/dev/smarty/compile/warehouselayouts_layout_left_column_tpl/f1/25/8a/f1258a04d1631842a002550d7b7f3b2d944e5cc0_2.file.layout-left-column.tpl.php on line 59

Warning: Attempt to read property "value" on null in /home/sklepvid/domains/vidos-domofony.pl/public_html/var/cache/dev/smarty/compile/warehouselayouts_layout_left_column_tpl/f1/25/8a/f1258a04d1631842a002550d7b7f3b2d944e5cc0_2.file.layout-left-column.tpl.php on line 59

Warning: Trying to access array offset on value of type null in /home/sklepvid/domains/vidos-domofony.pl/public_html/var/cache/dev/smarty/compile/warehouselayouts_layout_left_column_tpl/f1/25/8a/f1258a04d1631842a002550d7b7f3b2d944e5cc0_2.file.layout-left-column.tpl.php on line 59
"&gt;



ompile/warehouse/22/66/a3/2266a38b45f4b2db97ffc44e94083bbb78be14c0_2.file.product.tpl.phpon line56

Warning: Attempt to read property "value" on null in/home/sklepvid/domains/vidos-domofony.pl/public_html/var/cache/dev/smarty/compile/warehouse/22/66/a3/2266a38b45f4b2db97ffc44e94083bbb78be14c0_2.file.product.tpl.phpon line56

Warning: Trying to access array offset on value of type null in/home/sklepvid/domains/vidos-domofony.pl/public_html/var/cache/dev/smarty/compile/warehouse/22/66/a3/2266a38b45f4b2db97ffc44e94083bbb78be14c0_2.file.product.tpl.phpon line56
col-xl-
Warning: Undefined array key "iqitTheme" in/home/sklepvid/domains/vidos-domofony.pl/public_html/var/cache/dev/smarty/compile/warehouse/22/66/a3/2266a38b45f4b2db97ffc44e94083bbb78be14c0_2.file.product.tpl.phpon line57

Warning: Attempt to read property "value" on null in/home/sklepvid/domains/vidos-domofony.pl/public_html/var/cache/dev/smarty/compile/warehouse/22/66/a3/2266a38b45f4b2db97ffc44e94083bbb78be14c0_2.file.product.tpl.phpon line57

Warning: Trying to access array offset on value of type null in/home/sklepvid/domains/vidos-domofony.pl/public_html/var/cache/dev/smarty/compile/warehouse/22/66/a3/2266a38b45f4b2db97ffc44e94083bbb78be14c0_2.file.product.tpl.phpon line57
"&gt;

/home/sklepvid/domains/vidos-domofony.pl/public_html/var/cache/dev/smarty/compile/warehouse/22/66/a3/2266a38b45f4b2db97ffc44e94083bbb78be14c0_2.file.product.tpl.php on line 61

Warning: Attempt to read property "value" on null in /home/sklepvid/domains/vidos-domofony.pl/public_html/var/cache/dev/smarty/compile/warehouse/22/66/a3/2266a38b45f4b2db97ffc44e94083bbb78be14c0_2.file.product.tpl.php on line 61

Warning: Trying to access array offset on value of type null in /home/sklepvid/domains/vidos-domofony.pl/public_html/var/cache/dev/smarty/compile/warehouse/22/66/a3/2266a38b45f4b2db97ffc44e94083bbb78be14c0_2.file.product.tpl.php on line 61
js-product-miniature" data-id-product="266" data-id-product-attribute="0" &gt;
Warning: Undefined array key "iqitTheme" in /home/sklepvid/domains/vidos-domofony.pl/public_html/var/cache/dev/smarty/compile/warehouse/22/66/a3/2266a38b45f4b2db97ffc44e94083bbb78be14c0_2.file.product.tpl.php on line 70

Warning: Attempt to read property "value" on null in /home/sklepvid/domains/vidos-domofony.pl/public_html/var/cache/dev/smarty/compile/warehouse/22/66/a3/2266a38b45f4b2db97ffc44e94083bbb78be14c0_2.file.product.tpl.php on line 70

Warning: Trying to access array offset on value of type null in /home/sklepvid/domains/vidos-domofony.pl/public_html/var/cache/dev/smarty/compile/warehouse/22/66/a3/2266a38b45f4b2db97ffc44e94083bbb78be14c0_2.file.product.tpl.php on line 70

Warning: Undefined array key "iqitTheme" in /home/sklepvid/domains/vidos-domofony.pl/public_html/var/cache/dev/smarty/compile/warehouse/22/66/a3/2266a38b45f4b2db97ffc44e94083bbb78be14c0_2.file.product.tpl.php on line 75

Warning: Attempt to read property "value" on null in /home/sklepvid/domains/vidos-domofony.pl/public_html/var/cache/dev/smarty/compile/warehouse/22/66/a3/2266a38b45f4b2db97ffc44e94083bbb78be14c0_2.file.product.tpl.php on line 75

Warning: Trying to access array offset on value of type null in /home/sklepvid/domains/vidos-domofony.pl/public_html/var/cache/dev/smarty/compile/warehouse/22/66/a3/2266a38b45f4b2db97ffc44e94083bbb78be14c0_2.file.product.tpl.php on line 75

Warning: Undefined array key "iqitTheme" in /home/sklepvid/domains/vidos-domofony.pl/public_html/var/cache/dev/smarty/compile/warehouse/22/66/a3/2266a38b45f4b2db97ffc44e94083bbb78be14c0_2.file.product.tpl.php on line 80

Warning: Attempt to read property "value" on null in /home/sklepvid/domains/vidos-domofony.pl/public_html/var/cache/dev/smarty/compile/warehouse/22/66/a3/2266a38b45f4b2db97ffc44e94083bbb78be14c0_2.file.product.tpl.php on line 80

Warning: Trying to access array offset on value of type null in /home/sklepvid/domains/vidos-domofony.pl/public_html/var/cache/dev/smarty/compile/warehouse/22/66/a3/2266a38b45f4b2db97ffc44e94083bbb78be14c0_2.file.product.tpl.php on line 80

/home/sklepvid/domains/vidos-domofony.pl/public_html/var/cache/dev/smarty/compile/warehouse/22/66/a3/2266a38b45f4b2db97ffc44e94083bbb78be14c0_2.file.product.tpl.php on line54

Warning: Attempt to read property "value" on null in/home/sklepvid/domains/vidos-domofony.pl/public_html/var/cache/dev/smarty/compile/warehouse/22/66/a3/2266a38b45f4b2db97ffc44e94083bbb78be14c0_2.file.product.tpl.phpon line54

Warning: Trying to access array offset on value of type null in/home/sklepvid/domains/vidos-domofony.pl/public_html/var/cache/dev/smarty/compile/warehouse/22/66/a3/2266a38b45f4b2db97ffc44e94083bbb78be14c0_2.file.product.tpl.phpon line54
col-md-
Warning: Undefined array key "iqitTheme" in/home/sklepvid/domains/vidos-domofony.pl/public_html/var/cache/dev/smarty/compile/warehouse/22/66/a3/2266a38b45f4b2db97ffc44e94083bbb78be14c0_2.file.product.tpl.phpon line55

Warning: Attempt to read property "value" on null in/home/sklepvid/domains/vidos-domofony.pl/public_html/var/cache/dev/smarty/compile/warehouse/22/66/a3/2266a38b45f4b2db97ffc44e94083bbb78be14c0_2.file.product.tpl.phpon line55

Warning: Trying to access array offset on value of type null in/home/sklepvid/domains/vidos-domofony.pl/public_html/var/cache/dev/smarty/compile/warehouse/22/66/a3/2266a38b45f4b2db97ffc44e94083bbb78be14c0_2.file.product.tpl.phpon line55
col-lg-
Warning: Undefined array key "iqitTheme" in/home/sklepvid/domains/vidos-domofony.pl/public_html/var/cache/dev/smarty/compile/warehouse/22/66/a3/2266a38b45f4b2db97ffc44e94083bbb78be14c0_2.file.product.tpl.phpon line56

Warning: Attempt to read property "value" on null in/home/sklepvid/domains/vidos-domofony.pl/public_html/var/cache/dev/smarty/compile/warehouse/22/66/a3/2266a38b45f4b2db97ffc44e94083bbb78be14c0_2.file.product.tpl.phpon line56

Warning: Trying to access array offset on value of type null in/home/sklepvid/domains/vidos-domofony.pl/public_html/var/cache/dev/smarty/compile/warehouse/22/66/a3/2266a38b45f4b2db97ffc44e94083bbb78be14c0_2.file.product.tpl.phpon line56
col-xl-
Warning: Undefined array key "iqitTheme" in/home/sklepvid/domains/vidos-domofony.pl/public_html/var/cache/dev/smarty/compile/warehouse/22/66/a3/2266a38b45f4b2db97ffc44e94083bbb78be14c0_2.file.product.tpl.phpon line57

Warning: Attempt to read property "value" on null in/home/sklepvid/domains/vidos-domofony.pl/public_html/var/cache/dev/smarty/compile/warehouse/22/66/a3/2266a38b45f4b2db97ffc44e94083bbb78be14c0_2.file.product.tpl.phpon line57

Warning: Trying to access array offset on value of type null in/home/sklepvid/domains/vidos-domofony.pl/public_html/var/cache/dev/smarty/compile/warehouse/22/66/a3/2266a38b45f4b2db97ffc44e94083bbb78be14c0_2.file.product.tpl.phpon line57
"&gt;

/home/sklepvid/domains/vidos-domofony.pl/public_html/var/cache/dev/smarty/compile/warehouse/22/66/a3/2266a38b45f4b2db97ffc44e94083bbb78be14c0_2.file.product.tpl.php on line 61

Warning: Attempt to read property "value" on null in /home/sklepvid/domains/vidos-domofony.pl/public_html/var/cache/dev/smarty/compile/warehouse/22/66/a3/2266a38b45f4b2db97ffc44e94083bbb78be14c0_2.file.product.tpl.php on line 61

Warning: Trying to access array offset on value of type null in /home/sklepvid/domains/vidos-domofony.pl/public_html/var/cache/dev/smarty/compile/warehouse/22/66/a3/2266a38b45f4b2db97ffc44e94083bbb78be14c0_2.file.product.tpl.php on line 61
js-product-miniature" data-id-product="229" data-id-product-attribute="0" &gt;
Warning: Undefined array key "iqitTheme" in /home/sklepvid/domains/vidos-domofony.pl/public_html/var/cache/dev/smarty/compile/warehouse/22/66/a3/2266a38b45f4b2db97ffc44e94083bbb78be14c0_2.file.product.tpl.php on line 70

Warning: Attempt to read property "value" on null in /home/sklepvid/domains/vidos-domofony.pl/public_html/var/cache/dev/smarty/compile/warehouse/22/66/a3/2266a38b45f4b2db97ffc44e94083bbb78be14c0_2.file.product.tpl.php on line 70

Warning: Trying to access array offset on value of type null in /home/sklepvid/domains/vidos-domofony.pl/public_html/var/cache/dev/smarty/compile/warehouse/22/66/a3/2266a38b45f4b2db97ffc44e94083bbb78be14c0_2.file.product.tpl.php on line 70

Warning: Undefined array key "iqitTheme" in /home/sklepvid/domains/vidos-domofony.pl/public_html/var/cache/dev/smarty/compile/warehouse/22/66/a3/2266a38b45f4b2db97ffc44e94083bbb78be14c0_2.file.product.tpl.php on line 75

Warning: Attempt to read property "value" on null in /home/sklepvid/domains/vidos-domofony.pl/public_html/var/cache/dev/smarty/compile/warehouse/22/66/a3/2266a38b45f4b2db97ffc44e94083bbb78be14c0_2.file.product.tpl.php on line 75

Warning: Trying to access array offset on value of type null in /home/sklepvid/domains/vidos-domofony.pl/public_html/var/cache/dev/smarty/compile/warehouse/22/66/a3/2266a38b45f4b2db97ffc44e94083bbb78be14c0_2.file.product.tpl.php on line 75

Warning: Undefined array key "iqitTheme" in /home/sklepvid/domains/vidos-domofony.pl/public_html/var/cache/dev/smarty/compile/warehouse/22/66/a3/2266a38b45f4b2db97ffc44e94083bbb78be14c0_2.file.product.tpl.php on line 80

Warning: Attempt to read property "value" on null in /home/sklepvid/domains/vidos-domofony.pl/public_html/var/cache/dev/smarty/compile/warehouse/22/66/a3/2266a38b45f4b2db97ffc44e94083bbb78be14c0_2.file.product.tpl.php on line 80

Warning: Trying to access array offset on value of type null in /home/sklepvid/domains/vidos-domofony.pl/public_html/var/cache/dev/smarty/compile/warehouse/22/66/a3/2266a38b45f4b2db97ffc44e94083bbb78be14c0_2.file.product.tpl.php on line 80

/home/sklepvid/domains/vidos-domofony.pl/public_html/var/cache/dev/smarty/compile/warehouse/22/66/a3/2266a38b45f4b2db97ffc44e94083bbb78be14c0_2.file.product.tpl.php on line54

Warning: Attempt to read property "value" on null in/home/sklepvid/domains/vidos-domofony.pl/public_html/var/cache/dev/smarty/compile/warehouse/22/66/a3/2266a38b45f4b2db97ffc44e94083bbb78be14c0_2.file.product.tpl.phpon line54

Warning: Trying to access array offset on value of type null in/home/sklepvid/domains/vidos-domofony.pl/public_html/var/cache/dev/smarty/compile/warehouse/22/66/a3/2266a38b45f4b2db97ffc44e94083bbb78be14c0_2.file.product.tpl.phpon line54
col-md-
Warning: Undefined array key "iqitTheme" in/home/sklepvid/domains/vidos-domofony.pl/public_html/var/cache/dev/smarty/compile/warehouse/22/66/a3/2266a38b45f4b2db97ffc44e94083bbb78be14c0_2.file.product.tpl.phpon line55

Warning: Attempt to read property "value" on null in/home/sklepvid/domains/vidos-domofony.pl/public_html/var/cache/dev/smarty/compile/warehouse/22/66/a3/2266a38b45f4b2db97ffc44e94083bbb78be14c0_2.file.product.tpl.phpon line55

Warning: Trying to access array offset on value of type null in/home/sklepvid/domains/vidos-domofony.pl/public_html/var/cache/dev/smarty/compile/warehouse/22/66/a3/2266a38b45f4b2db97ffc44e94083bbb78be14c0_2.file.product.tpl.phpon line55
col-lg-
Warning: Undefined array key "iqitTheme" in/home/sklepvid/domains/vidos-domofony.pl/public_html/var/cache/dev/smarty/compile/warehouse/22/66/a3/2266a38b45f4b2db97ffc44e94083bbb78be14c0_2.file.product.tpl.phpon line56

Warning: Attempt to read property "value" on null in/home/sklepvid/domains/vidos-domofony.pl/public_html/var/cache/dev/smarty/compile/warehouse/22/66/a3/2266a38b45f4b2db97ffc44e94083bbb78be14c0_2.file.product.tpl.phpon line56

Warning: Trying to access array offset on value of type null in/home/sklepvid/domains/vidos-domofony.pl/public_html/var/cache/dev/smarty/compile/warehouse/22/66/a3/2266a38b45f4b2db97ffc44e94083bbb78be14c0_2.file.product.tpl.phpon line56
col-xl-
Warning: Undefined array key "iqitTheme" in/home/sklepvid/domains/vidos-domofony.pl/public_html/var/cache/dev/smarty/compile/warehouse/22/66/a3/2266a38b45f4b2db97ffc44e94083bbb78be14c0_2.file.product.tpl.phpon line57

Warning: Attempt to read property "value" on null in/home/sklepvid/domains/vidos-domofony.pl/public_html/var/cache/dev/smarty/compile/warehouse/22/66/a3/2266a38b45f4b2db97ffc44e94083bbb78be14c0_2.file.product.tpl.phpon line57

Warning: Trying to access array offset on value of type null in/home/sklepvid/domains/vidos-domofony.pl/public_html/var/cache/dev/smarty/compile/warehouse/22/66/a3/2266a38b45f4b2db97ffc44e94083bbb78be14c0_2.file.product.tpl.phpon line57
"&gt;

/home/sklepvid/domains/vidos-domofony.pl/public_html/var/cache/dev/smarty/compile/warehouse/22/66/a3/2266a38b45f4b2db97ffc44e94083bbb78be14c0_2.file.product.tpl.php on line 61

Warning: Attempt to read property "value" on null in /home/sklepvid/domains/vidos-domofony.pl/public_html/var/cache/dev/smarty/compile/warehouse/22/66/a3/2266a38b45f4b2db97ffc44e94083bbb78be14c0_2.file.product.tpl.php on line 61

Warning: Trying to access array offset on value of type null in /home/sklepvid/domains/vidos-domofony.pl/public_html/var/cache/dev/smarty/compile/warehouse/22/66/a3/2266a38b45f4b2db97ffc44e94083bbb78be14c0_2.file.product.tpl.php on line 61
js-product-miniature" data-id-product="378" data-id-product-attribute="0" &gt;
Warning: Undefined array key "iqitTheme" in /home/sklepvid/domains/vidos-domofony.pl/public_html/var/cache/dev/smarty/compile/warehouse/22/66/a3/2266a38b45f4b2db97ffc44e94083bbb78be14c0_2.file.product.tpl.php on line 70

Warning: Attempt to read property "value" on null in /home/sklepvid/domains/vidos-domofony.pl/public_html/var/cache/dev/smarty/compile/warehouse/22/66/a3/2266a38b45f4b2db97ffc44e94083bbb78be14c0_2.file.product.tpl.php on line 70

Warning: Trying to access array offset on value of type null in /home/sklepvid/domains/vidos-domofony.pl/public_html/var/cache/dev/smarty/compile/warehouse/22/66/a3/2266a38b45f4b2db97ffc44e94083bbb78be14c0_2.file.product.tpl.php on line 70

Warning: Undefined array key "iqitTheme" in /home/sklepvid/domains/vidos-domofony.pl/public_html/var/cache/dev/smarty/compile/warehouse/22/66/a3/2266a38b45f4b2db97ffc44e94083bbb78be14c0_2.file.product.tpl.php on line 75

Warning: Attempt to read property "value" on null in /home/sklepvid/domains/vidos-domofony.pl/public_html/var/cache/dev/smarty/compile/warehouse/22/66/a3/2266a38b45f4b2db97ffc44e94083bbb78be14c0_2.file.product.tpl.php on line 75

Warning: Trying to access array offset on value of type null in /home/sklepvid/domains/vidos-domofony.pl/public_html/var/cache/dev/smarty/compile/warehouse/22/66/a3/2266a38b45f4b2db97ffc44e94083bbb78be14c0_2.file.product.tpl.php on line 75

Warning: Undefined array key "iqitTheme" in /home/sklepvid/domains/vidos-domofony.pl/public_html/var/cache/dev/smarty/compile/warehouse/22/66/a3/2266a38b45f4b2db97ffc44e94083bbb78be14c0_2.file.product.tpl.php on line 80

Warning: Attempt to read property "value" on null in /home/sklepvid/domains/vidos-domofony.pl/public_html/var/cache/dev/smarty/compile/warehouse/22/66/a3/2266a38b45f4b2db97ffc44e94083bbb78be14c0_2.file.product.tpl.php on line 80

Warning: Trying to access array offset on value of type null in /home/sklepvid/domains/vidos-domofony.pl/public_html/var/cache/dev/smarty/compile/warehouse/22/66/a3/2266a38b45f4b2db97ffc44e94083bbb78be14c0_2.file.product.tpl.php on line 80

/home/sklepvid/domains/vidos-domofony.pl/public_html/var/cache/dev/smarty/compile/warehouselayouts_layout_left_column_tpl/c9/54/71/c9547107dc31c6d3f470a404ef435b1980df1607_2.file.layout-both-columns.tpl.php on line 415

Warning: Attempt to read property "value" on null in /home/sklepvid/domains/vidos-domofony.pl/public_html/var/cache/dev/smarty/compile/warehouselayouts_layout_left_column_tpl/c9/54/71/c9547107dc31c6d3f470a404ef435b1980df1607_2.file.layout-both-columns.tpl.php on line 415

Warning: Trying to access array offset on value of type null in /home/sklepvid/domains/vidos-domofony.pl/public_html/var/cache/dev/smarty/compile/warehouselayouts_layout_left_column_tpl/c9/54/71/c9547107dc31c6d3f470a404ef435b1980df1607_2.file.layout-both-columns.tpl.php on line 415
order-md-first"&gt;
Warning: Undefined array key "iqitTheme" in /home/sklepvid/domains/vidos-domofony.pl/public_html/var/cache/dev/smarty/compile/warehouselayouts_layout_left_column_tpl/c9/54/71/c9547107dc31c6d3f470a404ef435b1980df1607_2.file.layout-both-columns.tpl.php on line 416

Warning: Attempt to read property "value" on null in /home/sklepvid/domains/vidos-domofony.pl/public_html/var/cache/dev/smarty/compile/warehouselayouts_layout_left_column_tpl/c9/54/71/c9547107dc31c6d3f470a404ef435b1980df1607_2.file.layout-both-columns.tpl.php on line 416

Warning: Trying to access array offset on value of type null in /home/sklepvid/domains/vidos-domofony.pl/public_html/var/cache/dev/smarty/compile/warehouselayouts_layout_left_column_tpl/c9/54/71/c9547107dc31c6d3f470a404ef435b1980df1607_2.file.layout-both-columns.tpl.php on line 416

Warning: Undefined array key "iqitTheme" in /home/sklepvid/domains/vidos-domofony.pl/public_html/var/cache/dev/smarty/compile/warehouselayouts_layout_left_column_tpl/c9/54/71/c9547107dc31c6d3f470a404ef435b1980df1607_2.file.layout-both-columns.tpl.php on line 416

Warning: Attempt to read property "value" on null in /home/sklepvid/domains/vidos-domofony.pl/public_html/var/cache/dev/smarty/compile/warehouselayouts_layout_left_column_tpl/c9/54/71/c9547107dc31c6d3f470a404ef435b1980df1607_2.file.layout-both-columns.tpl.php on line 416

Warning: Trying to access array offset on value of type null in /home/sklepvid/domains/vidos-domofony.pl/public_html/var/cache/dev/smarty/compile/warehouselayouts_layout_left_column_tpl/c9/54/71/c9547107dc31c6d3f470a404ef435b1980df1607_2.file.layout-both-columns.tpl.php on line 416

Wideodomofony klasyczne wielożyłowe

Wideodomofony dwużyłowe

Wideodomofony IP

SKRZYNKA NA LISTY Z WIDEODOMOFONEM

AKCESORIA

MONITORING CCTV


Warning: Undefined array key "iqitTheme" in /home/sklepvid/domains/vidos-domofony.pl/public_html/var/cache/dev/smarty/compile/warehouselayouts_layout_left_column_tpl/85/b5/15/85b5151c1d73d19e2d015c992db761573d98d4c1_2.file.footer.tpl.php on line 31

Warning: Attempt to read property "value" on null in /home/sklepvid/domains/vidos-domofony.pl/public_html/var/cache/dev/smarty/compile/warehouselayouts_layout_left_column_tpl/85/b5/15/85b5151c1d73d19e2d015c992db761573d98d4c1_2.file.footer.tpl.php on line 31

Warning: Trying to access array offset on value of type null in /home/sklepvid/domains/vidos-domofony.pl/public_html/var/cache/dev/smarty/compile/warehouselayouts_layout_left_column_tpl/85/b5/15/85b5151c1d73d19e2d015c992db761573d98d4c1_2.file.footer.tpl.php on line 31

Warning: Undefined array key "iqitTheme" in /home/sklepvid/domains/vidos-domofony.pl/public_html/var/cache/dev/smarty/compile/warehouselayouts_layout_left_column_tpl/85/b5/15/85b5151c1d73d19e2d015c992db761573d98d4c1_2.file.footer.tpl.php on line 33

Warning: Attempt to read property "value" on null in /home/sklepvid/domains/vidos-domofony.pl/public_html/var/cache/dev/smarty/compile/warehouselayouts_layout_left_column_tpl/85/b5/15/85b5151c1d73d19e2d015c992db761573d98d4c1_2.file.footer.tpl.php on line 33

Warning: Trying to access array offset on value of type null in /home/sklepvid/domains/vidos-domofony.pl/public_html/var/cache/dev/smarty/compile/warehouselayouts_layout_left_column_tpl/85/b5/15/85b5151c1d73d19e2d015c992db761573d98d4c1_2.file.footer.tpl.php on line 33

Warning: Undefined array key "iqitTheme" in /home/sklepvid/domains/vidos-domofony.pl/public_html/var/cache/dev/smarty/compile/warehouselayouts_layout_left_column_tpl/85/b5/15/85b5151c1d73d19e2d015c992db761573d98d4c1_2.file.footer.tpl.php on line 35

Warning: Attempt to read property "value" on null in /home/sklepvid/domains/vidos-domofony.pl/public_html/var/cache/dev/smarty/compile/warehouselayouts_layout_left_column_tpl/85/b5/15/85b5151c1d73d19e2d015c992db761573d98d4c1_2.file.footer.tpl.php on line 35

Warning: Trying to access array offset on value of type null in /home/sklepvid/domains/vidos-domofony.pl/public_html/var/cache/dev/smarty/compile/warehouselayouts_layout_left_column_tpl/85/b5/15/85b5151c1d73d19e2d015c992db761573d98d4c1_2.file.footer.tpl.php on line 35

Warning: Undefined array key "iqitTheme" in /home/sklepvid/domains/vidos-domofony.pl/public_html/var/cache/dev/smarty/compile/warehouselayouts_layout_left_column_tpl/85/b5/15/85b5151c1d73d19e2d015c992db761573d98d4c1_2.file.footer.tpl.php on line 37

Warning: Attempt to read property "value" on null in /home/sklepvid/domains/vidos-domofony.pl/public_html/var/cache/dev/smarty/compile/warehouselayouts_layout_left_column_tpl/85/b5/15/85b5151c1d73d19e2d015c992db761573d98d4c1_2.file.footer.tpl.php on line 37

Warning: Trying to access array offset on value of type null in /home/sklepvid/domains/vidos-domofony.pl/public_html/var/cache/dev/smarty/compile/warehouselayouts_layout_left_column_tpl/85/b5/15/85b5151c1d73d19e2d015c992db761573d98d4c1_2.file.footer.tpl.php on line 37

Warning: Undefined array key "iqitTheme" in /home/sklepvid/domains/vidos-domofony.pl/public_html/var/cache/dev/smarty/compile/warehouselayouts_layout_left_column_tpl/85/b5/15/85b5151c1d73d19e2d015c992db761573d98d4c1_2.file.footer.tpl.php on line 39

Warning: Attempt to read property "value" on null in /home/sklepvid/domains/vidos-domofony.pl/public_html/var/cache/dev/smarty/compile/warehouselayouts_layout_left_column_tpl/85/b5/15/85b5151c1d73d19e2d015c992db761573d98d4c1_2.file.footer.tpl.php on line 39

Warning: Trying to access array offset on value of type null in /home/sklepvid/domains/vidos-domofony.pl/public_html/var/cache/dev/smarty/compile/warehouselayouts_layout_left_column_tpl/85/b5/15/85b5151c1d73d19e2d015c992db761573d98d4c1_2.file.footer.tpl.php on line 39


Warning: Undefined array key "iqitTheme" in /home/sklepvid/domains/vidos-domofony.pl/public_html/var/cache/dev/smarty/compile/warehouselayouts_layout_left_column_tpl/c9/54/71/c9547107dc31c6d3f470a404ef435b1980df1607_2.file.layout-both-columns.tpl.php on line 165

Warning: Attempt to read property "value" on null in /home/sklepvid/domains/vidos-domofony.pl/public_html/var/cache/dev/smarty/compile/warehouselayouts_layout_left_column_tpl/c9/54/71/c9547107dc31c6d3f470a404ef435b1980df1607_2.file.layout-both-columns.tpl.php on line 165

Warning: Trying to access array offset on value of type null in /home/sklepvid/domains/vidos-domofony.pl/public_html/var/cache/dev/smarty/compile/warehouselayouts_layout_left_column_tpl/c9/54/71/c9547107dc31c6d3f470a404ef435b1980df1607_2.file.layout-both-columns.tpl.php on line 165

Warning: Undefined array key "iqitTheme" in /home/sklepvid/domains/vidos-domofony.pl/public_html/var/cache/dev/smarty/compile/warehouselayouts_layout_left_column_tpl/c9/54/71/c9547107dc31c6d3f470a404ef435b1980df1607_2.file.layout-both-columns.tpl.php on line 570

Warning: Attempt to read property "value" on null in /home/sklepvid/domains/vidos-domofony.pl/public_html/var/cache/dev/smarty/compile/warehouselayouts_layout_left_column_tpl/c9/54/71/c9547107dc31c6d3f470a404ef435b1980df1607_2.file.layout-both-columns.tpl.php on line 570

Warning: Trying to access array offset on value of type null in /home/sklepvid/domains/vidos-domofony.pl/public_html/var/cache/dev/smarty/compile/warehouselayouts_layout_left_column_tpl/c9/54/71/c9547107dc31c6d3f470a404ef435b1980df1607_2.file.layout-both-columns.tpl.php on line 570

Warning: Undefined array key "iqitTheme" in /home/sklepvid/domains/vidos-domofony.pl/public_html/var/cache/dev/smarty/compile/warehouselayouts_layout_left_column_tpl/c9/54/71/c9547107dc31c6d3f470a404ef435b1980df1607_2.file.layout-both-columns.tpl.php on line 570

Warning: Attempt to read property "value" on null in /home/sklepvid/domains/vidos-domofony.pl/public_html/var/cache/dev/smarty/compile/warehouselayouts_layout_left_column_tpl/c9/54/71/c9547107dc31c6d3f470a404ef435b1980df1607_2.file.layout-both-columns.tpl.php on line 570

Warning: Trying to access array offset on value of type null in /home/sklepvid/domains/vidos-domofony.pl/public_html/var/cache/dev/smarty/compile/warehouselayouts_layout_left_column_tpl/c9/54/71/c9547107dc31c6d3f470a404ef435b1980df1607_2.file.layout-both-columns.tpl.php on line 570

Warning: Undefined array key "iqitTheme" in /home/sklepvid/domains/vidos-domofony.pl/public_html/var/cache/dev/smarty/compile/warehouselayouts_layout_left_column_tpl/c9/54/71/c9547107dc31c6d3f470a404ef435b1980df1607_2.file.layout-both-columns.tpl.php on line 575

Warning: Attempt to read property "value" on null in /home/sklepvid/domains/vidos-domofony.pl/public_html/var/cache/dev/smarty/compile/warehouselayouts_layout_left_column_tpl/c9/54/71/c9547107dc31c6d3f470a404ef435b1980df1607_2.file.layout-both-columns.tpl.php on line 575

Warning: Trying to access array offset on value of type null in /home/sklepvid/domains/vidos-domofony.pl/public_html/var/cache/dev/smarty/compile/warehouselayouts_layout_left_column_tpl/c9/54/71/c9547107dc31c6d3f470a404ef435b1980df1607_2.file.layout-both-columns.tpl.php on line 575

Warning: Undefined array key "iqitTheme" in /home/sklepvid/domains/vidos-domofony.pl/public_html/var/cache/dev/smarty/compile/warehouselayouts_layout_left_column_tpl/c9/54/71/c9547107dc31c6d3f470a404ef435b1980df1607_2.file.layout-both-columns.tpl.php on line 587

Warning: Attempt to read property "value" on null in /home/sklepvid/domains/vidos-domofony.pl/public_html/var/cache/dev/smarty/compile/warehouselayouts_layout_left_column_tpl/c9/54/71/c9547107dc31c6d3f470a404ef435b1980df1607_2.file.layout-both-columns.tpl.php on line 587

Warning: Trying to access array offset on value of type null in /home/sklepvid/domains/vidos-domofony.pl/public_html/var/cache/dev/smarty/compile/warehouselayouts_layout_left_column_tpl/c9/54/71/c9547107dc31c6d3f470a404ef435b1980df1607_2.file.layout-both-columns.tpl.php on line 587</span></pre>

<p>
	 
</p>
]]></description><guid isPermaLink="false">1105469</guid><pubDate>Thu, 12 Feb 2026 17:45:12 +0000</pubDate></item><item><title>Addon Marketing with Google not working</title><link>https://forum.prestashop.com/topic/1088595-addon-marketing-with-google-not-working/</link><description><![CDATA[<p>
	Hello,
</p>

<p>
	I'm trying to use the module(PrestaShop Marketing with Google) , but the synchronisation worked the first time and has since stopped. <br />
	In fact, there are still products that are not compliant according to Prestashop and which, according to the module, don't have a GTIN number. However, they are indicated on all the products. I'm desperately trying to re-synchronise but nothing is happening (a screenshot is attached).
</p>

<p>
	Compliant products are those added at the first synchronisation and non-compliant products are those added afterwards. Products added afterwards cannot be validated or re-synchronised.
</p>

<p>
	Prestashop: 8.0.4<br />
	Module version: 1.73.1
</p>

<p>
	I already asked support several weeks ago. I gave them full access and they replied that they had corrected the problem. But nothing has changed. I've tried to get back to them (via a reply or a new request) and they don't reply to me any more.
</p>

<p>
	 
</p>

<p>
	I have the impression that this module no longer takes product changes into account after the first synchronisation. It's as if the fields weren't selected correctly (although they are correct in the configuration).
</p>

<p>
	 
</p>

<p>
	Is there a solution to this problem? Is there another module that might work?
</p>

<p>
	 
</p>

<p>
	Thanks for your anwser.
</p>

<p><a href="//media.invisioncic.com/t336404/monthly_2024_07/produits-non-conformes.jpg.83cf3fddc142d9786caf8ec4a2699e2c.jpg" class="ipsAttachLink ipsAttachLink_image" ><img data-fileid="324733" src="https://www.prestashop.com/forums/applications/core/interface/js/spacer.png" data-src="//media.invisioncic.com/t336404/monthly_2024_07/produits-non-conformes.jpg.83cf3fddc142d9786caf8ec4a2699e2c.jpg" data-ratio="40.07" width="806" class="ipsImage ipsImage_thumbnailed" alt="produits-non-conformes.jpg"></a></p>]]></description><guid isPermaLink="false">1088595</guid><pubDate>Thu, 04 Jul 2024 05:19:32 +0000</pubDate></item><item><title>Error with ybc_blog</title><link>https://forum.prestashop.com/topic/1105630-error-with-ybc_blog/</link><description><![CDATA[<p>
	Hi everyone,<br />
	I’m using PrestaShop 1.7.6.9 with the Ecolife theme and the YBC Blog module.
</p>

<p>
	Since recently, my blog page and blog article pages are completely broken:
</p>

<p>
	The layout is shifted/misaligned
</p>

<p>
	Both sidebars disappeared
</p>

<p>
	Sliders / dynamic elements don’t work (looks like the page is not fully initialized)<br /><br /><a href="https://www.fusioneat.it/blog" rel="external nofollow">https://www.fusioneat.it/blog</a><br /><br />
	Thanks in advance
</p>
]]></description><guid isPermaLink="false">1105630</guid><pubDate>Thu, 19 Feb 2026 23:28:01 +0000</pubDate></item><item><title>Free url shortener module</title><link>https://forum.prestashop.com/topic/1105489-free-url-shortener-module/</link><description><![CDATA[<p>
	<strong>URL Shortener for PrestaShop</strong>
</p>

<p>
	Create short, custom URLs directly on your own domain.
</p>

<p>
	This PrestaShop module allows you to create shortened links (e.g., https://yourdomain.com/shoes) that permanently redirect (301) to any target URL you specify (e.g., filtered search results, specific product pages, or external links). 
</p>

<p>
	<strong>Features</strong>
</p>

<ul><li>
		Custom Short Codes: define simple paths like /promo or /summer-sale.
	</li>
	<li>
		Permanent Redirects (301): SEO-friendly redirects that pass link equity.
	</li>
	<li>
		Click Tracking: basic counter for how many times a short link has been used.
	</li>
	<li>
		Internal Management: easy-to-use interface within the PrestaShop Back Office.
	</li>
</ul><p>
	<strong>Installation</strong>
</p>

<ul><li>
		Download or clone this repository into your modules/ directory as urlshortener.
	</li>
	<li>
		Folder name must be exactly urlshortener.
	</li>
	<li>
		Log in to your PrestaShop Back Office.
	</li>
	<li>
		Go to Modules &gt; Module Manager.
	</li>
	<li>
		Search for "URL Shortener".
	</li>
	<li>
		Click Install.
	</li>
</ul><p>
	<strong>Usage</strong>
</p>

<ul><li>
		Go to the module configuration page.
	</li>
	<li>
		Add New Shortcut:
	</li>
	<li>
		Code: The short path you want (e.g., myshoes). This will be available at https://yourdomain.com/myshoes.
	</li>
	<li>
		Target URL: The full destination URL (absolute path, e.g., https://yourdomain.com/search?controller=search&amp;s=shoes).
	</li>
	<li>
		Click Save.
	</li>
	<li>
		The new short link is now active immediately.
	</li>
</ul><p>
	<strong>Disclaimer</strong>
</p>

<p>
	ASTRODESIGN.PL - 2026
</p>

<p>
	DO WHATEVER YOU WANT WITH THIS MODULE JUST DON'T SELL IT<br /><br />
	download link: <a href="https://github.com/kn00pers/prestashop-url-shortener" rel="external nofollow">https://github.com/kn00pers/prestashop-url-shortener</a>
</p>
]]></description><guid isPermaLink="false">1105489</guid><pubDate>Fri, 13 Feb 2026 09:10:56 +0000</pubDate></item><item><title>Set default language by visitor country (IP-based) in PrestaShop</title><link>https://forum.prestashop.com/topic/1105284-set-default-language-by-visitor-country-ip-based-in-prestashop/</link><description><![CDATA[<p>
	By default, PrestaShop selects the language based on the browser language.<br />
	This can be a problem when most visitors are from one country but use English browsers.
</p>

<p>
	Below is a simple approach to set the default language based on the visitor’s country detected from IP, instead of relying only on HTTP_ACCEPT_LANGUAGE.
</p>

<p>
	<strong>How it works</strong>
</p>

<ul><li>
		Detect visitor IP
	</li>
	<li>
		Resolve country from IP
	</li>
	<li>
		Map country → language
	</li>
	<li>
		Set language in cookie before page rendering
	</li>
</ul><p>
	<strong>Example PHP code</strong><br />
	 
</p>

<pre class="ipsCode prettyprint lang-php prettyprinted"><span class="pln">$ip </span><span class="pun">=</span><span class="pln"> </span><span class="typ">Tools</span><span class="pun">::</span><span class="pln">getRemoteAddr</span><span class="pun">();</span><span class="pln">

$response </span><span class="pun">=</span><span class="pln"> file_get_contents</span><span class="pun">(</span><span class="pln">
    </span><span class="str">'https://api.ipgeolocation.io/v2/ipgeo?apiKey=YOUR_API_KEY&amp;ip='</span><span class="pln"> </span><span class="pun">.</span><span class="pln"> $ip
</span><span class="pun">);</span><span class="pln">

</span><span class="kwd">if</span><span class="pln"> </span><span class="pun">(</span><span class="pln">$response </span><span class="pun">!==</span><span class="pln"> </span><span class="kwd">false</span><span class="pun">)</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
    $data </span><span class="pun">=</span><span class="pln"> json_decode</span><span class="pun">(</span><span class="pln">$response</span><span class="pun">,</span><span class="pln"> </span><span class="kwd">true</span><span class="pun">);</span><span class="pln">

    </span><span class="kwd">if</span><span class="pln"> </span><span class="pun">(!</span><span class="pln">empty</span><span class="pun">(</span><span class="pln">$data</span><span class="pun">[</span><span class="str">'location'</span><span class="pun">][</span><span class="str">'country_code2'</span><span class="pun">]))</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
        $countryCode </span><span class="pun">=</span><span class="pln"> strtolower</span><span class="pun">(</span><span class="pln">$data</span><span class="pun">[</span><span class="str">'location'</span><span class="pun">][</span><span class="str">'country_code2'</span><span class="pun">]);</span><span class="pln">

        </span><span class="com">// Example mapping: Vietnam -&gt; Vietnamese</span><span class="pln">
        </span><span class="kwd">if</span><span class="pln"> </span><span class="pun">(</span><span class="pln">$countryCode </span><span class="pun">===</span><span class="pln"> </span><span class="str">'vn'</span><span class="pun">)</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
            $lang </span><span class="pun">=</span><span class="pln"> </span><span class="typ">Language</span><span class="pun">::</span><span class="pln">getLanguageByIETFCode</span><span class="pun">(</span><span class="str">'vi'</span><span class="pun">);</span><span class="pln">

            </span><span class="kwd">if</span><span class="pln"> </span><span class="pun">(</span><span class="pln">$lang </span><span class="pun">&amp;&amp;</span><span class="pln"> $lang</span><span class="pun">-&gt;</span><span class="pln">active</span><span class="pun">)</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
                </span><span class="typ">Context</span><span class="pun">::</span><span class="pln">getContext</span><span class="pun">()-&gt;</span><span class="pln">cookie</span><span class="pun">-&gt;</span><span class="pln">id_lang </span><span class="pun">=</span><span class="pln"> </span><span class="pun">(</span><span class="kwd">int</span><span class="pun">)</span><span class="pln"> $lang</span><span class="pun">-&gt;</span><span class="pln">id</span><span class="pun">;</span><span class="pln">
                </span><span class="typ">Context</span><span class="pun">::</span><span class="pln">getContext</span><span class="pun">()-&gt;</span><span class="pln">language </span><span class="pun">=</span><span class="pln"> $lang</span><span class="pun">;</span><span class="pln">
            </span><span class="pun">}</span><span class="pln">
        </span><span class="pun">}</span><span class="pln">
    </span><span class="pun">}</span><span class="pln">
</span><span class="pun">}</span></pre>

<p>
	You will need an API key from <a href="https://ipgeolocation.io/" rel="external nofollow">ipgeolocation.io</a> to run this example.<br />
	The free plan allows up to 1,000 requests per day; higher usage requires an upgrade.
</p>

<p>
	<strong>Notes</strong>
</p>

<ul><li>
		You should cache the detected language in a cookie or session to avoid calling the API on every request.
	</li>
	<li>
		This logic can also be extended for:
		<ul><li>
				Currency selection
			</li>
			<li>
				Country-based shipping rules
			</li>
			<li>
				Store redirection
			</li>
		</ul></li>
</ul><p>
	This approach works well when browser language does not represent the user’s actual location.
</p>
]]></description><guid isPermaLink="false">1105284</guid><pubDate>Wed, 04 Feb 2026 10:22:18 +0000</pubDate></item><item><title>How to verify PrestaShop session officially ?</title><link>https://forum.prestashop.com/topic/1105230-how-to-verify-prestashop-session-officially/</link><description><![CDATA[<p>
	Hi,
</p>

<p>
	I'm developing an online module. This module will send request to my servers. I want to verify the session and domain of the shop in my servers. I noticed there's a [VERIFY YOUR STORE] function in Marketplace and I guess I can verify session by PrestaShop officially but failed to find how to do that. Is there any way to verify PrestaShop session and domain officially?
</p>
]]></description><guid isPermaLink="false">1105230</guid><pubDate>Mon, 02 Feb 2026 10:29:29 +0000</pubDate></item><item><title>Fix duplicated total_paid_real values with KbEbay / KbEtsy</title><link>https://forum.prestashop.com/topic/1104876-fix-duplicated-total_paid_real-values-with-kbebay-kbetsy/</link><description><![CDATA[<p>
	Hi everyone,
</p>

<p>
	Some PrestaShop shops using KbEbay or KbEtsy may encounter an issue where<br />
	imported orders contain duplicated values in the total_paid_real field.
</p>

<p>
	To solve this, I’ve released a small PrestaShop admin module that fixes<br />
	this problem in one click, directly from the Back Office.
</p>

<p>
	• Safe &amp; non-destructive<br />
	• One-click fix<br />
	• Compatible with PrestaShop 1.7 – 9.x
</p>

<p>
	More details here:<br /><a href="https://corsinu2b.gumroad.com/l/aqbdyh" rel="external nofollow">https://corsinu2b.gumroad.com/l/aqbdyh</a>
</p>

<p>
	Hope this helps some of you.
</p>

<p>
	GitHub: <a href="https://github.com/corsinu2b/prestashop-fix-kbebay-orders" rel="external nofollow">https://github.com/corsinu2b/prestashop-fix-kbebay-orders</a>
</p>
]]></description><guid isPermaLink="false">1104876</guid><pubDate>Sun, 18 Jan 2026 11:40:56 +0000</pubDate></item><item><title>PrestaShop 8.2.3 + Amazzing Filter.</title><link>https://forum.prestashop.com/topic/1104868-prestashop-823-amazzing-filter/</link><description><![CDATA[<p>
	On first category page load, PrestaShop renders the default product listing and default sorting (SSR $listing.sort_orders / $listing.sort_selected).<br />
	Amazzing Filter takes over only after user interaction (clicking any filter or sorting option) via AJAX (getFilteredProducts).
</p>

<p>
	However, when I enable PrestaShop debug/profiling mode, it works correctly — Amazzing Filter takes over immediately on the first category load and the listing data differs (e.g. $listing.products|count is 24 in normal mode, but 48 in debug/profiling mode, and the default sorting changes to “Relevance”).
</p>

<p>
	I can force the initial AF takeover by calling:
</p>

<p>
	af.loadProducts('init', true)
</p>

<p>
	on page load, but I want AF to handle the listing immediately without showing the default PrestaShop listing/sorting first.
</p>

<p>
	Important notes / environment:
</p>

<p>
	Cache is disabled (also tested with PrestaShop cache OFF)
</p>

<p>
	LiteSpeed Cache module installed, but disabled (issue still happens)
</p>

<p>
	ps_facetedsearch is disabled/removed
</p>

<p>
	Tested with other modules disabled as well (issue still happens)
</p>

<p>
	I’m using an SEO module: SeoPro - All-In-One SEO &amp; URL - Advanced
</p>

<p>
	Is there any official setting / recommended way to make Amazzing Filter replace the SSR listing, or trigger the initial AJAX load automatically on first page load?
</p>
]]></description><guid isPermaLink="false">1104868</guid><pubDate>Sat, 17 Jan 2026 14:08:18 +0000</pubDate></item><item><title>Creating a simple module distributors data feed</title><link>https://forum.prestashop.com/topic/1089883-creating-a-simple-module-distributors-data-feed/</link><description><![CDATA[<p>
	I need help with creating a module for taking my distributors datafeed .csv file and scrapping the product image URL’s and product descriptions from their product number and importing the products. I have been doing this manually with .csv files but it’s tedious when there is nearly 5000 products. 
</p>
]]></description><guid isPermaLink="false">1089883</guid><pubDate>Thu, 22 Aug 2024 03:27:59 +0000</pubDate></item><item><title>The easiest way to toggle debug mode conditionally using a cookie</title><link>https://forum.prestashop.com/topic/1104636-the-easiest-way-to-toggle-debug-mode-conditionally-using-a-cookie/</link><description><![CDATA[<p>
	In PrestaShop 9, you can define a cookie that controls the debug mode.
</p>

<p>
	Thus, you don't have to enable debug mode for everyone and potentially cause disruption and you do not have to edit any file manually to setup a debug condition.
</p>

<p>
	Using the Xdebug Chrome Extension, you can easily toggle the XDEBUG_SESSION cookie and enable the debug mode only for you.
</p>

<p>
	I made a short video to show you this simple trick directly
</p>

<div class="ipsEmbeddedVideo" contenteditable="false">
	<div>
		<iframe allowfullscreen="" frameborder="0" height="113" src="https://www.youtube-nocookie.com/embed/hPY3jQTyPuo?feature=oembed" title="The easiest way to toggle PrestaShop debug mode using a cookie" width="200"></iframe>
	</div>
</div>

<p>
	<strong>Cookie name:</strong>
</p>

<p>
	XDEBUG_SESSION
</p>

<p>
	(Other possible values: <em>XDEBUG_TRACE</em> / <em>XDEBUG_PROFILE</em>)
</p>

<p>
	<strong>Cookie value:</strong> Any password-like value of your choice. This will prevent others from seeing your shop in debug mode.
</p>

<p>
	<strong>Extension name:</strong> Xdebug Chrome Extension / There is also "Xdebug Helper by JetBrains" / Xdebug Helper for Firefox
</p>

<p>
	I used <strong>PrestaShop 9.0.2</strong> to demonstrate this. Older versions might not have this feature.
</p>
]]></description><guid isPermaLink="false">1104636</guid><pubDate>Wed, 07 Jan 2026 11:02:00 +0000</pubDate></item><item><title>Translating English text to other languages inside module not working / Solved</title><link>https://forum.prestashop.com/topic/1104512-translating-english-text-to-other-languages-inside-module-not-working-solved/</link><description><![CDATA[<p>
	Prestashop 8.2.3<br />
	New translation system
</p>

<p>
	I try to translate English text to other languages inside module:
</p>

<pre class="ipsCode prettyprint lang-php prettyprinted"><span class="pln">$language </span><span class="pun">=</span><span class="pln"> </span><span class="str">'pl-PL'</span><span class="pun">;</span><span class="pln">
$translation_en_US </span><span class="pun">=</span><span class="pln"> </span><span class="str">'new element'</span><span class="pun">;</span><span class="pln">
$translation_pl_PL </span><span class="pun">=</span><span class="pln"> </span><span class="typ">Context</span><span class="pun">::</span><span class="pln">getContext</span><span class="pun">()-&gt;</span><span class="pln">getTranslator</span><span class="pun">()-&gt;</span><span class="pln">trans</span><span class="pun">(</span><span class="pln">$translation_en_US</span><span class="pun">,</span><span class="pln"> </span><span class="pun">[],</span><span class="pln"> </span><span class="str">'Modules.Mymodule.Myfile'</span><span class="pun">,</span><span class="pln"> $language</span><span class="pun">);</span></pre>

<p>
	and I always get English version of the text. It does not matter which English text I try to translate, it does not work.
</p>

<p>
	Other automatic translations of the string 'new element' to front side and back office work good.
</p>

<p>
	All other automatic translations of the strings to front side and back office work good.
</p>

<p>
	Possibly I can use a function: getModuleTranslation<br />
	from the file: <a href="https://github.com/PrestaShop/PrestaShop/blob/8.2.x/classes/Translate.php" rel="external nofollow">https://github.com/PrestaShop/PrestaShop/blob/8.2.x/classes/Translate.php</a><br />
	but I am not sure how.
</p>

<p>
	I can write my own function to translate, for example like this:<br /><a href="https://github.com/PrestaShop/PrestaShop/issues/13024" rel="external nofollow">https://github.com/PrestaShop/PrestaShop/issues/13024</a>
</p>

<p>
	How can I solve this problem?
</p>

<p>
	 
</p>

<p>
	 
</p>
]]></description><guid isPermaLink="false">1104512</guid><pubDate>Fri, 02 Jan 2026 16:51:18 +0000</pubDate></item><item><title>Allow displaying html in customization summary / Solved</title><link>https://forum.prestashop.com/topic/1104176-allow-displaying-html-in-customization-summary-solved/</link><description><![CDATA[<p>
	Hello,
</p>

<p>
	I use html tags in a <strong>string</strong> that my module display using hookDisplayCustomization.
</p>

<p>
	Prestashop 8.2.3 display this <strong>string</strong> in FO cart/order correctly.
</p>

<p>
	In BO I see this <strong>string</strong> in one line with html tags like &lt;br /&gt;.<br />
	admin/index.php/sell/orders/???/view<br />
	admin/index.php/sell/orders/carts/??/view
</p>

<p>
	The problem can be solved by adding "| raw" to a twig files but it is not a safe solution.<br /><a href="https://github.com/PrestaShop/PrestaShop/pull/22227/commits/0ef8c5aaa5bdb574e126687834979e2b7cb75b93" rel="external nofollow">https://github.com/PrestaShop/PrestaShop/pull/22227/commits/0ef8c5aaa5bdb574e126687834979e2b7cb75b93</a>
</p>

<p>
	How to solve this problem safe? I want to display customization in BO broken into many lines but I can't use tag &lt;br/&gt;.
</p>

<p>
	My dh_cart_order_details.tpl file to create that <strong>string:</strong>
</p>

<pre class="ipsCode prettyprint lang-html prettyprinted"><span class="tag">&lt;div</span><span class="pln"> </span><span class="atn">id</span><span class="pun">=</span><span class="atv">"order_details"</span><span class="tag">&gt;</span><span class="pln">
    {foreach from=$order_details item=order_detail key=order_detailKey}
        {if $order_detail.do_not_display != 1}  
            {if $order_detail.main_group_id == link}
                </span><span class="tag">&lt;span&gt;</span><span class="pln">{$order_detail.value_name|unescape: "html" nofilter}</span><span class="tag">&lt;/span&gt;&lt;br</span><span class="pln"> </span><span class="tag">/&gt;</span><span class="pln">
            {else}
                </span><span class="tag">&lt;span&gt;</span><span class="pln">{$order_detail.main_group_name}: {$order_detail.value_name}</span><span class="tag">&lt;/span&gt;&lt;br</span><span class="pln"> </span><span class="tag">/&gt;</span><span class="pln">
            {/if}

        {/if}
    {/foreach}
</span><span class="tag">&lt;/div&gt;</span><span class="pln"> </span></pre>

<p>
	Anyone has an idea how to solve this problem safe? I do not want to generate an image with text to display in BO.
</p>
]]></description><guid isPermaLink="false">1104176</guid><pubDate>Wed, 17 Dec 2025 05:57:21 +0000</pubDate></item><item><title>Combinations Help</title><link>https://forum.prestashop.com/topic/1104232-combinations-help/</link><description><![CDATA[<p>
	We've upgraded to prestashop 8.2.1 and since then we have had issues updating our combinations. Our products already have lots of combinations and editing one has become a problem because we have to edit each combination connected one by one which can be 100's sometimes. Does anyone have a simple solution? The older versions of prestashop were easy to use for combinations where you just edit the one combination and then regenerate the rest. Is there a module that can do this the old way again? Thank you
</p>
]]></description><guid isPermaLink="false">1104232</guid><pubDate>Thu, 18 Dec 2025 21:46:12 +0000</pubDate></item><item><title>SEO Friendly URL not working when switching Language</title><link>https://forum.prestashop.com/topic/1092570-seo-friendly-url-not-working-when-switching-language/</link><description><![CDATA[<p>
	Hi guys,<br /><br />
	I am currently working on a custom module and I am having a problem with the SEO friendly URLs. If I go directly to my page recepies mysite.com/si/recepti/sladice/jabolcni-strudel it works fine, but when I change the language with the prestashop default language switcher to lets say italian it displays the italian version of the recipe but my url is not mysite.com/it/recepti/desset/strudel-di-mele but it is mysite.com/it/module/recipes/recipe?category_rewrite=dessert&amp;rewrite=strudel-di-mele <br />
	Can someone please help me solve this. I am attaching my code:<br />
	 
</p>

<pre class="ipsCode prettyprint lang-php prettyprinted"><span class="pln"> </span><span class="com">// Here is my routes method in main module file:</span><span class="pln">
  </span><span class="kwd">public</span><span class="pln"> </span><span class="kwd">function</span><span class="pln"> hookModuleRoutes</span><span class="pun">(</span><span class="pln">$params</span><span class="pun">)</span><span class="pln">
    </span><span class="pun">{</span><span class="pln">

     </span><span class="kwd">return</span><span class="pln"> </span><span class="pun">[</span><span class="pln">
         </span><span class="str">'recipes-recipe'</span><span class="pln"> </span><span class="pun">=&gt;</span><span class="pln"> </span><span class="pun">[</span><span class="pln">
            </span><span class="str">'controller'</span><span class="pln"> </span><span class="pun">=&gt;</span><span class="pln"> </span><span class="str">'recipe'</span><span class="pun">,</span><span class="pln">
            </span><span class="str">'rule'</span><span class="pln"> </span><span class="pun">=&gt;</span><span class="pln"> </span><span class="str">'recepti/{category_rewrite}/{rewrite}'</span><span class="pun">,</span><span class="pln">
            </span><span class="str">'keywords'</span><span class="pln"> </span><span class="pun">=&gt;</span><span class="pln"> </span><span class="pun">[</span><span class="pln">
                </span><span class="str">'category_rewrite'</span><span class="pln"> </span><span class="pun">=&gt;</span><span class="pln"> </span><span class="pun">[</span><span class="pln">
                    </span><span class="str">'regexp'</span><span class="pln"> </span><span class="pun">=&gt;</span><span class="pln"> </span><span class="str">'[_a-zA-Z0-9-\pL]*'</span><span class="pun">,</span><span class="pln">
                    </span><span class="str">'param'</span><span class="pln"> </span><span class="pun">=&gt;</span><span class="pln"> </span><span class="str">'category_rewrite'</span><span class="pln">
                </span><span class="pun">],</span><span class="pln">
                </span><span class="str">'rewrite'</span><span class="pln"> </span><span class="pun">=&gt;</span><span class="pln"> </span><span class="pun">[</span><span class="pln">
                    </span><span class="str">'regexp'</span><span class="pln"> </span><span class="pun">=&gt;</span><span class="pln"> </span><span class="str">'[_a-zA-Z0-9-\pL]*'</span><span class="pun">,</span><span class="pln">
                    </span><span class="str">'param'</span><span class="pln"> </span><span class="pun">=&gt;</span><span class="pln"> </span><span class="str">'rewrite'</span><span class="pln">
                </span><span class="pun">],</span><span class="pln">
            </span><span class="pun">],</span><span class="pln">
            </span><span class="str">'params'</span><span class="pln"> </span><span class="pun">=&gt;</span><span class="pln"> </span><span class="pun">[</span><span class="pln">
                </span><span class="str">'fc'</span><span class="pln"> </span><span class="pun">=&gt;</span><span class="pln"> </span><span class="str">'module'</span><span class="pun">,</span><span class="pln">
                </span><span class="str">'module'</span><span class="pln"> </span><span class="pun">=&gt;</span><span class="pln"> </span><span class="str">'recipes'</span><span class="pun">,</span><span class="pln">
                </span><span class="str">'controller'</span><span class="pln"> </span><span class="pun">=&gt;</span><span class="pln"> </span><span class="str">'recipe'</span><span class="pun">,</span><span class="pln">
            </span><span class="pun">],</span><span class="pln">
        </span><span class="pun">]</span><span class="pln">
    </span><span class="pun">}</span><span class="pln">

</span><span class="com">// Here is my frontcontroller code:</span><span class="pln">
 
 </span><span class="kwd">public</span><span class="pln"> $category_rewrite</span><span class="pun">;</span><span class="pln">
    </span><span class="kwd">public</span><span class="pln"> $rewrite</span><span class="pun">;</span><span class="pln">

      </span><span class="kwd">public</span><span class="pln"> </span><span class="kwd">function</span><span class="pln"> init</span><span class="pun">()</span><span class="pln">
    </span><span class="pun">{</span><span class="pln">
        parent</span><span class="pun">::</span><span class="pln">init</span><span class="pun">();</span><span class="pln">
        $this</span><span class="pun">-&gt;</span><span class="pln">rewrite </span><span class="pun">=</span><span class="pln"> </span><span class="typ">Tools</span><span class="pun">::</span><span class="pln">getValue</span><span class="pun">(</span><span class="str">'rewrite'</span><span class="pun">);</span><span class="pln">
        $this</span><span class="pun">-&gt;</span><span class="pln">category_rewrite </span><span class="pun">=</span><span class="pln"> </span><span class="typ">Tools</span><span class="pun">::</span><span class="pln">getValue</span><span class="pun">(</span><span class="str">'category_rewrite'</span><span class="pun">);</span><span class="pln">
    </span><span class="pun">}</span><span class="pln">
   </span><span class="kwd">public</span><span class="pln"> </span><span class="kwd">function</span><span class="pln"> initContent</span><span class="pun">()</span><span class="pln">
    </span><span class="pun">{</span><span class="pln">
        parent</span><span class="pun">::</span><span class="pln">initContent</span><span class="pun">();</span><span class="pln">

        $id_lang </span><span class="pun">=</span><span class="pln"> $this</span><span class="pun">-&gt;</span><span class="pln">context</span><span class="pun">-&gt;</span><span class="pln">language</span><span class="pun">-&gt;</span><span class="pln">id</span><span class="pun">;</span><span class="pln">

        $data </span><span class="pun">=</span><span class="pln"> </span><span class="typ">Db</span><span class="pun">::</span><span class="pln">getInstance</span><span class="pun">()-&gt;</span><span class="pln">getRow</span><span class="pun">(</span><span class="str">"
            SELECT n.*, nl.*
            FROM "</span><span class="pun">.</span><span class="pln">_DB_PREFIX_</span><span class="pun">.</span><span class="str">"recipe n
            INNER JOIN "</span><span class="pun">.</span><span class="pln">_DB_PREFIX_</span><span class="pun">.</span><span class="str">"recipe_lang nl
                ON n.id_recipe = nl.id_recipe
                AND nl.id_lang = "</span><span class="pun">.(</span><span class="kwd">int</span><span class="pun">)</span><span class="pln">$id_lang</span><span class="pun">.</span><span class="str">"
            WHERE nl.slug = '"</span><span class="pun">.</span><span class="pln">pSQL</span><span class="pun">(</span><span class="pln">$this</span><span class="pun">-&gt;</span><span class="pln">rewrite</span><span class="pun">).</span><span class="str">"'
            AND n.active = 1"</span><span class="pln">
        </span><span class="pun">);</span><span class="pln">


        </span><span class="kwd">if</span><span class="pln"> </span><span class="pun">(!</span><span class="pln">$data</span><span class="pun">)</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
            $original_post </span><span class="pun">=</span><span class="pln"> </span><span class="typ">Db</span><span class="pun">::</span><span class="pln">getInstance</span><span class="pun">()-&gt;</span><span class="pln">getRow</span><span class="pun">(</span><span class="str">"
                SELECT n.id_recipe
                FROM "</span><span class="pun">.</span><span class="pln">_DB_PREFIX_</span><span class="pun">.</span><span class="str">"recipe n
                INNER JOIN "</span><span class="pun">.</span><span class="pln">_DB_PREFIX_</span><span class="pun">.</span><span class="str">"recipe_lang nl
                    ON n.id_recipe = nl.recipe
                WHERE nl.slug = '"</span><span class="pun">.</span><span class="pln">pSQL</span><span class="pun">(</span><span class="pln">$this</span><span class="pun">-&gt;</span><span class="pln">rewrite</span><span class="pun">).</span><span class="str">"'
                AND n.active = 1"</span><span class="pln">
            </span><span class="pun">);</span><span class="pln">

            </span><span class="kwd">if</span><span class="pln"> </span><span class="pun">(</span><span class="pln">$original_post</span><span class="pun">)</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
                </span><span class="com">// Get the post in the current language</span><span class="pln">
                $data </span><span class="pun">=</span><span class="pln"> </span><span class="typ">Db</span><span class="pun">::</span><span class="pln">getInstance</span><span class="pun">()-&gt;</span><span class="pln">getRow</span><span class="pun">(</span><span class="str">"
                    SELECT n.*, nl.*,nl.slug as post_slug, kl.slug as category_slug
                    FROM "</span><span class="pun">.</span><span class="pln">_DB_PREFIX_</span><span class="pun">.</span><span class="str">"recipe n
                    INNER JOIN "</span><span class="pun">.</span><span class="pln">_DB_PREFIX_</span><span class="pun">.</span><span class="str">"recipe_lang nl
                    ON n.id_recipe = nl.id_recipe
                    INNER JOIN "</span><span class="pun">.</span><span class="pln">_DB_PREFIX_</span><span class="pun">.</span><span class="str">"recipe_category_lang kl
                     ON n.id_cat = kl.id_cat
                    WHERE n.id_recipe = "</span><span class="pun">.(</span><span class="kwd">int</span><span class="pun">)</span><span class="pln">$original_post</span><span class="pun">[</span><span class="str">'id_recipe'</span><span class="pun">].</span><span class="str">"
                  AND nl.id_lang = "</span><span class="pun">.(</span><span class="kwd">int</span><span class="pun">)</span><span class="pln">$id_lang</span><span class="pun">.</span><span class="str">"
                   AND kl.id_lang = "</span><span class="pun">.(</span><span class="kwd">int</span><span class="pun">)</span><span class="pln">$id_lang</span><span class="pun">.</span><span class="str">"
                   AND n.active = 1"</span><span class="pln">
                </span><span class="pun">);</span><span class="pln">

                </span><span class="kwd">if</span><span class="pln"> </span><span class="pun">(</span><span class="pln">$data</span><span class="pun">)</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
                  
                    </span><span class="typ">Tools</span><span class="pun">::</span><span class="pln">redirect</span><span class="pun">(</span><span class="pln">$this</span><span class="pun">-&gt;</span><span class="pln">context</span><span class="pun">-&gt;</span><span class="pln">link</span><span class="pun">-&gt;</span><span class="pln">getModuleLink</span><span class="pun">(</span><span class="pln">
                        </span><span class="str">'recipes'</span><span class="pun">,</span><span class="pln">
                        </span><span class="str">'recipe'</span><span class="pun">,</span><span class="pln">
                        </span><span class="pun">[</span><span class="str">'category_rewrite'</span><span class="pln"> </span><span class="pun">=&gt;</span><span class="pln"> $data</span><span class="pun">[</span><span class="str">'category_slug'</span><span class="pun">],</span><span class="pln">
                         </span><span class="str">'rewrite'</span><span class="pln"> </span><span class="pun">=&gt;</span><span class="pln"> $data</span><span class="pun">[</span><span class="str">'post_slug'</span><span class="pun">]</span><span class="pln">
                        </span><span class="pun">],</span><span class="pln">
                        </span><span class="kwd">true</span><span class="pun">,</span><span class="pln">
                        $id_lang
                    </span><span class="pun">));</span><span class="pln">
                </span><span class="pun">}</span><span class="pln">
            </span><span class="pun">}</span><span class="pln">
        </span><span class="pun">}</span><span class="pln">

  $alternate_links </span><span class="pun">=</span><span class="pln"> </span><span class="pun">[];</span><span class="pln">
        $languages </span><span class="pun">=</span><span class="pln"> </span><span class="typ">Language</span><span class="pun">::</span><span class="pln">getLanguages</span><span class="pun">(</span><span class="kwd">true</span><span class="pun">);</span><span class="pln">
        </span><span class="kwd">foreach</span><span class="pln"> </span><span class="pun">(</span><span class="pln">$languages </span><span class="kwd">as</span><span class="pln"> $language</span><span class="pun">)</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
            $post_in_lang </span><span class="pun">=</span><span class="pln"> </span><span class="typ">Db</span><span class="pun">::</span><span class="pln">getInstance</span><span class="pun">()-&gt;</span><span class="pln">getRow</span><span class="pun">(</span><span class="str">"
              SELECT nl.slug as post_slug, kl.slug as category_slug
                FROM "</span><span class="pun">.</span><span class="pln">_DB_PREFIX_</span><span class="pun">.</span><span class="str">"recipe n
                INNER JOIN "</span><span class="pun">.</span><span class="pln">_DB_PREFIX_</span><span class="pun">.</span><span class="str">"recipe_lang nl
                ON n.id_recipe = nl.id_recipe
                INNER JOIN "</span><span class="pun">.</span><span class="pln">_DB_PREFIX_</span><span class="pun">.</span><span class="str">"recipe_category_lang kl
                ON kl.id_cat = n.id_cat
                WHERE nl.id_recipe = "</span><span class="pun">.(</span><span class="kwd">int</span><span class="pun">)</span><span class="pln">$data</span><span class="pun">[</span><span class="str">'id_recipe'</span><span class="pun">].</span><span class="str">"
             AND nl.id_lang = "</span><span class="pun">.(</span><span class="kwd">int</span><span class="pun">)</span><span class="pln">$language</span><span class="pun">[</span><span class="str">'id_lang'</span><span class="pun">].</span><span class="str">"
              AND kl.id_lang = "</span><span class="pun">.(</span><span class="kwd">int</span><span class="pun">)</span><span class="pln">$language</span><span class="pun">[</span><span class="str">'id_lang'</span><span class="pun">]</span><span class="pln">
            </span><span class="pun">);</span><span class="pln">

            </span><span class="kwd">if</span><span class="pln"> </span><span class="pun">(</span><span class="pln">$post_in_lang</span><span class="pun">)</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
                $alternate_links</span><span class="pun">[</span><span class="pln">$language</span><span class="pun">[</span><span class="str">'id_lang'</span><span class="pun">]]</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span class="pun">[</span><span class="pln">
                    </span><span class="str">'href'</span><span class="pln"> </span><span class="pun">=&gt;</span><span class="pln"> $this</span><span class="pun">-&gt;</span><span class="pln">context</span><span class="pun">-&gt;</span><span class="pln">link</span><span class="pun">-&gt;</span><span class="pln">getModuleLink</span><span class="pun">(</span><span class="pln">
                        </span><span class="str">'recipes'</span><span class="pun">,</span><span class="pln">
                        </span><span class="str">'recipe'</span><span class="pun">,</span><span class="pln">
                        </span><span class="pun">[</span><span class="str">'category_rewrite'</span><span class="pln"> </span><span class="pun">=&gt;</span><span class="pln"> $post_in_lang</span><span class="pun">[</span><span class="str">'category_slug'</span><span class="pun">],</span><span class="pln">
                        </span><span class="str">'rewrite'</span><span class="pln"> </span><span class="pun">=&gt;</span><span class="pln"> $post_in_lang</span><span class="pun">[</span><span class="str">'slug'</span><span class="pun">]],</span><span class="pln">

                        </span><span class="kwd">true</span><span class="pun">,</span><span class="pln">
                        $language</span><span class="pun">[</span><span class="str">'id_lang'</span><span class="pun">]</span><span class="pln">
                    </span><span class="pun">),</span><span class="pln">
                    </span><span class="str">'iso_code'</span><span class="pln"> </span><span class="pun">=&gt;</span><span class="pln"> $language</span><span class="pun">[</span><span class="str">'iso_code'</span><span class="pun">],</span><span class="pln">
                    </span><span class="str">'lang_id'</span><span class="pln"> </span><span class="pun">=&gt;</span><span class="pln"> $language</span><span class="pun">[</span><span class="str">'id_lang'</span><span class="pun">],</span><span class="pln">
                    </span><span class="str">'name'</span><span class="pln"> </span><span class="pun">=&gt;</span><span class="pln"> $language</span><span class="pun">[</span><span class="str">'name'</span><span class="pun">]</span><span class="pln">
                </span><span class="pun">];</span><span class="pln">
            </span><span class="pun">}</span><span class="pln">
        </span><span class="pun">}</span><span class="pln">
        $this</span><span class="pun">-&gt;</span><span class="pln">registerLanguageUrls</span><span class="pun">(</span><span class="pln">$alternate_links</span><span class="pun">);</span><span class="pln">

</span><span class="pun">}</span><span class="pln">
 </span><span class="kwd">protected</span><span class="pln"> </span><span class="kwd">function</span><span class="pln"> registerLanguageUrls</span><span class="pun">(</span><span class="pln">$alternate_links</span><span class="pun">)</span><span class="pln">
    </span><span class="pun">{</span><span class="pln">
        $languages </span><span class="pun">=</span><span class="pln"> </span><span class="typ">Language</span><span class="pun">::</span><span class="pln">getLanguages</span><span class="pun">(</span><span class="kwd">true</span><span class="pun">);</span><span class="pln">
        $links </span><span class="pun">=</span><span class="pln"> </span><span class="pun">[];</span><span class="pln">

        </span><span class="kwd">foreach</span><span class="pln"> </span><span class="pun">(</span><span class="pln">$languages </span><span class="kwd">as</span><span class="pln"> $lang</span><span class="pun">)</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
            </span><span class="kwd">if</span><span class="pln"> </span><span class="pun">(</span><span class="pln">isset</span><span class="pun">(</span><span class="pln">$alternate_links</span><span class="pun">[</span><span class="pln">$lang</span><span class="pun">[</span><span class="str">'id_lang'</span><span class="pun">]]))</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
                $links</span><span class="pun">[</span><span class="pln">$lang</span><span class="pun">[</span><span class="str">'id_lang'</span><span class="pun">]]</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> $alternate_links</span><span class="pun">[</span><span class="pln">$lang</span><span class="pun">[</span><span class="str">'id_lang'</span><span class="pun">]][</span><span class="str">'href'</span><span class="pun">];</span><span class="pln">
            </span><span class="pun">}</span><span class="pln">
        </span><span class="pun">}</span><span class="pln">
        $this</span><span class="pun">-&gt;</span><span class="pln">context</span><span class="pun">-&gt;</span><span class="pln">link</span><span class="pun">-&gt;</span><span class="pln">lang_links </span><span class="pun">=</span><span class="pln"> $links</span><span class="pun">;</span><span class="pln">
    </span><span class="pun">}</span></pre>

<p>
	 
</p>
]]></description><guid isPermaLink="false">1092570</guid><pubDate>Tue, 19 Nov 2024 08:01:27 +0000</pubDate></item><item><title>All Variables getting HTML escaped in my module in prestashop 1.7 causing module not work</title><link>https://forum.prestashop.com/topic/540615-all-variables-getting-html-escaped-in-my-module-in-prestashop-17-causing-module-not-work/</link><description><![CDATA[
<p>Dear Guys,</p>
<p>All Variables getting <strong>HTML escaped </strong>in my module in prestashop 1.7 causing module not work.Does anyone know how to fix this issue?</p>
<p> </p>
<p>Even variables that are not supposed to be HTML escaped are getting escaped and getting<strong> printed as text.</strong>How do I make prestashop aware about this issue?Please advice</p>
]]></description><guid isPermaLink="false">540615</guid><pubDate>Mon, 04 Jul 2016 16:28:09 +0000</pubDate></item><item><title><![CDATA["Product Sticker & Label Addon" by Knowband and Creative Elements]]></title><link>https://forum.prestashop.com/topic/1103230-product-sticker-label-addon-by-knowband-and-creative-elements/</link><description><![CDATA[<p>
	Hi guys,
</p>

<p>
	I use Creative Elements and I need to put a stickers on image of some products. So I had installed "Product Sticker &amp; Label Addon" by Knowband but don't work. I put all the combination of css class of Elements in Label configuration but nothing, I think that Creative Elements replace all graphics after the injection of Label's module. Someone has benn resolved this problem? Any idea?
</p>

<p>
	Thanks so much!
</p>
]]></description><guid isPermaLink="false">1103230</guid><pubDate>Thu, 06 Nov 2025 18:56:51 +0000</pubDate></item><item><title>Small PrestaShop module for short game tips on product pages looking for feedback</title><link>https://forum.prestashop.com/topic/1104052-small-prestashop-module-for-short-game-tips-on-product-pages-looking-for-feedback/</link><description><![CDATA[<p>
	Hi everyone,
</p>

<p>
	I wanted to share a small real-world use case from a project I’m currently working on and get some advice from people who’ve dealt with similar setups.
</p>

<p>
	I run a relatively simple PrestaShop 1.7 store that focuses on digital / game-related content (guides, updates, short explanations). One thing I noticed from analytics and user feedback is that visitors often just want a very short tip or note (1–2 lines) directly on the product page — not a full CMS article and not buried inside the long description.
</p>

<p>
	At first, I tried CMS pages and even experimented with product features, but both felt a bit heavy or awkward for something this small. So I ended up building a very lightweight custom module whose only job is to:
</p>

<p>
	store a short “quick tip” per product
</p>

<p>
	hook into the product page
</p>

<p>
	render a small, clean snippet under the main product info
</p>

<p>
	The goal was to keep it simple, fast, and easy to maintain without overloading the back office.
</p>

<p>
	Below is a simplified version of what I’m currently using. This is not production-perfect code, just the core idea.
</p>

<p>
	&lt;?php<br />
	if (!defined('_PS_VERSION_')) {<br />
	    exit;<br />
	}
</p>

<p>
	class GameQuickTips extends Module<br />
	{<br />
	    public function __construct()<br />
	    {<br />
	        $this-&gt;name = 'gamequicktips';<br />
	        $this-&gt;tab = 'front_office_features';<br />
	        $this-&gt;version = '1.0.0';<br />
	        $this-&gt;author = 'Dev';<br />
	        parent::__construct();
</p>

<p>
	        $this-&gt;displayName = $this-&gt;l('Game Quick Tips');<br />
	        $this-&gt;description = $this-&gt;l('Displays a short tip on product pages.');<br />
	    }
</p>

<p>
	    public function install()<br />
	    {<br />
	        return parent::install()<br />
	            &amp;&amp; $this-&gt;registerHook('displayProductAdditionalInfo');<br />
	    }
</p>

<p>
	    public function hookDisplayProductAdditionalInfo($params)<br />
	    {<br />
	        if (empty($params['product']['id_product'])) {<br />
	            return '';<br />
	        }
</p>

<p>
	        // Example: reading a custom product field "game_tip"<br />
	        $tip = $params['product']['game_tip'] ?? '';
</p>

<p>
	        if (!$tip) {<br />
	            return '';<br />
	        }
</p>

<p>
	        $this-&gt;context-&gt;smarty-&gt;assign([<br />
	            'game_tip' =&gt; $tip,<br />
	        ]);
</p>

<p>
	        return $this-&gt;display(__FILE__, 'views/templates/hook/tip.tpl');<br />
	    }<br />
	}<br />
	 
</p>
]]></description><guid isPermaLink="false">1104052</guid><pubDate>Wed, 10 Dec 2025 22:38:27 +0000</pubDate></item><item><title>How to edit Print Order pages</title><link>https://forum.prestashop.com/topic/1086670-how-to-edit-print-order-pages/</link><description><![CDATA[<p>
	Hello, everyone,
</p>

<p>
	I have been using Prestashop 1.7.8.11 for a while now.
</p>

<p>
	When I want to print an order through the site's administration, I notice 2 pages with quite unnecessary information for me and my customers. Where can I change what exactly I want printed?
</p>

<p>
	Thank you all in advance!
</p>

<p>
	Regards,
</p>

<p>
	Larry
</p>
]]></description><guid isPermaLink="false">1086670</guid><pubDate>Fri, 19 Apr 2024 06:39:53 +0000</pubDate></item><item><title>Problem with voucher rules creating two separate discounts</title><link>https://forum.prestashop.com/topic/1103871-problem-with-voucher-rules-creating-two-separate-discounts/</link><description><![CDATA[<p>
	We are experiencing an issue with a voucher (name obscured for privacy) that should:
</p>

<p>
	not be compatible with other discount codes,
</p>

<p>
	not apply to products already on sale,
</p>

<p>
	but remain compatible with multipack discounts.
</p>

<p>
	We created a rule to exclude specific products already discounted. This part seems to work, but the system still generates two different discounts, and we don't understand why.
</p>

<p>
	Please refer to the attached image:
</p>

<p>
	The first product, Zeta Colest (€19.46 × 6 packs = €116.82), is the item that should receive the voucher discount, and the resulting discount €35.05 is correct.
</p>

<p>
	The second product, Entero Mirto (€9.73 × 3 = €29.19), is already on sale and should not be affected by the voucher — and indeed it isn’t.
</p>

<p>
	However, the system shows €35.05 correctly between the items, but in the cart summary it displays a total discount of €41.22. Could you clarify why this mismatch occurs and how to resolve it?
</p>

<p>
	 
</p>

<p><a href="//media.invisioncic.com/t336404/monthly_2025_12/Immagine2025-12-03174545.png.fdcbbb8e0738e7069e0ec5e98dcb9493.png" class="ipsAttachLink ipsAttachLink_image" ><img data-fileid="340318" src="https://www.prestashop.com/forums/applications/core/interface/js/spacer.png" data-src="//media.invisioncic.com/t336404/monthly_2025_12/Immagine2025-12-03174545.thumb.png.b046d95fd54b2753a31891b1e4b7a571.png" data-ratio="38.7" width="1000" class="ipsImage ipsImage_thumbnailed" alt="Immagine 2025-12-03 174545.png"></a></p>]]></description><guid isPermaLink="false">1103871</guid><pubDate>Wed, 03 Dec 2025 16:46:26 +0000</pubDate></item><item><title>Bug, Cannot verify store &#x2013; &#x201C;One error has occurred&#x201D; in PrestaShop Account, v8.2.3</title><link>https://forum.prestashop.com/topic/1102390-bug-cannot-verify-store-%E2%80%93-%E2%80%9Cone-error-has-occurred%E2%80%9D-in-prestashop-account-v823/</link><description><![CDATA[<p>
	Hello,
</p>

<p>
	I'm having an issue with the PrestaShop Account module and I cannot verify my store.
</p>

<p>
	- PrestaShop Version: 8.2.3<br />
	- Domain: <a href="https://deknomodels.com" rel="external nofollow">https://deknomodels.com</a><br />
	- Account email: dir@deknomodels.com
</p>

<p>
	The “Restart manual verification” button does not work. And when I try to save the Business Info form, I get this popup error:
</p>

<p>
	   “One error has occurred”
</p>

<p>
	I have already checked the following:
</p>

<p>
	- SSL certificate is valid (HTTPS padlock visible)  <br />
	- No Cloudflare proxy or blocked IP  <br />
	- Module "PrestaShop Account / Cuenta de PrestaShop" is active
</p>

<p>
	But the store is still not verified and I cannot use the official modules.
</p>

<p>
	Is this a known bug in PS 8.2.3? Can someone from the PrestaShop team manually verify my store or provide a workaround?
</p>

<p>
	Thanks in advance,  <br />
	Albert – DEKNO Models
</p>
]]></description><guid isPermaLink="false">1102390</guid><pubDate>Fri, 03 Oct 2025 10:23:12 +0000</pubDate></item><item><title>Problem prestashop Module -  module undefined</title><link>https://forum.prestashop.com/topic/969040-problem-prestashop-module-module-undefined/</link><description><![CDATA[
<p>
	 
</p>

<p>
	<span style="font-size:14px;"><span style="background-color:rgb(255,255,255);color:rgb(33,33,33);text-align:left;">Hello everybody, I'm having a problem with my prestashop, after migrating from server when I'm going to disable or delete a module following message is returned: </span></span><br />
	 
</p>

<p>
	<span style="font-size:14px;"><span style="background-color:rgb(255,255,255);color:rgb(33,33,33);text-align:left;">"Error! Could not perform action disable for module undefined"</span></span>
</p>

<div style="background-color:#ffffff;color:#212121;font-size:0px;text-align:left;">
	<pre dir="ltr" style="background-color:transparent;border:none;color:#212121;font-size:29px;padding:0px .14em 0px 0px;text-align:left;">
<span style="font-size:14px;"><span lang="en" xml:lang="en">I already tried everything but nothing solve
</span><span style="background-color:rgb(255,255,255);color:rgb(33,33,33);text-align:left;">What should I do =/?</span></span>
</pre>
</div>
]]></description><guid isPermaLink="false">969040</guid><pubDate>Tue, 09 Apr 2019 23:09:36 +0000</pubDate></item><item><title>Module public function hookDisplayComments no parameters</title><link>https://forum.prestashop.com/topic/1103119-module-public-function-hookdisplaycomments-no-parameters/</link><description><![CDATA[<p>
	I'm searching crazy why I don't get the $params array with the product id ($params['product']-&gt;id).<br />
	I have created a module to view video's and all related comments from customers.  In the main-class (video.php) I have normal __construct and in the install-part I have added the right hooks. But when I want to receive the selected product (in my case video), I only get the first array-vakues. That is: 
</p>

<pre class="ipsCode prettyprint lang-html prettyprinted"><span class="pun">&lt;?</span><span class="pln">php
declare</span><span class="pun">(</span><span class="pln">strict_types</span><span class="pun">=</span><span class="lit">1</span><span class="pun">);</span><span class="pln">

</span><span class="kwd">if</span><span class="pun">(!</span><span class="kwd">defined</span><span class="pun">(</span><span class="str">'_PS_VERSION_'</span><span class="pun">))</span><span class="pln">
</span><span class="pun">{</span><span class="pln">
    </span><span class="kwd">exit</span><span class="pun">;</span><span class="pln">
</span><span class="pun">}</span><span class="pln">

</span><span class="com">//require_once __DIR__.'/vendor/autoload.php';</span><span class="pln">
</span><span class="kwd">use</span><span class="pln"> </span><span class="typ">PrestaShop</span><span class="pln">\PrestaShop\Adapter\SymfonyContainer</span><span class="pun">;</span><span class="pln">
</span><span class="kwd">use</span><span class="pln"> </span><span class="typ">Video</span><span class="pln">\Classes\VersionUtils</span><span class="pun">;</span><span class="pln">

</span><span class="kwd">class</span><span class="pln"> </span><span class="typ">Video</span><span class="pln"> </span><span class="kwd">extends</span><span class="pln"> </span><span class="typ">Module</span><span class="pln">
</span><span class="pun">{</span><span class="pln">
	</span><span class="kwd">public</span><span class="pln"> </span><span class="kwd">function</span><span class="pln"> __construct</span><span class="pun">()</span><span class="pln">
	</span><span class="pun">{</span><span class="pln">
		$this</span><span class="pun">-&gt;</span><span class="pln">name </span><span class="pun">=</span><span class="pln"> </span><span class="str">'video'</span><span class="pun">;</span><span class="pln">
        $this</span><span class="pun">-&gt;</span><span class="pln">version </span><span class="pun">=</span><span class="pln"> </span><span class="str">'1.1.0'</span><span class="pun">;</span><span class="pln">
        $this</span><span class="pun">-&gt;</span><span class="pln">tab </span><span class="pun">=</span><span class="pln"> </span><span class="str">'front_office_features'</span><span class="pun">;</span><span class="pln">
        $this</span><span class="pun">-&gt;</span><span class="pln">author </span><span class="pun">=</span><span class="pln"> </span><span class="str">'Paul Albers'</span><span class="pun">;</span><span class="pln">
        $this</span><span class="pun">-&gt;</span><span class="pln">need_instance </span><span class="pun">=</span><span class="pln"> </span><span class="lit">0</span><span class="pun">;</span><span class="pln">
        $this</span><span class="pun">-&gt;</span><span class="pln">controllers </span><span class="pun">=</span><span class="pln"> array</span><span class="pun">(</span><span class="str">'display'</span><span class="pun">);</span><span class="pln">
        $this</span><span class="pun">-&gt;</span><span class="pln">ps_versions_compliancy </span><span class="pun">=</span><span class="pln"> </span><span class="pun">[</span><span class="pln">
            </span><span class="str">'min'</span><span class="pln"> </span><span class="pun">=&gt;</span><span class="pln"> </span><span class="str">'1.7.0.0'</span><span class="pun">,</span><span class="pln">
            </span><span class="str">'max'</span><span class="pln"> </span><span class="pun">=&gt;</span><span class="pln"> </span><span class="str">'8.99.99'</span><span class="pln">
        </span><span class="pun">];</span><span class="pln">
        $this</span><span class="pun">-&gt;</span><span class="pln">bootstrap </span><span class="pun">=</span><span class="pln"> </span><span class="kwd">true</span><span class="pun">;</span><span class="pln">
        
        parent</span><span class="pun">::</span><span class="pln">__construct</span><span class="pun">();</span><span class="pln">
        
        $this</span><span class="pun">-&gt;</span><span class="pln">checkUploadFolders</span><span class="pun">();</span><span class="pln">
        $this</span><span class="pun">-&gt;</span><span class="pln">displayName </span><span class="pun">=</span><span class="pln"> $this</span><span class="pun">-&gt;</span><span class="pln">trans</span><span class="pun">(</span><span class="str">'Video module'</span><span class="pun">,</span><span class="pln"> </span><span class="pun">[],</span><span class="pln"> </span><span class="str">'Modules.Video.Admin'</span><span class="pun">);</span><span class="pln">
        $this</span><span class="pun">-&gt;</span><span class="pln">description </span><span class="pun">=</span><span class="pln"> $this</span><span class="pun">-&gt;</span><span class="pln">trans</span><span class="pun">(</span><span class="str">'Play video\'s and view customers comments'</span><span class="pun">,</span><span class="pln"> </span><span class="pun">[],</span><span class="pln"> </span><span class="str">'Modules.Video.Admin'</span><span class="pun">);</span><span class="pln">
        $this</span><span class="pun">-&gt;</span><span class="pln">confirmUninstall </span><span class="pun">=</span><span class="pln"> $this</span><span class="pun">-&gt;</span><span class="pln">trans</span><span class="pun">(</span><span class="str">'Are you sure you want to uninstall?'</span><span class="pun">,</span><span class="pln"> </span><span class="pun">[],</span><span class="pln"> </span><span class="str">'Modules.Video.Video'</span><span class="pun">);</span><span class="pln">
        $this</span><span class="pun">-&gt;</span><span class="pln">templateFile </span><span class="pun">=</span><span class="pln"> </span><span class="str">'module:video/views/templates/hook/video.tpl'</span><span class="pun">;</span><span class="pln">

        </span><span class="kwd">if</span><span class="pln"> </span><span class="pun">(!</span><span class="typ">Configuration</span><span class="pun">::</span><span class="kwd">get</span><span class="pun">(</span><span class="str">'VIDEO'</span><span class="pun">))</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
            $this</span><span class="pun">-&gt;</span><span class="pln">warning </span><span class="pun">=</span><span class="pln"> $this</span><span class="pun">-&gt;</span><span class="pln">trans</span><span class="pun">(</span><span class="str">'No name provided'</span><span class="pun">,</span><span class="pln"> </span><span class="pun">[],</span><span class="pln"> </span><span class="str">'Modules.Video.Video'</span><span class="pun">);</span><span class="pln">
        </span><span class="pun">}</span><span class="pln">
	</span><span class="pun">}</span><span class="pln">

	</span><span class="kwd">public</span><span class="pln"> </span><span class="kwd">function</span><span class="pln"> install</span><span class="pun">()</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
        </span><span class="kwd">if</span><span class="pun">(</span><span class="typ">Shop</span><span class="pun">::</span><span class="pln">isFeatureActive</span><span class="pun">())</span><span class="pln">
        </span><span class="pun">{</span><span class="pln">
            </span><span class="typ">Shop</span><span class="pun">::</span><span class="pln">setContext</span><span class="pun">(</span><span class="typ">Shop</span><span class="pun">::</span><span class="pln">CONTEXT_ALL</span><span class="pun">);</span><span class="pln">
        </span><span class="pun">}</span><span class="pln">

        </span><span class="kwd">if</span><span class="pun">(!</span><span class="pln">file_exists</span><span class="pun">(</span><span class="pln">dirname</span><span class="pun">(</span><span class="pln">__FILE__</span><span class="pun">)</span><span class="pln"> </span><span class="pun">.</span><span class="pln"> </span><span class="str">'/sql/'</span><span class="pln"> </span><span class="pun">.</span><span class="pln"> $this</span><span class="pun">-&gt;</span><span class="pln">sql_file</span><span class="pun">))</span><span class="pln">
        </span><span class="pun">{</span><span class="pln">
            </span><span class="kwd">return</span><span class="pln"> $this</span><span class="pun">-&gt;</span><span class="pln">displayError</span><span class="pun">(</span><span class="pln">$this</span><span class="pun">-&gt;</span><span class="pln">l</span><span class="pun">(</span><span class="str">'Unable to find the Sql-file'</span><span class="pun">));</span><span class="pln">
        </span><span class="pun">}</span><span class="pln"> elseif</span><span class="pun">(!</span><span class="pln">$sql </span><span class="pun">=</span><span class="pln"> file_get_contents</span><span class="pun">(</span><span class="pln">dirname</span><span class="pun">(</span><span class="pln">__FILE__</span><span class="pun">)</span><span class="pln"> </span><span class="pun">.</span><span class="pln"> </span><span class="str">'/sql/'</span><span class="pln"> </span><span class="pun">.</span><span class="pln"> $this</span><span class="pun">-&gt;</span><span class="pln">sql_file</span><span class="pun">))</span><span class="pln">
        </span><span class="pun">{</span><span class="pln">
            </span><span class="kwd">return</span><span class="pln"> $this</span><span class="pun">-&gt;</span><span class="pln">displayError</span><span class="pun">(</span><span class="pln">$this</span><span class="pun">-&gt;</span><span class="pln">l</span><span class="pun">(</span><span class="str">'Unable to get the contents of the sql-file..'</span><span class="pun">));</span><span class="pln">
        </span><span class="pun">}</span><span class="pln">

        $hookAdd </span><span class="pun">=</span><span class="pln"> $this</span><span class="pun">-&gt;</span><span class="pln">hookCreate</span><span class="pun">();</span><span class="pln">
        </span><span class="kwd">return</span><span class="pln"> </span><span class="pun">(</span><span class="pln">parent</span><span class="pun">::</span><span class="pln">install</span><span class="pun">()</span><span class="pln"> </span><span class="pun">&amp;&amp;</span><span class="pln">
                $this</span><span class="pun">-&gt;</span><span class="pln">registerHook</span><span class="pun">(</span><span class="str">'displayProductBeforeThumbs'</span><span class="pun">)</span><span class="pln"> </span><span class="pun">&amp;&amp;</span><span class="pln">
                $this</span><span class="pun">-&gt;</span><span class="pln">registerHook</span><span class="pun">(</span><span class="str">'displayNav2'</span><span class="pun">)</span><span class="pln"> </span><span class="pun">&amp;&amp;</span><span class="pln">
                $this</span><span class="pun">-&gt;</span><span class="pln">registerHook</span><span class="pun">(</span><span class="str">'displayVideoComments'</span><span class="pun">)</span><span class="pln"> </span><span class="pun">&amp;&amp;</span><span class="pln">
                $this</span><span class="pun">-&gt;</span><span class="pln">registerHook</span><span class="pun">(</span><span class="str">'actionFrontControllerSetMedia'</span><span class="pun">)</span><span class="pln"> </span><span class="pun">&amp;&amp;</span><span class="pln">
                $this</span><span class="pun">-&gt;</span><span class="pln">registerHook</span><span class="pun">(</span><span class="str">'actionObjectAddBefore'</span><span class="pun">)</span><span class="pln"> </span><span class="pun">&amp;&amp;</span><span class="pln">
                $this</span><span class="pun">-&gt;</span><span class="pln">registerHook</span><span class="pun">(</span><span class="str">'actionObjectAddAfter'</span><span class="pun">)</span><span class="pln"> </span><span class="pun">&amp;&amp;</span><span class="pln">
                $this</span><span class="pun">-&gt;</span><span class="pln">registerHook</span><span class="pun">(</span><span class="str">'displayAdminProductsExtra'</span><span class="pun">)</span><span class="pln"> </span><span class="pun">&amp;&amp;</span><span class="pln">
                </span><span class="com">//$this-&gt;registerHook('displayHeader') &amp;&amp;</span><span class="pln">
                $this</span><span class="pun">-&gt;</span><span class="pln">registerHook</span><span class="pun">(</span><span class="str">'displayCustomerAccount'</span><span class="pun">));</span><span class="pln">
    </span><span class="pun">}</span><span class="pln">

	</span><span class="kwd">public</span><span class="pln"> </span><span class="kwd">function</span><span class="pln"> hookDisplayVideoComments</span><span class="pun">(</span><span class="pln">array $params</span><span class="pun">)</span><span class="pln">
    </span><span class="pun">{</span><span class="pln">
        </span><span class="com">//print_r($params['product']);</span><span class="pln">
        </span><span class="kwd">foreach</span><span class="pun">(</span><span class="pln">$params </span><span class="kwd">as</span><span class="pln"> $value </span><span class="pun">=&gt;</span><span class="pln"> $key</span><span class="pun">)</span><span class="pln">
        </span><span class="pun">{</span><span class="pln">
            echo $value </span><span class="pun">.</span><span class="pln"> </span><span class="str">' -&gt; '</span><span class="pun">;</span><span class="pln">
        </span><span class="pun">}</span><span class="pln">
        
        $query </span><span class="pun">=</span><span class="pln"> </span><span class="str">'SELECT c.comment, c.deleted, c.comment_removed, c.votes, c.date_add, c.id_comment, '</span><span class="pln">
                </span><span class="pun">.</span><span class="pln"> </span><span class="str">'cu.firstname, cu.lastname, v.comment_enabled, c.sticky FROM '</span><span class="pun">.</span><span class="pln">_DB_PREFIX_</span><span class="pun">.</span><span class="str">'video_comment c '</span><span class="pln">
                </span><span class="com">//. 'LEFT OUTER JOIN '._DB_PREFIX_.'comment_reply cr ON c.id_comment = cr.id_comment '</span><span class="pln">
                </span><span class="pun">.</span><span class="pln"> </span><span class="str">'LEFT OUTER JOIN '</span><span class="pln"> </span><span class="pun">.</span><span class="pln"> _DB_PREFIX_ </span><span class="pun">.</span><span class="pln"> </span><span class="str">'customer cu ON c.id_user = cu.id_customer '</span><span class="pln">
                </span><span class="pun">.</span><span class="pln"> </span><span class="str">'INNER JOIN '</span><span class="pun">.</span><span class="pln">_DB_PREFIX_</span><span class="pun">.</span><span class="str">'video v ON c.id_video = v.id_video '</span><span class="pln">
                </span><span class="pun">.</span><span class="pln"> </span><span class="str">'WHERE c.id_video = 10 ORDER BY c.sticky DESC, c.date_add;'</span><span class="pun">;</span><span class="pln">
      
        $res_video </span><span class="pun">=</span><span class="pln"> </span><span class="typ">Db</span><span class="pun">::</span><span class="pln">getInstance</span><span class="pun">(</span><span class="pln">_PS_USE_SQL_SLAVE_</span><span class="pun">)-&gt;</span><span class="pln">executeS</span><span class="pun">(</span><span class="pln">$query</span><span class="pun">);</span><span class="pln">
        $query </span><span class="pun">=</span><span class="pln"> </span><span class="str">'SELECT cr.id_comment_reply, c.id_comment, cr.id_user, cr.comment_reply, cr.comment_reply_removed, v.comment_enabled, '</span><span class="pln">
                </span><span class="pun">.</span><span class="pln"> </span><span class="str">'cr.comment_reply_deleted, cr.comment_reply_date_add, cr.comment_reply_votes FROM '</span><span class="pln"> </span><span class="pun">.</span><span class="pln"> _DB_PREFIX_ </span><span class="pun">.</span><span class="pln"> </span><span class="str">'video_comment_reply cr '</span><span class="pln">
                </span><span class="pun">.</span><span class="pln"> </span><span class="str">'INNER JOIN '</span><span class="pln"> </span><span class="pun">.</span><span class="pln"> _DB_PREFIX_ </span><span class="pun">.</span><span class="pln"> </span><span class="str">'video_comment c ON cr.id_comment = c.id_comment '</span><span class="pln">
                </span><span class="pun">.</span><span class="pln"> </span><span class="str">'INNER JOIN '</span><span class="pln"> </span><span class="pun">.</span><span class="pln"> _DB_PREFIX_ </span><span class="pun">.</span><span class="pln"> </span><span class="str">'video v ON c.id_video = v.id_video '</span><span class="pln">
                </span><span class="pun">.</span><span class="pln"> </span><span class="str">'WHERE c.id_video = 10 ORDER BY cr.id_comment, cr.comment_reply_date_add;'</span><span class="pun">;</span><span class="pln">
        $res_replies </span><span class="pun">=</span><span class="pln"> </span><span class="typ">Db</span><span class="pun">::</span><span class="pln">getInstance</span><span class="pun">(</span><span class="pln">_PS_USE_SQL_SLAVE_</span><span class="pun">)-&gt;</span><span class="pln">executeS</span><span class="pun">(</span><span class="pln">$query</span><span class="pun">);</span><span class="pln">
        $this</span><span class="pun">-&gt;</span><span class="pln">context</span><span class="pun">-&gt;</span><span class="pln">smarty</span><span class="pun">-&gt;</span><span class="pln">assign</span><span class="pun">(</span><span class="pln">
        </span><span class="pun">[</span><span class="pln">
            </span><span class="str">'videoreactionsheader'</span><span class="pln"> </span><span class="pun">=&gt;</span><span class="pln"> $this</span><span class="pun">-&gt;</span><span class="pln">display</span><span class="pun">(</span><span class="pln">__FILE__</span><span class="pun">,</span><span class="pln"> </span><span class="str">'views/templates/hook/videoreactionsheader.tpl'</span><span class="pun">),</span><span class="pln">
            </span><span class="str">'my_module_link'</span><span class="pln"> </span><span class="pun">=&gt;</span><span class="pln"> $this</span><span class="pun">-&gt;</span><span class="pln">context</span><span class="pun">-&gt;</span><span class="pln">link</span><span class="pun">-&gt;</span><span class="pln">getModuleLink</span><span class="pun">(</span><span class="str">'video'</span><span class="pun">,</span><span class="pln"> </span><span class="str">'views/templates/hook/videoreactionsheader.tpl'</span><span class="pun">,</span><span class="pln"> </span><span class="pun">[],</span><span class="pln"> </span><span class="kwd">null</span><span class="pun">,</span><span class="pln"> </span><span class="kwd">null</span><span class="pun">,</span><span class="pln"> </span><span class="kwd">null</span><span class="pun">,</span><span class="pln"> </span><span class="kwd">true</span><span class="pun">),</span><span class="pln">        
            </span><span class="str">'reactionClasses'</span><span class="pln"> </span><span class="pun">=&gt;</span><span class="pln"> </span><span class="str">'reaction-class'</span><span class="pun">,</span><span class="pln">
            </span><span class="str">'module_templates'</span><span class="pln"> </span><span class="pun">=&gt;</span><span class="pln"> dirname</span><span class="pun">(</span><span class="pln">__FILE__</span><span class="pun">).</span><span class="str">'/views/'</span><span class="pun">,</span><span class="pln">
            </span><span class="str">'reactions'</span><span class="pln"> </span><span class="pun">=&gt;</span><span class="pln"> $res_video</span><span class="pun">,</span><span class="pln">
            </span><span class="str">'replies'</span><span class="pln"> </span><span class="pun">=&gt;</span><span class="pln"> $res_replies</span><span class="pun">,</span><span class="pln">
            </span><span class="str">'params'</span><span class="pln"> </span><span class="pun">=&gt;</span><span class="pln"> $params</span><span class="pun">,</span><span class="pln">
            </span><span class="str">'loggedOn'</span><span class="pln"> </span><span class="pun">=&gt;</span><span class="pln"> </span><span class="pun">(</span><span class="kwd">bool</span><span class="pun">)</span><span class="pln"> $this</span><span class="pun">-&gt;</span><span class="pln">context</span><span class="pun">-&gt;</span><span class="pln">cookie</span><span class="pun">-&gt;</span><span class="pln">id_customer</span><span class="pun">,</span><span class="pln">
            </span><span class="str">'customerId'</span><span class="pln"> </span><span class="pun">=&gt;</span><span class="pln"> $this</span><span class="pun">-&gt;</span><span class="pln">context</span><span class="pun">-&gt;</span><span class="pln">customer</span><span class="pun">-&gt;</span><span class="pln">id</span><span class="pun">,</span><span class="pln">
        </span><span class="pun">]</span><span class="pln">
        </span><span class="pun">);</span><span class="pln">
        </span><span class="com">//$this-&gt;context-&gt;controller-&gt;addJS($this-&gt;_path . 'views/js/video.js');</span><span class="pln">
        $this</span><span class="pun">-&gt;</span><span class="pln">trans</span><span class="pun">(</span><span class="str">'Video new comment'</span><span class="pun">,</span><span class="pln"> </span><span class="pun">[],</span><span class="pln"> </span><span class="str">'Modules.Video.Comments'</span><span class="pun">);</span><span class="pln">
        $this</span><span class="pun">-&gt;</span><span class="pln">trans</span><span class="pun">(</span><span class="str">'Submit comment'</span><span class="pun">,</span><span class="pln"> </span><span class="pun">[],</span><span class="pln"> </span><span class="str">'Modules.Video.Comments'</span><span class="pun">);</span><span class="pln">
        $maxdepth </span><span class="pun">=</span><span class="pln"> </span><span class="lit">0</span><span class="pun">;</span><span class="pln">
        $range </span><span class="pun">=</span><span class="pln"> </span><span class="str">''</span><span class="pun">;</span><span class="pln">
        $result </span><span class="pun">=</span><span class="pln"> </span><span class="typ">Db</span><span class="pun">::</span><span class="pln">getInstance</span><span class="pun">((</span><span class="kwd">bool</span><span class="pun">)</span><span class="pln"> _PS_USE_SQL_SLAVE_</span><span class="pun">)-&gt;</span><span class="pln">executeS</span><span class="pun">(</span><span class="str">'
			SELECT c.id_parent, c.id_category, cl.name, cl.description, cl.link_rewrite
			FROM `'</span><span class="pln"> </span><span class="pun">.</span><span class="pln"> _DB_PREFIX_ </span><span class="pun">.</span><span class="pln"> </span><span class="str">'category` c
			INNER JOIN `'</span><span class="pln"> </span><span class="pun">.</span><span class="pln"> _DB_PREFIX_ </span><span class="pun">.</span><span class="pln"> </span><span class="str">'category_lang` cl ON (c.`id_category` = cl.`id_category` AND cl.`id_lang` = '</span><span class="pln"> </span><span class="pun">.</span><span class="pln"> </span><span class="pun">(</span><span class="kwd">int</span><span class="pun">)</span><span class="pln"> $this</span><span class="pun">-&gt;</span><span class="pln">context</span><span class="pun">-&gt;</span><span class="pln">language</span><span class="pun">-&gt;</span><span class="pln">id </span><span class="pun">.</span><span class="pln"> </span><span class="typ">Shop</span><span class="pun">::</span><span class="pln">addSqlRestrictionOnLang</span><span class="pun">(</span><span class="str">'cl'</span><span class="pun">)</span><span class="pln"> </span><span class="pun">.</span><span class="pln"> </span><span class="str">')
			INNER JOIN `'</span><span class="pln"> </span><span class="pun">.</span><span class="pln"> _DB_PREFIX_ </span><span class="pun">.</span><span class="pln"> </span><span class="str">'category_shop` cs ON (cs.`id_category` = c.`id_category` AND cs.`id_shop` = '</span><span class="pln"> </span><span class="pun">.</span><span class="pln"> </span><span class="pun">(</span><span class="kwd">int</span><span class="pun">)</span><span class="pln"> $this</span><span class="pun">-&gt;</span><span class="pln">context</span><span class="pun">-&gt;</span><span class="pln">shop</span><span class="pun">-&gt;</span><span class="pln">id </span><span class="pun">.</span><span class="pln"> </span><span class="str">')
			WHERE (c.`active` = 1 OR c.`id_category` = '</span><span class="pln"> </span><span class="pun">.</span><span class="pln"> </span><span class="pun">(</span><span class="kwd">int</span><span class="pun">)</span><span class="pln"> </span><span class="typ">Configuration</span><span class="pun">::</span><span class="kwd">get</span><span class="pun">(</span><span class="str">'PS_HOME_CATEGORY'</span><span class="pun">)</span><span class="pln"> </span><span class="pun">.</span><span class="pln"> </span><span class="str">')
			AND c.`id_category` != '</span><span class="pln"> </span><span class="pun">.</span><span class="pln"> </span><span class="pun">(</span><span class="kwd">int</span><span class="pun">)</span><span class="pln"> </span><span class="typ">Configuration</span><span class="pun">::</span><span class="kwd">get</span><span class="pun">(</span><span class="str">'PS_ROOT_CATEGORY'</span><span class="pun">)</span><span class="pln"> </span><span class="pun">.</span><span class="pln"> </span><span class="str">'
			'</span><span class="pln"> </span><span class="pun">.</span><span class="pln"> </span><span class="pun">((</span><span class="kwd">int</span><span class="pun">)</span><span class="pln"> $maxdepth </span><span class="pun">!=</span><span class="pln"> </span><span class="lit">0</span><span class="pln"> </span><span class="pun">?</span><span class="pln"> </span><span class="str">' AND `level_depth` &lt;= '</span><span class="pln"> </span><span class="pun">.</span><span class="pln"> </span><span class="pun">(</span><span class="kwd">int</span><span class="pun">)</span><span class="pln"> $maxdepth </span><span class="pun">:</span><span class="pln"> </span><span class="str">''</span><span class="pun">)</span><span class="pln"> </span><span class="pun">.</span><span class="pln"> </span><span class="str">'
			'</span><span class="pln"> </span><span class="pun">.</span><span class="pln"> $range </span><span class="pun">.</span><span class="pln"> </span><span class="str">'
			AND c.id_category IN (
				SELECT id_category
				FROM `'</span><span class="pln"> </span><span class="pun">.</span><span class="pln"> _DB_PREFIX_ </span><span class="pun">.</span><span class="pln"> </span><span class="str">'category_group`
				WHERE `id_group` IN ('</span><span class="pln"> </span><span class="pun">.</span><span class="pln"> implode</span><span class="pun">(</span><span class="str">', '</span><span class="pun">,</span><span class="pln"> </span><span class="typ">Customer</span><span class="pun">::</span><span class="pln">getGroupsStatic</span><span class="pun">((</span><span class="kwd">int</span><span class="pun">)</span><span class="pln"> $this</span><span class="pun">-&gt;</span><span class="pln">context</span><span class="pun">-&gt;</span><span class="pln">customer</span><span class="pun">-&gt;</span><span class="pln">id</span><span class="pun">))</span><span class="pln"> </span><span class="pun">.</span><span class="pln"> </span><span class="str">')
			)
			ORDER BY `level_depth` ASC, '</span><span class="pln"> </span><span class="pun">.</span><span class="pln"> </span><span class="pun">(</span><span class="typ">Configuration</span><span class="pun">::</span><span class="kwd">get</span><span class="pun">(</span><span class="str">'BLOCK_CATEG_SORT'</span><span class="pun">)</span><span class="pln"> </span><span class="pun">?</span><span class="pln"> </span><span class="str">'cl.`name`'</span><span class="pln"> </span><span class="pun">:</span><span class="pln"> </span><span class="str">'cs.`position`'</span><span class="pun">)</span><span class="pln"> </span><span class="pun">.</span><span class="pln"> </span><span class="str">' '</span><span class="pln"> </span><span class="pun">.</span><span class="pln"> </span><span class="pun">(</span><span class="typ">Configuration</span><span class="pun">::</span><span class="kwd">get</span><span class="pun">(</span><span class="str">'BLOCK_CATEG_SORT_WAY'</span><span class="pun">)</span><span class="pln"> </span><span class="pun">?</span><span class="pln"> </span><span class="str">'DESC'</span><span class="pln"> </span><span class="pun">:</span><span class="pln"> </span><span class="str">'ASC'</span><span class="pun">));</span><span class="pln">
        $sql </span><span class="pun">=</span><span class="pln"> </span><span class="str">'SELECT c.id_parent, c.id_category, cl.name, cl.description, cl.link_rewrite '</span><span class="pln">
                </span><span class="pun">.</span><span class="pln"> </span><span class="str">'FROM `'</span><span class="pln"> </span><span class="pun">.</span><span class="pln"> _DB_PREFIX_ </span><span class="pun">.</span><span class="pln"> </span><span class="str">'category` c '</span><span class="pln">
                </span><span class="pun">.</span><span class="pln"> </span><span class="str">'INNER JOIN `'</span><span class="pln"> </span><span class="pun">.</span><span class="pln"> _DB_PREFIX_ </span><span class="pun">.</span><span class="pln"> </span><span class="str">'category_lang` cl ON (c.`id_category` = cl.`id_category` AND cl.`id_lang` = '</span><span class="pln"> </span><span class="pun">.</span><span class="pln"> </span><span class="pun">(</span><span class="kwd">int</span><span class="pun">)</span><span class="pln"> $this</span><span class="pun">-&gt;</span><span class="pln">context</span><span class="pun">-&gt;</span><span class="pln">language</span><span class="pun">-&gt;</span><span class="pln">id </span><span class="pun">.</span><span class="pln"> </span><span class="typ">Shop</span><span class="pun">::</span><span class="pln">addSqlRestrictionOnLang</span><span class="pun">(</span><span class="str">'cl'</span><span class="pun">)</span><span class="pln"> </span><span class="pun">.</span><span class="pln"> </span><span class="str">') '</span><span class="pln">
                </span><span class="pun">.</span><span class="pln"> </span><span class="str">'INNER JOIN `'</span><span class="pln"> </span><span class="pun">.</span><span class="pln"> _DB_PREFIX_ </span><span class="pun">.</span><span class="pln"> </span><span class="str">'category_shop` cs ON (cs.`id_category` = c.`id_category` AND cs.`id_shop` = '</span><span class="pln"> </span><span class="pun">.</span><span class="pln"> </span><span class="pun">(</span><span class="kwd">int</span><span class="pun">)</span><span class="pln"> $this</span><span class="pun">-&gt;</span><span class="pln">context</span><span class="pun">-&gt;</span><span class="pln">shop</span><span class="pun">-&gt;</span><span class="pln">id </span><span class="pun">.</span><span class="pln"> </span><span class="str">') '</span><span class="pln">
                </span><span class="pun">.</span><span class="pln"> </span><span class="str">'WHERE (c.`active` = 1 OR c.`id_category` = '</span><span class="pln"> </span><span class="pun">.</span><span class="pln"> </span><span class="pun">(</span><span class="kwd">int</span><span class="pun">)</span><span class="pln"> </span><span class="typ">Configuration</span><span class="pun">::</span><span class="kwd">get</span><span class="pun">(</span><span class="str">'PS_HOME_CATEGORY'</span><span class="pun">)</span><span class="pln"> </span><span class="pun">.</span><span class="pln"> </span><span class="str">') '</span><span class="pln">
                </span><span class="pun">.</span><span class="pln"> </span><span class="str">'AND c.`id_category` != '</span><span class="pln"> </span><span class="pun">.</span><span class="pln"> </span><span class="pun">(</span><span class="kwd">int</span><span class="pun">)</span><span class="pln"> </span><span class="typ">Configuration</span><span class="pun">::</span><span class="kwd">get</span><span class="pun">(</span><span class="str">'PS_ROOT_CATEGORY'</span><span class="pun">)</span><span class="pln"> </span><span class="pun">.</span><span class="pln"> </span><span class="str">' '</span><span class="pln"> </span><span class="pun">.</span><span class="pln"> </span><span class="pun">((</span><span class="kwd">int</span><span class="pun">)</span><span class="pln"> $maxdepth </span><span class="pun">!=</span><span class="pln"> </span><span class="lit">0</span><span class="pln"> </span><span class="pun">?</span><span class="pln"> </span><span class="str">' AND `level_depth` &lt;= '</span><span class="pln"> </span><span class="pun">.</span><span class="pln"> </span><span class="pun">(</span><span class="kwd">int</span><span class="pun">)</span><span class="pln"> $maxdepth </span><span class="pun">:</span><span class="pln"> </span><span class="str">''</span><span class="pun">)</span><span class="pln"> </span><span class="pun">.</span><span class="pln"> </span><span class="str">'
			'</span><span class="pln"> </span><span class="pun">.</span><span class="pln"> $range </span><span class="pun">.</span><span class="pln"> </span><span class="str">'
			AND c.id_category IN (
				SELECT id_category
				FROM `'</span><span class="pln"> </span><span class="pun">.</span><span class="pln"> _DB_PREFIX_ </span><span class="pun">.</span><span class="pln"> </span><span class="str">'category_group`
				WHERE `id_group` IN ('</span><span class="pln"> </span><span class="pun">.</span><span class="pln"> implode</span><span class="pun">(</span><span class="str">', '</span><span class="pun">,</span><span class="pln"> </span><span class="typ">Customer</span><span class="pun">::</span><span class="pln">getGroupsStatic</span><span class="pun">((</span><span class="kwd">int</span><span class="pun">)</span><span class="pln"> $this</span><span class="pun">-&gt;</span><span class="pln">context</span><span class="pun">-&gt;</span><span class="pln">customer</span><span class="pun">-&gt;</span><span class="pln">id</span><span class="pun">))</span><span class="pln"> </span><span class="pun">.</span><span class="pln"> </span><span class="str">')
			)
			ORDER BY `level_depth` ASC, '</span><span class="pln"> </span><span class="pun">.</span><span class="pln"> </span><span class="pun">(</span><span class="typ">Configuration</span><span class="pun">::</span><span class="kwd">get</span><span class="pun">(</span><span class="str">'BLOCK_CATEG_SORT'</span><span class="pun">)</span><span class="pln"> </span><span class="pun">?</span><span class="pln"> </span><span class="str">'cl.`name`'</span><span class="pln"> </span><span class="pun">:</span><span class="pln"> </span><span class="str">'cs.`position`'</span><span class="pun">)</span><span class="pln"> </span><span class="pun">.</span><span class="pln"> </span><span class="str">' '</span><span class="pln"> </span><span class="pun">.</span><span class="pln"> </span><span class="pun">(</span><span class="typ">Configuration</span><span class="pun">::</span><span class="kwd">get</span><span class="pun">(</span><span class="str">'BLOCK_CATEG_SORT_WAY'</span><span class="pun">)</span><span class="pln"> </span><span class="pun">?</span><span class="pln"> </span><span class="str">'DESC'</span><span class="pln"> </span><span class="pun">:</span><span class="pln"> </span><span class="str">'ASC'</span><span class="pun">);</span><span class="pln">
        </span><span class="com">//echo $query;</span><span class="pln">
        </span><span class="kwd">return</span><span class="pln"> $this</span><span class="pun">-&gt;</span><span class="pln">display</span><span class="pun">(</span><span class="pln">__FILE__</span><span class="pun">,</span><span class="pln"> </span><span class="str">'views/templates/hook/videoreactions.tpl'</span><span class="pun">);</span><span class="pln">
        </span><span class="com">//return $this-&gt;setTemplate('module:video/views/templates/hook/videoreactions.tpl');</span><span class="pln">
    </span><span class="pun">}</span><span class="pln">
</span><span class="pun">}</span></pre>

<p>
	At module install or reset, all parameters are ok. In the DB I see the hook displayVideoComments which is active and at position 1.<br />
	When I run the module, I see the video with all the supplied variables but the comments won't receive the correct data. As you see in the query, I request $params['product']-&gt;id which fails. In the foreach-loop, I get the following values: product -&gt; smarty -&gt; cookie -&gt; cart -&gt; altern. But the product-array seems to be empty. When I run the script with a hardcoded value for the query (eg 10), I get the requested results but with the array-var ($params['product']-&gt;id) I get an Fatal error: Uncaught PDOException: SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax. But in another function, which loads the video-file and other details, it runs just normal and with the same variable.<br /><br />
	Anybody an idea?<br />
	Thanks!
</p>
]]></description><guid isPermaLink="false">1103119</guid><pubDate>Sun, 02 Nov 2025 15:25:56 +0000</pubDate></item><item><title>How to find out what is causing PrestaShopException codice 23000]: SQLSTATE[23000]: Integrity constraint violation:</title><link>https://forum.prestashop.com/topic/1096872-how-to-find-out-what-is-causing-prestashopexception-codice-23000-sqlstate23000-integrity-constraint-violation/</link><description><![CDATA[<p>
	Hi all,
</p>

<p>
	i got an error while trying to update an order status of a specific order in admin. The error i got is:
</p>

<p>
	 [PrestaShopException codice 23000]: SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry '38-63-0-0' for key 'product_sqlstock'
</p>

<p>
	It is caused by something trying to add an entry in the database that already exist, the problem is that i didn't get any other info except a red banner, nothing in logs in prestashop, nothing in logs on plesk panel.
</p>

<p>
	How can i find what is causing the problem?
</p>

<p>
	Already tried with debug mode but it didn't show any more info other than the red banner. I disabled all the overrides and all the non native module, nothing works
</p>

<p>
	Prestashop 8.2
</p>

<p>
	PHP 8.030
</p>

<p>
	Thanks for any suggestion
</p>
]]></description><guid isPermaLink="false">1096872</guid><pubDate>Thu, 27 Mar 2025 21:03:01 +0000</pubDate></item><item><title>Add extra fee / small order surcharge (PDF / invoice) in PrestaShop</title><link>https://forum.prestashop.com/topic/1102621-add-extra-fee-small-order-surcharge-pdf-invoice-in-prestashop/</link><description><![CDATA[<p>
	Hello everyone,
</p>

<p>
	I’m working with PrestaShop 1.7.8 and I’d like to add an extra fee (small order surcharge) that should appear below the shipping cost in the invoice PDF.
</p>

<p>
	I want to achieve this without using any class overrides — ideally through hooks or service decoration.
</p>

<p>
	Question:<br />
	What is the best way to display an additional fee (a new total line) under the shipping cost in the invoice PDF, without overriding PDFInvoice or editing invoice.tpl?<br />
	Is there any official hook, filter, or service approach that allows injecting new rows into the totals section?
</p>

<p>
	Thank you in advance for any hints or examples!
</p>

<p>
	Best regards
</p>
]]></description><guid isPermaLink="false">1102621</guid><pubDate>Sun, 12 Oct 2025 12:21:57 +0000</pubDate></item><item><title>Adding product images into order confirmation email PS1.7.8.7</title><link>https://forum.prestashop.com/topic/1069119-adding-product-images-into-order-confirmation-email-ps1787/</link><description><![CDATA[<p>
	I was able to add product images into order confirmation email when I was using PS1.6, by editing the PaymentModule.php, order_conf_product_list.tpl and order_conf.html.
</p>

<p>
	After upgrading to PS1.7.8.7, I did the similar modification.  However, the order confirmation email only shows the text of image url instead of an image.  Any suggestion is highly appreciated.
</p>

<p>
	Thank you!
</p>

<p>
	Sam
</p>
]]></description><guid isPermaLink="false">1069119</guid><pubDate>Sun, 09 Oct 2022 15:43:51 +0000</pubDate></item><item><title>The fastest theme ever? (SEO)</title><link>https://forum.prestashop.com/topic/1099488-the-fastest-theme-ever-seo/</link><description><![CDATA[<p>
	Hello,
</p>

<p>
	I’m looking for a well-known and reputable theme that stands out for its SEO optimization, speed, and performance on Google PageSpeed Insights — the best across all categories.
</p>

<p>
	I currently have a site running on the Warehouse theme, but I’m struggling to achieve good performance, especially on mobile. I’m therefore looking for the best possible compromise in terms of overall performance.
</p>

<p>
	Thank you in advance for your suggestions and for sharing your experience.
</p>
]]></description><guid isPermaLink="false">1099488</guid><pubDate>Fri, 20 Jun 2025 14:23:05 +0000</pubDate></item><item><title>API - Prestashop zu Amazon // Kommunikationsprobleme - Ben&#xF6;tigte Hilfe</title><link>https://forum.prestashop.com/topic/1101411-api-prestashop-zu-amazon-kommunikationsprobleme-ben%C3%B6tigte-hilfe/</link><description><![CDATA[<p>
	1. Die Modulversion: v5.3.85 (Common Services - Modul)
</p>

<p>
	2. Die Prestashop-Version: 8.2.0
</p>

<p>
	Folgende Situation: 
</p>

<p>
	Aktuell bestätige ich bei Amazon noch jede Bestellung manuell und hinterlege in dem Bestätigungprozess noch die Sendungsnummer.
</p>

<p>
	Zusätzlich lade ich noch für jede Bestellung von Amazon "Business-Kunden" die Rechnung manuell hoch. 
</p>

<p>
	Hier benötige ich dringend Hilfe damit diese Schritte nachdem diese in Prestashop durchgelaufen sind, (Sendungsnummer hinterlegen, Bestellung bestätigen und Rechnung hochladen.) diese direkt mit zu Amazon synchronisiert und hochgeladen werden.
</p>

<p>
	Die Kommunikation mit bestellbestätigung und sendungsnummer findet aktuell schon statt. Jedoch über die Kunden Nachrichten Funktion. - welche mich nicht weiterbringt.
</p>

<p>
	Aktuell nutzen wir das Amazon Modul von Common Services.
</p>

<p>
	Bin aber auch an anderen Modulen interessiert wenn diese funktionieren.
</p>

<p>
	Bitte helft mir die Kommunikation von Prestashop zu Amazon zu automatisieren.
</p>

<p>
	Vielen Dank im voraus!
</p>
]]></description><guid isPermaLink="false">1101411</guid><pubDate>Thu, 28 Aug 2025 16:19:36 +0000</pubDate></item><item><title>Stripe Card name not shown in integrated payment form</title><link>https://forum.prestashop.com/topic/1102452-stripe-card-name-not-shown-in-integrated-payment-form/</link><description><![CDATA[<p>
	Stripe Card name field appears in stripe checkout page but not in integrated payment form. I have Prestashop 8.1.3 and this happens with Stripe module versions 3.6.2 and 3.6.6.
</p>

<p>
	Screenshots:
</p>

<p>
	<a href="https://prnt.sc/vD5IkLRe66Lk" rel="external nofollow">Stripe checkout page</a>
</p>

<p>
	<a href="https://prnt.sc/f1XGBwKbaDvr" rel="external nofollow">Integrated payment form</a>
</p>

<p>
	 
</p>

<p>
	Is there any way to make appear the card name in integrated payment form?
</p>

<p>
	 
</p>

<p>
	Thanks in advance.
</p>

<p>
	 
</p>
]]></description><guid isPermaLink="false">1102452</guid><pubDate>Mon, 06 Oct 2025 09:31:00 +0000</pubDate></item><item><title>Using react frontend.</title><link>https://forum.prestashop.com/topic/591318-using-react-frontend/</link><description><![CDATA[
<p style="margin-left:40px;">Hello, new to prestashop and im about to build a new site that will be a webshop but completely customized and hopefully with react frontend.</p>
<p style="margin-left:40px;"><br />So i started digging into the prestashop project that i got my hands on, i wish to use react frontend and communicate with webservice by adding "output_format=JSON" on my requests to backend.</p>
<p style="margin-left:40px;"><br />This is as far as i can see working good though.</p>
<p style="margin-left:40px;"><br />So my question here is...</p>
<p style="margin-left:40px;">If i do this, can i still keep the administration panel but have the rest of the application using react?<br />Not that familiar with how smarty works either..<br /><br />My plan is basically to have the layout something like this:</p>
<p style="margin-left:40px;"> </p>
<p style="margin-left:40px;"> </p>
<p style="margin-left:40px;">home(everything here is react based): www.my-site-name-here.com</p>
<p style="margin-left:40px;">admin(keep it as it is by default in prestashop): www.my-site-name-here.com/administration</p>
<p style="margin-left:40px;"> </p>
<p style="margin-left:40px;">Regards Eduard.<br /><br /> </p>
]]></description><guid isPermaLink="false">591318</guid><pubDate>Wed, 25 Jan 2017 20:51:24 +0000</pubDate></item><item><title>PrestaShop 9: Module Uninstall Not Working</title><link>https://forum.prestashop.com/topic/1102591-prestashop-9-module-uninstall-not-working/</link><description><![CDATA[<p>
	Hello eveyone,<br /><br />
	         In PrestaShop up to the 8 series, uninstalling the module works properly, but in the 9 series, uninstalling does not work.<br />
	         Why does this happen?<br />
	         Will you optimize this in the next release?<a class="ipsAttachLink ipsAttachLink_image" href="//media.invisioncic.com/t336404/monthly_2025_10/issue.png.63f6c05ceb5c470287f7437cd25b48b9.png" data-fileid="339138" data-fileext="png" rel=""><img class="ipsImage ipsImage_thumbnailed" data-fileid="339138" data-ratio="50.80" width="1000" alt="issue.thumb.png.2664c3d74c33c81d6be6c57681b659b1.png" data-src="//media.invisioncic.com/t336404/monthly_2025_10/issue.thumb.png.2664c3d74c33c81d6be6c57681b659b1.png" src="https://forum.prestashop.com/applications/core/interface/js/spacer.png" /></a>
</p>
]]></description><guid isPermaLink="false">1102591</guid><pubDate>Fri, 10 Oct 2025 10:41:11 +0000</pubDate></item><item><title>Additional Whatsapp Number</title><link>https://forum.prestashop.com/topic/1102457-additional-whatsapp-number/</link><description><![CDATA[<p>
	Hi Everyone. trying to add an additional number on the top of my NavBar As per image. <br /><br />
	What I want to know why is my Whatapp FA Icon a block, why is it not converting to the WhatsApp Bubble. I need help it is frustrating. <br /><br />
	This is the Code I am Using. <br /><br />
	Header.tpl<br />
	 
</p>

<pre class="ipsCode prettyprint lang-html prettyprinted"><span class="tag">&lt;div</span><span class="pln"> </span><span class="atn">class</span><span class="pun">=</span><span class="atv">"whatsapp-top-nav"</span><span class="tag">&gt;</span><span class="pln">
    </span><span class="tag">&lt;a</span><span class="pln"> </span><span class="atn">href</span><span class="pun">=</span><span class="atv">"https://wa.me/1234567890"</span><span class="pln"> </span><span class="atn">target</span><span class="pun">=</span><span class="atv">"_blank"</span><span class="pln"> </span><span class="atn">title</span><span class="pun">=</span><span class="atv">"WhatsApp Us"</span><span class="tag">&gt;</span><span class="pln">
        </span><span class="tag">&lt;i</span><span class="pln"> </span><span class="atn">class</span><span class="pun">=</span><span class="atv">"fa fa-whatsapp"</span><span class="tag">&gt;&lt;/i&gt;</span><span class="pln">
        </span><span class="tag">&lt;span&gt;</span><span class="pln">+123 456 7890</span><span class="tag">&lt;/span&gt;</span><span class="pln">
    </span><span class="tag">&lt;/a&gt;</span><span class="pln">
</span><span class="tag">&lt;/div&gt;</span></pre>

<p>
	<br />
	Custom.CSS<br />
	 
</p>

<pre class="ipsCode prettyprint lang-html prettyprinted"><span class="pln">.whatsapp-top-nav {
    display: flex;
    align-items: center;
    margin-left: 1rem; /* Adjust spacing as needed */
    font-size: 1rem;
}
.whatsapp-top-nav a {
    color: #fff; /* Match your navbar text color */
    display: flex;
    align-items: center;
    text-decoration: none;
}
.whatsapp-top-nav .fa-whatsapp {
    font-size: 1.2em;
    margin-right: 0.5rem;
    color: #25D366; /* Official WhatsApp green */
}</span></pre>

<p>
	and Head.tpl<br /><br />
	 
</p>

<pre class="ipsCode prettyprint lang-html prettyprinted"><span class="tag">&lt;link</span><span class="pln"> </span><span class="atn">rel</span><span class="pun">=</span><span class="atv">"stylesheet"</span><span class="pln"> </span><span class="atn">href</span><span class="pun">=</span><span class="atv">"https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css"</span><span class="tag">&gt;</span></pre>

<p>
	 
</p>

<p><a href="//media.invisioncic.com/t336404/monthly_2025_10/Untitled.jpg.5c71077c4c0cb98a943c8ea97ee2c040.jpg" class="ipsAttachLink ipsAttachLink_image" ><img data-fileid="339034" src="https://www.prestashop.com/forums/applications/core/interface/js/spacer.png" data-src="//media.invisioncic.com/t336404/monthly_2025_10/Untitled.jpg.5c71077c4c0cb98a943c8ea97ee2c040.jpg" data-ratio="25.68" width="627" class="ipsImage ipsImage_thumbnailed" alt="Untitled.jpg"></a></p>]]></description><guid isPermaLink="false">1102457</guid><pubDate>Mon, 06 Oct 2025 09:58:16 +0000</pubDate></item><item><title>Issue with reCaptcha, SPAM users using contact formular</title><link>https://forum.prestashop.com/topic/1102221-issue-with-recaptcha-spam-users-using-contact-formular/</link><description><![CDATA[<p>
	Hi prestashop Forum,<br />
	After buying and installing the module "reCaptcha" from <a href="https://addons.prestashop.com/en/website-security-access/42438-recaptcha-google-anti-spam.html" rel="external nofollow">https://addons.prestashop.com/en/website-security-access/42438-recaptcha-google-anti-spam.html</a><br />
	I still have major issue with reCAPTCHA, I got SPAM from robots/services using my contact formular to sent SPAM.<br />
	I'll see continued email creations in the prestashop backend, 15 a minute from IP. <br /><br />
	The module don't block spam, tested both v. 2 and v.3, the spammer/robot/service uses the contact formular to sent spam, and this is not blocked by reCAPTCHA. Are there anyone with the same issue on is this module.<br /><br />
	Example of user created: <br />
	Name: 网址①⑧⑧⑦点top注册送⑧彩金<br />
	Last name: 存五十送③⑦彩金<br />
	email: 2940148061@qq.com<br />
	IP: 38.12.30.33 <br /><br />
	Purchased module/software:<br />
	reCaptcha - Google Anti Spam module, version: v1.1.7<br />
	reCaptcha versions tested with no luck: v2 and v3<br />
	Change 'Site key' and 'Secret key' but with same result.<br /><br />
	My prestashop version: 1.7.6.8<br />
	ReCaptcha anti-spam - PrestaShop module configuration in backend, ReCaptcha allowed score is set to 0.1<br /><br />
	Temporary solution is to block the formular in the .htaccess with following.
</p>

<p>
	# blocking contact formular<br />
	&lt;IfModule mod_rewrite.c&gt;<br />
	RewriteEngine On<br />
	RewriteCond %{QUERY_STRING} ^create_account=1.* [NC]<br />
	RewriteRule ^(.*)$ - [F,L]<br />
	&lt;/IfModule&gt;<br /><br />
	&lt;IfModule mod_rewrite.c&gt;<br />
	&lt;IfModule mod_env.c&gt;<br />
	SetEnv HTTP_MOD_REWRITE On<br />
	&lt;/IfModule&gt;<br />
	RewriteEngine on
</p>

<p>
	BR<br />
	/M
</p>
]]></description><guid isPermaLink="false">1102221</guid><pubDate>Fri, 26 Sep 2025 05:57:41 +0000</pubDate></item><item><title>Prestashop 9 create my own module</title><link>https://forum.prestashop.com/topic/1101296-prestashop-9-create-my-own-module/</link><description><![CDATA[<p>
	Hello everyone,
</p>

<p>
	I managed to get a module working in PrestaShop 1.7.8.11. Now I want to rebuild it so it works in PrestaShop 9 as well.
</p>

<p>
	I've used Copilot and Gemini for help. However, they say different things, and neither works.
</p>

<p>
	To see what I need to change, I thought I'd create a test module first. I want to get it right the first time.
</p>

<p>
	What I want is a module that I can install to start with. Once that's done, I want the module's name and description to be visible in the language selected in the back office.
</p>

<p>
	I'm calling my module 'testmodule'.<br />
	Copilot tells me to place testmodule.php in the root of the module.<br />
	But Gemini tells me to create a 'src' folder in the module and place testmodule.php in it.
</p>

<p>
	What's the correct answer, and what's the next step? Because now that I know this, I also want to ensure I can display labels in the back office, but I also want them in the language selected in the back office.
</p>

<p>
	Can anyone help me?
</p>

<p>
	Thanks in advance,
</p>

<p>
	Frits van Leeuwen
</p>
]]></description><guid isPermaLink="false">1101296</guid><pubDate>Mon, 25 Aug 2025 08:30:17 +0000</pubDate></item><item><title>Prestashop 1.7.6.3 - Checkout carrier - redirect to Address</title><link>https://forum.prestashop.com/topic/1017065-prestashop-1763-checkout-carrier-redirect-to-address/</link><description><![CDATA[
<p>
	Hello! 
</p>

<p>
	i'm running presta 1.7.6.3 and i work on module where on checkout (Carrier tab) open popup where customer can select delivery destination-address (for example - post office) - that work as i expected. 
</p>

<p>
	- customer select delivery destination (address) we change delivery address over ajax call:
</p>

<pre class="ipsCode prettyprint lang-php prettyprinted">
<span class="pln">            $id_of_carrier </span><span class="pun">=</span><span class="pln"> </span><span class="typ">Context</span><span class="pun">::</span><span class="pln">getContext</span><span class="pun">()-&gt;</span><span class="pln">cart</span><span class="pun">-&gt;</span><span class="pln">id_carrier</span><span class="pun">;</span><span class="pln">
            $id_address_delivery </span><span class="pun">=</span><span class="pln"> </span><span class="typ">Context</span><span class="pun">::</span><span class="pln">getContext</span><span class="pun">()-&gt;</span><span class="pln">cart</span><span class="pun">-&gt;</span><span class="pln">id_address_delivery</span><span class="pun">;</span><span class="pln">
            $id_address_invoice </span><span class="pun">=</span><span class="pln"> </span><span class="typ">Context</span><span class="pun">::</span><span class="pln">getContext</span><span class="pun">()-&gt;</span><span class="pln">cart</span><span class="pun">-&gt;</span><span class="pln">id_address_invoice</span><span class="pun">;</span><span class="pln">
            $addressBilling </span><span class="pun">=</span><span class="pln"> </span><span class="kwd">new</span><span class="pln"> </span><span class="typ">Address</span><span class="pun">(</span><span class="pln">$id_address_invoice</span><span class="pun">);</span><span class="pln">
            $address </span><span class="pun">=</span><span class="pln"> </span><span class="kwd">new</span><span class="pln"> </span><span class="typ">Address</span><span class="pun">(</span><span class="pln">$id_address_delivery</span><span class="pun">);</span><span class="pln">

            $newaddress </span><span class="pun">=</span><span class="pln"> </span><span class="kwd">new</span><span class="pln"> </span><span class="typ">Address</span><span class="pun">();</span><span class="pln">
            $newaddress</span><span class="pun">-&gt;</span><span class="pln">id_customer </span><span class="pun">=</span><span class="pln"> $address</span><span class="pun">-&gt;</span><span class="pln">id_customer</span><span class="pun">;</span><span class="pln">
            $newaddress</span><span class="pun">-&gt;</span><span class="pln">id_manufacturer </span><span class="pun">=</span><span class="pln"> $address</span><span class="pun">-&gt;</span><span class="pln">id_manufacturer</span><span class="pun">;</span><span class="pln">
            $newaddress</span><span class="pun">-&gt;</span><span class="pln">id_supplier </span><span class="pun">=</span><span class="pln"> $address</span><span class="pun">-&gt;</span><span class="pln">id_supplier</span><span class="pun">;</span><span class="pln">
            $newaddress</span><span class="pun">-&gt;</span><span class="pln">id_warehouse </span><span class="pun">=</span><span class="pln"> $address</span><span class="pun">-&gt;</span><span class="pln">id_warehouse</span><span class="pun">;</span><span class="pln">
            $newaddress</span><span class="pun">-&gt;</span><span class="pln">id_country </span><span class="pun">=</span><span class="pln"> $address</span><span class="pun">-&gt;</span><span class="pln">id_country</span><span class="pun">;</span><span class="pln">
            $newaddress</span><span class="pun">-&gt;</span><span class="pln">id_state </span><span class="pun">=</span><span class="pln"> $address</span><span class="pun">-&gt;</span><span class="pln">id_state</span><span class="pun">;</span><span class="pln">
            $newaddress</span><span class="pun">-&gt;</span><span class="pln">country </span><span class="pun">=</span><span class="pln"> $address</span><span class="pun">-&gt;</span><span class="pln">country</span><span class="pun">;</span><span class="pln">
            $newaddress</span><span class="pun">-&gt;</span><span class="kwd">alias</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> $_POST</span><span class="pun">[</span><span class="str">'in'</span><span class="pun">];</span><span class="pln">
            $newaddress</span><span class="pun">-&gt;</span><span class="pln">company </span><span class="pun">=</span><span class="pln"> $address</span><span class="pun">-&gt;</span><span class="pln">company</span><span class="pun">;</span><span class="pln">
            $newaddress</span><span class="pun">-&gt;</span><span class="pln">lastname </span><span class="pun">=</span><span class="pln">  $address</span><span class="pun">-&gt;</span><span class="pln">lastname</span><span class="pun">;</span><span class="pln">
            $newaddress</span><span class="pun">-&gt;</span><span class="pln">firstname </span><span class="pun">=</span><span class="pln">  $address</span><span class="pun">-&gt;</span><span class="pln">firstname</span><span class="pun">;</span><span class="pln">
            $newaddress</span><span class="pun">-&gt;</span><span class="pln">address1 </span><span class="pun">=</span><span class="pln"> $_POST</span><span class="pun">[</span><span class="str">'it'</span><span class="pun">];</span><span class="pln">
            $newaddress</span><span class="pun">-&gt;</span><span class="pln">address2 </span><span class="pun">=</span><span class="pln"> $_POST</span><span class="pun">[</span><span class="str">'ipn'</span><span class="pun">];</span><span class="pln">
            $newaddress</span><span class="pun">-&gt;</span><span class="pln">postcode </span><span class="pun">=</span><span class="pln"> $_POST</span><span class="pun">[</span><span class="str">'ipi'</span><span class="pun">];</span><span class="pln">
            $newaddress</span><span class="pun">-&gt;</span><span class="pln">city </span><span class="pun">=</span><span class="pln"> $_POST</span><span class="pun">[</span><span class="str">'ip'</span><span class="pun">];</span><span class="pln">
            $newaddress</span><span class="pun">-&gt;</span><span class="pln">phone </span><span class="pun">=</span><span class="pln"> $address</span><span class="pun">-&gt;</span><span class="pln">phone</span><span class="pun">;</span><span class="pln">
            $newaddress</span><span class="pun">-&gt;</span><span class="pln">phone_mobile </span><span class="pun">=</span><span class="pln"> $address</span><span class="pun">-&gt;</span><span class="pln">phone_mobile</span><span class="pun">;</span><span class="pln">
            $newaddress</span><span class="pun">-&gt;</span><span class="pln">vat_number </span><span class="pun">=</span><span class="pln"> $address</span><span class="pun">-&gt;</span><span class="pln">vat_number</span><span class="pun">;</span><span class="pln">
            $newaddress</span><span class="pun">-&gt;</span><span class="pln">deleted </span><span class="pun">=</span><span class="pln"> </span><span class="lit">0</span><span class="pun">;</span><span class="pln">
            $newaddress</span><span class="pun">-&gt;</span><span class="pln">force_id </span><span class="pun">=</span><span class="pln"> </span><span class="kwd">true</span><span class="pun">;</span><span class="pln">
            $newaddress</span><span class="pun">-&gt;</span><span class="pln">other </span><span class="pun">=</span><span class="pln"> $_POST</span><span class="pun">[</span><span class="str">'xx'</span><span class="pun">].</span><span class="pln"> </span><span class="str">":"</span><span class="pln"> </span><span class="pun">.</span><span class="pln">$_POST</span><span class="pun">[</span><span class="str">'xxx'</span><span class="pun">];</span><span class="pln">

            </span><span class="kwd">if</span><span class="pln"> </span><span class="pun">(</span><span class="pln">$newaddress</span><span class="pun">-&gt;</span><span class="kwd">add</span><span class="pun">()</span><span class="pln"> </span><span class="pun">==</span><span class="pln"> </span><span class="kwd">true</span><span class="pun">)</span><span class="pln">
            </span><span class="pun">{</span><span class="pln">
                </span><span class="com">//update cart</span><span class="pln">
                $cart </span><span class="pun">=</span><span class="pln"> </span><span class="typ">Context</span><span class="pun">::</span><span class="pln">getContext</span><span class="pun">()-&gt;</span><span class="pln">cart</span><span class="pun">;</span><span class="pln">
                $cart</span><span class="pun">-&gt;</span><span class="pln">id_address_delivery </span><span class="pun">=</span><span class="pln"> $newaddress</span><span class="pun">-&gt;</span><span class="pln">id</span><span class="pun">;</span><span class="pln">
                $cart</span><span class="pun">-&gt;</span><span class="pln">update</span><span class="pun">();</span><span class="pln">
                $cart</span><span class="pun">-&gt;</span><span class="pln">save</span><span class="pun">();</span><span class="pln">
                $cart</span><span class="pun">-&gt;</span><span class="pln">setNoMultishipping</span><span class="pun">();</span><span class="pln">

                $delivery_option </span><span class="pun">=</span><span class="pln"> $cart</span><span class="pun">-&gt;</span><span class="pln">getDeliveryOption</span><span class="pun">();</span><span class="pln">
                $delivery_option</span><span class="pun">[(</span><span class="kwd">int</span><span class="pun">)</span><span class="pln">$newaddress</span><span class="pun">-&gt;</span><span class="pln">id</span><span class="pun">]</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> $id_of_carrier</span><span class="pun">.</span><span class="str">','</span><span class="pun">;</span><span class="pln">
                $cart</span><span class="pun">-&gt;</span><span class="pln">setDeliveryOption</span><span class="pun">(</span><span class="pln">$delivery_option</span><span class="pun">);</span><span class="pln">
                $cart</span><span class="pun">-&gt;</span><span class="pln">save</span><span class="pun">();</span><span class="pln">
            </span><span class="pun">}</span></pre>

<p>
	- when proceed (click on continue button) to next step (billing information) presta make redirect to Address tab - that mean we go two steps back. I don't have idea why?
</p>

<p>
	Can anyone help me how to prevent redirect to address tab after address is changed over code? Theme and checkout is default - no customizations.
</p>

<p>
	 
</p>

<p>
	Thank you!
</p>
]]></description><guid isPermaLink="false">1017065</guid><pubDate>Tue, 10 Mar 2020 12:16:26 +0000</pubDate></item><item><title>[FIX] How to make "CAPTCHA Pro by Anvanto" work on PrestaShop 9+</title><link>https://forum.prestashop.com/topic/1102074-fix-how-to-make-captcha-pro-by-anvanto-work-on-prestashop-9/</link><description><![CDATA[<p>
	Hello everyone,
</p>

<p>
	If you've recently upgraded to PrestaShop 9 and tried to install the "<a href="https://addons.prestashop.com/en/website-security-access/94403-captcha-pro-recaptcha-cloudflare-anti-fake-spam.html" rel="external nofollow">CAPTCHA Pro: reCAPTCHA, Cloudflare - Anti fake &amp; spam" module by Anvanto</a>, you may have run into a fatal "HTTP 500 error" when trying to access its configuration page.
</p>

<p>
	This happens because the module uses some outdated functions that were removed in newer versions of PrestaShop. The good news is that the fix is very simple and only requires editing one file.
</p>

<p>
	Here’s a step-by-step guide to get it working.
</p>

<p>
	The Problem
</p>

<p>
	The module's admin controller (AdminAncaptchaSettingsController.php) calls two deprecated methods that cause PrestaShop to crash:
</p>

<p>
	$this-&gt;addJquery(); - This function is no longer needed as jQuery is loaded automatically in the back office.
</p>

<p>
	parent::l(); - The module uses an old method for handling translations within a controller.
</p>

<p>
	The Solution: How to Fix the Errors
</p>

<p>
	You will need to edit one file. You can do this via FTP or the File Manager in your hosting panel.
</p>

<p>
	File to Edit: <strong>/modules/ancaptcha/controllers/admin/AdminAncaptchaSettings.php</strong>
</p>

<p>
	Fix #1: The addJquery Error
</p>

<p>
	This is the first error you will likely encounter.
</p>

<p>
	Open the <strong>AdminAncaptchaSettings.php</strong> file.
</p>

<p>
	Navigate to the setMedia function, which should be around line 43.
</p>

<p>
	Find this line of code:
</p>

<pre class="ipsCode prettyprint lang-php prettyprinted"><span class="pln">$this</span><span class="pun">-&gt;</span><span class="pln">addJquery</span><span class="pun">();</span></pre>

<p>
	Comment out or delete that line. The easiest way is to add // in front of it, like this:
</p>

<pre class="ipsCode prettyprint lang-php prettyprinted"><span class="com">// $this-&gt;addJquery();</span></pre>

<p>
	Your setMedia function should now look like this:
</p>

<pre class="ipsCode prettyprint lang-php prettyprinted"><span class="kwd">public</span><span class="pln"> </span><span class="kwd">function</span><span class="pln"> setMedia</span><span class="pun">(</span><span class="pln">$isNewTheme </span><span class="pun">=</span><span class="pln"> </span><span class="kwd">false</span><span class="pun">)</span><span class="pln"> </span><span class="pun">{</span><span class="pln"> parent</span><span class="pun">::</span><span class="pln">setMedia</span><span class="pun">(</span><span class="pln">$isNewTheme</span><span class="pun">);</span><span class="pln"> </span><span class="com">// $this-&gt;addJquery(); $this-&gt;js_files[] = _MODULE_DIR_ . 'ancaptcha/views/js/back_settings.js'; }</span></pre>

<p>
	Fix #2: The l() Translation Error
</p>

<p>
	After fixing the first error, you will likely see a new one related to the l() method.
</p>

<p>
	In the same file (AdminAncaptchaSettings.php), find the l() function, which should be around line 36.
</p>

<p>
	The original function looks like this:
</p>

<pre class="ipsCode prettyprint lang-php prettyprinted"><span class="kwd">public</span><span class="pln"> </span><span class="kwd">function</span><span class="pln"> l</span><span class="pun">(</span><span class="pln">$string</span><span class="pun">,</span><span class="pln"> $class </span><span class="pun">=</span><span class="pln"> </span><span class="kwd">null</span><span class="pun">,</span><span class="pln"> $addslashes </span><span class="pun">=</span><span class="pln"> </span><span class="kwd">false</span><span class="pun">,</span><span class="pln"> $htmlentities </span><span class="pun">=</span><span class="pln"> </span><span class="kwd">true</span><span class="pun">)</span><span class="pln"> </span><span class="pun">{</span><span class="pln"> </span><span class="kwd">return</span><span class="pln"> parent</span><span class="pun">::</span><span class="pln">l</span><span class="pun">(</span><span class="pln">$string</span><span class="pun">,</span><span class="pln"> pathinfo</span><span class="pun">(</span><span class="pln">__FILE__</span><span class="pun">,</span><span class="pln"> PATHINFO_FILENAME</span><span class="pun">),</span><span class="pln"> $addslashes</span><span class="pun">,</span><span class="pln"> $htmlentities</span><span class="pun">);</span><span class="pln"> </span><span class="pun">}</span></pre>

<p>
	You need to change the way it calls the translation method. Replace the entire function with this corrected version:
</p>

<pre class="ipsCode prettyprint lang-php prettyprinted"><span class="kwd">public</span><span class="pln"> </span><span class="kwd">function</span><span class="pln"> l</span><span class="pun">(</span><span class="pln">$string</span><span class="pun">,</span><span class="pln"> $class </span><span class="pun">=</span><span class="pln"> </span><span class="kwd">null</span><span class="pun">,</span><span class="pln"> $addslashes </span><span class="pun">=</span><span class="pln"> </span><span class="kwd">false</span><span class="pun">,</span><span class="pln"> $htmlentities </span><span class="pun">=</span><span class="pln"> </span><span class="kwd">true</span><span class="pun">)</span><span class="pln"> </span><span class="pun">{</span><span class="pln"> </span><span class="kwd">return</span><span class="pln"> $this</span><span class="pun">-&gt;</span><span class="kwd">module</span><span class="pun">-&gt;</span><span class="pln">l</span><span class="pun">(</span><span class="pln">$string</span><span class="pun">,</span><span class="pln"> pathinfo</span><span class="pun">(</span><span class="pln">__FILE__</span><span class="pun">,</span><span class="pln"> PATHINFO_FILENAME</span><span class="pun">));</span><span class="pln"> </span><span class="pun">}</span></pre>

<p>
	This new code correctly calls the translation function through the module instance ($this-&gt;module-&gt;l) instead of using the outdated parent::l.
</p>

<p>
	Final Step:
</p>

<p>
	Save the changes to the AdminAncaptchaSettings.php file and upload it back to your prestashop. Now, clear your PrestaShop cache (under Advanced Parameters &gt; Performance) and refresh the module's configuration page.
</p>

<p>
	Everything should now be working correctly! Hope this helps others who face the same issue.
</p>
]]></description><guid isPermaLink="false">1102074</guid><pubDate>Sat, 20 Sep 2025 15:08:56 +0000</pubDate></item><item><title>Presta 8.0.4 and module Edition Basic</title><link>https://forum.prestashop.com/topic/1101552-presta-804-and-module-edition-basic/</link><description><![CDATA[<p>
	Hello,
</p>

<p>
	I have fresh install of Presta 8.0.4 and problem with module PsEditionBasic.<br />
	When trying to go to home page of admin panel / dashboard I see error:
</p>

<p>
	Attempted to call an undefined method named "getConfiguration" of class "PrestaShop\Module\PsEditionBasic\Controller\HOME".
</p>

<p>
	Error comes from <span>:</span>
</p>

<pre class="ipsCode prettyprint lang-php prettyprinted"><span class="pln"> </span><span class="kwd">private</span><span class="pln"> </span><span class="kwd">function</span><span class="pln"> buildAdminUrl</span><span class="pun">(</span><span class="kwd">string</span><span class="pln"> $routeName</span><span class="pun">):</span><span class="pln"> </span><span class="kwd">string</span><span class="pln">
    </span><span class="pun">{</span><span class="pln">
   
        $router </span><span class="pun">=</span><span class="pln"> $this</span><span class="pun">-&gt;</span><span class="kwd">get</span><span class="pun">(</span><span class="str">'router'</span><span class="pun">);</span><span class="pln">
          
       	$scheme </span><span class="pun">=</span><span class="pln"> $this</span><span class="pun">-&gt;</span><span class="pln">getConfiguration</span><span class="pun">()-&gt;</span><span class="kwd">get</span><span class="pun">(</span><span class="str">'PS_SSL_ENABLED'</span><span class="pun">)</span><span class="pln"> </span><span class="pun">?</span><span class="pln"> </span><span class="str">'https://'</span><span class="pln"> </span><span class="pun">:</span><span class="pln"> </span><span class="str">'http://'</span><span class="pun">;</span><span class="pln">

        </span><span class="kwd">return</span><span class="pln"> $scheme </span><span class="pun">.</span><span class="pln"> $_SERVER</span><span class="pun">[</span><span class="str">'HTTP_HOST'</span><span class="pun">]</span><span class="pln"> </span><span class="pun">.</span><span class="pln"> $router</span><span class="pun">-&gt;</span><span class="pln">generate</span><span class="pun">(</span><span class="pln">$routeName</span><span class="pun">);</span><span class="pln">
    </span><span class="pun">}</span></pre>

<p>
	and in HOME class of module there is:
</p>

<pre class="ipsCode prettyprint lang-php prettyprinted"><span class="kwd">namespace</span><span class="pln"> </span><span class="typ">PrestaShop</span><span class="pln">\Module\PsEditionBasic\Controller</span><span class="pun">;</span><span class="pln">

</span><span class="kwd">class</span><span class="pln"> HOME </span><span class="kwd">extends</span><span class="pln"> </span><span class="typ">AdminPsEditionBasicController</span><span class="pln">
</span><span class="pun">{</span><span class="pln">
    </span><span class="com">// TODO: remove in v9 https://github.com/PrestaShop/PrestaShop/milestone/85</span><span class="pln">
    </span><span class="com">// Hack to redirect HOME controller to AdminPsEditionBasicHomepageController</span><span class="pln">
</span><span class="pun">}</span></pre>

<p>
	Module is in v1.0.20 (not possible to update).
</p>

<p>
	PHP: 8.1.33<br />
	PrestaShop: 8.0.4<br />
	MySQL: 10.3.39-MariaDB
</p>

<p>
	It looks like default module has a problem with accessing "getConfiguration". ?
</p>

<p>
	Am I missing something?
</p>

<p>
	 
</p>
]]></description><guid isPermaLink="false">1101552</guid><pubDate>Tue, 02 Sep 2025 12:25:32 +0000</pubDate></item><item><title>I want to increase server's maximum upload file size</title><link>https://forum.prestashop.com/topic/219400-i-want-to-increase-servers-maximum-upload-file-size/</link><description><![CDATA[
<p>Hi,</p>
<p> </p>
<p>I am trying to make a downloadable product that has 81mb. I cannot upload it to the server because i receive the following message:</p>
<p>Your server's maximum upload file size is 64M.</p>
<p>I want to increase this limit, how do i proceed ?</p>
<p> </p>
<p>Thank you!</p>
<p> </p>
<p>I run on 1.5.2 version</p>
]]></description><guid isPermaLink="false">219400</guid><pubDate>Fri, 25 Jan 2013 14:31:33 +0000</pubDate></item><item><title>Prestashop 9 module manager and translate</title><link>https://forum.prestashop.com/topic/1101309-prestashop-9-module-manager-and-translate/</link><description><![CDATA[<p>
	Hello,
</p>

<p>
	When I read the names and descriptions of the modules in the module manager, they are multilingual. So when I change my backoffice to Dutch, The names and descriptions are in Dutch. Even so, when I change to English, the modules have English names and descriptions.<br />
	But not mine. Yes, I know, I can translate in Prestashop, but that's not what I want. I like to bring my translation in the module. 
</p>

<p>
	So after install of the module, I see the module in the module manager, but not in the chosen language.
</p>

<p>
	Who can tell me how to fix this?
</p>

<p>
	Thanks for help.
</p>

<p>
	Frits van Leeuwen
</p>
]]></description><guid isPermaLink="false">1101309</guid><pubDate>Mon, 25 Aug 2025 11:58:18 +0000</pubDate></item><item><title>[Solved] Ordering mail is not sent from specific language</title><link>https://forum.prestashop.com/topic/1063968-solved-ordering-mail-is-not-sent-from-specific-language/</link><description><![CDATA[<p>
	Hello,
</p>

<p>
	I am having problems with sending order emails from my Prestashop (1.7).
</p>

<p>
	The web is in 2 languages, English (/en) and Spanish (/es).<br />
	- When I place orders from /en, all the emails work correctly.<br />
	- When I place orders from the English version /en, none of the order emails arrive to the user and if I try to cancel the order from the backend it shows me this error message "An error occurred during the order status change #202, or the email could not be sent to the customer".
</p>

<p>
	Has anyone had this same or similar problem happen to them? I have talked to the hosting provider and tried all possible email configurations and nothing.
</p>

<p>
	Best regards
</p>
]]></description><guid isPermaLink="false">1063968</guid><pubDate>Thu, 12 May 2022 11:29:54 +0000</pubDate></item><item><title>API - Prestashop to Amazon // Communication problems - Need help</title><link>https://forum.prestashop.com/topic/1101425-api-prestashop-to-amazon-communication-problems-need-help/</link><description><![CDATA[<p>
	1. Module version: v5.3.85 (Common Services module)
</p>

<p>
	2. Prestashop version: 8.2.0
</p>

<p>
	The situation is as follows: 
</p>

<p>
	I currently still confirm every order manually on Amazon and enter the tracking number during the confirmation process.
</p>

<p>
	In addition, I manually upload the invoice for each order from Amazon ‘business customers’. 
</p>

<p>
	I urgently need help so that once these steps have been completed in Prestashop (entering the tracking number, confirming the order and uploading the invoice), they are synchronised and uploaded directly to Amazon.
</p>

<p>
	Communication with order confirmation and tracking number is already taking place, but via the customer messaging function, which is not helpful to me.
</p>

<p>
	We currently use the Amazon module from Common Services.<br />
	However, I am also interested in other modules if they meet my criteria mentioned above.
</p>

<p>
	Please help me automate communication from Prestashop to Amazon.
</p>

<p>
	Thank you in advance!
</p>
]]></description><guid isPermaLink="false">1101425</guid><pubDate>Fri, 29 Aug 2025 08:20:46 +0000</pubDate></item><item><title>(Solved) Ajax errors are not shown when adding product to cart on product page</title><link>https://forum.prestashop.com/topic/1078979-solved-ajax-errors-are-not-shown-when-adding-product-to-cart-on-product-page/</link><description><![CDATA[<p>
	Hello, I have a little problem with PrestaShop 8.1.0. On the product page, when you click the add to cart button, I correctly receive an error from ajax in the console (out of stock for example), my problem is that it doesn't show as before on the product page. That is, PrestaShop correctly does not add the product to the cart but does not show the customer anything warning him of the error. Is it an issue with this version of PrestaShop or should I program the script inside my module to display errors correctly? Thanks in advance.
</p>
]]></description><guid isPermaLink="false">1078979</guid><pubDate>Fri, 04 Aug 2023 08:39:55 +0000</pubDate></item><item><title>Customer upload file from module</title><link>https://forum.prestashop.com/topic/1101361-customer-upload-file-from-module/</link><description><![CDATA[<p>
	Hello,<br />
	I've created a module in Prestashop 8.2 which views video's and comments. But I also want to let customers to upload files like mp4, mpg, jpg, png etc.<br />
	For so far I have created a form where customers can add some details and select there movies or images. But the real question is, how do I process the data and selected files? I would like to upload the files to the Upload-folder or another folder (if possible).<br />
	Thanks in advance!
</p>
]]></description><guid isPermaLink="false">1101361</guid><pubDate>Wed, 27 Aug 2025 07:27:43 +0000</pubDate></item><item><title>I need to add two fields in the checkout process.</title><link>https://forum.prestashop.com/topic/1100987-i-need-to-add-two-fields-in-the-checkout-process/</link><description><![CDATA[<p>
	I need to add two fields, a 'reference number' and the name of a 'contact person' to the checkout process in the first step, but not on the login form.
</p>

<p>
	Those two fields need to be added to the cart table and the orders table.
</p>

<p>
	 
</p>

<p>
	However:
</p>

<p>
	- I'm not supposed to use 'overrides', since Prestashop discourages that.
</p>

<p>
	- I don't want to change core code.
</p>

<p>
	- There aren't any hooks in the checkout process that can be used for this.
</p>

<p>
	 
</p>

<p>
	How can I accomplish this?
</p>

<p>
	 
</p>
]]></description><guid isPermaLink="false">1100987</guid><pubDate>Tue, 12 Aug 2025 11:34:43 +0000</pubDate></item><item><title>Exactly how would I use the hooks hookActionPresentProduct and hookActionPresentProductListing?</title><link>https://forum.prestashop.com/topic/1101125-exactly-how-would-i-use-the-hooks-hookactionpresentproduct-and-hookactionpresentproductlisting/</link><description><![CDATA[<p>
	Both those hooks seem very useful to manipulate product data before displaying the products, but the 'product' and 'presentedProduct' elements of $params are private and protected respectively. There don't seem to be any setters available either to change or add values, so how would I use those hooks to manipulate the data?
</p>

<p>
	 
</p>
]]></description><guid isPermaLink="false">1101125</guid><pubDate>Mon, 18 Aug 2025 11:44:23 +0000</pubDate></item><item><title>"Linking Store in progress", PrestaShop Checkout does not link PayPal</title><link>https://forum.prestashop.com/topic/1101036-linking-store-in-progress-prestashop-checkout-does-not-link-paypal/</link><description><![CDATA[<p>
	Hello,
</p>

<p>
	I have a fresh install of PrestaShop 9.0.0. Everything is working fine (at least demo) but I cannot configure/connect my PayPal account. If I click on "Link Store" from Marketplace - endless spinning of "Linking Store in progress" and nothing happens. But I was able to link my store through the Module Manager: PrestaShop Checkout shows button "Configure", then it opens next page and shows green checkbox next to "Link your store to a PrestaShop account". And that is the only thing I can do with this module. Next step (PayPal) isn't available.
</p>

<p>
	Please help.
</p>

<p><a href="//media.invisioncic.com/t336404/monthly_2025_08/Screenshot2025-08-13214231.png.37b0b234a9cccfc12ef8366473008d0a.png" class="ipsAttachLink ipsAttachLink_image" ><img data-fileid="337839" src="https://www.prestashop.com/forums/applications/core/interface/js/spacer.png" data-src="//media.invisioncic.com/t336404/monthly_2025_08/Screenshot2025-08-13214231.thumb.png.dc5e2ebd5d189ba6b09a0f4792c8ee2e.png" data-ratio="23.7" width="1000" class="ipsImage ipsImage_thumbnailed" alt="Screenshot 2025-08-13 214231.png"></a></p>
<p><a href="//media.invisioncic.com/t336404/monthly_2025_08/Screenshot2025-08-13214441.png.240fd298a71b2f8d4fd5428ba7205563.png" class="ipsAttachLink ipsAttachLink_image" ><img data-fileid="337840" src="https://www.prestashop.com/forums/applications/core/interface/js/spacer.png" data-src="//media.invisioncic.com/t336404/monthly_2025_08/Screenshot2025-08-13214441.thumb.png.c0dd9e1f39a218bcf8889f35e56a36a9.png" data-ratio="59.2" width="1000" class="ipsImage ipsImage_thumbnailed" alt="Screenshot 2025-08-13 214441.png"></a></p>
<p><a href="//media.invisioncic.com/t336404/monthly_2025_08/Screenshot2025-08-13214630.png.e8a66447ebdce695b9a4e6153ac2260e.png" class="ipsAttachLink ipsAttachLink_image" ><img data-fileid="337841" src="https://www.prestashop.com/forums/applications/core/interface/js/spacer.png" data-src="//media.invisioncic.com/t336404/monthly_2025_08/Screenshot2025-08-13214630.thumb.png.a3fb4f28c925c2211c4850cfbbe5edb4.png" data-ratio="9" width="1000" class="ipsImage ipsImage_thumbnailed" alt="Screenshot 2025-08-13 214630.png"></a></p>]]></description><guid isPermaLink="false">1101036</guid><pubDate>Thu, 14 Aug 2025 01:48:26 +0000</pubDate></item><item><title>PrestaShop&#x2019;s New HCL AppScan in Module Validation | Need Advice on Unresolved Security Issues</title><link>https://forum.prestashop.com/topic/1101035-prestashop%E2%80%99s-new-hcl-appscan-in-module-validation-need-advice-on-unresolved-security-issues/</link><description><![CDATA[<p>
	Hello All,
</p>

<p>
	I’ve been testing the new PrestaShop module validation system and noticed they’ve recently added an HCL AppScan step.<br />
	It automatically scans your ZIP file, runs it through the latest security standards, and generates a detailed report.
</p>

<p>
	They’ve clearly resolved a lot of security issues across the ecosystem, which is great to see.<br />
	However, in my own case, I still have a few flagged issues that I haven’t been able to solve yet.
</p>

<p>
	I develop modules regularly, but I’m not highly advanced in security, so if anyone here has experience with the new scanning process or knows best practices to fix these remaining warnings, I’d really appreciate your input.
</p>

<p>
	Thanks in advance
</p>

<p>
	<img class="ipsImage ipsImage_thumbnailed" data-fileid="337833" data-ratio="95.49" width="710" alt="image.png.6a1a36d8c0c7a42c4487eef275ad5405.png" data-src="//media.invisioncic.com/t336404/monthly_2025_08/image.png.6a1a36d8c0c7a42c4487eef275ad5405.png" src="https://forum.prestashop.com/applications/core/interface/js/spacer.png" /><img class="ipsImage ipsImage_thumbnailed" data-fileid="337834" data-ratio="85.50" width="717" alt="image.png.0eff6494b6096a2b8cd8a94046642d44.png" data-src="//media.invisioncic.com/t336404/monthly_2025_08/image.png.0eff6494b6096a2b8cd8a94046642d44.png" src="https://forum.prestashop.com/applications/core/interface/js/spacer.png" /><img class="ipsImage ipsImage_thumbnailed" data-fileid="337835" data-ratio="72.11" width="735" alt="image.png.64a7aedadcc8bbf844aa47f9b1242b30.png" data-src="//media.invisioncic.com/t336404/monthly_2025_08/image.png.64a7aedadcc8bbf844aa47f9b1242b30.png" src="https://forum.prestashop.com/applications/core/interface/js/spacer.png" /><img class="ipsImage ipsImage_thumbnailed" data-fileid="337836" data-ratio="82.32" width="741" alt="image.png.1b0b58aea2f4d8e4185ccefe7de2bc8f.png" data-src="//media.invisioncic.com/t336404/monthly_2025_08/image.png.1b0b58aea2f4d8e4185ccefe7de2bc8f.png" src="https://forum.prestashop.com/applications/core/interface/js/spacer.png" /><img class="ipsImage ipsImage_thumbnailed" data-fileid="337837" data-ratio="65.74" width="788" alt="image.png.f0ed55d07219ef29c7e19e47bb44741a.png" data-src="//media.invisioncic.com/t336404/monthly_2025_08/image.png.f0ed55d07219ef29c7e19e47bb44741a.png" src="https://forum.prestashop.com/applications/core/interface/js/spacer.png" /></p>
]]></description><guid isPermaLink="false">1101035</guid><pubDate>Wed, 13 Aug 2025 23:45:08 +0000</pubDate></item><item><title>PrestaShop Checkout built with PayPal / error warning</title><link>https://forum.prestashop.com/topic/1101028-prestashop-checkout-built-with-paypal-error-warning/</link><description><![CDATA[<p>
	Hello,
</p>

<p>
	PS 8.2.0 / PrestaShop Checkout built with PayPal v8.4.4.0
</p>

<p>
	I just installed the module, configured it and cleared the cache.
</p>

<p>
	Everything looks fine so far... BUT when I select credit card or Google Pay as the payment method, the following warning message always appears at the bottom:
</p>

<p>
	Please select a payment method and accept our terms and conditions.
</p>

<p>
	Of course, I have ticked the box. Does anyone know what the problem is? And even better... does anyone have a solution?
</p>

<p>
	<br />
	You can see it at: www.postkartenparadies.de
</p>

<p>
	 
</p>
]]></description><guid isPermaLink="false">1101028</guid><pubDate>Wed, 13 Aug 2025 15:29:55 +0000</pubDate></item><item><title>Extend existing webservice definition</title><link>https://forum.prestashop.com/topic/1100964-extend-existing-webservice-definition/</link><description><![CDATA[<p>
	Hi all!
</p>

<p>
	 
</p>

<p>
	I am in the process of creating a module for our e-commerce stores. Because we need some functionality relating to HS-codes, I added a field for this in the products tab via a custom module. I store HS-codes in the database, every product can have at most one HS-code. Our product managers create products via our ERP system, which adds these products to Prestashop via the webservice.
</p>

<p>
	<u>Now my question:</u>
</p>

<p>
	Is it possible to add my HS-code field to the schema of `Product`? I know that I can extend the webservice like <a href="https://devdocs.prestashop-project.org/9/modules/concepts/webservice/" rel="external nofollow">this</a>, but I rather just send my custom field via an existing endpoint rather than creating a new endpoint.
</p>

<p>
	 
</p>

<p>
	Thanks in advance!
</p>
]]></description><guid isPermaLink="false">1100964</guid><pubDate>Tue, 12 Aug 2025 06:49:20 +0000</pubDate></item><item><title>ChatGPT long descriptions</title><link>https://forum.prestashop.com/topic/1099764-chatgpt-long-descriptions/</link><description><![CDATA[<p>
	Hello,
</p>

<p>
	I'm looking for a solution to generate quality products long descriptions via ChatGPT (no subscription required). I only find translators, any ideas?<br /><br />
	Thanks,<br /><br />
	Best regards.
</p>
]]></description><guid isPermaLink="false">1099764</guid><pubDate>Mon, 30 Jun 2025 13:16:19 +0000</pubDate></item><item><title>Iframe Modal</title><link>https://forum.prestashop.com/topic/1100754-iframe-modal/</link><description><![CDATA[<p>
	Hello!<br />
	I'm working on module and I want to use build in core IframeModal component from typescript (/prestashop/admin/themes/new-theme/js/components/modal/iframe-modal.ts). I found that I can use imports <a href="https://devdocs.prestashop-project.org/9/modules/concepts/templating/import-js/" rel="external nofollow">https://devdocs.prestashop-project.org/9/modules/concepts/templating/import-js/</a> but I don't know how it should look in the module. (files, directories) to work with it. Could anybody help me?
</p>
]]></description><guid isPermaLink="false">1100754</guid><pubDate>Mon, 04 Aug 2025 13:22:00 +0000</pubDate></item><item><title>need to add a java function in the last page prestashop 1.7</title><link>https://forum.prestashop.com/topic/1100451-need-to-add-a-java-function-in-the-last-page-prestashop-17/</link><description><![CDATA[<p>
	Im going to change my question of this topic.<br />
	And i hope someone is understand what i mean.<br /><br />
	I need to add a java function to the checkout page and thank you page, i have search the internet but i can´t find witch page it is.<br />
	So i hope someone can point me in the right direction.<br /><br />
	The java function i need to add to the page is <span><span>:</span></span>
</p>

<pre class="ipsCode prettyprint lang-javascript prettyprinted"><span class="pun">{</span><span class="pln">literal</span><span class="pun">}</span><span class="pln">
</span><span class="pun">&lt;</span><span class="pln">script</span><span class="pun">&gt;</span><span class="pln">
pertentoReportConversion</span><span class="pun">(</span><span class="str">'purchase'</span><span class="pun">,</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
  currencyCode</span><span class="pun">:</span><span class="pln"> order</span><span class="pun">.</span><span class="pln">currency</span><span class="pun">,</span><span class="pln">     
  revenue</span><span class="pun">:</span><span class="pln"> order</span><span class="pun">.</span><span class="pln">totalAmount</span><span class="pun">,</span><span class="pln">       
  tax</span><span class="pun">:</span><span class="pln"> order</span><span class="pun">.</span><span class="pln">taxAmount</span><span class="pun">,</span><span class="pln">             
  shipping</span><span class="pun">:</span><span class="pln"> order</span><span class="pun">.</span><span class="pln">shippingCost      
</span><span class="pun">})</span><span class="pln">
</span><span class="pun">&lt;/</span><span class="pln">script</span><span class="pun">&gt;</span><span class="pln">
</span><span class="pun">{/</span><span class="pln">literal</span><span class="pun">}</span></pre>

<p>
	Where can i find the transaction page.
</p>

<p>
	I use prestashop 1.7.6.0
</p>
]]></description><guid isPermaLink="false">1100451</guid><pubDate>Thu, 24 Jul 2025 10:51:14 +0000</pubDate></item><item><title>Theme restarted to raw version after swapping active theme to child for test, and back to parent</title><link>https://forum.prestashop.com/topic/1100452-theme-restarted-to-raw-version-after-swapping-active-theme-to-child-for-test-and-back-to-parent/</link><description><![CDATA[<p>
	Hello, I'm first time working with PrestaShop in small company, and basically I broke correct Parent active theme.<br />
	I was trying do do stuff with AI, and followed suggestion of creating child_theme instead of modifying parent theme.<br />
	So I created files, with theme.yml etc. <br />
	And set new child as active theme. It booted up, but all the modules were broken and didn't show anything at all.<br />
	So, as any other person I decided to swap back to previous theme that was set up with all pictures, text, translations in presta by me previously. <br />
	To my suprise, the theme looked raw, like before i changed anything, comepletely not showing what i created.<br /><br />
	I tried to bring back copy of FTP server from two days before, but it didn't fix anything at all.
</p>
]]></description><guid isPermaLink="false">1100452</guid><pubDate>Thu, 24 Jul 2025 11:05:08 +0000</pubDate></item><item><title>Prestashop v 8.2 Archive Gallery</title><link>https://forum.prestashop.com/topic/1100393-prestashop-v-82-archive-gallery/</link><description><![CDATA[<p>
	Hello, I am trying to create an image gallery from products we have made in the past. There are over 2000 products and I need each one displayed at 16:1 with its unique product reference number (which is also the image name) as well as able to be found using the sites search feature. Any help is greatly appreciated
</p>
]]></description><guid isPermaLink="false">1100393</guid><pubDate>Tue, 22 Jul 2025 17:52:29 +0000</pubDate></item><item><title>Youtube Module</title><link>https://forum.prestashop.com/topic/1047338-youtube-module/</link><description><![CDATA[<p>
	Is there a module that allows adding youtube videos to a product page as a tab but the YT.<br />
	The important feature is that the module allows:<br />
	- adding a video by editing the single product<br />
	- adding video as bulk by category, or manufacturer, or any other criteria<br />
	- adding more than one video per product
</p>]]></description><guid isPermaLink="false">1047338</guid><pubDate>Mon, 19 Apr 2021 20:55:25 +0000</pubDate></item><item><title>PrestaShop Checkout not activating on front office after reset</title><link>https://forum.prestashop.com/topic/1085863-prestashop-checkout-not-activating-on-front-office-after-reset/</link><description><![CDATA[<p>
	Yesterday, I upgraded PrestaShop Checkout from v7.3.5.2 --&gt; v7.3.6.1 and all of a sudden, customers were not able to make payments as they were seeing error messages and no one has been able to place any order. Today, when I found out about the issue and couldn't do anything to fix it, I reset the module to see if that would work. Once it was reset, the module stopped displaying any credit card or paypal payment options. I cleared the cache, upgraded Prestashop from v1.7.8.10 to v1.7.8.11 and checked all the Payment Preference settings but they are all fine. Once, I got this error after module reset: "The configuration is not set. You have an issue with your configuration, try onboarding again or contact our support."
</p>

<p>
	Can someone please help me fix the issue? We urgently need it fixed to accept credit cards. In the mean time, I installed the regular PayPal module so that at least some customers can place orders.
</p>
]]></description><guid isPermaLink="false">1085863</guid><pubDate>Wed, 20 Mar 2024 21:56:48 +0000</pubDate></item><item><title>ContextException while assigning variable to smarty</title><link>https://forum.prestashop.com/topic/987094-contextexception-while-assigning-variable-to-smarty/</link><description><![CDATA[
<p>
	In Prestashop v1.7.5.1, I've just built `mycustommodule`. In a CMS Page, I'm trying to pull some data from mycustommodule via a hook. 
</p>

<p>
	In the ../template/cms/page.tpl file I have:
</p>

<pre class="ipsCode prettyprint lang-html prettyprinted">
<span class="pln">{block name='cms_content'}
  {$cms.content nofilter}
  {if $cms.id==6}
    </span><span class="tag">&lt;div&gt;</span><span class="pln">
        </span><span class="tag">&lt;h1&gt;</span><span class="pln">Here's my custom hook</span><span class="tag">&lt;/h1&gt;</span><span class="pln">
        {hook h='displayCustomHook'}
    </span><span class="tag">&lt;/div&gt;</span><span class="pln">
  {/if}
{/block}</span></pre>

<p>
	In mycustommodule/mycustommodule.php, I have the hook:
</p>

<pre class="ipsCode prettyprint lang-html prettyprinted">
<span class="pln">public function hookCustomHook( $params ){
    $this-&gt;context-&gt;smarty-&gt;assign( array( 'myvariable' =&gt; 'test' ) );
    return $this-&gt;display(__FILE__, '/views/templates/hook/mycustommodule.tpl');
}</span></pre>

<p>
	I cannot assign anything to smarty without getting this error
</p>

<table style="border-collapse:collapse;border:1px solid #e0e0e0;color:#222222;font-size:14px;vertical-align:top;"><thead><tr style="border-collapse:collapse;vertical-align:top;"><th style="border-collapse:collapse;border-color:#e0e0e0;border-style:solid;border-width:1px 0px;padding:8px 10px;text-align:left;vertical-align:top;">
				<h3 style="color:#222222;font-size:18px;">
					<span style="color:#999999;">(1/1)</span><span> </span><span><abbr style="border-bottom:none;" title="Symfony\Component\Debug\Exception\ContextErrorException">ContextErrorException</abbr></span>
				</h3>

				<p style="font-size:14px;">
					Notice: Undefined property: Smarty_Internal_Undefined::$objMap
				</p>
			</th>
		</tr></thead><tbody><tr style="border-collapse:collapse;vertical-align:top;"><td style="border-collapse:collapse;border-color:#e0e0e0;border-style:solid;border-width:1px 0px;padding:8px 10px;vertical-align:top;">
				<span style="color:#222222;font-size:13px;">in<span> </span><a style="color:#222222;font-size:13px;" title="/home/dh_xfk4jh/ejuice.dreamhosters.com/vendor/smarty/smarty/libs/sysplugins/smarty_internal_extension_handler.php line 132" rel=""><strong>smarty_internal_extension_handler.php</strong><span> </span>line 132</a></span>
			</td>
		</tr></tbody></table><p>
	 
</p>

<p>
	I even went to github and found that line of code in the Smarty class: 
</p>

<pre class="ipsCode prettyprint lang-html prettyprinted">
<span class="pln">if (isset($callback) &amp;&amp; $callback[ 0 ]-&gt;objMap | $data-&gt;_objType) {</span></pre>

<p>
	But I feel like this is not a smarty problem -&gt; it's something I've referenced or done or not done in the module.  I have no idea what's going wrong - The whole module is working otherwise - including adding data to a custom table in the backend using an AdminController. 
</p>

<p>
	Has anyone else had this problem? WTF 
</p>
]]></description><guid isPermaLink="false">987094</guid><pubDate>Wed, 22 May 2019 20:44:41 +0000</pubDate></item><item><title>Unable to import theme on Prestashop 8.1.7, used on older version</title><link>https://forum.prestashop.com/topic/1089319-unable-to-import-theme-on-prestashop-817-used-on-older-version/</link><description><![CDATA[<p>
	Hello everyone, as part of the evolution we want to upgrade a prestashop 1.7.8.7 =&gt; 8.1.7 (at least an 8.x).
</p>

<p>
	Except that when I put the zip of my theme on the BO of my Prestashop 8.1.7 store, this is the error I get "<strong>Please select a valid source for your theme import.</strong>" :
</p>

<p>
	<img class="ipsImage ipsImage_thumbnailed" data-fileid="325645" data-ratio="51.90" width="1000" alt="image.png.b8cdfc678bacb49957e647a3fb296459.png" data-src="//media.invisioncic.com/t336404/monthly_2024_07/image.png.b8cdfc678bacb49957e647a3fb296459.png" src="https://forum.prestashop.com/applications/core/interface/js/spacer.png" /></p>

<p>
	<br />
	Yet when I look at the theme compatibility under /config/theme.yml I see compatibility from 1.7.2.0 to ~ (so all versions after this one?) :
</p>

<p>
	<img class="ipsImage ipsImage_thumbnailed" data-fileid="325646" data-ratio="30.50" width="1000" alt="image.png.b8914944f90c2ad34b6e2cafaef5a08a.png" data-src="//media.invisioncic.com/t336404/monthly_2024_07/image.png.b8914944f90c2ad34b6e2cafaef5a08a.png" src="https://forum.prestashop.com/applications/core/interface/js/spacer.png" /></p>

<p>
	<br />
	I'd like to know if anyone has ever been in this situation, and if anyone knows of a solution. We've done a lot of work on this theme, and starting from scratch would be a colossal undertaking...
</p>

<p>
	Thank you for your answers, and have a nice day!
</p>
]]></description><guid isPermaLink="false">1089319</guid><pubDate>Wed, 31 Jul 2024 06:54:11 +0000</pubDate></item><item><title>Multiple addon versions active at the same time?</title><link>https://forum.prestashop.com/topic/1099836-multiple-addon-versions-active-at-the-same-time/</link><description><![CDATA[<p>
	Hi there,
</p>

<p>
	I would like to split my module into 2 versions: 
</p>

<p>
	1 for PrestaShop versions older than 1.7.x (1.x.x)
</p>

<p>
	1 for PrestaShop versions newer than 1.7.x (2.x.x)
</p>

<p>
	Can they be active for the same module at the same time in the Marketplace? 
</p>
]]></description><guid isPermaLink="false">1099836</guid><pubDate>Wed, 02 Jul 2025 12:41:51 +0000</pubDate></item><item><title>Structured Data / Rich Snippets for items with variants: no "ProductGroup"-Class</title><link>https://forum.prestashop.com/topic/1099545-structured-data-rich-snippets-for-items-with-variants-no-productgroup-class/</link><description><![CDATA[<p>
	Hi Prestashop Community.<br /><br />
	I have noticed that Prestashop does not output “ProductGroup” for articles with variants (e.g. different colors) in the structured data / rich snippets. (link to the official guidelines: <a href="https://developers.google.com/search/docs/appearance/structured-data/product-variants#guidelines" rel="external nofollow">https://developers.google.com/search/docs/appearance/structured-data/product-variants#guidelines</a>)<br />
	Do you know a way to adjust this, or at best a useful module that offers this? In my opinion, this would be important for SEO and should actually be standard. 
</p>

<p>
	Any help or input is highly appreciated.
</p>
]]></description><guid isPermaLink="false">1099545</guid><pubDate>Mon, 23 Jun 2025 09:48:54 +0000</pubDate></item><item><title>[PS 8] Javascript components are not working on my Grid</title><link>https://forum.prestashop.com/topic/1099426-ps-8-javascript-components-are-not-working-on-my-grid/</link><description><![CDATA[<p>
	I have started writing about my problem yesterday <a href="https://forum.prestashop.com/topic/1099381-ps-8-grid-reset-button-not-working/" rel="">here</a> and <a href="https://forum.prestashop.com/topic/1099390-ps-8-grid-pagination-not-working/" rel="">here</a> but then I have realized that it is all one problem: UI-elements that require events bound to some consecutive actions are not working:
</p>

<ul><li>
		reset button in my filter is not working
	</li>
	<li>
		pagination selection (how many items to show per page) is not working
	</li>
	<li>
		sorting is not working
	</li>
</ul><p>
	In every case "not working" means that nothing happens when I click on a UI element. At the same time, this grid is built using the basic official manual (it uses common controllers for search and reset) and I have already rechecked things twice -- my code seems fine and it doesnt seem to be the case that I must enable these controls somehow.<br /><br />
	I'd really appreciate any ideas on how can I debug this (and I am new to Prestashop and relatively new to Symfony).<br /><br />
	Thank you in advance.
</p>
]]></description><guid isPermaLink="false">1099426</guid><pubDate>Wed, 18 Jun 2025 13:15:58 +0000</pubDate></item><item><title>[PS 8] Grid pagination not working</title><link>https://forum.prestashop.com/topic/1099390-ps-8-grid-pagination-not-working/</link><description><![CDATA[<p>
	This is a part of a bigger problem, as I have found out <a href="https://forum.prestashop.com/topic/1099426-ps-8-javascript-components-are-not-working-on-my-grid/" rel="">here</a>.
</p>

<p>
	 
</p>

<p>
	---------------------------------<br /><br /><br />
	Hello all, 
</p>

<p>
	this topic can be seen as sister-topic for <a href="https://forum.prestashop.com/topic/1099381-grid-reset-button-not-working/" rel="">this one</a>. I have a generally working grid (listing and searching work), but two things are not working: reset button (see the sister topic for details) and, as I have just found out, trying to switching number of results per page has the same effect as with the reset button: nothing happens except the select box value is changed. No request, no page load, no changes in results display. After I reload the page, the value in the select box is set back to the default. As I have mentioned in the sister-topic, I'm building the grid and the search form exactly as it is described on <a href="https://devdocs.prestashop-project.org/8/development/components/grid/tutorials/work-with-search-form/#search-action" rel="external nofollow">the official tutorial pages</a>. The system generates the following HTML for the select box:<br /><br />
	 
</p>

<pre class="ipsCode prettyprint lang-html prettyprinted"><span class="tag">&lt;div</span><span class="pln"> </span><span class="atn">class</span><span class="pun">=</span><span class="atv">"form-group row mb-0"</span><span class="tag">&gt;</span><span class="pln">
      </span><span class="tag">&lt;label</span><span class="pln"> </span><span class="atn">for</span><span class="pun">=</span><span class="atv">"paginator_select_page_limit"</span><span class="pln"> </span><span class="atn">class</span><span class="pun">=</span><span class="atv">"col-form-label mr-2"</span><span class="tag">&gt;</span><span class="pln">Items per page:</span><span class="tag">&lt;/label&gt;</span><span class="pln">
      </span><span class="tag">&lt;div&gt;</span><span class="pln">
        </span><span class="tag">&lt;select</span><span class="pln"> </span><span class="atn">name</span><span class="pun">=</span><span class="atv">"paginator_select_page_limit"</span><span class="pln"> </span><span class="atn">id</span><span class="pun">=</span><span class="atv">"paginator_select_page_limit"</span><span class="pln"> </span><span class="atn">psurl</span><span class="pun">=</span><span class="atv">"/admin-dev/index.php/modules/kursanmeldungen?_route=0&amp;amp;course_list%5Boffset%5D=0&amp;amp;course_list%5Blimit%5D=_limit&amp;amp;_token=ooPhgOvN8rhNQEQ7UPu68Q_3LiTRpD581hVS4Y4AGe8"</span><span class="pln"> </span><span class="atn">class</span><span class="pun">=</span><span class="atv">"pagination-link custom-select"</span><span class="tag">&gt;</span><span class="pln">
                                </span><span class="tag">&lt;option</span><span class="pln"> </span><span class="atn">value</span><span class="pun">=</span><span class="atv">"10"</span><span class="pln"> </span><span class="atn">selected</span><span class="pun">=</span><span class="atv">"selected"</span><span class="tag">&gt;</span><span class="pln">10</span><span class="tag">&lt;/option&gt;</span><span class="pln">
                      </span><span class="tag">&lt;option</span><span class="pln"> </span><span class="atn">value</span><span class="pun">=</span><span class="atv">"20"</span><span class="tag">&gt;</span><span class="pln">20</span><span class="tag">&lt;/option&gt;</span><span class="pln">
                      </span><span class="tag">&lt;option</span><span class="pln"> </span><span class="atn">value</span><span class="pun">=</span><span class="atv">"50"</span><span class="tag">&gt;</span><span class="pln">50</span><span class="tag">&lt;/option&gt;</span><span class="pln">
                      </span><span class="tag">&lt;option</span><span class="pln"> </span><span class="atn">value</span><span class="pun">=</span><span class="atv">"100"</span><span class="tag">&gt;</span><span class="pln">100</span><span class="tag">&lt;/option&gt;</span><span class="pln">
                      </span><span class="tag">&lt;option</span><span class="pln"> </span><span class="atn">value</span><span class="pun">=</span><span class="atv">"300"</span><span class="tag">&gt;</span><span class="pln">300</span><span class="tag">&lt;/option&gt;</span><span class="pln">
                      </span><span class="tag">&lt;option</span><span class="pln"> </span><span class="atn">value</span><span class="pun">=</span><span class="atv">"1000"</span><span class="tag">&gt;</span><span class="pln">1000</span><span class="tag">&lt;/option&gt;</span><span class="pln">
                  </span><span class="tag">&lt;/select&gt;</span><span class="pln">
      </span><span class="tag">&lt;/div&gt;</span><span class="pln">
</span><span class="tag">&lt;/div&gt;</span></pre>

<p>
	 
</p>

<p>
	I'd be grateful for any help in fixing these problems.
</p>
]]></description><guid isPermaLink="false">1099390</guid><pubDate>Tue, 17 Jun 2025 17:25:47 +0000</pubDate></item><item><title>[PS 8] Grid reset button not working</title><link>https://forum.prestashop.com/topic/1099381-ps-8-grid-reset-button-not-working/</link><description><![CDATA[<p>
	This is a part of a bigger problem, as I have found out <a href="https://forum.prestashop.com/topic/1099426-ps-8-javascript-components-are-not-working-on-my-grid/" rel="">here</a>.<br /><br />
	-----------------------------
</p>

<p>
	<br />
	Hi, I am making a grid in prestashop 8 using <a href="https://devdocs.prestashop-project.org/8/development/components/grid/tutorials/work-with-search-form/" rel="external nofollow">this</a> guide. The form is generally working, but the reset button is not. As the tutorial says, I have added this filter to my grid definition:<br /><br />
	 
</p>

<pre class="ipsCode prettyprint lang-html prettyprinted"><span class="pln">-&gt;add((new Filter('actions', SearchAndResetType::class))
                -&gt;setAssociatedColumn('actions')
                -&gt;setTypeOptions([
                    'reset_route' =&gt; 'admin_common_reset_search_by_filter_id',
                    'reset_route_params' =&gt; [
                        'filterId' =&gt; self::GRID_ID,
                    ],
                    'redirect_route' =&gt; 'admin_pwswkbl_list',
                ])
            )</span></pre>

<p>
	As far as I understand, I don't need to define the specified route myself. <br /><br />
	This is what Prestashop generates to show the button:<br /><br />
	 
</p>

<pre class="ipsCode prettyprint lang-html prettyprinted"><span class="tag">&lt;div</span><span class="pln"> </span><span class="atn">class</span><span class="pun">=</span><span class="atv">"js-grid-reset-button"</span><span class="tag">&gt;</span><span class="pln">
  </span><span class="tag">&lt;button</span><span class="pln"> </span><span class="atn">type</span><span class="pun">=</span><span class="atv">"reset"</span><span class="pln"> </span><span class="atn">name</span><span class="pun">=</span><span class="atv">"course_list[actions][reset]"</span><span class="pln"> </span><span class="atn">class</span><span class="pun">=</span><span class="atv">"btn btn-link js-reset-search btn d-block grid-reset-button"</span><span class="pln"> </span><span class="atn">data-url</span><span class="pun">=</span><span class="atv">"/admin-dev/index.php/common/reset_search/course_list?_token=ooPhgOvN8rhNQEQ7UPu68Q_3LiTRpD581hVS4Y4AGe8"</span><span class="pln"> </span><span class="atn">data-redirect</span><span class="pun">=</span><span class="atv">"/admin-dev/index.php/modules/kursanmeldungen?_token=ooPhgOvN8rhNQEQ7UPu68Q_3LiTRpD581hVS4Y4AGe8"</span><span class="tag">&gt;&lt;i</span><span class="pln"> </span><span class="atn">class</span><span class="pun">=</span><span class="atv">"material-icons"</span><span class="tag">&gt;</span><span class="pln">clear</span><span class="tag">&lt;/i&gt;</span><span class="pln">
              Reset
  </span><span class="tag">&lt;/button&gt;</span><span class="pln">
</span><span class="tag">&lt;/div&gt;</span></pre>

<p>
	 
</p>

<p>
	The reset button is just not working in any sense -- when I click it, nothing happens. I've already rechecked everything I could, asked LLMs and searched the web.<br />
	 
</p>

<p>
	<span> </span>I also see no javascript errors. And when I open the URL given in data-url attribute of the button I get 
</p>

<blockquote class="ipsQuote" data-ipsquote="">
	<div class="ipsQuote_citation">
		Quote
	</div>

	<div class="ipsQuote_contents">
		<p>
			Symfony\Component\HttpKernel\Exception\MethodNotAllowedHttpException: No route found for "GET /common/reset_search/course_list": Method Not Allowed (Allow: POST)
		</p>
	</div>
</blockquote>

<p>
	So it seems that the route is there, but only for POST.<br /><br />
	I'd be grateful for any help. <br /><br />
	Thank you in advance.
</p>
]]></description><guid isPermaLink="false">1099381</guid><pubDate>Tue, 17 Jun 2025 15:56:37 +0000</pubDate></item><item><title>HIRING: ONLY ADVANCED/NATIVE Brazilian Portuguese Speaker for a New Prestashop Theme and Module Project</title><link>https://forum.prestashop.com/topic/1099380-hiring-only-advancednative-brazilian-portuguese-speaker-for-a-new-prestashop-theme-and-module-project/</link><description><![CDATA[<p>
	Hello. I'm hiring a person who could develop a HIGH QUALITY FULL RESPONSIVE AND FULL WIDTH theme on Prestashop, using the latest languages and best-practice techniques for high performance and usabilty.<br /><br />
	After this first step, we will try to develop, also some modules, such as CORREIOS API integration, MELHOR ENVIO API integration and VINDI API integration OR PAYPAL PLUS (transparent checkout) integration (to be decided yet)<br /><br />
	PS: We will prefer only native brazilians or advanced speakers.<br /><br />
	Thanks.
</p>
]]></description><guid isPermaLink="false">1099380</guid><pubDate>Tue, 17 Jun 2025 15:46:25 +0000</pubDate></item><item><title>"Upgrade Module" Update crashed B.O</title><link>https://forum.prestashop.com/topic/1099257-upgrade-module-update-crashed-bo/</link><description><![CDATA[<p>
	So I just updated the "Upgrade" module and the B.O has now crashed.
</p>

<p>
	The error showing is 
</p>

<pre class="ipsCode prettyprint lang-html prettyprinted"><span class="pln">Attempted to load class "DisplayBackOfficeHeader" from namespace "PrestaShop\Module\AutoUpgrade\Hooks".
Did you forget a "use" statement for e.g. "PrestaShop\Module\PsAccounts\Hook\DisplayBackOfficeHeader" or "PrestaShop\Module\AutoUpgrade\Hooks\DisplayBackOfficeHeader"?</span></pre>

<p>
	I have renamed the var so that it is recreated but still showing the above error and cannot access B.O
</p>
]]></description><guid isPermaLink="false">1099257</guid><pubDate>Sat, 14 Jun 2025 07:13:42 +0000</pubDate></item><item><title>Duplicate product WITHOUT copying reference field ?</title><link>https://forum.prestashop.com/topic/1063814-duplicate-product-without-copying-reference-field/</link><description><![CDATA[<p>
	Hello,
</p>

<p>
	For integrity reason, I made the 'reference' column UNIQUE in ps_product table. As a consequence , when I duplicate a product I have en error because the new product has the same reference as the original one. Is it possible to change something in code, so that the reference field is not copied.   Thank you in advance.
</p>

<p>
	 
</p>
]]></description><guid isPermaLink="false">1063814</guid><pubDate>Sat, 07 May 2022 15:50:23 +0000</pubDate></item><item><title>daterangetype filter not working</title><link>https://forum.prestashop.com/topic/1092937-daterangetype-filter-not-working/</link><description><![CDATA[<p>
	so in my module im trying to hide date_add column in the order table in the backoffice and replace it with date_upd so i did this:
</p>

<p>
	 
</p>

<p>
	&lt;?php
</p>

<p>
	 
</p>

<p>
	use PrestaShop\PrestaShop\Core\Grid\Column\Type\Common\DateTimeColumn;
</p>

<p>
	use PrestaShop\PrestaShop\Core\Grid\Filter\Filter;
</p>

<p>
	use PrestaShopBundle\Form\Admin\Type\DateRangeType;
</p>

<p>
	<br />
	 
</p>

<p>
	if (!defined('_PS_VERSION_')) {
</p>

<p>
	exit;
</p>

<p>
	}
</p>

<p>
	 
</p>

<p>
	class Updwebmania extends Module
</p>

<p>
	{
</p>

<p>
	public function __construct()
</p>

<p>
	{
</p>

<p>
	$this-&gt;name = 'updwebmania';
</p>

<p>
	$this-&gt;tab = 'administration';
</p>

<p>
	$this-&gt;version = '1.0.0';
</p>

<p>
	$this-&gt;author = 'Webmania Solutions';
</p>

<p>
	$this-&gt;bootstrap = true;
</p>

<p>
	 
</p>

<p>
	parent::__construct();
</p>

<p>
	 
</p>

<p>
	$this-&gt;displayName = $this-&gt;l('Commandes grid Webmania');
</p>

<p>
	$this-&gt;description = $this-&gt;l("Masque la colonne par défaut 'Date' et la remplace par 'Date modification'.");
</p>

<p>
	 
</p>

<p>
	// Define the context date format
</p>

<p>
	$this-&gt;contextDateFormat = $this-&gt;context-&gt;getContext()-&gt;getTranslator()-&gt;trans('Y-m-d H:i:s');
</p>

<p>
	}
</p>

<p>
	 
</p>

<p>
	public function install()
</p>

<p>
	{
</p>

<p>
	return parent::install() &amp;&amp;
</p>

<p>
	$this-&gt;registerHook('actionOrderGridDefinitionModifier') &amp;&amp;
</p>

<p>
	$this-&gt;registerHook('actionOrderGridQueryBuilderModifier') &amp;&amp;
</p>

<p>
	$this-&gt;registerHook('actionAdminControllerSetMedia'); // Register this hook
</p>

<p>
	}
</p>

<p>
	 
</p>

<p>
	public function uninstall()
</p>

<p>
	{
</p>

<p>
	// Unregister the hooks and perform cleanup
</p>

<p>
	return parent::uninstall() &amp;&amp;
</p>

<p>
	$this-&gt;unregisterHook('actionOrderGridDefinitionModifier') &amp;&amp;
</p>

<p>
	$this-&gt;unregisterHook('actionOrderGridQueryBuilderModifier') &amp;&amp;
</p>

<p>
	$this-&gt;unregisterHook('actionAdminControllerSetMedia');
</p>

<p>
	}
</p>

<p>
	 
</p>

<p>
	public function hookActionOrderGridDefinitionModifier(array $params)
</p>

<p>
	{
</p>

<p>
	/** @var GridDefinitionInterface $definition */
</p>

<p>
	$columns = $params['definition']-&gt;getColumns();
</p>

<p>
	// Add the new "Date Updated" column
</p>

<p>
	$columns-&gt;addAfter(
</p>

<p>
	'date_add', // Position after the 'date_add' column
</p>

<p>
	(new DateTimeColumn('date_upd'))
</p>

<p>
	-&gt;setName($this-&gt;l('Date modification')) // Display name for the column
</p>

<p>
	-&gt;setOptions([
</p>

<p>
	'field' =&gt; 'date_upd', // The field in the database
</p>

<p>
	'sortable' =&gt; true, // Make the column sortable
</p>

<p>
	'format' =&gt; $this-&gt;contextDateFormat,
</p>

<p>
	'clickable' =&gt; true, // Make the column sortable
</p>

<p>
	])
</p>

<p>
	);
</p>

<p>
	 
</p>

<p>
	// Add a text filter for the "Date Updated" column
</p>

<p>
	$filters = $params['definition']-&gt;getFilters();
</p>

<p>
	$filters-&gt;
</p>

<p>
	add((new Filter('date_upd', DateRangeType::class))
</p>

<p>
	-&gt;setTypeOptions([
</p>

<p>
	'required' =&gt; false,
</p>

<p>
	])
</p>

<p>
	-&gt;setAssociatedColumn('date_upd') // Link filter to the column
</p>

<p>
	);
</p>

<p>
	}
</p>

<p>
	<br />
	 
</p>

<p>
	public function hookActionOrderGridQueryBuilderModifier(array $params): void
</p>

<p>
	{
</p>

<p>
	/** @var Doctrine\DBAL\Query\QueryBuilder $searchQueryBuilder */
</p>

<p>
	$searchQueryBuilder = $params['search_query_builder'];
</p>

<p>
	// Add the date_upd field to the query
</p>

<p>
	$searchQueryBuilder-&gt;addSelect('o.date_upd');
</p>

<p>
	 
</p>

<p>
	/** @var Doctrine\DBAL\Query\QueryBuilder $countQueryBuilder */
</p>

<p>
	$countQueryBuilder = $params['count_query_builder'];
</p>

<p>
	// Add the date_upd field to the count query
</p>

<p>
	$countQueryBuilder-&gt;addSelect('o.date_upd');
</p>

<p>
	}
</p>

<p>
	<br />
	 
</p>

<p>
	public function hookActionAdminControllerSetMedia($params)
</p>

<p>
	{
</p>

<p>
	$controllerName = Tools::getValue('controller');
</p>

<p>
	if ($controllerName === 'AdminOrders') {
</p>

<p>
	// Add custom CSS for styling (if necessary)
</p>

<p>
	$this-&gt;context-&gt;controller-&gt;addCSS($this-&gt;_path . 'views/css/admin/back.css');
</p>

<p>
	 
</p>

<p>
	}
</p>

<p>
	}
</p>

<p>
	}
</p>

<p>
	 
</p>

<p>
	and this is the css <span>:</span>
</p>

<p>
	 
</p>

<p>
	/* Hide the entire 'Date' column (header and cells) */
</p>

<p>
	th[data-column-id="date_add"],
</p>

<p>
	td[data-column-id="date_add"], .date_time-type.column-date_add.clickable.text-left.cursor-pointer {
</p>

<p>
	display: none !important;
</p>

<p>
	}
</p>

<p>
	 
</p>

<p>
	.input-group {
</p>

<p>
	display: flex;
</p>

<p>
	gap: 5px;
</p>

<p>
	}
</p>

<p>
	 
</p>

<p>
	.input-group .form-control {
</p>

<p>
	width: 120px;
</p>

<p>
	}
</p>

<p>
	 
</p>

<p>
	.input-group .input-group-text {
</p>

<p>
	background-color: #f4f4f4;
</p>

<p>
	border: 1px solid #ccc;
</p>

<p>
	}
</p>

<p>
	 
</p>

<p>
	 
</p>

<p>
	everything is working just fine but the filter is not working . it shows up but its not working for some reason, not only the filter but the sorting also 
</p>
]]></description><guid isPermaLink="false">1092937</guid><pubDate>Fri, 29 Nov 2024 14:20:42 +0000</pubDate></item><item><title>Remove and change behavior of default fields</title><link>https://forum.prestashop.com/topic/1098801-remove-and-change-behavior-of-default-fields/</link><description><![CDATA[<p>
	Hello everyone. How you doing?
</p>

<p>
	Please, is there a way to remove those fields I marked with "X" in red and the one for newsletter come always checked by default on subscribe new customer page? (also on the checkout part where those fields are being shown / required too...)?<br /><br />
	Maybe it'll be better not to change the core code directly, but creating a specific module for that... (in order not to be rewritten when new core of prestashop update versions...)
</p>

<p>
	<a class="ipsAttachLink ipsAttachLink_image" href="//media.invisioncic.com/t336404/monthly_2025_05/Imagem019.jpg.661165b135e5deaa69dfdc826e210d3a.jpg" data-fileid="335807" data-fileext="jpg" rel=""><img alt="Imagem 019.jpg" class="ipsImage ipsImage_thumbnailed" data-fileid="335807" data-ratio="56.3" style="height:auto;" width="1000" data-src="//media.invisioncic.com/t336404/monthly_2025_05/Imagem019.thumb.jpg.dba89acf26bec5cfe0ce8b5b7ec2b3b1.jpg" src="https://forum.prestashop.com/applications/core/interface/js/spacer.png" /></a>
</p>
]]></description><guid isPermaLink="false">1098801</guid><pubDate>Thu, 29 May 2025 17:00:49 +0000</pubDate></item><item><title>Programatically reset modules.</title><link>https://forum.prestashop.com/topic/1098144-programatically-reset-modules/</link><description><![CDATA[<p>
	Is there a way to remotely or programatically reset modules?
</p>

<p>
	I need to update modules for multiple shops frequently. Accessing the b/o and manually resetting them for each module, every time, is very tedious.
</p>

<p>
	Even a local script that would reset them would be better.
</p>

<p>
	 
</p>
]]></description><guid isPermaLink="false">1098144</guid><pubDate>Fri, 09 May 2025 07:55:15 +0000</pubDate></item><item><title>How to manipulate the query that fetches products to display on product lists (mainly category page).</title><link>https://forum.prestashop.com/topic/1096791-how-to-manipulate-the-query-that-fetches-products-to-display-on-product-lists-mainly-category-page/</link><description><![CDATA[<p>
	I need to adapt the query that fetches products for the category page (add a join to a custom table, and some where clauses).
</p>

<p>
	I've tried to find a hook that would allow me to change the query. I did find hookActionProductSearchProviderRunQueryBefore but the $params['query'] in this hook seems to just give the query parameters as set by the faceted search module, and the actual query can't be changed there, nor can I change $params['query'] to add a join and where clauses.
</p>

<p>
	How would I accomplish this?
</p>

<p>
	 
</p>
]]></description><guid isPermaLink="false">1096791</guid><pubDate>Wed, 26 Mar 2025 11:59:55 +0000</pubDate></item><item><title>Trouble overriding a Symfony service in PrestaShop 1.7</title><link>https://forum.prestashop.com/topic/1021126-trouble-overriding-a-symfony-service-in-prestashop-17/</link><description><![CDATA[
<p>
	Hello there,
</p>

<p>
	I'm writing a module that needs to override the ProductVirtual class (src/PrestaShopBundle/Form/Admin/Product/ProductVirtual.php).
</p>

<p>
	As it is apparently a Symfony service, I'm trying to override it as instructed in the <a href="https://devdocs.prestashop.com/1.7/modules/concepts/services/#override-the-service" rel="external nofollow">documentation</a>.
</p>

<p>
	To do that, I copied the original ProductVirtual.php file to modules/mymodule/ProductVirtual.php and replaced the namespace by <em>MyModule</em> and created the file modules/mymodule/config/services.yml with the following content:
</p>

<pre class="ipsCode">
services:
    form.type.product.virtual:
        class: MyModule\ProductVirtual
        arguments:
            - "@translator"
            - "@prestashop.adapter.legacy.context"
        parent: 'form.type.common_type'
        public: true
        tags:
            - { name: form.type }</pre>

<p>
	However, what I get is a 500 error and the following exception:
</p>

<pre class="ipsCode prettyprint lang-html prettyprinted">
<span class="pln">Uncaught PHP Exception Symfony\Component\Debug\Exception\FatalThrowableError: "Type error: Too few arguments to function PrestaShopBundle\Form\Admin\Product\ProductVirtual::__construct(), 0 passed in /bitnami/prestashop/vendor/symfony/symfony/src/Symfony/Component/Form/FormRegistry.php on line 92 and exactly 2 expected" at /bitnami/prestashop/src/PrestaShopBundle/Form/Admin/Product/ProductVirtual.php line 52</span></pre>

<p>
	Of course, 2 arguments are expected by the ProductVirtual's constructor but this FormRegistry.getType() method calls the constructor with no argument. I can't find a way to correct the problem and I have no knowledge in Symfony. I really need some advice here.
</p>

<p>
	Thanks! <span><img alt=":)" data-emoticon="" height="20" src="https://media.invisioncic.com/t336404/emoticons/default_smile.png" srcset="https://media.invisioncic.com/t336404/emoticons/smile@2x.png 2x" title=":)" width="20" /></span>
</p>
]]></description><guid isPermaLink="false">1021126</guid><pubDate>Fri, 24 Apr 2020 12:34:30 +0000</pubDate></item><item><title>Problems with wire payment mail vars</title><link>https://forum.prestashop.com/topic/1093989-problems-with-wire-payment-mail-vars/</link><description><![CDATA[<p>
	Hello!
</p>

<p>
	 
</p>

<p>
	I am trying to fix a bug that occurs when a client in my shop chooses the wire payment method.
</p>

<p>
	 
</p>

<p>
	Whenever someone creates an order and chooses wire payment they recieve a couple of mails and gets a confirmation page displayed, however in just one of the mails the amount to pay has nothing to do with the real price of the product, i'll attach some screenshots.
</p>

<p>
	 
</p>

<p>
	I've been trying to change the vars in the ps_wirepayment controller and already checked if it is overriden but I can't see any change.
</p>

<p>
	 
</p>

<p>
	<img class="ipsImage ipsImage_thumbnailed" data-fileid="330832" data-ratio="40.00" width="535" alt="image.png.05c9280b648c54cd58b980f917581b60.png" data-src="//media.invisioncic.com/t336404/monthly_2025_01/image.png.05c9280b648c54cd58b980f917581b60.png" src="https://forum.prestashop.com/applications/core/interface/js/spacer.png" /><img class="ipsImage ipsImage_thumbnailed" data-fileid="330830" data-ratio="65.38" width="517" alt="image.png.9b46462eb2afa3b98d209b3bee94214d.png" data-src="//media.invisioncic.com/t336404/monthly_2025_01/image.png.9b46462eb2afa3b98d209b3bee94214d.png" src="https://forum.prestashop.com/applications/core/interface/js/spacer.png" /><a class="ipsAttachLink ipsAttachLink_image" href="//media.invisioncic.com/t336404/monthly_2025_01/image.png.43eeed4326da2533fc0bca2698a03694.png" data-fileid="330831" data-fileext="png" rel=""><img class="ipsImage ipsImage_thumbnailed" data-fileid="330831" data-ratio="22.00" width="1000" alt="image.thumb.png.bfc8f26116398df11525a8a13f45fc3f.png" data-src="//media.invisioncic.com/t336404/monthly_2025_01/image.thumb.png.bfc8f26116398df11525a8a13f45fc3f.png" src="https://forum.prestashop.com/applications/core/interface/js/spacer.png" /></a>
</p>

<p>
	 
</p>

<p>
	As shown in the screenshots, the amount to be paid is 13,68€ but one of the emails always displays 2,99€ less than it should <span><img alt=":(" data-emoticon="" height="20" src="https://media.invisioncic.com/t336404/emoticons/default_sad.png" srcset="https://media.invisioncic.com/t336404/emoticons/sad@2x.png 2x" title=":(" width="20" /></span>
</p>

<p>
	 
</p>

<p>
	<span>Thank you, Pablo</span>
</p>
]]></description><guid isPermaLink="false">1093989</guid><pubDate>Wed, 08 Jan 2025 08:24:02 +0000</pubDate></item><item><title>Dev Required - Modify Existing Sagepay / Opayo Payment module</title><link>https://forum.prestashop.com/topic/1094042-dev-required-modify-existing-sagepay-opayo-payment-module/</link><description><![CDATA[<p>
	Hi,
</p>

<p>
	Can you recommend anyone would be interested in modifying an existing payment solution (Sagepay/Opayo) in our Prestashop to use the new URLs required for API connections?  I have all tech docs from SagePay and should be quite easy for a dev.
</p>

<p>
	Best regards,
</p>

<p>
	Paul
</p>
]]></description><guid isPermaLink="false">1094042</guid><pubDate>Thu, 09 Jan 2025 15:10:43 +0000</pubDate></item><item><title>Issue with Grid Filters and pagination</title><link>https://forum.prestashop.com/topic/1031259-issue-with-grid-filters-and-pagination/</link><description><![CDATA[
<p>
	Hello guys,
</p>

<p>
	I am creating a module on the backoffice I wanted to display a page with the grid system but I cannot manage to make the filters and pagination work.
</p>

<p>
	So the grid displays itself quite well, but no button using javascript seems to work, ie seems to be triggered. None of the actions within the GridActionCollection work when I click on it, when I type stuff on the filters input and click Search it just refreshes my grid page with no filter in it. The delete option does not work neither.
</p>

<p>
	Weird stuff is when I edit in database directly the corresponding admin filter with a filter parameter or editing the limit value. Those filters are applied, meaning I can see the filter in the input, the grid is updated and the result count is the same as the limit. But the reset button does not do anything and the pagination is not triggered.
</p>

<p>
	I don't understand what is going on because I literally did exactly the same as the documentation says but does not work. I tried to duplicate an example from prestashop admin also, the log page for instance. Same result.
</p>

<p>
	It really seems to me that no js is linked to my grid template so nothing is triggered.
</p>

<p>
	Moreover in the documentation, you describe a search action to be implemented. But nowhere is described how this route is called and when. So I really don't understand the process of Grid filters. And for the admin_common_reset_search, it uses a controller value and action. It does not say where should we configure or set this controller value so it can match...
</p>

<blockquote class="ipsQuote" data-ipsquote="">
	<div class="ipsQuote_citation">
		Quote
	</div>

	<div class="ipsQuote_contents">
		<p>
			hdclic.instaev.grid.definition.factory.galleries:<br />
			      class: 'Hdclic\Instaev\Grid\Definition\Factory\GalleryGridDefinitionFactory'<br />
			      parent: 'prestashop.core.grid.definition.factory.abstract_grid_definition'<br />
			      arguments:<br />
			            - "@=service('router').generate('admin_common_reset_search', {'controller': 'gallery', 'action': 'index'})"<br />
			            - "@=service('router').generate('instaev_admin_gallery_index')"<br />
			      public: true
		</p>
	</div>
</blockquote>

<pre class="ipsCode prettyprint lang-php prettyprinted">
<span class="kwd">class</span><span class="pln"> </span><span class="typ">GalleryController</span><span class="pln"> </span><span class="kwd">extends</span><span class="pln"> </span><span class="typ">FrameworkBundleAdminController</span><span class="pln">
</span><span class="pun">{</span><span class="pln">
    </span><span class="kwd">public</span><span class="pln"> </span><span class="kwd">function</span><span class="pln"> indexAction</span><span class="pun">(</span><span class="typ">GalleryFilters</span><span class="pln"> $filters</span><span class="pun">)</span><span class="pln">
    </span><span class="pun">{</span><span class="pln">
        </span><span class="kwd">return</span><span class="pln"> $this</span><span class="pun">-&gt;</span><span class="pln">render</span><span class="pun">(</span><span class="pln">
            </span><span class="str">'@Modules/instaev/views/templates/admin/index.html.twig'</span><span class="pun">,</span><span class="pln">
            </span><span class="pun">[</span><span class="pln">
                </span><span class="str">'grid'</span><span class="pln"> </span><span class="pun">=&gt;</span><span class="pln"> $this</span><span class="pun">-&gt;</span><span class="pln">presentGrid</span><span class="pun">(</span><span class="pln">$this</span><span class="pun">-&gt;</span><span class="kwd">get</span><span class="pun">(</span><span class="str">'hdclic.instaev.grid.factory.galleries'</span><span class="pun">)-&gt;</span><span class="pln">getGrid</span><span class="pun">(</span><span class="pln">$filters</span><span class="pun">)),</span><span class="pln">
            </span><span class="pun">]</span><span class="pln">
        </span><span class="pun">);</span><span class="pln">
    </span><span class="pun">}</span><span class="pln">

    </span><span class="kwd">public</span><span class="pln"> </span><span class="kwd">function</span><span class="pln"> searchAction</span><span class="pun">(</span><span class="typ">Request</span><span class="pln"> $request</span><span class="pun">)</span><span class="pln">
    </span><span class="pun">{</span><span class="pln">
        $definitionFactory </span><span class="pun">=</span><span class="pln"> $this</span><span class="pun">-&gt;</span><span class="kwd">get</span><span class="pun">(</span><span class="str">'hdclic.instaev.grid.definition.factory.galleries'</span><span class="pun">);</span><span class="pln">
        $galleriesDefinition </span><span class="pun">=</span><span class="pln"> $definitionFactory</span><span class="pun">-&gt;</span><span class="pln">getDefinition</span><span class="pun">();</span><span class="pln">

        $gridFilterFormFactory </span><span class="pun">=</span><span class="pln"> $this</span><span class="pun">-&gt;</span><span class="kwd">get</span><span class="pun">(</span><span class="str">'prestashop.core.grid.filter.form_factory'</span><span class="pun">);</span><span class="pln">
        $searchParametersForm </span><span class="pun">=</span><span class="pln"> $gridFilterFormFactory</span><span class="pun">-&gt;</span><span class="pln">create</span><span class="pun">(</span><span class="pln">$galleriesDefinition</span><span class="pun">);</span><span class="pln">

        $searchParametersForm</span><span class="pun">-&gt;</span><span class="pln">handleRequest</span><span class="pun">(</span><span class="pln">$request</span><span class="pun">);</span><span class="pln">
        $filters </span><span class="pun">=</span><span class="pln"> </span><span class="pun">[];</span><span class="pln">

        </span><span class="kwd">if</span><span class="pln"> </span><span class="pun">(</span><span class="pln">$searchParametersForm</span><span class="pun">-&gt;</span><span class="pln">isSubmitted</span><span class="pun">())</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
            $filters </span><span class="pun">=</span><span class="pln"> $searchParametersForm</span><span class="pun">-&gt;</span><span class="pln">getData</span><span class="pun">();</span><span class="pln">
        </span><span class="pun">}</span><span class="pln">

        </span><span class="kwd">return</span><span class="pln"> $this</span><span class="pun">-&gt;</span><span class="pln">redirectToRoute</span><span class="pun">(</span><span class="str">'instaev_admin_gallery_index'</span><span class="pun">,</span><span class="pln"> </span><span class="pun">[</span><span class="str">'filters'</span><span class="pln"> </span><span class="pun">=&gt;</span><span class="pln"> $filters</span><span class="pun">]);</span><span class="pln">
    </span><span class="pun">}</span></pre>

<p>
	 
</p>

<pre class="ipsCode prettyprint lang-php prettyprinted">
<span class="pln">            </span><span class="pun">-&gt;</span><span class="kwd">add</span><span class="pun">(</span><span class="pln">
                </span><span class="pun">(</span><span class="kwd">new</span><span class="pln"> </span><span class="typ">Filter</span><span class="pun">(</span><span class="str">'actions'</span><span class="pun">,</span><span class="pln"> </span><span class="typ">SearchAndResetType</span><span class="pun">::</span><span class="kwd">class</span><span class="pun">))</span><span class="pln">
                    </span><span class="pun">-&gt;</span><span class="pln">setTypeOptions</span><span class="pun">([</span><span class="pln">
                        </span><span class="str">'attr'</span><span class="pln"> </span><span class="pun">=&gt;</span><span class="pln"> </span><span class="pun">[</span><span class="pln">
                            </span><span class="str">'data-url'</span><span class="pln"> </span><span class="pun">=&gt;</span><span class="pln"> $this</span><span class="pun">-&gt;</span><span class="pln">resetActionUrl</span><span class="pun">,</span><span class="pln">
                            </span><span class="str">'data-redirect'</span><span class="pln"> </span><span class="pun">=&gt;</span><span class="pln"> $this</span><span class="pun">-&gt;</span><span class="pln">redirectionUrl</span><span class="pun">,</span><span class="pln">
                        </span><span class="pun">],</span><span class="pln">
                    </span><span class="pun">])</span><span class="pln">
                    </span><span class="pun">-&gt;</span><span class="pln">setAssociatedColumn</span><span class="pun">(</span><span class="str">'actions'</span><span class="pun">)</span><span class="pln">
            </span><span class="pun">)</span></pre>

<p>
	 
</p>

<p>
	please help <span><span class="ipsEmoji">?</span></span>
</p>

<p>
	 
</p>
]]></description><guid isPermaLink="false">1031259</guid><pubDate>Tue, 08 Sep 2020 07:27:14 +0000</pubDate></item><item><title>[solved] how to change cart final price with tax included / excluded ?</title><link>https://forum.prestashop.com/topic/272369-solved-how-to-change-cart-final-price-with-tax-included-excluded/</link><description><![CDATA[
<p>Hi,</p>
<p> </p>
<p>how can I have cart prices displayed to be the <strong>final prices (tax included) </strong> instead of tax excluded prices ?</p>
<p>Also I need the total cart price to be tax included.</p>
<p> </p>
<p>Many thanks</p>
<p> </p>
<p>FRED</p>
]]></description><guid isPermaLink="false">272369</guid><pubDate>Wed, 04 Sep 2013 07:26:24 +0000</pubDate></item><item><title>Module to Add version to css</title><link>https://forum.prestashop.com/topic/1098287-module-to-add-version-to-css/</link><description><![CDATA[<p>
	Hi, So im attempting to add a version to css and js files by using a module so that any updates to the css files will be available to end users without them having to force refresh as not all end users know the process.
</p>

<p>
	Here is the code I currently have but its not working.  No errors are thrown up.
</p>

<p>
	 
</p>

<pre class="ipsCode prettyprint lang-html prettyprinted"><span class="pun">&lt;?</span><span class="pln">php
</span><span class="com">/**
 * Copyright since 2025
 *
 * @author    Ray
 * @copyright Since 2025
 * @license   FREE
 */</span><span class="pln">
</span><span class="kwd">if</span><span class="pln"> </span><span class="pun">(!</span><span class="kwd">defined</span><span class="pun">(</span><span class="str">'_PS_VERSION_'</span><span class="pun">))</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
    </span><span class="kwd">exit</span><span class="pun">;</span><span class="pln">
</span><span class="pun">}</span><span class="pln">

</span><span class="kwd">class</span><span class="pln"> </span><span class="typ">AutoVersionAssets</span><span class="pln"> </span><span class="kwd">extends</span><span class="pln"> </span><span class="typ">Module</span><span class="pln"> 
</span><span class="pun">{</span><span class="pln">
  </span><span class="kwd">public</span><span class="pln"> </span><span class="kwd">function</span><span class="pln"> __construct</span><span class="pun">()</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
    $this</span><span class="pun">-&gt;</span><span class="pln">name </span><span class="pun">=</span><span class="pln"> </span><span class="str">'autoversionassets'</span><span class="pun">;</span><span class="pln">
    $this</span><span class="pun">-&gt;</span><span class="pln">tab </span><span class="pun">=</span><span class="pln"> </span><span class="str">'Blocks'</span><span class="pun">;</span><span class="pln">
    $this</span><span class="pun">-&gt;</span><span class="pln">version </span><span class="pun">=</span><span class="pln"> </span><span class="str">'1.0.0'</span><span class="pun">;</span><span class="pln">
    $this</span><span class="pun">-&gt;</span><span class="pln">author </span><span class="pun">=</span><span class="pln"> </span><span class="str">'Ray'</span><span class="pun">;</span><span class="pln">
    $this</span><span class="pun">-&gt;</span><span class="pln">need_instance </span><span class="pun">=</span><span class="pln"> </span><span class="lit">0</span><span class="pun">;</span><span class="pln">
    $this</span><span class="pun">-&gt;</span><span class="pln">ps_versions_compliancy </span><span class="pun">=</span><span class="pln"> </span><span class="pun">[</span><span class="str">'min'</span><span class="pln"> </span><span class="pun">=&gt;</span><span class="pln"> </span><span class="str">'8.0.0'</span><span class="pun">,</span><span class="pln"> </span><span class="str">'max'</span><span class="pln"> </span><span class="pun">=&gt;</span><span class="pln"> _PS_VERSION_</span><span class="pun">];</span><span class="pln">
    $this</span><span class="pun">-&gt;</span><span class="pln">bootstrap </span><span class="pun">=</span><span class="pln"> </span><span class="kwd">false</span><span class="pun">;</span><span class="pln">

    parent</span><span class="pun">::</span><span class="pln">__construct</span><span class="pun">();</span><span class="pln">

    $this</span><span class="pun">-&gt;</span><span class="pln">displayName </span><span class="pun">=</span><span class="pln"> $this</span><span class="pun">-&gt;</span><span class="pln">l</span><span class="pun">(</span><span class="str">'Auto Version Assets'</span><span class="pun">);</span><span class="pln">
    $this</span><span class="pun">-&gt;</span><span class="pln">description </span><span class="pun">=</span><span class="pln"> $this</span><span class="pun">-&gt;</span><span class="pln">l</span><span class="pun">(</span><span class="str">'Appends ?v=filemtime to all CSS and JS assets for cache busting.'</span><span class="pun">);</span><span class="pln">
  </span><span class="pun">}</span><span class="pln">

  </span><span class="kwd">public</span><span class="pln"> </span><span class="kwd">function</span><span class="pln"> install</span><span class="pun">()</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
    </span><span class="kwd">return</span><span class="pln"> parent</span><span class="pun">::</span><span class="pln">install</span><span class="pun">()</span><span class="pln"> </span><span class="pun">&amp;&amp;</span><span class="pln">
      $this</span><span class="pun">-&gt;</span><span class="pln">registerHook</span><span class="pun">(</span><span class="str">'actionFrontControllerSetMedia'</span><span class="pun">);</span><span class="pln">
  </span><span class="pun">}</span><span class="pln">

  </span><span class="kwd">public</span><span class="pln"> </span><span class="kwd">function</span><span class="pln"> uninstall</span><span class="pun">()</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
    </span><span class="kwd">return</span><span class="pln"> parent</span><span class="pun">::</span><span class="pln">uninstall</span><span class="pun">();</span><span class="pln">
  </span><span class="pun">}</span><span class="pln">

  </span><span class="kwd">public</span><span class="pln"> </span><span class="kwd">function</span><span class="pln"> hookActionFrontControllerSetMedia</span><span class="pun">(</span><span class="pln"> $params </span><span class="pun">)</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
    $controller </span><span class="pun">=</span><span class="pln"> $params</span><span class="pun">[</span><span class="str">'controller'</span><span class="pun">];</span><span class="pln">

  </span><span class="com">// Process CSS files</span><span class="pln">
  $newCss </span><span class="pun">=</span><span class="pln"> </span><span class="pun">[];</span><span class="pln">
    </span><span class="kwd">foreach</span><span class="pln"> </span><span class="pun">(</span><span class="pln"> $controller</span><span class="pun">-&gt;</span><span class="pln">css_files </span><span class="kwd">as</span><span class="pln"> $uri </span><span class="pun">=&gt;</span><span class="pln"> $media </span><span class="pun">)</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
      </span><span class="kwd">if</span><span class="pln"> </span><span class="pun">(</span><span class="pln"> strpos</span><span class="pun">(</span><span class="pln"> $uri</span><span class="pun">,</span><span class="pln"> </span><span class="str">'http'</span><span class="pln"> </span><span class="pun">)</span><span class="pln"> </span><span class="pun">===</span><span class="pln"> </span><span class="kwd">false</span><span class="pln"> </span><span class="pun">&amp;&amp;</span><span class="pln"> file_exists</span><span class="pun">(</span><span class="pln"> _PS_ROOT_DIR_ </span><span class="pun">.</span><span class="pln"> </span><span class="str">'/'</span><span class="pln"> </span><span class="pun">.</span><span class="pln"> ltrim</span><span class="pun">(</span><span class="pln"> $uri</span><span class="pun">,</span><span class="pln"> </span><span class="str">'/'</span><span class="pln"> </span><span class="pun">)</span><span class="pln"> </span><span class="pun">)</span><span class="pln"> </span><span class="pun">)</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
        $mtime </span><span class="pun">=</span><span class="pln"> filemtime</span><span class="pun">(</span><span class="pln">_PS_ROOT_DIR_ </span><span class="pun">.</span><span class="pln"> </span><span class="str">'/'</span><span class="pln"> </span><span class="pun">.</span><span class="pln"> ltrim</span><span class="pun">(</span><span class="pln"> $uri</span><span class="pun">,</span><span class="pln"> </span><span class="str">'/'</span><span class="pun">));</span><span class="pln">
        $newCss</span><span class="pun">[</span><span class="pln">$uri </span><span class="pun">.</span><span class="pln"> </span><span class="str">'?v='</span><span class="pln"> </span><span class="pun">.</span><span class="pln"> $mtime</span><span class="pun">]</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> $media</span><span class="pun">;</span><span class="pln">
      </span><span class="pun">}</span><span class="pln"> </span><span class="kwd">else</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
        $newCss</span><span class="pun">[</span><span class="pln">$uri</span><span class="pun">]</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> $media</span><span class="pun">;</span><span class="pln">
      </span><span class="pun">}</span><span class="pln">
    </span><span class="pun">}</span><span class="pln">
  $controller</span><span class="pun">-&gt;</span><span class="pln">css_files </span><span class="pun">=</span><span class="pln"> $newCss</span><span class="pun">;</span><span class="pln">

  </span><span class="com">// Process JS files</span><span class="pln">
  $newJs </span><span class="pun">=</span><span class="pln"> </span><span class="pun">[];</span><span class="pln">
    </span><span class="kwd">foreach</span><span class="pln"> </span><span class="pun">(</span><span class="pln"> $controller</span><span class="pun">-&gt;</span><span class="pln">js_files </span><span class="kwd">as</span><span class="pln"> $uri </span><span class="pun">=&gt;</span><span class="pln"> $value </span><span class="pun">)</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
      </span><span class="kwd">if</span><span class="pln"> </span><span class="pun">(</span><span class="pln"> strpos</span><span class="pun">(</span><span class="pln"> $uri</span><span class="pun">,</span><span class="pln"> </span><span class="str">'http'</span><span class="pln"> </span><span class="pun">)</span><span class="pln"> </span><span class="pun">===</span><span class="pln"> </span><span class="kwd">false</span><span class="pln"> </span><span class="pun">&amp;&amp;</span><span class="pln"> file_exists</span><span class="pun">(</span><span class="pln">_PS_ROOT_DIR_ </span><span class="pun">.</span><span class="pln"> </span><span class="str">'/'</span><span class="pln"> </span><span class="pun">.</span><span class="pln"> ltrim</span><span class="pun">(</span><span class="pln"> $uri</span><span class="pun">,</span><span class="pln"> </span><span class="str">'/'</span><span class="pun">)))</span><span class="pln">  </span><span class="pun">{</span><span class="pln">
        $mtime </span><span class="pun">=</span><span class="pln"> filemtime</span><span class="pun">(</span><span class="pln">_PS_ROOT_DIR_ </span><span class="pun">.</span><span class="pln"> </span><span class="str">'/'</span><span class="pln"> </span><span class="pun">.</span><span class="pln"> ltrim</span><span class="pun">(</span><span class="pln"> $uri</span><span class="pun">,</span><span class="pln"> </span><span class="str">'/'</span><span class="pun">));</span><span class="pln">
        $newJs</span><span class="pun">[</span><span class="pln">$uri </span><span class="pun">.</span><span class="pln"> </span><span class="str">'?v='</span><span class="pln"> </span><span class="pun">.</span><span class="pln"> $mtime</span><span class="pun">]</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> $value</span><span class="pun">;</span><span class="pln">
      </span><span class="pun">}</span><span class="pln"> </span><span class="kwd">else</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
        $newJs</span><span class="pun">[</span><span class="pln">$uri</span><span class="pun">]</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> $value</span><span class="pun">;</span><span class="pln">
      </span><span class="pun">}</span><span class="pln">
    </span><span class="pun">}</span><span class="pln">
    $controller</span><span class="pun">-&gt;</span><span class="pln">js_files </span><span class="pun">=</span><span class="pln"> $newJs</span><span class="pun">;</span><span class="pln">
  </span><span class="pun">}</span><span class="pln">
</span><span class="pun">}</span></pre>

<p>
	Would anybody have any idea why it's not working. (The site is fine, just that the ?v=234234235 is not added)
</p>

<p>
	 
</p>
]]></description><guid isPermaLink="false">1098287</guid><pubDate>Wed, 14 May 2025 15:19:11 +0000</pubDate></item><item><title>[PS 9.0] Method createForm() fails in admin controller ("form.factory" not found)</title><link>https://forum.prestashop.com/topic/1096056-ps-90-method-createform-fails-in-admin-controller-formfactory-not-found/</link><description><![CDATA[<p>
	Hi,
</p>

<p>
	I have module a with an admin controller. I want to add some extra buttons to the order overview. The following works with PrestaShop 8:
</p>

<pre class="ipsCode prettyprint lang-html prettyprinted"><span class="pln">class GlsparcelController extends OrderController
{
    public function __construct()
    {
    }

    public function myIndexAction(Request $request, OrderFilters $filters)
    {
        $filters-&gt;setFilterId('glsparcelOrder');
        $orderKpiFactory = $this-&gt;container-&gt;get('prestashop.core.kpi_row.factory.orders');
        $orderGrid = $this-&gt;container-&gt;get('prestashop.core.grid.factory.order')-&gt;getGrid($filters);
        $changeOrderStatusesForm = $this-&gt;createForm(ChangeOrdersStatusType::class);
        $bulkActions = new BulkActionCollection();
        $bulkActions
            -&gt;add(
                (new SubmitBulkAction('print_label'))
                -&gt;setName('Print selected')
                -&gt;setOptions([
                    'submit_route' =&gt; 'glsparcel_orders_print',
                ])
            );
        $orderGrid-&gt;getDefinition()-&gt;setBulkActions($bulkActions);

        return $this-&gt;render(
            '@PrestaShop/Admin/Sell/Order/Order/index.html.twig',
            [
                'orderGrid' =&gt; $this-&gt;presentGrid($orderGrid),
                'help_link' =&gt; $this-&gt;generateSidebarLink($request-&gt;attributes-&gt;get('_legacy_controller')),
                'enableSidebar' =&gt; true,
                'changeOrderStatusesForm' =&gt; $changeOrderStatusesForm-&gt;createView(),
                'orderKpi' =&gt; $orderKpiFactory-&gt;build(),
            ]
        );
    }
}</span></pre>

<p>
	Unfortunately it fails in PrestaShop 9.0 with the message:
</p>

<p>
	<em>The "form.factory" service or alias has been removed or inlined when the container was compiled. You should either make it public, or stop using the container directly and use dependency injection instead.</em>
</p>

<p>
	I assume the problem is due to the new Symfony version. The service links to Symfony\Component\Form\FormFactory.
</p>

<p>
	Can this be solved?
</p>

<p>
	/Kjeld
</p>

<p>
	 
</p>
]]></description><guid isPermaLink="false">1096056</guid><pubDate>Tue, 04 Mar 2025 16:14:13 +0000</pubDate></item><item><title>Modul for Brand images</title><link>https://forum.prestashop.com/topic/1096281-modul-for-brand-images/</link><description><![CDATA[<p>
	I'm trying to create my first Prestashop module, but I can't get it to work.<br />
	I want to display the manufacturer's logos on the manufacturer's page.<br />
	To do this, I've added the image_url column to the *_manufacturer table.
</p>

<p>
	I've created the following files so that the standard theme is overwritten by my module.<br />
	I'm calling my module "ameinmodul" so that it is displayed as the first module in the list in the back office.<br />
	To do this, I've created the following files:
</p>

<p>
	ameinmodul.php<br />
	/classes/ManufacturerHelper.php<br />
	/views/templates/hook/brand_miniature_item.tpl<br />
	/override/classes/Manufacturer.php
</p>

<p>
	The files contain the following content:<br />
	ameinmodul.php<br />
	 
</p>

<pre class="ipsCode prettyprint lang-php prettyprinted"><span class="pun">&lt;?</span><span class="pln">php
</span><span class="kwd">if</span><span class="pln"> </span><span class="pun">(!</span><span class="kwd">defined</span><span class="pun">(</span><span class="str">'_PS_VERSION_'</span><span class="pun">))</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
    </span><span class="kwd">exit</span><span class="pun">;</span><span class="pln">
</span><span class="pun">}</span><span class="pln">

</span><span class="com">// Externe Klasse für die Bildverarbeitung einbinden</span><span class="pln">
require_once</span><span class="pun">(</span><span class="pln">_PS_MODULE_DIR_ </span><span class="pun">.</span><span class="pln"> </span><span class="str">'ameinmodul/classes/ManufacturerHelper.php'</span><span class="pun">);</span><span class="pln">

</span><span class="kwd">class</span><span class="pln"> </span><span class="typ">AmeinModul</span><span class="pln"> </span><span class="kwd">extends</span><span class="pln"> </span><span class="typ">Module</span><span class="pln">
</span><span class="pun">{</span><span class="pln">
    </span><span class="kwd">public</span><span class="pln"> </span><span class="kwd">function</span><span class="pln"> __construct</span><span class="pun">()</span><span class="pln">
    </span><span class="pun">{</span><span class="pln">
        $this</span><span class="pun">-&gt;</span><span class="pln">name </span><span class="pun">=</span><span class="pln"> </span><span class="str">'ameinmodul'</span><span class="pun">;</span><span class="pln">
        $this</span><span class="pun">-&gt;</span><span class="pln">tab </span><span class="pun">=</span><span class="pln"> </span><span class="str">'administration'</span><span class="pun">;</span><span class="pln">
        $this</span><span class="pun">-&gt;</span><span class="pln">version </span><span class="pun">=</span><span class="pln"> </span><span class="str">'1.0.10'</span><span class="pun">;</span><span class="pln">
        $this</span><span class="pun">-&gt;</span><span class="pln">author </span><span class="pun">=</span><span class="pln"> </span><span class="str">'Mein Name'</span><span class="pun">;</span><span class="pln">
        $this</span><span class="pun">-&gt;</span><span class="pln">need_instance </span><span class="pun">=</span><span class="pln"> </span><span class="lit">0</span><span class="pun">;</span><span class="pln">

        parent</span><span class="pun">::</span><span class="pln">__construct</span><span class="pun">();</span><span class="pln">

        $this</span><span class="pun">-&gt;</span><span class="pln">displayName </span><span class="pun">=</span><span class="pln"> $this</span><span class="pun">-&gt;</span><span class="pln">l</span><span class="pun">(</span><span class="str">'1 Mein Modul'</span><span class="pun">);</span><span class="pln">
        $this</span><span class="pun">-&gt;</span><span class="pln">description </span><span class="pun">=</span><span class="pln"> $this</span><span class="pun">-&gt;</span><span class="pln">l</span><span class="pun">(</span><span class="str">'Verschiedene Funktionen: Hersteller Logos'</span><span class="pun">);</span><span class="pln">
    </span><span class="pun">}</span><span class="pln">

    </span><span class="kwd">public</span><span class="pln"> </span><span class="kwd">function</span><span class="pln"> install</span><span class="pun">()</span><span class="pln">
    </span><span class="pun">{</span><span class="pln">
        </span><span class="kwd">return</span><span class="pln"> parent</span><span class="pun">::</span><span class="pln">install</span><span class="pun">()</span><span class="pln">
            </span><span class="pun">&amp;&amp;</span><span class="pln"> $this</span><span class="pun">-&gt;</span><span class="pln">registerHook</span><span class="pun">(</span><span class="str">'displayBrandMiniatureItem'</span><span class="pun">)</span><span class="pln"> </span><span class="com">// **Hook explizit registrieren**</span><span class="pln">
            </span><span class="pun">&amp;&amp;</span><span class="pln"> $this</span><span class="pun">-&gt;</span><span class="pln">registerHook</span><span class="pun">(</span><span class="str">'displayManufacturerLogo'</span><span class="pun">)</span><span class="pln"> </span><span class="com">// Herstellerlogo laden</span><span class="pln">
    </span><span class="pun">}</span><span class="pln">



    </span><span class="kwd">public</span><span class="pln"> </span><span class="kwd">function</span><span class="pln"> hookDisplayManufacturerLogo</span><span class="pun">(</span><span class="pln">$params</span><span class="pun">)</span><span class="pln">
    </span><span class="pun">{</span><span class="pln">
        error_log</span><span class="pun">(</span><span class="str">"HOOK WIRD AUFGERUFEN!"</span><span class="pun">,</span><span class="pln"> </span><span class="lit">3</span><span class="pun">,</span><span class="pln"> _PS_ROOT_DIR_ </span><span class="pun">.</span><span class="pln"> </span><span class="str">"/var/logs/hook_debug.log"</span><span class="pun">);</span><span class="pln">

        </span><span class="kwd">if</span><span class="pln"> </span><span class="pun">(!</span><span class="pln">isset</span><span class="pun">(</span><span class="pln">$params</span><span class="pun">[</span><span class="str">'manufacturer'</span><span class="pun">])</span><span class="pln"> </span><span class="pun">||</span><span class="pln"> </span><span class="pun">!</span><span class="pln">isset</span><span class="pun">(</span><span class="pln">$params</span><span class="pun">[</span><span class="str">'manufacturer'</span><span class="pun">][</span><span class="str">'id_manufacturer'</span><span class="pun">]))</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
            </span><span class="kwd">return</span><span class="pln"> </span><span class="str">'&lt;p style="color:red;"&gt;Fehlende Hersteller-Daten&lt;/p&gt;'</span><span class="pun">;</span><span class="pln">
        </span><span class="pun">}</span><span class="pln">

        $manufacturer </span><span class="pun">=</span><span class="pln"> $params</span><span class="pun">[</span><span class="str">'manufacturer'</span><span class="pun">];</span><span class="pln">
        $id_manufacturer </span><span class="pun">=</span><span class="pln"> </span><span class="pun">(</span><span class="kwd">int</span><span class="pun">)</span><span class="pln">$manufacturer</span><span class="pun">[</span><span class="str">'id_manufacturer'</span><span class="pun">];</span><span class="pln">
        $image_url </span><span class="pun">=</span><span class="pln"> trim</span><span class="pun">(</span><span class="pln">$manufacturer</span><span class="pun">[</span><span class="str">'image_url'</span><span class="pun">]);</span><span class="pln">

        </span><span class="com">// Falls `image_url` leer ist, Standard-Pfad verwenden</span><span class="pln">
        </span><span class="kwd">if</span><span class="pln"> </span><span class="pun">(</span><span class="pln">empty</span><span class="pun">(</span><span class="pln">$image_url</span><span class="pun">))</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
            $image_url </span><span class="pun">=</span><span class="pln"> _PS_BASE_URL_ </span><span class="pun">.</span><span class="pln"> </span><span class="str">"/img/m/"</span><span class="pln"> </span><span class="pun">.</span><span class="pln"> $id_manufacturer </span><span class="pun">.</span><span class="pln"> </span><span class="str">".jpg"</span><span class="pun">;</span><span class="pln">
        </span><span class="pun">}</span><span class="pln"> </span><span class="kwd">else</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
            $image_url </span><span class="pun">=</span><span class="pln"> _PS_BASE_URL_ </span><span class="pun">.</span><span class="pln"> </span><span class="str">"/img/m/"</span><span class="pln"> </span><span class="pun">.</span><span class="pln"> $image_url</span><span class="pun">;</span><span class="pln">
        </span><span class="pun">}</span><span class="pln">

        </span><span class="com">// Prüfen, ob die Datei existiert</span><span class="pln">
        </span><span class="kwd">if</span><span class="pln"> </span><span class="pun">(!</span><span class="pln">file_exists</span><span class="pun">(</span><span class="pln">_PS_ROOT_DIR_ </span><span class="pun">.</span><span class="pln"> </span><span class="str">"/img/m/"</span><span class="pln"> </span><span class="pun">.</span><span class="pln"> basename</span><span class="pun">(</span><span class="pln">$image_url</span><span class="pun">)))</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
            </span><span class="kwd">return</span><span class="pln"> </span><span class="str">'&lt;p style="color:red;"&gt;Kein Logo für '</span><span class="pln"> </span><span class="pun">.</span><span class="pln"> htmlspecialchars</span><span class="pun">(</span><span class="pln">$manufacturer</span><span class="pun">[</span><span class="str">'name'</span><span class="pun">])</span><span class="pln"> </span><span class="pun">.</span><span class="pln"> </span><span class="str">'&lt;/p&gt;'</span><span class="pun">;</span><span class="pln">
        </span><span class="pun">}</span><span class="pln">

        </span><span class="com">// Bild ausgeben</span><span class="pln">
        </span><span class="kwd">return</span><span class="pln"> </span><span class="str">'&lt;img src="'</span><span class="pln"> </span><span class="pun">.</span><span class="pln"> htmlspecialchars</span><span class="pun">(</span><span class="pln">$image_url</span><span class="pun">)</span><span class="pln"> </span><span class="pun">.</span><span class="pln"> </span><span class="str">'" alt="'</span><span class="pln"> </span><span class="pun">.</span><span class="pln"> htmlspecialchars</span><span class="pun">(</span><span class="pln">$manufacturer</span><span class="pun">[</span><span class="str">'name'</span><span class="pun">])</span><span class="pln"> </span><span class="pun">.</span><span class="pln"> </span><span class="str">'" class="manufacturer-logo"&gt;'</span><span class="pun">;</span><span class="pln">
    </span><span class="pun">}</span><span class="pln">


    </span><span class="kwd">public</span><span class="pln"> </span><span class="kwd">function</span><span class="pln"> hookDisplayBrandMiniatureItem</span><span class="pun">(</span><span class="pln">$params</span><span class="pun">)</span><span class="pln">
    </span><span class="pun">{</span><span class="pln">
        error_log</span><span class="pun">(</span><span class="str">"HOOK displayBrandMiniatureItem WIRD AUFGERUFEN!"</span><span class="pun">,</span><span class="pln"> </span><span class="lit">3</span><span class="pun">,</span><span class="pln"> _PS_ROOT_DIR_ </span><span class="pun">.</span><span class="pln"> </span><span class="str">"/var/logs/hook_debug.log"</span><span class="pun">);</span><span class="pln">

        </span><span class="kwd">if</span><span class="pln"> </span><span class="pun">(!</span><span class="pln">isset</span><span class="pun">(</span><span class="pln">$params</span><span class="pun">[</span><span class="str">'brand'</span><span class="pun">])</span><span class="pln"> </span><span class="pun">||</span><span class="pln"> </span><span class="pun">!</span><span class="pln">isset</span><span class="pun">(</span><span class="pln">$params</span><span class="pun">[</span><span class="str">'brand'</span><span class="pun">][</span><span class="str">'id_manufacturer'</span><span class="pun">]))</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
            error_log</span><span class="pun">(</span><span class="str">"Fehlende Hersteller-Daten"</span><span class="pun">,</span><span class="pln"> </span><span class="lit">3</span><span class="pun">,</span><span class="pln"> _PS_ROOT_DIR_ </span><span class="pun">.</span><span class="pln"> </span><span class="str">"/var/logs/hook_debug.log"</span><span class="pun">);</span><span class="pln">
            </span><span class="kwd">return</span><span class="pln"> </span><span class="str">'&lt;p style="color:red;"&gt;Fehlende Hersteller-Daten&lt;/p&gt;'</span><span class="pun">;</span><span class="pln">
        </span><span class="pun">}</span><span class="pln">

        $brand </span><span class="pun">=</span><span class="pln"> $params</span><span class="pun">[</span><span class="str">'brand'</span><span class="pun">];</span><span class="pln">
        $id_manufacturer </span><span class="pun">=</span><span class="pln"> </span><span class="pun">(</span><span class="kwd">int</span><span class="pun">)</span><span class="pln">$brand</span><span class="pun">[</span><span class="str">'id_manufacturer'</span><span class="pun">];</span><span class="pln">

        </span><span class="com">// Falls `image_url` nicht vorhanden ist, nachladen</span><span class="pln">
        </span><span class="kwd">if</span><span class="pln"> </span><span class="pun">(</span><span class="pln">empty</span><span class="pun">(</span><span class="pln">$brand</span><span class="pun">[</span><span class="str">'image_url'</span><span class="pun">]))</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
            $sql </span><span class="pun">=</span><span class="pln"> </span><span class="str">'SELECT image_url FROM '</span><span class="pln"> </span><span class="pun">.</span><span class="pln"> _DB_PREFIX_ </span><span class="pun">.</span><span class="pln"> </span><span class="str">'manufacturer WHERE id_manufacturer = '</span><span class="pln"> </span><span class="pun">.</span><span class="pln"> $id_manufacturer</span><span class="pun">;</span><span class="pln">
            $brand</span><span class="pun">[</span><span class="str">'image_url'</span><span class="pun">]</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span class="typ">Db</span><span class="pun">::</span><span class="pln">getInstance</span><span class="pun">()-&gt;</span><span class="pln">getValue</span><span class="pun">(</span><span class="pln">$sql</span><span class="pun">);</span><span class="pln">
        </span><span class="pun">}</span><span class="pln">

        </span><span class="com">// **Bild-URL aufbauen**</span><span class="pln">
        $brand</span><span class="pun">[</span><span class="str">'image_url'</span><span class="pun">]</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span class="pun">!</span><span class="pln">empty</span><span class="pun">(</span><span class="pln">$brand</span><span class="pun">[</span><span class="str">'image_url'</span><span class="pun">])</span><span class="pln"> 
            </span><span class="pun">?</span><span class="pln"> _PS_BASE_URL_ </span><span class="pun">.</span><span class="pln"> </span><span class="str">"/img/m/"</span><span class="pln"> </span><span class="pun">.</span><span class="pln"> $brand</span><span class="pun">[</span><span class="str">'image_url'</span><span class="pun">]</span><span class="pln"> 
            </span><span class="pun">:</span><span class="pln"> _PS_BASE_URL_ </span><span class="pun">.</span><span class="pln"> </span><span class="str">"/img/m/default.jpg"</span><span class="pun">;</span><span class="pln">

        error_log</span><span class="pun">(</span><span class="str">"Hersteller {$brand['name']} → Bild: {$brand['image_url']}"</span><span class="pun">,</span><span class="pln"> </span><span class="lit">3</span><span class="pun">,</span><span class="pln"> _PS_ROOT_DIR_ </span><span class="pun">.</span><span class="pln"> </span><span class="str">"/var/logs/hook_debug.log"</span><span class="pun">);</span><span class="pln">

        </span><span class="kwd">return</span><span class="pln"> $this</span><span class="pun">-&gt;</span><span class="pln">display</span><span class="pun">(</span><span class="pln">__FILE__</span><span class="pun">,</span><span class="pln"> </span><span class="str">'views/templates/hook/brand_miniature_item.tpl'</span><span class="pun">);</span><span class="pln">
    </span><span class="pun">}</span><span class="pln">
</span><span class="pun">}</span></pre>

<p>
	/classes/ManufacturerHelper.php<br />
	 
</p>

<pre class="ipsCode prettyprint lang-php prettyprinted"><span class="pun">&lt;?</span><span class="pln">php

</span><span class="kwd">class</span><span class="pln"> </span><span class="typ">ManufacturerHelper</span><span class="pln">
</span><span class="pun">{</span><span class="pln">
    </span><span class="kwd">public</span><span class="pln"> </span><span class="kwd">static</span><span class="pln"> </span><span class="kwd">function</span><span class="pln"> getImageUrl</span><span class="pun">(</span><span class="pln">$id_manufacturer</span><span class="pun">)</span><span class="pln">
    </span><span class="pun">{</span><span class="pln">
        </span><span class="kwd">if</span><span class="pln"> </span><span class="pun">(!</span><span class="pln">$id_manufacturer</span><span class="pun">)</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
            </span><span class="kwd">return</span><span class="pln"> _PS_BASE_URL_ </span><span class="pun">.</span><span class="pln"> </span><span class="str">"/img/m/default.jpg"</span><span class="pun">;</span><span class="pln"> </span><span class="com">// Fallback-Bild</span><span class="pln">
        </span><span class="pun">}</span><span class="pln">

        $sql </span><span class="pun">=</span><span class="pln"> </span><span class="str">'SELECT image_url FROM '</span><span class="pln"> </span><span class="pun">.</span><span class="pln"> _DB_PREFIX_ </span><span class="pun">.</span><span class="pln"> </span><span class="str">'manufacturer WHERE id_manufacturer = '</span><span class="pln"> </span><span class="pun">.</span><span class="pln"> </span><span class="pun">(</span><span class="kwd">int</span><span class="pun">)</span><span class="pln">$id_manufacturer</span><span class="pun">;</span><span class="pln">
        $image_name </span><span class="pun">=</span><span class="pln"> </span><span class="typ">Db</span><span class="pun">::</span><span class="pln">getInstance</span><span class="pun">()-&gt;</span><span class="pln">getValue</span><span class="pun">(</span><span class="pln">$sql</span><span class="pun">);</span><span class="pln">

        </span><span class="com">// **Bild-URL aufbauen**</span><span class="pln">
        </span><span class="kwd">return</span><span class="pln"> </span><span class="pun">!</span><span class="pln">empty</span><span class="pun">(</span><span class="pln">$image_name</span><span class="pun">)</span><span class="pln"> 
            </span><span class="pun">?</span><span class="pln"> _PS_BASE_URL_ </span><span class="pun">.</span><span class="pln"> </span><span class="str">"/img/m/"</span><span class="pln"> </span><span class="pun">.</span><span class="pln"> $image_name 
            </span><span class="pun">:</span><span class="pln"> _PS_BASE_URL_ </span><span class="pun">.</span><span class="pln"> </span><span class="str">"/img/m/default.jpg"</span><span class="pun">;</span><span class="pln">
    </span><span class="pun">}</span><span class="pln">
</span><span class="pun">}</span></pre>

<p>
	/views/templates/hook/brand_miniature_item.tpl<br />
	 
</p>

<pre class="ipsCode prettyprint lang-php prettyprinted"><span class="pun">{</span><span class="pln">block name</span><span class="pun">=</span><span class="str">'brand_miniature_item'</span><span class="pun">}</span><span class="pln">
  </span><span class="pun">&lt;</span><span class="pln">li </span><span class="kwd">class</span><span class="pun">=</span><span class="str">"brand"</span><span class="pun">&gt;</span><span class="pln">
    </span><span class="pun">&lt;</span><span class="pln">div </span><span class="kwd">class</span><span class="pun">=</span><span class="str">"brand-img"</span><span class="pun">&gt;</span><span class="pln">
      </span><span class="pun">&lt;</span><span class="pln">a href</span><span class="pun">=</span><span class="str">"{$brand.url}"</span><span class="pun">&gt;</span><span class="pln">
        </span><span class="pun">&lt;</span><span class="pln">img src</span><span class="pun">=</span><span class="str">"{$brand.image_url}"</span><span class="pln"> alt</span><span class="pun">=</span><span class="str">"{$brand.name}"</span><span class="pln"> loading</span><span class="pun">=</span><span class="str">"lazy"</span><span class="pun">&gt;</span><span class="pln">
      </span><span class="pun">&lt;/</span><span class="pln">a</span><span class="pun">&gt;</span><span class="pln">
    </span><span class="pun">&lt;/</span><span class="pln">div</span><span class="pun">&gt;</span><span class="pln">
    </span><span class="pun">&lt;</span><span class="pln">div </span><span class="kwd">class</span><span class="pun">=</span><span class="str">"brand-infos"</span><span class="pun">&gt;</span><span class="pln">
      </span><span class="str">&lt;p&gt;</span><span class="pun">&lt;</span><span class="pln">a href</span><span class="pun">=</span><span class="str">"{$brand.url}"</span><span class="pun">&gt;{</span><span class="pln">$brand</span><span class="pun">.</span><span class="pln">name</span><span class="pun">}&lt;</span><span class="str">/a&gt;&lt;/</span><span class="pln">p</span><span class="pun">&gt;</span><span class="pln">
    </span><span class="pun">&lt;/</span><span class="pln">div</span><span class="pun">&gt;</span><span class="pln">
    </span><span class="pun">&lt;</span><span class="pln">div </span><span class="kwd">class</span><span class="pun">=</span><span class="str">"brand-products"</span><span class="pun">&gt;</span><span class="pln">
      </span><span class="pun">&lt;</span><span class="pln">a href</span><span class="pun">=</span><span class="str">"{$brand.url}"</span><span class="pun">&gt;{</span><span class="pln">$brand</span><span class="pun">.</span><span class="pln">nb_products</span><span class="pun">}&lt;/</span><span class="pln">a</span><span class="pun">&gt;</span><span class="pln">
      </span><span class="pun">&lt;</span><span class="pln">a href</span><span class="pun">=</span><span class="str">"{$brand.url}"</span><span class="pun">&gt;{</span><span class="pln">l s</span><span class="pun">=</span><span class="str">'View products'</span><span class="pln"> d</span><span class="pun">=</span><span class="str">'Shop.Theme.Actions'</span><span class="pun">}&lt;/</span><span class="pln">a</span><span class="pun">&gt;</span><span class="pln">
    </span><span class="pun">&lt;/</span><span class="pln">div</span><span class="pun">&gt;</span><span class="pln">
  </span><span class="pun">&lt;/</span><span class="pln">li</span><span class="pun">&gt;</span><span class="pln">
</span><span class="pun">{/</span><span class="pln">block</span><span class="pun">}</span></pre>

<p>
	/override/classes/Manufacturer.php<br />
	 
</p>

<pre class="ipsCode prettyprint lang-html prettyprinted"><span class="pun">&lt;?</span><span class="pln">php

</span><span class="kwd">class</span><span class="pln"> </span><span class="typ">Manufacturer</span><span class="pln"> </span><span class="kwd">extends</span><span class="pln"> </span><span class="typ">ManufacturerCore</span><span class="pln">
</span><span class="pun">{</span><span class="pln">
    </span><span class="kwd">public</span><span class="pln"> $image_url</span><span class="pun">;</span><span class="pln"> </span><span class="com">// Neue Eigenschaft für das Bild</span><span class="pln">

    </span><span class="kwd">public</span><span class="pln"> </span><span class="kwd">function</span><span class="pln"> __construct</span><span class="pun">(</span><span class="pln">$id_manufacturer </span><span class="pun">=</span><span class="pln"> </span><span class="kwd">null</span><span class="pun">,</span><span class="pln"> $id_lang </span><span class="pun">=</span><span class="pln"> </span><span class="kwd">null</span><span class="pun">,</span><span class="pln"> $id_shop </span><span class="pun">=</span><span class="pln"> </span><span class="kwd">null</span><span class="pun">)</span><span class="pln">
    </span><span class="pun">{</span><span class="pln">
        parent</span><span class="pun">::</span><span class="pln">__construct</span><span class="pun">(</span><span class="pln">$id_manufacturer</span><span class="pun">,</span><span class="pln"> $id_lang</span><span class="pun">,</span><span class="pln"> $id_shop</span><span class="pun">);</span><span class="pln">

        </span><span class="kwd">if</span><span class="pln"> </span><span class="pun">(</span><span class="pln">$id_manufacturer</span><span class="pun">)</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
            $sql </span><span class="pun">=</span><span class="pln"> </span><span class="str">'SELECT image_url FROM '</span><span class="pln"> </span><span class="pun">.</span><span class="pln"> _DB_PREFIX_ </span><span class="pun">.</span><span class="pln"> </span><span class="str">'manufacturer WHERE id_manufacturer = '</span><span class="pln"> </span><span class="pun">.</span><span class="pln"> </span><span class="pun">(</span><span class="kwd">int</span><span class="pun">)</span><span class="pln"> $id_manufacturer</span><span class="pun">;</span><span class="pln">
            $this</span><span class="pun">-&gt;</span><span class="pln">image_url </span><span class="pun">=</span><span class="pln"> </span><span class="typ">Db</span><span class="pun">::</span><span class="pln">getInstance</span><span class="pun">()-&gt;</span><span class="pln">getValue</span><span class="pun">(</span><span class="pln">$sql</span><span class="pun">);</span><span class="pln">
        </span><span class="pun">}</span><span class="pln">
    </span><span class="pun">}</span><span class="pln">
</span><span class="pun">}</span></pre>

<p>
	 
</p>
]]></description><guid isPermaLink="false">1096281</guid><pubDate>Tue, 11 Mar 2025 15:26:45 +0000</pubDate></item><item><title>Adapting custom field in custom module to new PS8.1+ standard</title><link>https://forum.prestashop.com/topic/1096374-adapting-custom-field-in-custom-module-to-new-ps81-standard/</link><description><![CDATA[<p>
	Hi all, I have a custom module, that I need to make compatible with PS8.1+. 
</p>

<p>
	It uses the <em>hookDisplayAdminProductsMainStepLeftColumnMiddle</em>, which is deprecated. <br />
	I tried to follow the <a href="https://devdocs.prestashop-project.org/8/modules/sample-modules/extend-product-page/" rel="external nofollow">tutorial here</a>, but it doesn't work: it tells me that the service is invalid and the class (<em>src/Form/Modifier/ProductFormModifier.php</em>) doesn't exist. So I'm thinking I'm maybe doing something wrong in the bit where the example says <em>DemoNewHooks\Form\Modifier\ProductFormModifier</em> in the 'config/services.yml' file. Any one any idea? 
</p>

<p>
	My services.yml looks like this: 
</p>

<pre class="ipsCode">services:
    ModuleName\Form\Modifier\ProductFormModifier:
        autowire: true
        public: true
        arguments:
            $formBuilderModifier: '@form.form_builder_modifier'</pre>

<p>
	And the `ProductFormModifier.php` resides in: <br />
	./modules/modulename/src/Form/Modifier/ProductFormModifier.php<br />
	(as I understood it from the tutorial)
</p>
]]></description><guid isPermaLink="false">1096374</guid><pubDate>Fri, 14 Mar 2025 10:30:12 +0000</pubDate></item><item><title>DIsable/hide kpi-container from order admin page</title><link>https://forum.prestashop.com/topic/1013388-disablehide-kpi-container-from-order-admin-page/</link><description><![CDATA[
<p>
	<a class="ipsAttachLink ipsAttachLink_image" href="//media.invisioncic.com/t336404/monthly_2020_01/image.png.4807a7b5d4c742b282cfd2c3c785f756.png" data-fileid="235198" data-fileext="png" rel=""><img class="ipsImage ipsImage_thumbnailed" data-fileid="235198" data-ratio="8.20" width="1000" alt="image.thumb.png.6aee37d528d29c0a29db04a6c787381b.png" data-src="//media.invisioncic.com/t336404/monthly_2020_01/image.thumb.png.6aee37d528d29c0a29db04a6c787381b.png" src="https://forum.prestashop.com/applications/core/interface/js/spacer.png" /></a>
</p>

<p>
	Do you know how this block can be removed on PS 1.7.4.2?
</p>
]]></description><guid isPermaLink="false">1013388</guid><pubDate>Wed, 22 Jan 2020 18:07:13 +0000</pubDate></item><item><title>Price sorting does not take specific prices into account.</title><link>https://forum.prestashop.com/topic/1095074-price-sorting-does-not-take-specific-prices-into-account/</link><description><![CDATA[<p>
	Prestashop 8.1
</p>

<p>
	Module: Ps_facetedsearch
</p>

<p>
	Hello everyone,
</p>

<p>
	When I am on a category page and sort by price, some products with a higher displayed price appear after products with a lower price. Here is an example in the screenshot.
</p>

<p>
	After investigating, I noticed that the ps_facetedsearch module sorts based on the prices of customer group 1, but does not take into account the specific prices of the logged-in customer.<br />
	I hope I am being clear.
</p>

<p>
	My question is as follows:<br />
	Does anyone know how to make facetedsearch use specific prices for sorting?
</p>

<p>
	Thank you in advance.
</p>

<p><a href="//media.invisioncic.com/t336404/monthly_2025_02/p.png.4f589fd1c389580aa7c4618d0e6a1716.png" class="ipsAttachLink ipsAttachLink_image" ><img data-fileid="331847" src="https://www.prestashop.com/forums/applications/core/interface/js/spacer.png" data-src="//media.invisioncic.com/t336404/monthly_2025_02/p.png.4f589fd1c389580aa7c4618d0e6a1716.png" data-ratio="92.13" width="750" class="ipsImage ipsImage_thumbnailed" alt="p.png"></a></p>]]></description><guid isPermaLink="false">1095074</guid><pubDate>Thu, 06 Feb 2025 10:58:17 +0000</pubDate></item><item><title>Problem with installation, no override?</title><link>https://forum.prestashop.com/topic/1097222-problem-with-installation-no-override/</link><description><![CDATA[<p>
	Hi,
</p>

<p>
	I have a problem with a module during installation, and the issue seems to have a connection with overrides as you can see in the screenshot from the debug-process.
</p>

<p>
	This module has no overrides, therefore also no override folder.  
</p>

<p>
	Any thoughts what it could be a result of?
</p>

<p>
	 
</p>

<p>
	<a class="ipsAttachLink ipsAttachLink_image" href="//media.invisioncic.com/t336404/monthly_2025_04/installlation-error.png.1a02c0fb328bcc78601ed1d2ef6e85c8.png" data-fileid="334421" data-fileext="png" rel=""><img class="ipsImage ipsImage_thumbnailed" data-fileid="334421" data-ratio="51.70" width="1000" alt="installlation-error.thumb.png.0ff787457d5ea0dd117aa567db5789a8.png" data-src="//media.invisioncic.com/t336404/monthly_2025_04/installlation-error.thumb.png.0ff787457d5ea0dd117aa567db5789a8.png" src="https://forum.prestashop.com/applications/core/interface/js/spacer.png" /></a>
</p>
]]></description><guid isPermaLink="false">1097222</guid><pubDate>Wed, 09 Apr 2025 06:00:29 +0000</pubDate></item><item><title>[PS 8.2.0]  Error when adding Filter to new Column</title><link>https://forum.prestashop.com/topic/1096864-ps-820-error-when-adding-filter-to-new-column/</link><description><![CDATA[<p>
	Hello all,
</p>

<p>
	I have created my new module, which adds a id (from a cookie) to the order table. Showing the new column in the order grid works.<br />
	(in hookActionOrderGridDefinitionModifier)<br />
	 
</p>

<pre class="ipsCode prettyprint lang-php prettyprinted"><span class="pln">    </span><span class="kwd">public</span><span class="pln"> </span><span class="kwd">function</span><span class="pln"> hookActionOrderGridDefinitionModifier</span><span class="pun">(</span><span class="pln">array $params</span><span class="pun">)</span><span class="pln">
    </span><span class="pun">{</span><span class="pln">
        $definition </span><span class="pun">=</span><span class="pln"> $params</span><span class="pun">[</span><span class="str">'definition'</span><span class="pun">];</span><span class="pln">
    
        </span><span class="com">// Voeg de kolom toe aan de grid</span><span class="pln">
        $columns </span><span class="pun">=</span><span class="pln"> $definition</span><span class="pun">-&gt;</span><span class="pln">getColumns</span><span class="pun">();</span><span class="pln">
        $columns</span><span class="pun">-&gt;</span><span class="pln">addAfter</span><span class="pun">(</span><span class="str">'payment'</span><span class="pun">,</span><span class="pln"> 
            </span><span class="pun">(</span><span class="kwd">new</span><span class="pln"> </span><span class="typ">DataColumn</span><span class="pun">(</span><span class="str">'ref_code'</span><span class="pun">))</span><span class="pln">
                </span><span class="pun">-&gt;</span><span class="pln">setName</span><span class="pun">(</span><span class="str">'Referrer Code'</span><span class="pun">)</span><span class="pln">
                </span><span class="pun">-&gt;</span><span class="pln">setOptions</span><span class="pun">([</span><span class="pln">
                    </span><span class="str">'field'</span><span class="pln"> </span><span class="pun">=&gt;</span><span class="pln"> </span><span class="str">'ref_code'</span><span class="pun">,</span><span class="pln">
                </span><span class="pun">])</span><span class="pln">
        </span><span class="pun">);</span><span class="pln">
    
        </span><span class="com">// Voeg de filter toe aan de grid</span><span class="pln">
        $filters </span><span class="pun">=</span><span class="pln"> $definition</span><span class="pun">-&gt;</span><span class="pln">getFilters</span><span class="pun">();</span><span class="pln">
        $filters</span><span class="pun">-&gt;</span><span class="kwd">add</span><span class="pun">(</span><span class="pln">
            </span><span class="pun">(</span><span class="kwd">new</span><span class="pln"> </span><span class="typ">Filter</span><span class="pun">())</span><span class="pln">
                </span><span class="pun">-&gt;</span><span class="pln">setType</span><span class="pun">(</span><span class="str">'text'</span><span class="pun">)</span><span class="pln">
                </span><span class="pun">-&gt;</span><span class="pln">setName</span><span class="pun">(</span><span class="str">'ref_code'</span><span class="pun">)</span><span class="pln">
                </span><span class="pun">-&gt;</span><span class="pln">setOptions</span><span class="pun">([</span><span class="pln">
                    </span><span class="str">'required'</span><span class="pln"> </span><span class="pun">=&gt;</span><span class="pln"> </span><span class="kwd">false</span><span class="pun">,</span><span class="pln">
                    </span><span class="str">'attr'</span><span class="pln"> </span><span class="pun">=&gt;</span><span class="pln"> </span><span class="pun">[</span><span class="pln">
                        </span><span class="str">'placeholder'</span><span class="pln"> </span><span class="pun">=&gt;</span><span class="pln"> </span><span class="str">'Referrer Code'</span><span class="pun">,</span><span class="pln">
                    </span><span class="pun">],</span><span class="pln">
                </span><span class="pun">])</span><span class="pln">
                </span><span class="pun">-&gt;</span><span class="pln">setAssociatedColumn</span><span class="pun">(</span><span class="str">'ref_code'</span><span class="pun">)</span><span class="pln">
        </span><span class="pun">);</span><span class="pln">
    </span><span class="pun">}</span></pre>

<p>
	But the part of adding the filter gives an error:<br />
	Compile Error: Cannot declare class PrestaShop\PrestaShop\Core\Product\Search\Filter, because the name is already in use.<br />
	And then it shows where the class is used:<br />
	 
</p>

<pre class="ipsCode prettyprint lang-php prettyprinted"><span class="com">//in modules/ps_facetedsearch/tests/php/FacetedSearch/Mock/Filter.php (line 23)</span><span class="pln">

     </span><span class="pun">*</span><span class="pln"> </span><span class="lit">@license</span><span class="pln">   https</span><span class="pun">:</span><span class="com">//opensource.org/licenses/AFL-3.0 Academic Free License 3.0 (AFL-3.0)</span><span class="pln">
     </span><span class="pun">*/</span><span class="pln">
    </span><span class="kwd">namespace</span><span class="pln"> </span><span class="typ">PrestaShop</span><span class="pln">\PrestaShop\Core\Product\Search</span><span class="pun">;</span><span class="pln">
    </span><span class="kwd">class</span><span class="pln"> </span><span class="typ">Filter</span><span class="pln">
    </span><span class="pun">{</span><span class="pln">
        </span><span class="com">/**
         * @var string the filter label
         */</span><span class="pln">
        </span><span class="kwd">private</span><span class="pln"> $label </span><span class="pun">=</span><span class="pln"> </span><span class="str">''</span><span class="pun">;</span><span class="pln">
</span></pre>

<p>
	I have tested/played with these above the code, but in my class:<br />
	 
</p>

<pre class="ipsCode prettyprint lang-php prettyprinted"><span class="kwd">use</span><span class="pln"> </span><span class="typ">PrestaShop</span><span class="pln">\PrestaShop\Core\Grid\Column\Type\DataColumn</span><span class="pun">;</span><span class="pln">
</span><span class="com">//use PrestaShop\PrestaShop\Core\Grid\Filters\TextFilter;</span><span class="pln">
</span><span class="com">//use PrestaShop\PrestaShop\Core\Grid\Filters\Filter;</span><span class="pln">
</span><span class="com">//use PrestaShop\PrestaShop\Core\Search\Filters;</span><span class="pln">
</span></pre>

<p>
	I have the other function as well, but I can't test this, because of the eror.<br />
	 
</p>

<pre class="ipsCode prettyprint lang-php prettyprinted"><span class="pln">    </span><span class="kwd">public</span><span class="pln"> </span><span class="kwd">function</span><span class="pln"> hookActionOrderGridQueryBuilderModifier</span><span class="pun">(</span><span class="pln">array $params</span><span class="pun">)</span><span class="pln">
    </span><span class="pun">{</span><span class="pln">
        $searchQueryBuilder </span><span class="pun">=</span><span class="pln"> $params</span><span class="pun">[</span><span class="str">'search_query_builder'</span><span class="pun">];</span><span class="pln">

        $searchQueryBuilder</span><span class="pun">-&gt;</span><span class="pln">addSelect</span><span class="pun">(</span><span class="str">'rt.ref_code'</span><span class="pun">);</span><span class="pln">

        $searchQueryBuilder</span><span class="pun">-&gt;</span><span class="pln">leftJoin</span><span class="pun">(</span><span class="pln">
            </span><span class="str">'o'</span><span class="pun">,</span><span class="pln"> </span><span class="com">// De alias van de orders tabel</span><span class="pln">
            _DB_PREFIX_ </span><span class="pun">.</span><span class="pln"> </span><span class="str">'reseller_tracking'</span><span class="pun">,</span><span class="pln"> 
            </span><span class="str">'rt'</span><span class="pun">,</span><span class="pln"> 
            </span><span class="str">'rt.id_order = o.id_order'</span><span class="pln"> 
        </span><span class="pun">);</span><span class="pln">

        $searchCriteria </span><span class="pun">=</span><span class="pln"> $params</span><span class="pun">[</span><span class="str">'search_criteria'</span><span class="pun">];</span><span class="pln">

        $filters </span><span class="pun">=</span><span class="pln"> $searchCriteria</span><span class="pun">-&gt;</span><span class="pln">getFilters</span><span class="pun">();</span><span class="pln">
        </span><span class="kwd">if</span><span class="pln"> </span><span class="pun">(!</span><span class="pln">empty</span><span class="pun">(</span><span class="pln">$filters</span><span class="pun">[</span><span class="str">'ref_code'</span><span class="pun">]))</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
            $searchQueryBuilder</span><span class="pun">-&gt;</span><span class="pln">andWhere</span><span class="pun">(</span><span class="str">'rt.ref_code LIKE :ref_code'</span><span class="pun">);</span><span class="pln">
            $searchQueryBuilder</span><span class="pun">-&gt;</span><span class="pln">setParameter</span><span class="pun">(</span><span class="str">'ref_code'</span><span class="pun">,</span><span class="pln"> </span><span class="str">'%'</span><span class="pln"> </span><span class="pun">.</span><span class="pln"> pSQL</span><span class="pun">(</span><span class="pln">$filters</span><span class="pun">[</span><span class="str">'ref_code'</span><span class="pun">])</span><span class="pln"> </span><span class="pun">.</span><span class="pln"> </span><span class="str">'%'</span><span class="pun">);</span><span class="pln">
        </span><span class="pun">}</span><span class="pln">
    </span><span class="pun">}</span></pre>

<p>
	I have already tried with:<br />
	(new Filter())<br />
	And<br />
	(new TextFilter())
</p>

<p>
	Already looked and used code from here:<br /><a href="https://devdocs.prestashop-project.org/8/development/components/grid/tutorials/work-with-search-form/#the-filters-types" rel="external nofollow">Tutorials</a>
</p>

<p>
	<br />
	Could somebody help me?<br />
	Thanks in advance,
</p>

<p>
	Brian
</p>

<p>
	 
</p>
]]></description><guid isPermaLink="false">1096864</guid><pubDate>Thu, 27 Mar 2025 16:34:23 +0000</pubDate></item><item><title>How to create REST API for my custom module</title><link>https://forum.prestashop.com/topic/1064074-how-to-create-rest-api-for-my-custom-module/</link><description><![CDATA[<p>
	Hi!<br /><br />
	I am working on a module, that allows users to configure product, and then buy it. So the user can pick color, amount of things he/she would like to buy, some additional parameters, etc. <br /><br />
	I want to react to changes on website, for example when user selects some parameter, I would like to update some data in a table. However, I don't want to calculate some things (price in this example), on both backend, and frontend - I think that's clear why - it's too sensitive data, to leave it to client code (JS). <br /><br />
	My question is, how to create REST API, so I can send request from store to module, receive some JSON, and then safely update view. MVC seemed appropriate here, so I had a look at <a href="https://devdocs.prestashop.com/1.7/modules/concepts/controllers/front-controllers/" rel="external nofollow">those docs</a>, but they weren't helpful.<br /><br />
	Any help would be greatly appreciated!<br />
	Kink regards,<br /><br />
	Bartek
</p>
]]></description><guid isPermaLink="false">1064074</guid><pubDate>Mon, 16 May 2022 12:27:40 +0000</pubDate></item><item><title>Removing payment icons from product pages</title><link>https://forum.prestashop.com/topic/1089116-removing-payment-icons-from-product-pages/</link><description><![CDATA[<p>
	Hello,<br />
	We recently installed Prestashop 8.1.7 and are using the Prestashop Checkout payment module.  I want to remove the payment icons from the product pages.  In the previous version of the module, there was an option to remove this in these icons from the product page.  It even lists it in their documentation.  In the current module, I can't find this anywhere in the settings.<br />
	How can I remove these icons from our product pages?
</p>

<p><a href="//media.invisioncic.com/t336404/monthly_2024_07/Screenshot2024-07-23at15_20_49.jpg.8f6a4c5638715da0afd6806295781c34.jpg" class="ipsAttachLink ipsAttachLink_image" ><img data-fileid="325368" src="https://www.prestashop.com/forums/applications/core/interface/js/spacer.png" data-src="//media.invisioncic.com/t336404/monthly_2024_07/Screenshot2024-07-23at15_20_49.thumb.jpg.443f85a7a91565dbd4b778c5352400cb.jpg" data-ratio="47.1" width="1000" class="ipsImage ipsImage_thumbnailed" alt="Screenshot 2024-07-23 at 15.20.49.jpg"></a></p>]]></description><guid isPermaLink="false">1089116</guid><pubDate>Tue, 23 Jul 2024 13:25:42 +0000</pubDate></item><item><title>PS 9</title><link>https://forum.prestashop.com/topic/1097638-ps-9/</link><description><![CDATA[<p>
	Hi,
</p>

<p>
	I have some issue with adapting a module for Prestashop 9. I am trying to do an upgrade file that will register a new hook:
</p>

<pre class="ipsCode prettyprint lang-php prettyprinted"><span class="kwd">function</span><span class="pln"> upgrade_module_8_0_0</span><span class="pun">(</span><span class="pln">$module</span><span class="pun">)</span><span class="pln">
</span><span class="pun">{</span><span class="pln">
    </span><span class="kwd">if</span><span class="pln"> </span><span class="pun">(</span><span class="pln">version_compare</span><span class="pun">(</span><span class="pln">_PS_VERSION_</span><span class="pun">,</span><span class="pln"> </span><span class="str">'9.0.0'</span><span class="pun">,</span><span class="pln"> </span><span class="str">'&gt;='</span><span class="pun">)</span><span class="pln"> </span><span class="pun">===</span><span class="pln"> </span><span class="kwd">true</span><span class="pun">)</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
        </span><span class="kwd">if</span><span class="pln"> </span><span class="pun">(!</span><span class="pln">$module</span><span class="pun">-&gt;</span><span class="pln">registerHook</span><span class="pun">(</span><span class="str">'actionCategoryFormBuilderModifier'</span><span class="pun">))</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
            </span><span class="kwd">return</span><span class="pln"> </span><span class="kwd">false</span><span class="pun">;</span><span class="pln">
        </span><span class="pun">}</span><span class="pln">
    </span><span class="pun">}</span><span class="pln">

    </span><span class="kwd">return</span><span class="pln"> $module</span><span class="pun">;</span><span class="pln">
</span><span class="pun">}</span></pre>

<p>
	But it always return false. After looking into the registerHook function I found that Hook::registerHook is returning false on this test:
</p>

<pre class="ipsCode prettyprint lang-php prettyprinted"><span class="kwd">if</span><span class="pln"> </span><span class="pun">(</span><span class="pln">
  </span><span class="pun">!(</span><span class="pln">$module_instance </span><span class="kwd">instanceof</span><span class="pln"> </span><span class="typ">Module</span><span class="pun">)</span><span class="pln">
  </span><span class="pun">||</span><span class="pln"> </span><span class="pun">!</span><span class="pln">isset</span><span class="pun">(</span><span class="pln">$module_instance</span><span class="pun">-&gt;</span><span class="pln">id</span><span class="pun">)</span><span class="pln">
  </span><span class="pun">||</span><span class="pln"> </span><span class="pun">!</span><span class="pln">is_numeric</span><span class="pun">(</span><span class="pln">$module_instance</span><span class="pun">-&gt;</span><span class="pln">id</span><span class="pun">)</span><span class="pln">
  </span><span class="pun">)</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
  </span><span class="kwd">return</span><span class="pln"> </span><span class="kwd">false</span><span class="pun">;</span><span class="pln">
</span><span class="pun">}</span></pre>

<p>
	And more exactly on this part "!isset($module_instance-&gt;id)"
</p>

<p>
	Does anyone has an idea why? I never had this issue before and I don't know what is wrong here.
</p>

<p>
	Thank you
</p>
]]></description><guid isPermaLink="false">1097638</guid><pubDate>Tue, 22 Apr 2025 13:25:38 +0000</pubDate></item><item><title>need custom module</title><link>https://forum.prestashop.com/topic/1097570-need-custom-module/</link><description><![CDATA[<p>
	Hello everyone,
</p>

<p>
	I’m seeking a developer to help me with a PrestaShop 8.1.1 issue on my site. Here’s the situation:
</p>

<p>
	Product volume: I have several thousand items, many of which are out of stock—but I still want them to remain visible.
</p>

<p>
	Sorting requirement: Categories are currently sorted by date added (newest first). I’d like all out‑of‑stock products to be pushed to the very end of each category listing.
</p>

<p>
	Pagination limit: Only 5 pages of the last out‑of‑stock products should be shown at the end of each category.
</p>

<p>
	If you can implement this behavior or would like to submit a proposal, please get in touch.
</p>

<p>
	Thank you in advance for your help.<br /><br />
	JC
</p>
]]></description><guid isPermaLink="false">1097570</guid><pubDate>Sat, 19 Apr 2025 19:35:52 +0000</pubDate></item><item><title>[solved] multiple email sending</title><link>https://forum.prestashop.com/topic/1097507-solved-multiple-email-sending/</link><description><![CDATA[<p>
	hello everyone<br />
	I have an old module decommissioned by the developer that sends the cart to the email indicated in the sending form
</p>

<p>
	I would need to receive the same email to another email address
</p>

<p>
	I've been trying to figure out how to do it all day but without success
</p>

<p>
	I think I understood that the code that sends the email is this
</p>

<p>
	 
</p>

<pre class="ipsCode prettyprint lang-php prettyprinted"><span class="pln">		</span><span class="kwd">if</span><span class="pln"> </span><span class="pun">(!</span><span class="pln">count</span><span class="pun">(</span><span class="pln">$this</span><span class="pun">-&gt;</span><span class="pln">errors</span><span class="pun">))</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
                    </span><span class="kwd">if</span><span class="pln"> </span><span class="pun">(</span><span class="lit">@Mail</span><span class="pun">::</span><span class="typ">Send</span><span class="pun">(</span><span class="pln">
                        </span><span class="pun">(</span><span class="kwd">int</span><span class="pun">)</span><span class="pln">$currentCart</span><span class="pun">-&gt;</span><span class="pln">id_lang</span><span class="pun">,</span><span class="pln">
                        </span><span class="str">'shopping_cart'</span><span class="pun">,</span><span class="pln">
                        </span><span class="typ">Mail</span><span class="pun">::</span><span class="pln">l</span><span class="pun">(</span><span class="str">'Carrello condiviso'</span><span class="pun">,</span><span class="pln"> </span><span class="pun">(</span><span class="kwd">int</span><span class="pun">)</span><span class="pln">$currentCart</span><span class="pun">-&gt;</span><span class="pln">id_lang</span><span class="pun">),</span><span class="pln">
                        $templateVars</span><span class="pun">,</span><span class="pln">
                        $email</span><span class="pun">,</span><span class="pln">
                        $name</span><span class="pun">,</span><span class="pln">
                        $this</span><span class="pun">-&gt;</span><span class="pln">context</span><span class="pun">-&gt;</span><span class="pln">customer</span><span class="pun">-&gt;</span><span class="pln">email</span><span class="pun">,</span><span class="pln">
                        $this</span><span class="pun">-&gt;</span><span class="pln">context</span><span class="pun">-&gt;</span><span class="pln">shop</span><span class="pun">-&gt;</span><span class="pln">name</span><span class="pun">,</span><span class="pln">
                        $file_attachement</span><span class="pun">,</span><span class="pln"> </span><span class="kwd">null</span><span class="pun">,</span><span class="pln"> $this</span><span class="pun">-&gt;</span><span class="kwd">module</span><span class="pun">-&gt;</span><span class="pln">getLocalPath</span><span class="pun">()</span><span class="pln"> </span><span class="pun">.</span><span class="pln"> </span><span class="str">'mails/'</span><span class="pln">
                    </span><span class="pun">))</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
                        $ids </span><span class="pun">=</span><span class="pln"> $this</span><span class="pun">-&gt;</span><span class="pln">getIdCartRules</span><span class="pun">(</span><span class="pln">$currentCart</span><span class="pun">);</span><span class="pln">
                        </span><span class="com">// Add log when send mail to guest success!</span><span class="pln">
                        </span><span class="kwd">if</span><span class="pln"> </span><span class="pun">(!</span><span class="typ">Db</span><span class="pun">::</span><span class="pln">getInstance</span><span class="pun">()-&gt;</span><span class="pln">insert</span><span class="pun">(</span><span class="str">'ets_savemycart'</span><span class="pun">,</span><span class="pln">
                            </span><span class="pun">[</span><span class="pln">
                                </span><span class="str">'id_cart'</span><span class="pln"> </span><span class="pun">=&gt;</span><span class="pln"> </span><span class="pun">(</span><span class="kwd">int</span><span class="pun">)</span><span class="pln">$currentCart</span><span class="pun">-&gt;</span><span class="pln">id</span><span class="pun">,</span><span class="pln">
                                </span><span class="str">'token'</span><span class="pln"> </span><span class="pun">=&gt;</span><span class="pln"> $token</span><span class="pun">,</span><span class="pln">
                                </span><span class="str">'cart_rules'</span><span class="pln"> </span><span class="pun">=&gt;</span><span class="pln"> implode</span><span class="pun">(</span><span class="str">','</span><span class="pun">,</span><span class="pln">$ids</span><span class="pun">),</span><span class="pln">
                            </span><span class="pun">]</span><span class="pln">
                        </span><span class="pun">))</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
                            $this</span><span class="pun">-&gt;</span><span class="pln">errors</span><span class="pun">[]</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> $this</span><span class="pun">-&gt;</span><span class="kwd">module</span><span class="pun">-&gt;</span><span class="pln">l</span><span class="pun">(</span><span class="str">'Adding log failed.'</span><span class="pun">,</span><span class="pln"> </span><span class="str">'submit'</span><span class="pun">);</span><span class="pln">
                        </span><span class="pun">}</span><span class="pln">
                        </span><span class="kwd">die</span><span class="pun">(</span><span class="pln">json_encode</span><span class="pun">([</span><span class="pln">
                            </span><span class="str">'ok'</span><span class="pln"> </span><span class="pun">=&gt;</span><span class="pln"> </span><span class="lit">1</span><span class="pun">,</span><span class="pln">
                            </span><span class="str">'msg'</span><span class="pln"> </span><span class="pun">=&gt;</span><span class="pln"> $this</span><span class="pun">-&gt;</span><span class="kwd">module</span><span class="pun">-&gt;</span><span class="pln">l</span><span class="pun">(</span><span class="str">'Mail sent successfully.'</span><span class="pun">,</span><span class="pln"> </span><span class="str">'submit'</span><span class="pun">)</span><span class="pln">
                        </span><span class="pun">]));</span><span class="pln">
                    </span><span class="pun">}</span><span class="pln"> </span><span class="kwd">else</span><span class="pln">
                        $this</span><span class="pun">-&gt;</span><span class="pln">errors</span><span class="pun">[]</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> $this</span><span class="pun">-&gt;</span><span class="kwd">module</span><span class="pun">-&gt;</span><span class="pln">l</span><span class="pun">(</span><span class="str">'Sending mail failed.'</span><span class="pun">,</span><span class="pln"> </span><span class="str">'submit'</span><span class="pun">);</span><span class="pln">
                </span><span class="pun">}</span></pre>

<p>
	I tried adding
</p>

<pre class="ipsCode prettyprint lang-php prettyprinted"><span class="pln">$email </span><span class="pun">=</span><span class="pln"> $email </span><span class="pun">.</span><span class="str">', email@secondaria.com'</span><span class="pun">;</span></pre>

<p>
	but it doesn't work
</p>
]]></description><guid isPermaLink="false">1097507</guid><pubDate>Thu, 17 Apr 2025 15:29:10 +0000</pubDate></item><item><title>Product::priceCalculation correct?</title><link>https://forum.prestashop.com/topic/1097482-productpricecalculation-correct/</link><description><![CDATA[<p>
	Hi,
</p>

<p>
	Have problem with this core function. 
</p>

<p>
	It gives me strange outputs for a product price. I want one price with tax and one without. Also I want it to take into account price reductions.
</p>

<p>
	What is givs me back is same price, even if I set $useTax to true och false.
</p>

<p>
	Also it calculated wrong price. Seems it outputs:
</p>

<p>
	calculated price = "price-without-tax"  -   "price-redution-with tax"
</p>

<p>
	Any thoughts on that fuction?
</p>
]]></description><guid isPermaLink="false">1097482</guid><pubDate>Thu, 17 Apr 2025 08:26:38 +0000</pubDate></item><item><title>language selector, currency in Iqit MegaMenu for Mobile</title><link>https://forum.prestashop.com/topic/899417-language-selector-currency-in-iqit-megamenu-for-mobile/</link><description><![CDATA[
<p>
	Hello,
</p>

<p>
	do you think you can move the bar dedicated to the language selector, currency and wishlist within the megamenu in the mobile version of the site?
</p>

<p>
	Thanks so much
</p>
]]></description><guid isPermaLink="false">899417</guid><pubDate>Thu, 06 Sep 2018 12:19:47 +0000</pubDate></item><item><title>PS8 address selection (solved)</title><link>https://forum.prestashop.com/topic/1097247-ps8-address-selection-solved/</link><description><![CDATA[<p>
	hello everyone<br />
	in PS8 I'm trying to change the text displayed in the address change window in the BO order (I attach an image)<br />
	now it appears<br />
	10654 - VIA TARCO....<br />
	for ease of selection I would like it to appear<br />
	Alias Address - VIA TARCO....
</p>

<p>
	what file should I work on?
</p>

<p>
	<a class="ipsAttachLink ipsAttachLink_image" href="//media.invisioncic.com/t336404/monthly_2025_04/Immagine2025-04-09153532.jpg.f4bb9c1c5275b9ebc193b6bf1292185a.jpg" data-fileid="334439" data-fileext="jpg" rel=""><img alt="Immagine 2025-04-09 153532.jpg" class="ipsImage ipsImage_thumbnailed" data-fileid="334439" data-ratio="21.5" style="height:auto;" width="1000" data-src="//media.invisioncic.com/t336404/monthly_2025_04/Immagine2025-04-09153532.thumb.jpg.b98e2edc0a62eaa936226e5c1f2eaee1.jpg" src="https://forum.prestashop.com/applications/core/interface/js/spacer.png" /></a>
</p>
]]></description><guid isPermaLink="false">1097247</guid><pubDate>Wed, 09 Apr 2025 15:09:51 +0000</pubDate></item><item><title>External 'Add to Cart' Module button is too small on Product page</title><link>https://forum.prestashop.com/topic/1097278-external-add-to-cart-module-button-is-too-small-on-product-page/</link><description><![CDATA[<p>
	Hi,<br />
	 I encountered problem with the additional Payment button on Product page.<br />
	So far, I'm unable to do anything from the 'hook' page or 'class' editing delivered by the developer in the module.<br />
	The prod-button class limits button space, so the resolution might be related to editing the class by adding 'display: block'.<br />
	Question is where to find the specific file to edit it manully?
</p>

<p>
	Pictures display the current and expected result.
</p>

<p>
	I'm using Prestashop 8.1.4<br /><br />
	Thanks in advance.
</p>

<p>
	Expected:
</p>

<p>
	<a class="ipsAttachLink ipsAttachLink_image" data-fileext="png" data-fileid="334464" href="//media.invisioncic.com/t336404/monthly_2025_04/h1.png.d2f4dc051dc1778ab9c7008b972e7b2d.png" rel=""><img alt="h1.png" class="ipsImage ipsImage_thumbnailed" data-fileid="334464" data-ratio="68.31" style="height:auto;" width="691" data-src="//media.invisioncic.com/t336404/monthly_2025_04/h1.png.d2f4dc051dc1778ab9c7008b972e7b2d.png" src="https://forum.prestashop.com/applications/core/interface/js/spacer.png" /></a>
</p>

<p>
	Current
</p>

<p>
	<a class="ipsAttachLink ipsAttachLink_image" href="//media.invisioncic.com/t336404/monthly_2025_04/h3.png.2243c81d38514b691212ec577ce47534.png" data-fileid="334468" data-fileext="png" rel=""><img alt="h3.png" class="ipsImage ipsImage_thumbnailed" data-fileid="334468" data-ratio="44.6" style="height:auto;" width="657" data-src="//media.invisioncic.com/t336404/monthly_2025_04/h3.png.2243c81d38514b691212ec577ce47534.png" src="https://forum.prestashop.com/applications/core/interface/js/spacer.png" /></a>
</p>
]]></description><guid isPermaLink="false">1097278</guid><pubDate>Thu, 10 Apr 2025 10:33:13 +0000</pubDate></item><item><title>Looking for Expert &#x2013; Fix Google Merchant Center Disapprovals (PrestaShop 8.2.1 + BusinessTech Module)</title><link>https://forum.prestashop.com/topic/1097288-looking-for-expert-%E2%80%93-fix-google-merchant-center-disapprovals-prestashop-821-businesstech-module/</link><description><![CDATA[<p>
	Hi everyone,
</p>

<p>
	I’m running a store on PrestaShop v8.2.1 using the Google Merchant Center Pro module by BusinessTech.
</p>

<p>
	I have over 11,200 products listed, but more than 7,500 have recently been disapproved inside Google Merchant Center (GMC) — and the number keeps growing.
</p>

<p>
	The module appears to be sending data correctly, but I believe the feed may require a deeper audit or optimization to meet Google’s latest requirements.
</p>

<p>
	I’m looking to hire a qualified expert or agency who can:
</p>

<p>
	Analyze and fix product disapprovals at scale
</p>

<p>
	Audit my feed and GMC settings
</p>

<p>
	Ensure full Google Shopping compliance
</p>

<p>
	Work directly with the BusinessTech module setup
</p>

<p>
	<span class="ipsEmoji">?</span> Paid work — I’m ready to start as soon as possible.
</p>

<p>
	My store: https://www.thedreamhair.com
</p>

<p>
	If you’re experienced with PrestaShop, GMC, and this module — please reply with your details, experience, or portfolio.
</p>

<p>
	Thanks in advance!<br />
	Violette Sadi
</p>
]]></description><guid isPermaLink="false">1097288</guid><pubDate>Thu, 10 Apr 2025 13:19:45 +0000</pubDate></item><item><title>Wirepaymen duplicates the orders</title><link>https://forum.prestashop.com/topic/1097080-wirepaymen-duplicates-the-orders/</link><description><![CDATA[<p>
	Hi guys,<br /><br />
	I have found a bug that I cannot figure out how to solve. In Prestashop 1.7.7.0 when an order is placed I get as in the attached image. It does this regardless of its cash on delivery or bankwire payment. <br />
	It simply duplicates the order <br />
	I checked my logs I get this information:<br />
	Frontcontroller::init - Cart cannot be loaded or an order has already been placed using this cart<br /><br />
	Please help me solve this
</p>

<p><a href="//media.invisioncic.com/t336404/monthly_2025_04/Posnetekzaslona2025-04-03102622.png.7cc520f36876c6b913e53acec53413a2.png" class="ipsAttachLink ipsAttachLink_image" ><img data-fileid="334283" src="https://www.prestashop.com/forums/applications/core/interface/js/spacer.png" data-src="//media.invisioncic.com/t336404/monthly_2025_04/Posnetekzaslona2025-04-03102622.thumb.png.cd879a4ed1ffcdab1af329abeab2618a.png" data-ratio="32" width="1000" class="ipsImage ipsImage_thumbnailed" alt="Posnetek zaslona 2025-04-03 102622.png"></a></p>]]></description><guid isPermaLink="false">1097080</guid><pubDate>Thu, 03 Apr 2025 08:42:57 +0000</pubDate></item></channel></rss>
