Retrodisco Posted December 17, 2020 Share Posted December 17, 2020 I've had this for years but thought it was a problem with my site or host or something. But I've today made a fresh install store, from the latest version on a totally different server and the issue exists there too, on a brand new store. This is with iPhone 11, but has happened with numerous phones and on my old site at least, Android too. To replicate, go to store, click on an item, within the description add it to basket, then go directly to the cart, and try to pay, it doesnt work, just closes the side bit back down, over and over, the only way to fix is to go back to the root and try to checkout again. Link to comment Share on other sites More sharing options...
bsmither Posted December 17, 2020 Share Posted December 17, 2020 "Try to pay" What are you doing at this point? What gateways are listed? (where the URL has ?_a=checkout) "doesn't work" What are you clicking on that doesn't work? "closes the side bit back down" I don't have a side bit showing. All I have, below the text entry field for the coupon code, is: Choose Payment Method Continue Shopping ( ) Payment Test Gateway [@ Update] [Checkout >] Link to comment Share on other sites More sharing options...
Retrodisco Posted December 19, 2020 Author Share Posted December 19, 2020 It doesnt get to list a gateway as you cant even get to see the cart. Like I said enter a mobile store, visit an item page, click to add to cart, then immediate try to secure checkout and you can't, wont open the cart, just goes back to the item. He's a video I uploaded to Youtube. I add an item to the cart and then try three times to go to checkout, I add it to cart again (2 in cart now) and try again, and cannot. To make it work I need to click the site logo to go back to the front page and then try to enter the cart and checkout works. I have replicated this on two different stores and skin didnt change it either. https://youtu.be/LfrLioKA5Ts Adding item to basket from the root, or category and NOT from the item page itself doesnt create this issue. Link to comment Share on other sites More sharing options...
bsmither Posted December 19, 2020 Share Posted December 19, 2020 Scrolling to the bottom of the page when the right off-canvas menu has slide open, shows the footer has intruded onto the off-canvas area. This would suggest a missing or an extra opening or closing DIV tag somewhere. Please do this: in admin, Store Settings, Advanced tab, Debugging mode, Enable debugging and enter your IP address in the following text box (www.showmyip.com). This will make it easier to find the rogue tags. Link to comment Share on other sites More sharing options...
Retrodisco Posted December 19, 2020 Author Share Posted December 19, 2020 I've done the above, what do I need to do now? This happens on a fresh install store with zero mods too. Link to comment Share on other sites More sharing options...
bsmither Posted December 19, 2020 Share Posted December 19, 2020 I will scan through the code looking for the coding error. As you say, a different skin does not get away from this situation, so I will focus on user-supplied code. Link to comment Share on other sites More sharing options...
Retrodisco Posted December 19, 2020 Author Share Posted December 19, 2020 If its easier to look at a fresh install from scratch, have a look at www.wonky-pots.co.uk This has nothing do to it aside from change of skin, the issue occurs with foundation too. Link to comment Share on other sites More sharing options...
bsmither Posted December 19, 2020 Share Posted December 19, 2020 Interesting. One error I found (not affecting this problem) is probably in the template element.breadcrumb.php. In the source as seen in my browser, there is this: <ul class="breadcrumbs"> <li> <a href="https://www.citybugstore.co.uk"> <span class="show-for-small-only"><i class="fa fa-home"></i></span> <span class="show-for-medium-up">Home </a> </li> Note the missing </span> after the word Home. Still looking for the real problem. Link to comment Share on other sites More sharing options...
Retrodisco Posted December 19, 2020 Author Share Posted December 19, 2020 Thanks, I've added that </span> in Link to comment Share on other sites More sharing options...
bsmither Posted December 19, 2020 Share Posted December 19, 2020 Everything is lining up nicely. No tags that are wildly out of proper indentation. But probably in content.product.php, find: {include file='templates/element.product.horizontal_gallery.php'} Lots of stuff could be between the line above and the lines below. Considering, however, much of has been removed, moved, or commented out, maybe it was not done perfectly. Try removing the </div> below. </div> </form> {if $SHARE} <hr> That might be the wrong one to remove. If things get squirrely, look at the code just after the table of specifications. One of those two </div> tags may be the extra one. But I am not finding any bad user content. The </span> needs to be immediately after the word Home. Link to comment Share on other sites More sharing options...
Retrodisco Posted December 19, 2020 Author Share Posted December 19, 2020 Thanks I cant find the line {include file='templates/element.product.horizontal_gallery.php'} in that file though... Heres the entire file {* * CubeCart v6 * ======================================== * CubeCart is a registered trade mark of CubeCart Limited * Copyright CubeCart Limited 2015. All rights reserved. * UK Private Limited Company No. 5323904 * ======================================== * Web: http://www.cubecart.com * Email: [email protected] * License: GPL-3.0 https://www.gnu.org/licenses/quick-guide-gplv3.html *} {if isset($PRODUCT) && $PRODUCT} <div itemscope itemtype="http://schema.org/Product"> <form action="{$VAL_SELF}" method="post" class="add_to_basket"> <div class="row"> <div class="small-12 columns"> <h1 itemprop="name">{$PRODUCT.name}</h1> </div> </div> <div class="row"> <div class="small-5 medium-7 columns"> <a href="#" class="open-clearing" data-thumb-index="0"><img src="{$PRODUCT.medium}" alt="{$PRODUCT.name}" id="img-preview"></a> {if $GALLERY} <ul class="clearing-thumbs small-block-grid-3 medium-block-grid-5 marg-top" data-clearing> {foreach from=$GALLERY item=image} <li><a href="{$image.source}"><img src="{$image.small}" data-image-swap="{$image.medium}" data-caption="{$PRODUCT.name}{if !empty($image.description)}: {/if}{$image.description}" class="th image-gallery" alt="{$LANG.catalogue.click_enlarge}"></a></li> {/foreach} </ul> {/if} </div> <div class="small-7 medium-5 columns"> {if !empty($PRODUCT.description)} {$PRODUCT.description}{/if} {if is_array($OPTIONS)} {foreach from=$OPTIONS item=option} {if $option.type == Catalogue::OPTION_RADIO} <div class="row"> <div class="small-12 columns"> {* If we only have one required option replace with hidden field *} {if $option.required && count($option.values)===1} <label for="option_{$option.option_id}" class="return">{$option.option_name}</label> {$option.values.0.value_name}{if $option.values.0.price} {$option.values.0.symbol}{$option.values.0.price}{/if} <input type="hidden" name="productOptions[{$option.option_id}]" id="option_{$option.option_id}" value="{$option.values.0.assign_id}" data-price="{$option.values.0.decimal_price}"> {else} <div class="pseudo-label">{$option.option_name}{if $option.required} ({$LANG.common.required}){/if}</div> <span id="error_option_{$option.option_id}"> {foreach from=$option.values item=value name=options} <div><input type="radio" name="productOptions[{$option.option_id}]" id="rad_option_{$value.assign_id}" value="{$value.assign_id}" class="nomarg" data-price="{$value.decimal_price}"{if $smarty.foreach.options.first} rel="error_option_{$option.option_id}" {if $option.required}required{/if}{/if}> <label for="rad_option_{$value.assign_id}" class="return">{$value.value_name}{if $value.price} {$value.symbol}{$value.price}{/if}</label> </div> {/foreach} </span> {/if} </div> </div> {elseif $option.type == Catalogue::OPTION_SELECT} <div class="row"> <div class="small-12 columns"> {* If we only have one required option replace with hidden field *} {if $option.required && count($option.values)===1} <label for="option_{$option.option_id}" class="return">{$option.option_name}</label> {$option.values.0.value_name}{if $option.values.0.price} {$option.values.0.symbol}{$option.values.0.price}{/if} <input type="hidden" name="productOptions[{$option.option_id}]" id="option_{$option.option_id}" value="{$option.values.0.assign_id}" data-price="{$option.values.0.decimal_price}"> {else} <label for="option_{$option.option_id}" class="return">{$option.option_name}{if $option.required} ({$LANG.common.required}){/if}</label> <select name="productOptions[{$option.option_id}]" id="option_{$option.option_id}" class="nomarg" {if $option.required}required{/if}> <option value="">{$LANG.form.please_select}</option> {foreach from=$option.values item=value} <option value="{$value.assign_id}" data-price="{$value.decimal_price}">{$value.value_name}{if $value.price} {$value.symbol}{$value.price}{/if}</option> {/foreach} </select> {/if} </div> </div> {else} <div class="row"> <div class="small-12 columns"> <label for="option_{$option.option_id}" class="return">{$option.option_name}{if $option.price} {$option.symbol}{$option.price}{/if}{if $option.required} ({$LANG.common.required}){/if}</label> {if $option.type == Catalogue::OPTION_TEXTBOX} <input type="text" name="productOptions[{$option.option_id}][{$option.assign_id}]" id="option_{$option.option_id}" data-price="{$option.decimal_price}" {if $option.required}required{/if}> {elseif $option.type == Catalogue::OPTION_TEXTAREA} <textarea name="productOptions[{$option.option_id}][{$option.assign_id}]" id="option_{$option.option_id}" data-price="{$option.decimal_price}" {if $option.required}required{/if}></textarea> {/if} </div> </div> {/if} {/foreach} {/if} {if $PRODUCT.review_score && $CTRL_REVIEW} <p itemprop="aggregateRating" itemscope itemtype="http://schema.org/AggregateRating"> <meta itemprop="ratingValue" content="{$REVIEW_AVERAGE}"> <meta itemprop="reviewCount" content="{$REVIEW_COUNT}"> {for $i = 1; $i <= 5; $i++} {if $PRODUCT.review_score >= $i} <img src="{$STORE_URL}/skins/{$SKIN_FOLDER}/images/star.png" alt=""> {elseif $PRODUCT.review_score > ($i - 1) && $PRODUCT.review_score < $i} <img src="{$STORE_URL}/skins/{$SKIN_FOLDER}/images/star_half.png" alt=""> {else} <img src="{$STORE_URL}/skins/{$SKIN_FOLDER}/images/star_off.png" alt=""> {/if} {/for} <div>{$LANG_REVIEW_INFO}</div> </p> {/if} {if ($CTRL_ALLOW_PURCHASE) && (!$CATALOGUE_MODE)} <h3> {if $PRODUCT.ctrl_sale} <span class="old_price" id="fbp" data-price="{$PRODUCT.full_base_price}">{$PRODUCT.price}</span> <span class="sale_price" id="ptp" data-price="{$PRODUCT.price_to_pay}">{$PRODUCT.sale_price}</span> {else} <span id="ptp" data-price="{$PRODUCT.price_to_pay}">{$PRODUCT.price}</span> {/if} </h3> {if isset($PRODUCT.discounts)} <p>(<a href="#quantity_discounts">{$LANG.catalogue.bulk_discount}</a>)</p> {/if} <div class="row collapse"> {if $PRODUCT.available == '0'} <div class="small-12 columns"> <input type="submit" value="{$LANG.common.unavailable}" class="button small disabled expand marg-top" disabled> </div> {else} <div class="medium-2 columns show-for-medium-up"> <input type="text" name="quantity" value="1" class="quantity required text-center"> <input type="hidden" name="add" value="{$PRODUCT.product_id}"> </div> <div class="small-12 medium-10 columns"> <button type="submit" value="{$LANG.catalogue.add_to_basket}" class="button postfix">{$LANG.catalogue.add_to_basket}</button> </div> {/if} </div> {else} {if $CTRL_HIDE_PRICES} <p class="buy_button"><strong>{$LANG.catalogue.login_to_view}</strong></p> {else if $CTRL_OUT_OF_STOCK} <p class="buy_button"><strong>{$LANG.catalogue.out_of_stock}</strong></p> {/if} {/if} {if isset($PRODUCT.discounts)}<br /> <div class="content" id="quantity_discounts"> <p>{$LANG.catalogue.quantity_discounts_explained}</p> <table> <thead> <tr> <th>{$LANG.common.quantity}</th> <th>{$LANG.catalogue.price_per_unit}</th> </tr> </thead> <tbody> {foreach from=$PRODUCT.discounts item=discount} <tr> <td>{$discount.quantity}+</td> <td>{$discount.price}</td> </tr> {/foreach} </tbody> </table> </div> {/if} <hr> <div class="content{if empty($PRODUCT.description)} active{/if}" id="product_spec"> <table> <tbody> <tr> <td>{$LANG.catalogue.product_code}</td> <td>{$PRODUCT.product_code}</td> </tr> {if $PRODUCT.manufacturer} <tr> <td>{$LANG.catalogue.manufacturer}</td> <td>{$MANUFACTURER}</td> </tr> {/if} {if $PRODUCT.stock_level} <tr> <td>{$LANG.catalogue.stock_level}</td> <td>{$PRODUCT.stock_level}</td> </tr> {/if} <tr> <td>{$LANG.common.condition}</td> <td>{$PRODUCT.condition}</td> </tr> {if $PRODUCT.product_weight > 0} <tr> <td>{$LANG.common.weight}</td> <td>{$PRODUCT.product_weight}{$CONFIG.product_weight_unit}</td> </tr> {/if} </tbody> </table> </div> </div> </div> </div> </form> {if $SHARE} {foreach from=$SHARE item=html} {$html} {/foreach} {/if} <hr> {include file='templates/element.product_reviews.php'} {foreach from=$COMMENTS item=html} {$html} {/foreach} </div> {else} <p>{$LANG.catalogue.product_doesnt_exist}</p> {/if} Link to comment Share on other sites More sharing options...
bsmither Posted December 19, 2020 Share Posted December 19, 2020 I am fairly certain this will be the fix: Find: <tr> <td>{$LANG.common.weight}</td> <td>{$PRODUCT.product_weight}{$CONFIG.product_weight_unit}</td> </tr> {/if} </tbody> </table> </div> </div> Delete the last </div>. Link to comment Share on other sites More sharing options...
Retrodisco Posted December 19, 2020 Author Share Posted December 19, 2020 thats sorted it, excellent, that issue has been around for years, for me at least. Link to comment Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.