Ошибка при добавлении в корзину

При добавлении в корзину товара, которого нет в наличии, вылезает что-то такое:

{"status":"fail","errors":"\u041a \u0441\u043e\u0436\u0430\u043b\u0435\u043d\u0438\u044e, SUMMIT V3 (SUMMIT V3 8.0\u043c2 - \u043f\u043e\u043b\u043d\u044b\u0439 \u043a\u043e\u043c\u043f\u043b\u0435\u043a\u0442) \u0442\u0442\u0432\u0430."}

Где это можно поправить?

Спасибо заранее!

3 ответа

  • 2
    Плебей 3 февраля 2016 09:58 #

    Та же фигня. В мобильной версии делаю возможность добавления товара в корзину из списка товаров (list-table). Все получается, но если хочешь заказать больше, чем есть в наличии, вместо сообщения "Извините, но в наличии только столько-то штук ..." вылазит это чудо: {"status":"fail","errors":"\u0418\u0437\u0432\u0438\u043d\u0438\u0442\u0435, \u043d\u043e \u0432 \u043d\u0430\u043b\u0438\u0447\u0438\u0438 \u0442\u043e\u043b\u044c\u043a\u043e 2 \u0435\u0434\u0438\u043d\u0438\u0446 \u0442\u043e\u0432\u0430\u0440\u0430 \u0413\u0435\u043b\u044c \u043a\u043e\u0441\u043c\u0435\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0434\u043b\u044f \u0440\u0435\u0441\u043d\u0438\u0446 \u0438 \u0431\u0440\u043e\u0432\u0435\u0439 \u0441 \u0440\u0430\u0441\u0447\u0435\u0441\u043a\u043e\u0439, \u0438 \u0432\u0441\u0435 \u043e\u043d\u0438 \u0443\u0436\u0435 \u0432 \u0432\u0430\u0448\u0435\u0439 \u043a\u043e\u0440\u0437\u0438\u043d\u0435 \u043f\u043e\u043a\u0443\u043f\u043e\u043a."}

    kosmetichka.com.ua/m/

    • +2
      Алексей Алексей Webasyst 3 февраля 2016 10:07 #

      Ошибка в дизайне. Сообщение "Извините, но в наличии только 2 единиц товара Гель косметический для ресниц и бровей с расческой, и все они уже в вашей корзине покупок." должно корректно обрабатываться скриптами и отображаться пользователю.

      • +1
        Плебей Плебей 3 февраля 2016 10:33 #

        Алексей, благодарю, что ответили.

        То, что текст в левой кодировке, понятно.

        С дизайном этой страницы я мало что делал. Насколько я понимаю, скрипт не может по-человечески выдать ошибку о количестве именно с этой страницы. Кстати, странно, что по-умолчанию не встроили кнопочку "В корзину" в списке товаров в шаблоне Mobile.

        Вот list-table.html:

        {* {include file="list-sorting.html" inline} *}

        <!-- CATALOG LIST -->
        <div class="shop-list-wrapper">
        {foreach $products as $p}
        {$available = $wa->shop->settings('ignore_stock_count') || $p.count === null || $p.count > 0}

        <!-- CATALOG ITEM -->



        <!-- ITEM IMAGE -->
        <figure class="image-block">
        <a href="{$p.frontend_url}" title="{$p.name}">
        {$wa->shop->productImgHtml($p, '200@2x', ['itemprop' => 'image', 'alt' => $p.name, 'default' => "`$wa_theme_url`img/dummy200.png"])}
        </a>
        {$badge_html = $wa->shop->badgeHtml($p.badge)}
        {if $badge_html}
        <div class="badge-wrapper">
        <div class="">{$badge_html}</div>
        </div>
        {/if}
        </figure>

        <!-- ITEM TEXT -->
        <div class="text-block">
        <h3 class="product-header">
        <a href="{$p.frontend_url}" title="{$p.name}">
        <span itemprop="name"><strong>{$p.name}</strong></span>
        {if $p.rating > 0}
        <span class="rating">{$wa->shop->ratingHtml($p.rating)}</span>
        {/if}
        </a>
        </h3>
        {if $p.type_id == '2'}{$product = $wa->shop->product($p.id)}{if $product.features.versiya_napravlenie_aromata_}<div class="small" style="color: #777;">Версия: {$product.features.versiya_napravlenie_aromata_}</div>{/if}{/if}
        {if !empty($p.summary)}<meta itemprop="description" content="{strip_tags($p.summary)}">{/if}


        <meta itemprop="price" content="{$p.price}">
        <meta itemprop="priceCurrency" content="{$wa->shop->primaryCurrency()}">

        {if $available}
        <form class="purchase addtocart" {if $p.sku_count > 1}data-url="{$p.frontend_url}{if strpos($p.frontend_url, '?')}&{else}?{/if}cart=1"{/if} method="post" action="{$wa->getUrl('/frontendCart/add')}">

        <input type="hidden" name="product_id" value="{$p.id}">

        <div class="controls-wrapper">
        <div class="price-wrapper">
        {if $p.compare_price > 0}
        <div class="old-price">{shop_currency_html($p.compare_price)}</div>
        {/if}
        <div class="price">{shopFlexdiscountPluginHelper::price($p)}</div>
        </div>
        </div>
        <div class="add-form-wrapper">
        <input type="hidden" name="quantity" value="1">
        <div class="submit-wrapper">
        <input type="submit" value="[`Add to cart`]">
        </div>
        </div>
        <div class="added2cart" style="display: none;">
        {* <div class="">{sprintf('[`%s is now in your shopping cart`]', $product.name|escape, $wa->getUrl('shop/frontend/cart'))}</div> *}
        <div class="button-block">
        <a class="general-button gray" href="{$wa->getUrl('shop/frontend/cart')}">В корзине</a>
        </div>
        </div>


        </form>

        {else}

        <div class="controls-wrapper">
        <div class="out-of-stock">
        <strong>
        {if $wa->shop->settings('ignore_stock_count')}
        [`Pre-order only`]
        {else}
        [`Out of stock`]
        {/if}
        </strong>
        </div>
        </div>
        {/if}
        </div>
        </div>


        <div class="cart" id="cart-flyer">
        {include file="product-list.cart.html" inline}

        <!-- plugin hook: 'frontend_product.cart' -->
        {* @event frontend_product.%plugin_id%.cart *}
        {foreach $frontend_product as $_}{$_.cart}{/foreach}
        </div>




        <!-- ITEM LINK -->
        {* <div class="link-block">
        <a href="{$p.frontend_url}" title="{$p.name}"></a>
        </div> *}
        </div>
        {/foreach}
        </div>

        <script type="text/javascript" src="{$wa_theme_url}product.js?v{$wa_theme_version}"></script>
        <script type="text/javascript">
        $(function () {
        new Product('#cart-form{if $wa->get('cart')}-dialog{/if}', {
        currency: {json_encode($currency_info)}
        {if count($product.skus) > 1 or $product.sku_type}
        ,services: {json_encode($sku_services)}
        {/if}
        {if $product.sku_type}
        ,features: {json_encode($sku_features_selectable)}
        {/if}
        });
        });
        </script>

        {if isset($pages_count) && $pages_count > 1}
        <!-- Lazy Load -->
        <div class="lazyloading-paging" data-times="2" data-link-text="[`Load more`]" data-loading-str="[`Loading...`]">
        {wa_pagination total=$pages_count attrs=['class' => "pag-h"]}
        </div>
        {/if}
        • +1
          Алексей Алексей Webasyst 3 февраля 2016 10:54 #

          А эта ошибка относится к JS, поэтому код который вы вложили ничем не поможет.
          На демо-витрине проверьте работу оригинальной темы и соответственно внесите изменения или откатитесь к оригинальной.

          • +1
            Плебей Плебей 3 февраля 2016 11:07 #

            Алексей, я нашел причину возникновения ошибки. Это конфликт в product.js, вот в этом месте:

            this.form.submit( function () {
            var f = $(this),
            $button = self.add2cart.find(".submit-wrapper");

            // Show refreshing icon over button
            if (typeof toggleRefreshIcon === "function") {
            toggleRefreshIcon($button, "show");
            }

            $.post(f.attr('action') + '?html=1', f.serialize(), function (response) {
            if (response.status == 'ok') {
            self.cartButtonVisibility(false);

            if (f.data('cart')) {
            $("#page-content").load(location.href, function () {
            $("#dialog").hide().find('.cart').empty();
            });
            }

            if (response.data.error) {
            alert(response.data.error);
            }

            // Update Cart Counter at Header Place
            if (typeof updateHeaderCartCount === "function") {
            updateHeaderCartCount( response );
            }

            // restore button
            if (typeof toggleRefreshIcon === "function") {
            toggleRefreshIcon($button, "hide");
            }

            } else if (response.status == 'fail') {
            alert(response.errors);
            }
            }, "json");

            return false;
            });



            Обновление показа кнопки блокирует вывод диалогового окна, насколько я понял. Если этот кусок вырезать, то на чистой установке в карточке товара та же беда получается.

          • +1
            Плебей Плебей 3 февраля 2016 11:14 #

            И в оригинальной теме забыли сделать кнопку "В корзину" в list-table! Я пытаюсь ее туда внедрить. И возникает ошибка.

  • 1

    Без указания адреса вашего сайта не обойтись. Скорее всего ошибка кроется в теме оформления.

    • +1
      Anastasia Belova Anastasia Belova 26 января 2016 15:30 #

      Сайт timeless.ru, пример товара: ACCESS V6 4.0м2 - полный комплект 69103 руб.

      • +1
        Алексей Алексей Webasyst 3 февраля 2016 10:09 #

        Ошибка в дизайне. Сообщение "К сожалению, SUMMIT V3 (SUMMIT V3 8.0м2 - полный комплект) ттва." несколько обрезано.

  • 1

    Ну и что, как исправлять то? Та же беда если заказывать с главной страницы. Со страниц каталога всё хорошо

Добавить ответ

Чтобы добавить комментарий, зарегистрируйтесь или войдите