Jump to content
thirty bees forum
  • 0

OPC checkout and custom payment




I upgraded from TB 1.08 to 1.1

All seemed fine, then I found out to have to see the order status page in order to have the database fixed creating two columns that core updater still does not do

However further testing i discovered that in the checkout process having the native OPC activated I get a 500 internal error page.

In the error message there is a link to download an encrypted error log, how can I decrypt it to read the content?

So I switched to the 5 steps checkout, this work, but the custom payments I created are shown four times each.

I do use transformer theme.

What should I look at to give you more info?

What can I do to fix this?

Thank you

Kind regards


About using the OPC I reached to get this error message


Cannot use object of type Carrier as array

when rendering smarty template themes/transformer/order-opc.tpl

Source file: themes/transformer/order-opc.tpl

2:* 2007-2014 PrestaShop
6:* This source file is subject to the Academic Free License (AFL 3.0)
7:* that is bundled with this package in the file LICENSE.txt.
8:* It is also available through the world-wide-web at this URL:
9:* http://opensource.org/licenses/afl-3.0.php
10:* If you did not receive a copy of the license and are unable to
11:* obtain it through the world-wide-web, please send an email
12:* to license@prestashop.com so we can send you a copy immediately.
16:* Do not edit or add to this file if you wish to upgrade PrestaShop to newer
17:* versions in the future. If you wish to customize PrestaShop for your
18:* needs please refer to http://www.prestashop.com for more information.
20:*  @author PrestaShop SA <contact@prestashop.com>
21:*  @copyright  2007-2014 PrestaShop SA
22:*  @license    http://opensource.org/licenses/afl-3.0.php  Academic Free License (AFL 3.0)
23:*  International Registered Trademark & Property of PrestaShop SA
26:{if $opc}
27:	{assign var="back_order_page" value="order-opc.php"}
28:	{else}
29:	{assign var="back_order_page" value="order.php"}
33:	{capture name=path}{l s='Your shopping cart'}{/capture}
34:	<h2 id="cart_title">{l s='Your shopping cart'}</h2>
35:	<p class="alert alert-warning">{l s='Your new order was not accepted.'}</p>
37:	{if $productNumber}
38:		<!-- Shopping Cart -->
39:		{include file="$tpl_dir./shopping-cart.tpl"}
40:		<!-- End Shopping Cart -->
41:		{if $is_logged AND !$is_guest}
42:			{include file="$tpl_dir./order-address.tpl"}
43:		{else}
44:			<!-- Create account / Guest account / Login block -->
45:			{include file="$tpl_dir./order-opc-new-account.tpl"}
46:			<!-- END Create account / Guest account / Login block -->
47:		{/if}
48:		<!-- Carrier -->
49:		{include file="$tpl_dir./order-carrier.tpl"}
50:		<!-- END Carrier -->
52:		<!-- Payment -->
53:		{include file="$tpl_dir./order-payment.tpl"}
54:		<!-- END Payment -->
55:	{else}
56:		{capture name=path}{l s='Your shopping cart'}{/capture}
57:		<h2 class="page-heading">{l s='Your shopping cart'}</h2>
58:		{include file="$tpl_dir./errors.tpl"}
59:		<p class="alert alert-warning">{l s='Your shopping cart is empty.'}</p>
60:	{/if}
62:{addJsDef imgDir=$img_dir}
63:{addJsDef authenticationUrl=$link->getPageLink("authentication", true)|escape:'quotes':'UTF-8'}
64:{addJsDef orderOpcUrl=$link->getPageLink("order-opc", true)|escape:'quotes':'UTF-8'}
65:{addJsDef historyUrl=$link->getPageLink("history", true)|escape:'quotes':'UTF-8'}
66:{addJsDef guestTrackingUrl=$link->getPageLink("guest-tracking", true)|escape:'quotes':'UTF-8'}
67:{addJsDef addressUrl=$link->getPageLink("address", true, NULL, "back={$back_order_page}")|escape:'quotes':'UTF-8'}
68:{addJsDef orderProcess='order-opc'}
69:{addJsDef guestCheckoutEnabled=$PS_GUEST_CHECKOUT_ENABLED|intval}
70:{addJsDef displayPrice=$priceDisplay}
71:{addJsDef taxEnabled=$use_taxes}
72:{addJsDef conditionEnabled=$conditions|intval}
73:{addJsDef vat_management=$vat_management|intval}
74:{addJsDef errorCarrier=$errorCarrier|@addcslashes:'\''}
75:{addJsDef errorTOS=$errorTOS|@addcslashes:'\''}
76:{addJsDef checkedCarrier=$checked|intval}
77:{addJsDef addresses=array()}
78:{addJsDef isVirtualCart=$isVirtualCart|intval}
79:{addJsDef isPaymentStep=$isPaymentStep|intval}
80:{addJsDefL name=txtWithTax}{l s='(tax incl.)' js=1}{/addJsDefL}
81:{addJsDefL name=txtWithoutTax}{l s='(tax excl.)' js=1}{/addJsDefL}
82:{addJsDefL name=txtHasBeenSelected}{l s='has been selected' js=1}{/addJsDefL}
83:{addJsDefL name=txtNoCarrierIsSelected}{l s='No carrier has been selected' js=1}{/addJsDefL}
84:{addJsDefL name=txtNoCarrierIsNeeded}{l s='No carrier is needed for this order' js=1}{/addJsDefL}
85:{addJsDefL name=txtConditionsIsNotNeeded}{l s='You do not need to accept the Terms of Service for this order.' js=1}{/addJsDefL}
86:{addJsDefL name=txtTOSIsAccepted}{l s='The service terms have been accepted' js=1}{/addJsDefL}
87:{addJsDefL name=txtTOSIsNotAccepted}{l s='The service terms have not been accepted' js=1}{/addJsDefL}
88:{addJsDefL name=txtThereis}{l s='There is' js=1}{/addJsDefL}
89:{addJsDefL name=txtErrors}{l s='Error(s)' js=1}{/addJsDefL}
90:{addJsDefL name=txtDeliveryAddress}{l s='Delivery address' js=1}{/addJsDefL}
91:{addJsDefL name=txtInvoiceAddress}{l s='Invoice address' js=1}{/addJsDefL}
92:{addJsDefL name=txtModifyMyAddress}{l s='Modify my address' js=1}{/addJsDefL}
93:{addJsDefL name=txtInstantCheckout}{l s='Instant checkout' js=1}{/addJsDefL}
94:{addJsDefL name=txtSelectAnAddressFirst}{l s='Please start by selecting an address.' js=1}{/addJsDefL}
95:{addJsDefL name=txtFree}{l s='Free' js=1}{/addJsDefL}
97:{capture}{if $back}&mod={$back|urlencode}{/if}{/capture}
98:{capture name=addressUrl}{$link->getPageLink('address', true, NULL, 'back='|cat:$back_order_page|cat:'?step=1'|cat:$smarty.capture.default)|escape:'quotes':'UTF-8'}{/capture}
99:{addJsDef addressUrl=$smarty.capture.addressUrl}
101:{addJsDef addressMultishippingUrl=$smarty.capture.addressUrl|cat:$smarty.capture.default}
102:{capture name=addressUrlAdd}{$smarty.capture.addressUrl|cat:'&id_address='}{/capture}
103:{addJsDef addressUrlAdd=$smarty.capture.addressUrlAdd}
104:{addJsDef opc=$opc|boolval}
105:{capture}<h3 class="page-subheading">{l s='Your billing address' js=1}</h3>{/capture}
106:{addJsDefL name=titleInvoice}{$smarty.capture.default|@addcslashes:'\''}{/addJsDefL}
107:{capture}<h3 class="page-subheading">{l s='Your delivery address' js=1}</h3>{/capture}
108:{addJsDefL name=titleDelivery}{$smarty.capture.default|@addcslashes:'\''}{/addJsDefL}
109:{capture}<a class="btn btn-default" href="{$smarty.capture.addressUrlAdd}" title="{l s='Update' js=1}">{l s='Update' js=1}</a>{/capture}
110:{addJsDefL name=liUpdate}{$smarty.capture.default|@addcslashes:'\''}{/addJsDefL}

Stack trace

1. vendor/smarty/smarty/libs/sysplugins/smarty_template_resource_base.php:128 source content_5d476ec0a291a0_45265484(arguments)
2. vendor/smarty/smarty/libs/sysplugins/smarty_template_compiled.php:172 source Smarty_Template_Resource_Base->getRenderedTemplateCode(arguments)
3. vendor/smarty/smarty/libs/sysplugins/smarty_internal_template.php:206 source Smarty_Template_Compiled->render(arguments)
4. vendor/smarty/smarty/libs/sysplugins/smarty_internal_template.php:372 source Smarty_Internal_Template->render()
5. Smarty_Internal_Template->_subTemplateRender(arguments)
array(0) []
6. vendor/smarty/smarty/libs/sysplugins/smarty_template_resource_base.php:128 source content_5d476ec059c640_53267765(arguments)
7. vendor/smarty/smarty/libs/sysplugins/smarty_template_compiled.php:172 source Smarty_Template_Resource_Base->getRenderedTemplateCode(arguments)
8. vendor/smarty/smarty/libs/sysplugins/smarty_internal_template.php:206 source Smarty_Template_Compiled->render(arguments)
9. vendor/smarty/smarty/libs/sysplugins/smarty_internal_templatebase.php:216 source Smarty_Internal_Template->render(arguments)
10. vendor/smarty/smarty/libs/sysplugins/smarty_internal_templatebase.php:107 source Smarty_Internal_TemplateBase->_execute(arguments)
11. classes/SmartyCustom.php:180 source Smarty_Internal_TemplateBase->fetch(arguments)
12. classes/controller/FrontController.php:984 source SmartyCustomCore->fetch(arguments)
965:                $this->js_files = Media::cccJs($this->js_files);
966:            }
967:        }
969:        $this->context->smarty->assign(
970:            [
971:                'css_files'      => $this->css_files,
972:                'js_files'       => ($this->getLayout() && (bool) Configuration::get('PS_JS_DEFER')) ? [] : $this->js_files,
973:                'js_defer'       => (bool) Configuration::get('PS_JS_DEFER'),
974:                'errors'         => $this->errors,
975:                'display_header' => $this->display_header,
976:                'display_footer' => $this->display_footer,
977:                'img_formats'    => ['webp' => 'image/webp', 'jpg' => 'image/jpeg']
978:            ]
979:        );
981:        $layout = $this->getLayout();
982:        if ($layout) {
983:            if ($this->template) {
984:                $template = $this->context->smarty->fetch($this->template);
985:            } else {
986:                // For retrocompatibility with 1.4 controller
988:                ob_start();
989:                $this->displayContent();
990:                $template = ob_get_contents();
991:                ob_clean();
992:            }
993:            $this->context->smarty->assign('template', $template);
994:            $this->smartyOutputContent($layout);
13. classes/controller/Controller.php:226 source FrontControllerCore->display()
14. classes/controller/FrontController.php:253 source ControllerCore->run()
15. classes/Dispatcher.php:837 source FrontControllerCore->run()
16. ./index.php:33 source DispatcherCore->dispatch()
Edited by Raymond
added error message
Link to comment
Share on other sites

Recommended Posts

  • 0
8 minutes ago, datakick said:

I've just tried to install transformer theme, and for me images were created correctly:

Yes, and I can confirm this after reinstalling the theme. I remembered that I exported the Transformer theme from 1.0.8 and then imported it to 1.1.0 at first attempt. Here i can reproduce the error. If you use a formerly exported theme for import the image height is afterwards set to 0px. This seems to be a bug in the 1.0.8 AdminThemesController because the height is set to "" in the config.xml of any theme when exported. Sorry, I should have checked it first of all.

Theme export and import with the reworked controller of 1.1.0 works perfect.

  • Like 2
Link to comment
Share on other sites

  • 0
On 8/12/2019 at 7:04 PM, datakick said:

The issue is very well understood, and it was explained few times already.

The problem is that the ps16 default theme (and most of the themes that derives from it, including Transformer, Panda, Community Theme, and Niara) contains a bug. This bug seems to be present in the code from the very beginning, and it looks something like this (pseudocode)

{foreach $list as $item}
  // work with $item variable inside the loop is ok, as we are in the scope
// access $item variable should not work, because we are outside the loop scope

Basically, original theme developer accessed variable after the loop ended, even though this variable *should't* exists anymore. It was declared in foreach loop, and the loop should be its scope. Unfortunately, older version of smarty allowed this operation -- the variable pointed to the last item in the $list. I believe that this should be considered bug in smarty engine (and that's probably why they fixed it). Because of this, the theme somewhat worked, even though it didn't displayed data correctly (in our case it displayed delivery time for the last carrier only, other carriers were displayed without delivery delay information)

Thirtybees 1.1.0 upgraded smarty from version 3.1.19 to 3.1.31. This move was really necessary. The 3.1.19 version was already 5 years old, and it was reporting deprecation warnings on php 7.1/7.2. It would stopped working on future php versions. The upgrade was long due, and should have been made much sooner. The side effect of this upgrade is that this bug that our themes depends on is has been fixed.

Now, it's hard to fix this issue from the core, mainly because there is nothing wrong in the core itself. The problem is, and always was, in the themes. Thirtybees team localized, and fixed this problem in the themes they own (niara and community-default). But it's not possible (well, it's possible, but very hard) to fix it in the third party code.

This is the first *big* compatibility issue I've seen in this project. These are bound to happen sometimes, and it hurts. But rest assured that thirtybees team is trying hard to prevent this, unless absolutely necessary. 


I had the same issue with community-theme-default v.1.1.0

I need to keep the design I have on the website and I don't want to change the theme. Any solution for this?

Link to comment
Share on other sites

  • 0
On 9/9/2019 at 9:43 PM, datakick said:
This move was really necessary. The 3.1.19 version was already 5 years old, and it was reporting deprecation warnings on php 7.1/7.2. It would stopped working on future php versions.

I am really glad that I had read many reports about incompatibilities of Smarty 3.1.31 before. Therefore I only integrated those parts in the previous release 3.1.19 that were required by PHP 7. Now PrestaShop versions 1.5.6x and 1.6.1x run with my adapted 3.1.19 without any problems or even warnings under PHP 7.3 - but unfortunately not thirty bees 1.1.0! This is perhaps now to a large extent compatible with the new Smarty version. But this probably also means that some (or many?) 3rd party themes and modules have to be adapted, too, to be compatible with thirty bees. That doesn't make it any easier.

Edited by Occam
Link to comment
Share on other sites

  • 0
3 hours ago, wakabayashi said:

What do you mean with: I need to keep the design? You need to change a few lines in one file, thats all :S

I just was referring to the fact that I can't change the theme, so I need to keep the community default instead of the new one. I have aging customers who dislike big changes.

Link to comment
Share on other sites

  • 0
6 hours ago, cprats said:

I just was referring to the fact that I can't change the theme, so I need to keep the community default instead of the new one. I have aging customers who dislike big changes.

You don't need to change your theme. You just need to fix few lines in your current theme. 

  • Like 1
Link to comment
Share on other sites

  • 0
23 hours ago, Occam said:

I am really glad that I had read many reports about incompatibilities of Smarty 3.1.31 before. Therefore I only integrated those parts in the previous release 3.1.19 that were required by PHP 7. Now PrestaShop versions 1.5.6x and 1.6.1x run with my adapted 3.1.19 without any problems or even warnings under PHP 7.3 - but unfortunately not thirty bees 1.1.0! This is perhaps now to a large extent compatible with the new Smarty version. But this probably also means that some (or many?) 3rd party themes and modules have to be adapted, too, to be compatible with thirty bees. That doesn't make it any easier.

There may be a bug in the forum. You quote a message by "me" I didn't write. It appears as if it was mine, but I did not post that text.

Screenshot-2019-9-10 OPC checkout and custom payment.png

Edited by cprats
Image lacking
Link to comment
Share on other sites

  • 0

Community theme and Transformer theme seem to run properly, but not the Niara theme:

  1. Some strange cache errors or just incompatibilities with AEUC,
  2. different behavior in 5-step-checkout and OPC: In OPC mode radio buttons for carrier don't work.

Tested with PHP 7.2 and 7.3

EDIT: no. 2 seems to be caused by the free GDPR module.

Edited by Occam
Link to comment
Share on other sites

  • 0

Hi, I do have the same problem BUT I do not use the transformer theme. I try to use the order-carrier.tpl and the order-opc.tpl files from the default-bootstrap theme, but no, nothing works. Can somebody help please? thanks

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Create New...