Jump to content
thirty bees forum

haylau

Members
  • Posts

    627
  • Joined

  • Last visited

  • Days Won

    35

Posts posted by haylau

  1. We have configured @datakick's data manager module for a mass update - to change orde state of multiple orders when clicking the endpoint URL

    When we do this, it changes the status in the PS_orders table, but not the PS_order_history table. Is there a way to do both at the same time (Some of our other modules react on the status in the history table) - and of course when we change the status manually it changes in both locations

    image.thumb.png.2442a1990117268af879d6008ddfc315.png

     

    image.png.54875c78b7259cd6502d151d48a8ad3e.png

    So basically, is it possible to add the status in the PS_order_history table into this :

    image.png.bd752a5233bfa806a048359c599d0020.png

  2. We have just implemented a great little module from Vekia (mypresta.eu) which allows a pop up on when the visitor goes to the cart page if the item is short of stock (we allow back orders)

    It works brilliantly, we have 10 items, customer adds 12 to the cart. When they go to the cart page they get a pop up advising them, and letting them know how long the lead time will be

    However, and this will be outside the scope of the module, if the stock quantity is changed on the cart page then the pop up is only triggered if the page is refreshed

    On CHEX by @datakick, to change the cart quantiy the customer has to click "edit" then change quantity, then click "finished editing". This change the prices etc, but not with a full page refresh (JS?)

    Is there a way to force a page refresh (and therefore the pop up will appear) when they click the finished editing button - or would this have other unforseen consequences?

    image.png.b5cf2e9de4c29d1c3889ea116745ee3c.png

  3. I don’t know specifically about those modules, i suppose it would be best to either

    1) Reach out to the developers of the specific modules and ask it it works with ThirytyBees

    And / or 

    2) Install thrirtybees in a test environment and have a go and see what happens,

    In theory, every module / theme that works with PS 1.6 should work with ThirtyBees, but there are always exceptions

  4. Just a shout out really, for high quality, TB compatable modules with great support

    Some of us veterans may remember Vekia (Milos) from the prestashop forums. He was brilliant with help and support - but he did take a step back from those forums.

    I have recently purchased a couple of modules from him (pop-up manager and combinations table on the product page). Not only did he give excellent support but he added features to the modules for me also. Brilliant.

    If you do need any modules, his site is a good place to start.

    I did heavily suggest he joined us on this forum as he has fabulous insight to the workings of this ecommerce platform - let's hope he does

    https://mypresta.eu/

     

    • Like 8
  5. Well, that is weird. It is a very real affect. And I can't reproduce it on my installation.Though we do have some modules / code changes installed so perhaps that is having an effect.

    I am packing for my holidays now, so nothing more I can do for now. 

    I will tag @datakick to have another look (perhaps he can log into your installation also)

    I set up a new product AND new attributes and the affect is real. I don;t think it is reading in reverse but I did notice that everything works fine until you change one of the stock quantities to zero. At that moment I think the default combination gets corropted

    See here, I have set the default combinations to "10"

    image.thumb.png.748d8600f11c5335c88a60ac7a76aed7.png

    As soon as you change a quantity to zero the defaul combination on the quantity tab changes, but stays the same on the combinations tab

    image.thumb.png.107fbc460ec5ce395391afaf49f93794.png

     

    So it looks like the combinations tab thinks the default is different to the quantity tab. Then there is no way back, it just gets worse with every change. Weird

    Good luck, hope someone can help further

  6. This means that the products in question have a reference (SKU) that is longer than 32 characters - the maximum allowed.

    You probably got an error message when creating the product, but it is hard to miss. 

    Easiest fix is to change those products to a reference less than 32 characters. If not possible (like us, our references are often over 100 characters) then I can point you to some database entries and files that can be adjusted (each and every time you upgrade TB)

    • Thanks 1
  7. This occasionally happened with us when a customer using Paypal used their 'e-cheque' system. So although the payment is on paypal it is actually a cheque and can take a few days to clear (and sometimes bounces) I think it was when a customer does not have enough paypal funds for the transaction, so it falls back to the attached credit / debit card, but if that has a problem (expired) then they go all the way back to the customers bank account. PayPal used to insist on this option being available, but it is now optional. 

    If that is the problem, you can disable it in the paypal account settings (on Paypal itself not the module)

  8. Thanks for taking look. And great to have you back around again, hope you are doing well.

    That code made a difference, it stops the 500 error. But still not brining down the data. It shows all as NULL

    image.png.c5565ccb94cc40175ee0aba8e1c54bee.png

     

     

    BUT it should look like this - so guess it is a more complex issue

     

    image.png.cdad871b8cf9ceb7afa06a14d30a711b.png

  9. This is the tpl file making the call when the error occurs, and i think it is the first line causing the issue. If I remove {assign_debug_info} then there is no 500 error, but the file is empty

     

    <!-- 
    	name="{l s='~ Debug template' mod='m4pdf'}" 
    	data="*"
    -->
    {assign_debug_info}
    <head>
    {literal}
    	<style>
    		@page {
    		  sheet-size: A4;
    		  margin: 15mm;
    		  margin-header: 0; 
    		  margin-footer: 0;
    		}
    		body {
    			font-size: 11px;
    			font-family: sans; 
    			font-weight: normal; 
    			color: black;
    			background-color: white;
    		}
    		h1 {
    			font-size: 16px; 
    			text-align: center;
    			clear: both;
    			margin-bottom: 10px;
    			padding: 1px;
    		}
    		div {
    			vertical-align: top;
    			margin: 0;
    			padding: 0 0 0 4mm;
    		}
    		.header {
    			background-color: #cccccc; 
    			font-weight: bold;
    			clear: both;
    		}
    		.even {
    			background-color: #eeeeee; 
    		}
    		.odd {
    			background-color: #fafafa; 
    		}
    		.leftTemplate {
    			float: left;
    			clear: both;
    			width: 20%;
    			color: blue;
    		}
    		.leftConfig {
    			float: left;
    			clear: both;
    			width: 30%;
    			color: maroon;
    		}
    		.right {
    			float: left;
    			width: 75%;
    			color: green;
    		}
    		.right span {
    			display: inline-block;
    		}
    		.italic {
    			font-style: italic;
    		}
    		.smaller {
    			font-size: 80%;
    		}
    		.template {
    			color: brown;
    		}
    		.insert {
    			color: black;
    		}
    	</style>
    {/literal}
    </head>
    <body>
    	<h1>{l s='Smarty Debug Console' mod='m4pdf'}</h1>
    	
    	<div class="header">{l s='included templates & config files (load time in seconds):' mod='m4pdf'}</div>
    	{section name=templates loop=$_debug_tpls}
    		<div class="{if $smarty.section.templates.index is even}even{else}odd{/if}">
    			<div>{section name=indent loop=$_debug_tpls[templates].depth}&nbsp;&nbsp;&nbsp;{/section}
    				<span class="{if $_debug_tpls[templates].type eq "template"}template{elseif $_debug_tpls[templates].type eq "insert"}insert{else}green{/if}">{$_debug_tpls[templates].filename|escape:html}</span>
    				{if isset($_debug_tpls[templates].exec_time)}
    					<span class="italic smaller">({$_debug_tpls[templates].exec_time|string_format:"%.5f"}){if $smarty.section.templates.index eq 0} (total){/if}</span>
    				{/if}
    			</div>
    		</div>
    	{sectionelse}
    		<div class="even italic">{l s='no templates included' mod='m4pdf'}</div>
    	{/section}
    
    	<div class="header">{l s='assigned template variables:' mod='m4pdf'}</div>
    	{section name=vars loop=$_debug_keys}
    		<div class="{if $smarty.section.vars.index is even}even{else}odd{/if}">
    			<div class="leftTemplate">
    				{ldelim}${$_debug_keys[vars]}{rdelim}
    			</div>
    			<div class="right">
    				{$_debug_vals[vars]|@internal_debug_print_var:0:60 nofilter}
    			</div>
    		</div>
    	{sectionelse}
    		<div class="even italic">{l s='no template variables assigned' mod='m4pdf'}</div>	  
    	{/section}
    
    	<div class="header">{l s='assigned config file variables (outer template scope):' mod='m4pdf'}</div>
    	{section name=config_vars loop=$_debug_config_keys}
    		<div class="{if $smarty.section.config_vars.index is even}even{else}odd{/if}">
    			<div class="leftConfig">
    				{ldelim}#{$_debug_config_keys[config_vars]}#{rdelim}
    			</div>
    			<div class="right">
    				{$_debug_config_vals[config_vars]|@internal_debug_print_var:0:60 nofilter}
    			</div>
    		</div>
    	{sectionelse}
    		<div class="even italic">{l s='no config vars assigned' mod='m4pdf'}</div>	 
    	{/section}
    
    	{if !empty($_debug_sql_queries)}
    		<div class="header">{l s='sql queries:' mod='m4pdf'}</div>
    		{section name=queries loop=$_debug_sql_queries}
    			<div class="{if $smarty.section.queries.index is even}even{else}odd{/if}">
    				<div class="leftTemplate">
    					[{$smarty.section.queries.index}]
    				</div>
    				<div class="right">
    					{$_debug_sql_queries[queries]|@internal_debug_print_var:0:5000 nofilter}
    				</div>
    			</div>
    		{/section}
    	{/if}
    
    </body>

     

  10. Hi

    Been using M4PDF module for sometime with TB and all has been well. Although it is not officially supported and the developer has no intention of working with ThirtyBess, I am hoping someone here could help

    The latest module works fine with Prestashop 1.6, so definitley a discrepancy between TB and PS 1.6

    When trying to create a "debug" report in the module whch basically creates a PDF document containing all the variables that can be used withing the PDF system, I get the following error

    Decoded exception

    Using $this when not in object context

    in file vendor/smarty/smarty/libs/sysplugins/smarty_internal_debug.php at line 310

    Source file: vendor/smarty/smarty/libs/sysplugins/smarty_internal_debug.php

    291:                        if ($varvalue === true) {
    292:                            $tpl_vars[ $key ][ $varkey ] = $varvalue;
    293:                        }
    294:                    } else {
    295:                        if ($varkey !== 'scope' || $varvalue !== 0) {
    296:                            $tpl_vars[ $key ][ 'attributes' ][ $varkey ] = $varvalue;
    297:                        }
    298:                    }
    299:                }
    300:            }
    301:            if ($obj->_isTplObj()) {
    302:                $tpl_vars[ $key ][ 'scope' ] = $obj->source->type . ':' . $obj->source->name;
    303:            } elseif ($obj->_isDataObj()) {
    304:                $tpl_vars[ $key ][ 'scope' ] = $obj->dataObjectName;
    305:            } else {
    306:                $tpl_vars[ $key ][ 'scope' ] = 'Smarty object';
    307:            }
    308:        }
    309:        if (isset($obj->parent)) {
    310:            $parent = $this->get_debug_vars($obj->parent);
    311:            foreach ($parent->tpl_vars as $name => $pvar) {
    312:                if (isset($tpl_vars[ $name ]) && $tpl_vars[ $name ][ 'value' ] === $pvar[ 'value' ]) {
    313:                    $tpl_vars[ $name ][ 'scope' ] = $pvar[ 'scope' ];
    314:                }
    315:            }
    316:            $tpl_vars = array_merge($parent->tpl_vars, $tpl_vars);
    317:            foreach ($parent->config_vars as $name => $pvar) {
    318:                if (isset($config_vars[ $name ]) && $config_vars[ $name ][ 'value' ] === $pvar[ 'value' ]) {
    319:                    $config_vars[ $name ][ 'scope' ] = $pvar[ 'scope' ];
    320:                }
    

    Stack trace

    1. modules/m4pdf/classes/M4Object.php:1777 source Smarty_Internal_Debug::get_debug_vars(arguments)
    1758:                        curl_setopt($curl, CURLOPT_POSTFIELDS, $datas);
    1759:                    }
    1760:                }
    1761:            }
    1762:            $content = curl_exec($curl);
    1763:            curl_close($curl);
    1764:            return $content;
    1765:        }
    1766:        else
    1767:            return false;
    1768:    }
    1769:
    1770:    public static function assignDebugInfo($params, $smarty)
    1771:    {
    1772:        if (version_compare(_PS_VERSION_, '1.7.4.0', '>=')) {
    1773:            $sid = new Smarty_Internal_Debug();
    1774:            $ptr = $sid->get_debug_vars($smarty);
    1775:            $template_data = $sid->template_data;
    1776:        } else {
    1777:            $ptr = Smarty_Internal_Debug::get_debug_vars($smarty);
    1778:            $template_data = Smarty_Internal_Debug::$template_data;
    1779:        }
    1780:
    1781:        $assigned_vars = $ptr->tpl_vars;
    1782:        ksort($assigned_vars);
    1783:        $config_vars = $ptr->config_vars;
    1784:        ksort($config_vars);
    1785:
    1786:        $debug_vals = array();
    1787:        if (@is_array($assigned_vars)) {
    
    2. modules/m4pdf/classes/../tpl/m4_debug.tpl source M4Object::assignDebugInfo(arguments)
    3. vendor/smarty/smarty/libs/sysplugins/smarty_template_resource_base.php:123 source content_60ec2ba5130602_83040921(arguments)
    104:     * @throws \Exception
    105:     */
    106:    public function getRenderedTemplateCode(Smarty_Internal_Template $_template, $unifunc = null)
    107:    {
    108:        $smarty = &$_template->smarty;
    109:        $_template->isRenderingCache = $this->isCache;
    110:        $level = ob_get_level();
    111:        try {
    112:            if (!isset($unifunc)) {
    113:                $unifunc = $this->unifunc;
    114:            }
    115:            if (empty($unifunc) || !function_exists($unifunc)) {
    116:                throw new SmartyException("Invalid compiled template for '{$_template->template_resource}'");
    117:            }
    118:            if ($_template->startRenderCallbacks) {
    119:                foreach ($_template->startRenderCallbacks as $callback) {
    120:                    call_user_func($callback, $_template);
    121:                }
    122:            }
    123:            $unifunc($_template);
    124:            foreach ($_template->endRenderCallbacks as $callback) {
    125:                call_user_func($callback, $_template);
    126:            }
    127:            $_template->isRenderingCache = false;
    128:        } catch (Exception $e) {
    129:            $_template->isRenderingCache = false;
    130:            while (ob_get_level() > $level) {
    131:                ob_end_clean();
    132:            }
    133:            if (isset($smarty->security_policy)) {
    
    4. vendor/smarty/smarty/libs/sysplugins/smarty_template_compiled.php:114 source Smarty_Template_Resource_Base->getRenderedTemplateCode(arguments)
    95:            $type = $_template->source->isConfig ? 'config' : 'template';
    96:            throw new SmartyException("Unable to load {$type} '{$_template->source->type}:{$_template->source->name}'");
    97:        }
    98:        if ($_template->smarty->debugging) {
    99:            if (!isset($_template->smarty->_debug)) {
    100:                $_template->smarty->_debug = new Smarty_Internal_Debug();
    101:            }
    102:            $_template->smarty->_debug->start_render($_template);
    103:        }
    104:        if (!$this->processed) {
    105:            $this->process($_template);
    106:        }
    107:        if (isset($_template->cached)) {
    108:            $_template->cached->file_dependency =
    109:                array_merge($_template->cached->file_dependency, $this->file_dependency);
    110:        }
    111:        if ($_template->source->handler->uncompiled) {
    112:            $_template->source->handler->renderUncompiled($_template->source, $_template);
    113:        } else {
    114:            $this->getRenderedTemplateCode($_template);
    115:        }
    116:        if ($_template->caching && $this->has_nocache_code) {
    117:            $_template->cached->hashes[ $this->nocache_hash ] = true;
    118:        }
    119:        if ($_template->smarty->debugging) {
    120:            $_template->smarty->_debug->end_render($_template);
    121:        }
    122:    }
    123:
    124:    /**
    
    5. vendor/smarty/smarty/libs/sysplugins/smarty_internal_template.php:216 source Smarty_Template_Compiled->render(arguments)
    197:                ($this->_isSubTpl() ? " in '{$this->parent->template_resource}'" : '')
    198:            );
    199:        }
    200:        // disable caching for evaluated code
    201:        if ($this->source->handler->recompiled) {
    202:            $this->caching = Smarty::CACHING_OFF;
    203:        }
    204:        // read from cache or render
    205:        if ($this->caching === Smarty::CACHING_LIFETIME_CURRENT || $this->caching === Smarty::CACHING_LIFETIME_SAVED) {
    206:            if (!isset($this->cached) || $this->cached->cache_id !== $this->cache_id
    207:                || $this->cached->compile_id !== $this->compile_id
    208:            ) {
    209:                $this->loadCached(true);
    210:            }
    211:            $this->cached->render($this, $no_output_filter);
    212:        } else {
    213:            if (!isset($this->compiled) || $this->compiled->compile_id !== $this->compile_id) {
    214:                $this->loadCompiled(true);
    215:            }
    216:            $this->compiled->render($this);
    217:        }
    218:        // display or fetch
    219:        if ($display) {
    220:            if ($this->caching && $this->smarty->cache_modified_check) {
    221:                $this->smarty->ext->_cacheModify->cacheModifiedCheck(
    222:                    $this->cached,
    223:                    $this,
    224:                    isset($content) ? $content : ob_get_clean()
    225:                );
    226:            } else {
    
    6. vendor/smarty/smarty/libs/sysplugins/smarty_internal_templatebase.php:232 source Smarty_Internal_Template->render(arguments)
    213:                    // return cache status of template
    214:                    if (!isset($template->cached)) {
    215:                        $template->loadCached();
    216:                    }
    217:                    $result = $template->cached->isCached($template);
    218:                    Smarty_Internal_Template::$isCacheTplObj[ $template->_getTemplateId() ] = $template;
    219:                } else {
    220:                    return false;
    221:                }
    222:            } else {
    223:                if ($saveVars) {
    224:                    $savedTplVars = $template->tpl_vars;
    225:                    $savedConfigVars = $template->config_vars;
    226:                }
    227:                ob_start();
    228:                $template->_mergeVars();
    229:                if (!empty(Smarty::$global_tpl_vars)) {
    230:                    $template->tpl_vars = array_merge(Smarty::$global_tpl_vars, $template->tpl_vars);
    231:                }
    232:                $result = $template->render(false, $function);
    233:                $template->_cleanUp();
    234:                if ($saveVars) {
    235:                    $template->tpl_vars = $savedTplVars;
    236:                    $template->config_vars = $savedConfigVars;
    237:                } else {
    238:                    if (!$function && !isset(Smarty_Internal_Template::$tplObjCache[ $template->templateId ])) {
    239:                        $template->parent = null;
    240:                        $template->tpl_vars = $template->config_vars = array();
    241:                        Smarty_Internal_Template::$tplObjCache[ $template->templateId ] = $template;
    242:                    }
    
    7. vendor/smarty/smarty/libs/sysplugins/smarty_internal_templatebase.php:116 source Smarty_Internal_TemplateBase->_execute(arguments)
    97:     *
    98:     * @var array()
    99:     */
    100:    public $_cache = array();
    101:
    102:    /**
    103:     * fetches a rendered Smarty template
    104:     *
    105:     * @param string $template   the resource handle of the template file or template object
    106:     * @param mixed  $cache_id   cache id to be used with this template
    107:     * @param mixed  $compile_id compile id to be used with this template
    108:     * @param object $parent     next higher level of Smarty variables
    109:     *
    110:     * @throws Exception
    111:     * @throws SmartyException
    112:     * @return string rendered template output
    113:     */
    114:    public function fetch($template = null, $cache_id = null, $compile_id = null, $parent = null)
    115:    {
    116:        $result = $this->_execute($template, $cache_id, $compile_id, $parent, 0);
    117:        return $result === null ? ob_get_clean() : $result;
    118:    }
    119:
    120:    /**
    121:     * displays a Smarty template
    122:     *
    123:     * @param string $template   the resource handle of the template file or template object
    124:     * @param mixed  $cache_id   cache id to be used with this template
    125:     * @param mixed  $compile_id compile id to be used with this template
    126:     * @param object $parent     next higher level of Smarty variables
    
    8. classes/SmartyCustom.php:179 source Smarty_Internal_TemplateBase->fetch(arguments)
    9. modules/m4pdf/classes/M4Object.php:1109 source SmartyCustomCore->fetch(arguments)
    1090:                    'conf' => $conf,
    1091:                    'user' => $user,
    1092:                    'link' => new Link($conf['protocol_link'], $conf['protocol_content']),
    1093:                    $object_name => $this->data,
    1094:                ));
    1095:
    1096:                if (Configuration::get('PS_HTML_THEME_COMPRESSION')) {
    1097:                    $smarty->unregisterFilter('output', 'smartyMinifyHTML');
    1098:                }
    1099:
    1100:                // force Debug mode for editor
    1101:                if (Tools::getValue('debug_mode') || Tools::getValue('new_template_name')) {
    1102:                    if (method_exists($smarty, 'clear_compiled_tpl')) {
    1103:                        $smarty->clear_compiled_tpl($template);
    1104:                    } else {
    1105:                        $smarty->clearCompiledTemplate($template);
    1106:                    }
    1107:                }
    1108:
    1109:                $out = $smarty->fetch($tplFolder.$template);
    1110:                $this->data = null;
    1111:            }
    1112:        }
    1113:        catch (Exception $e)
    1114:        {
    1115:            $out = '<p>'.$e->getMessage().'</p>';
    1116:        }
    1117:
    1118:        if ((bool)Tools::getValue('html'))
    1119:        {
    
    10. modules/m4pdf/controllers/front/pdf.php:182 source M4Object->generatePDF(arguments)
    163:                    if (Tools::getValue('ajaxSubmitField')) {
    164:                        $_POST[Tools::getValue('ajaxSubmitField')] = $id;
    165:                    }
    166:                }
    167:
    168:                // selected orders on the order page
    169:                if (Tools::getValue('orderBox')) {
    170:                    $_POST['submitFilterorder'] = 0;
    171:                    $_POST['orderFilter_id_order'] = Tools::getValue('orderBox');
    172:                } elseif (Tools::getValue('order_orders_bulk')) {
    173:                    $_POST['submitFilterorder'] = 0;
    174:                    $_POST['orderFilter_id_order'] = Tools::getValue('order_orders_bulk');
    175:                }
    176:
    177:                $is_back_office_call = !(bool)Tools::getValue('focall') ? 1 : 0;
    178:
    179:                switch ((string)Tools::getValue('nav')) {
    180:                    case 'customer':
    181:                        $object = new M4Customer();
    182:                        $result = $object->generatePDF($filename, 'C', $template, $is_back_office_call);
    183:                        break;
    184:                    case 'order':
    185:                        $object = new M4Order();
    186:                        $result = $object->generatePDF($filename, 'C', $template, $is_back_office_call);
    187:                        break;
    188:                    case 'orderdetail':
    189:                        if (Tools::getValue('navDetail') == 'pdfOrder') { // save the selected template
    190:                            Configuration::updateValue('M4PDF_BACKOFFICE_PATCH_ORDER', $template, false, Tools::getValue('idShopGroup'), Tools::getValue('idShop'));
    191:                            Configuration::updateValue('M4PDF_BACKOFFICE_COMPACT_ORDER', Tools::getValue('compact'), false, Tools::getValue('idShopGroup'), Tools::getValue('idShop'));
    192:                        } elseif (Tools::getValue('navDetail') == 'pdfOrders') { // save the selected template
    
    11. classes/controller/Controller.php:210 source M4PdfPdfModuleFrontController->initContent()
    191:    public function run()
    192:    {
    193:        $this->init();
    194:        if ($this->checkAccess()) {
    195:            if (!$this->content_only && ($this->display_header || (isset($this->className) && $this->className))) {
    196:                $this->setMedia();
    197:            }
    198:
    199:            $this->postProcess();
    200:
    201:            if (!empty($this->redirect_after)) {
    202:                $this->redirect();
    203:            }
    204:
    205:            if (!$this->content_only && ($this->display_header || (isset($this->className) && $this->className))) {
    206:                $this->initHeader();
    207:            }
    208:
    209:            if ($this->viewAccess()) {
    210:                $this->initContent();
    211:            } else {
    212:                $this->errors[] = Tools::displayError('Access denied.');
    213:            }
    214:
    215:            if (!$this->content_only && ($this->display_footer || (isset($this->className) && $this->className))) {
    216:                $this->initFooter();
    217:            }
    218:
    219:            if ($this->ajax) {
    220:                $action = Tools::toCamelCase(Tools::getValue('action'), true);
    
    12. classes/controller/FrontController.php:255 source ControllerCore->run()
    236:     * @see     Controller::run()
    237:     * @since   1.0.0
    238:     *
    239:     * @version 1.0.0 Initial version
    240:     */
    241:    public function postProcess()
    242:    {
    243:    }
    244:
    245:    /**
    246:     * Starts the controller process
    247:     *
    248:     * Overrides Controller::run() to allow full page cache
    249:     *
    250:     * @since   1.0.7
    251:     */
    252:    public function run()
    253:    {
    254:        if (! PageCache::isEnabled()) {
    255:            return parent::run();
    256:        }
    257:
    258:        $debug = Configuration::get('TB_PAGE_CACHE_DEBUG');
    259:        $cacheEntry = PageCache::get();
    260:        if (! $cacheEntry->exists()) {
    261:            if ($debug) {
    262:                header('X-thirtybees-PageCache: MISS');
    263:            }
    264:            return parent::run();
    265:        }
    
    13. classes/Dispatcher.php:852 source FrontControllerCore->run()
    833:                    return;
    834:                }
    835:                break;
    836:
    837:            default:
    838:                throw new PrestaShopException('Bad front controller chosen');
    839:        }
    840:
    841:        // Instantiate controller
    842:        try {
    843:            // Loading controller
    844:            $controller = Controller::getController($controllerClass);
    845:
    846:            // Execute hook dispatcher
    847:            if (isset($paramsHookActionDispatcher)) {
    848:                Hook::exec('actionDispatcher', $paramsHookActionDispatcher);
    849:            }
    850:
    851:            // Running controller
    852:            $controller->run();
    853:        } catch (PrestaShopException $e) {
    854:            $e->displayMessage();
    855:        }
    856:    }
    857:
    858:    /**
    859:     * Retrieve the controller from url or request uri if routes are activated
    860:     *
    861:     * @param int|null $idShop
    862:     *
    
    14. ./index.php:33 source DispatcherCore->dispatch()
    14: * If you did not receive a copy of the license and are unable to
    15: * obtain it through the world-wide-web, please send an email
    16: * to license@thirtybees.com so we can send you a copy immediately.
    17: *
    18: * DISCLAIMER
    19: *
    20: * Do not edit or add to this file if you wish to upgrade PrestaShop to newer
    21: * versions in the future. If you wish to customize PrestaShop for your
    22: * needs please refer to https://www.thirtybees.com for more information.
    23: *
    24: *  @author    thirty bees <contact@thirtybees.com>
    25: *  @author    PrestaShop SA <contact@prestashop.com>
    26: *  @copyright 2017-2018 thirty bees
    27: *  @copyright 2007-2016 PrestaShop SA
    28: *  @license   http://opensource.org/licenses/osl-3.0.php  Open Software License (OSL 3.0)
    29: *  PrestaShop is an internationally registered trademark & property of PrestaShop SA
    30: */
    31:
    32:require(dirname(__FILE__).'/config/config.inc.php');
    33:Dispatcher::getInstance()->dispatch();
  11. There is no real solution. I find it is just a random thing. Happens occasionally with TB, Prestashop and other systems. And also different payment solutions also. Been experiencing this for over 10 years

    I found there was a small rounding issue that did help to minimise the problems though. I think the details are on the forum somewhere, but basically Paypal does it's own rounding. If TB is set to round differently and the numbers don't match perfectly then issues can arrise.

×
×
  • Create New...