Jump to content
Sign in to follow this  
igorfelix

Товар с опциями не удаляется из корзины

Recommended Posts

Непонятная проблема, товар с двумя опциями не удаляется из корзины. ( пробывал так же с модулем "Обновление цены при выборе опции" - включал выключал, не помогло)

Другие товары без опций добавляются-удаляются нормально.

http://protein.tomsk.ru/protein/Carb_conscious.html

Share this post


Link to post
Share on other sites

наш любимый Apple Cinema 30" из дэмо товаров говорит, что все нормально (а ведь там еще и файл загружать надо).

это означает что? - верно: сами опции и их кол-во - не проблема.

вывод: либо настройки сервера (magic_quotes самая распространенная причина), либо стороннее дополнение, либо вы что-то мутите со своими опциями.

Share this post


Link to post
Share on other sites

наш любимый Apple Cinema 30" из дэмо товаров говорит, что все нормально (а ведь там еще и файл загружать надо).

это означает что? - верно: сами опции и их кол-во - не проблема.

вывод: либо настройки сервера (magic_quotes самая распространенная причина), либо стороннее дополнение, либо вы что-то мутите со своими опциями.

If access to the server configuration is unavailable, use of .htaccess is also an option. For example:

php_flag magic_quotes_gpc Off

дописал в .htaccess строчку :

php_flag magic_quotes_gpc Off

сайт вообще вырубило ошибка 500.

Share this post


Link to post
Share on other sites

вот в теме http://opencartforum...B8%D0%BD%D1%8B/ аналогично была проблема. модули все выключил, xml удалил, на денвере все нормально работает., на хостинге- нет.

Share this post


Link to post
Share on other sites

капец..... нашел в чем проблема...... оказывается это все было из-за поля : Текстовая область , которую я расположил ниже ( в ней было написано пояснение о покупке) из за этой текстовой области товар не удалялся из корзины.post-23316-0-92300500-1362687870_thumb.png

Share this post


Link to post
Share on other sites

в AppleCinema тоже есть textarea - причина не в этом поле.

с саппортом пообщайтесь по magic_quotes.

Share this post


Link to post
Share on other sites

вот я удалил поле и все работает теперь... фуф

Share this post


Link to post
Share on other sites

Такая же проблема, но мне надо что это текстовое поле осталось, а товары таки удалялись из корзины...уже месяц проблему не могу решить трабл(((

Share this post


Link to post
Share on other sites

Такая же беда, никто таки не разобрался в чем проблема?

Share this post


Link to post
Share on other sites

Находил я эту тему раза 3-4, больше в интернете нет ничего. Уж простите за некропост, но из-за этой ^%&^% корзины клиенты мне проели все что можно и нельзя, я даже освоил как дебаггер запускать, а все начиналось с банальной верстки  :ugeek:  В общем лично у меня какие были проблемы - клиенты создали большое кол-во опций для товара, неважно как и что я делал до этого, дебаггер показал что get запрос сразу теряет все знаки "+", т.е. вместо 792:egerhGHV+cScc+blalala - уходит все тоже но с пробелами, потому и не кусают(с).

 

Для себя решил костылем на своем любимом jquery (ох какой он мой спаситель :-) ):

 

в catalog/view/theme/default/template/checkout/cart.tpl   после строки

<!-- <a href="<?php echo $product['remove']; ?>">  вот эту автогенеру убрал-->
       <a id="remove_link" href="link">  <!-- тут добавил id чтобы удобнее ловить, на всякий случай, т.к. я монтажник, а не программист, href любой указывайте, скрипт дальше, все равно его заменит на нормальный урл -->
 <!-- и далее добавил собственно скрипт, что кей через encodeURIComponent прогоняет, как советуют на w3c -->
              <script>
                var uri = "<?php echo $product['key']; ?>";
                var res = encodeURIComponent(uri);
               // и на всякий случай 2 варианта, для чпу и без
               // $('a#remove_link').attr('href', '/index.php?route=checkout/cart&remove='+res);
                $('a#remove_link').attr('href', '/cart/?remove='+res);
              </script>

Пытался сперва на php найти решение, но я его не люблю, и там какие-то извращения были из серии что я чуть было не начал рвать волосы, плюнул и сделал костылем, главное что заработало, дальше кто элегантнее ссылку обработает, тот и молодец, надеюсь пригодится кому-нибудь и сэкономит время драгоценное. Т.к. я из-за этих му*?:*?ов что так все сделали, тратив время на левые разборы, 2 проекта по срокам опоздал, моя недоволен.

Edited by bionicle12

Share this post


Link to post
Share on other sites

+ кнопка назад и на 2 опенкарте до сих пор не реализована, как хотелось бы, верстал под нее тему одну, так и кидает на главную, тоже может не идеально, но в контроллер/checkout/cart.php

 

~386 строка

if (stripos($_SERVER['HTTP_REFERER'],'/cart')===false) {
$_SESSION['back']=$_SERVER['HTTP_REFERER'];
}
else {
if (empty($_SESSION['back'])) {
$_SESSION['back']='/';
}
}
$continue_link = $_SESSION['back'];
 
$this->data['continue'] = $continue_link;

будет возвращать на последнюю просмотренную страницу, а не на хоум.

 

ps гадости я писал про тех кто до этого им сайт делали, и все параметры в опции запихали, а то вдруг подумаете что я на разрабов ругаюсь, опенкарт как по мне самый мимими движок, для верстки по-крайне мере)) Все удобно, все замечательно и скорость получше чем у части моих клиентов в престе.

Edited by bionicle12

Share this post


Link to post
Share on other sites

при fcgi встречал подобное, обратитесь к своему хостеру.. подобное точно не из коробки ос

Share this post


Link to post
Share on other sites

Также недавно столкнулся у клиента с данной проблемой на oc 1.5.5.1.2 Проблема заключается в методе построения ключа товара при добавлении его в корзину в файле system\library\cart.php функция add строка 258
....$key = (int)$product_id . ':' . base64_encode(serialize($option));...

этот самый base64_encode на выходе дает строку, которая согласно спецификации может содержать символы +/=. А т.к потом этот ключ используется в гет запросах для удаления товара, то эти символы  там недопустимы отсюда и "неудаление", по сути идет попытка удалить товар с несуществующим ключом.

воспроизвести в 1.5 можно следующим образом - добавьте к товару опцию текстового ввода и вручную в базе присвойте ей номер 12960, забейте в поле текст "напол" к примеру и добавьте в корзину- данное сочетание опции и значения опции приведет к формированию ключа, содержащего + и товар не удалится из корзины стандартной кнопкой.

encodeURIComponent для исправления как предлагалось выше не совсем корректно. Как вариант можно "доработать" функции для генерации ключа: 

   public function base64_url_encode($input) {
        return strtr(base64_encode($input), '+/=', '-_,');
    }

    public function base64_url_decode($input) {
        return base64_decode(strtr($input, '-_,', '+/='));
    }

. их необходимо прописать в библиотеку корзины и заменить стандартный вызов base64_decode  / base64_encode на них и товар будет удалятся с любым набором опций.  В теории может к коллизиям привести, но вероятность куда меньше, чем генерация "кривого ключа".

 

P.S. прошу прощения за некропост, но может пригодится кому-нибудь. Да и бага по факту устойчивая и гарантированно воспроизводится, можно и пофиксить в сборке.
 

Edited by Raino

Share this post


Link to post
Share on other sites

Друзья, появилась аналогичная проблема, но решить её не смог с помощью указанных выше рекомендаций. Товары, к которым добавлены опции не удаляются из корзины. Сайт https://ольгагринюк.рф

 

Консоль ошибок не выдает. Без опций все норм. Куда можно копнуть?

Share this post


Link to post
Share on other sites
31 минуту назад, Slavec86 сказал:

Товары, к которым добавлены опции не удаляются из корзины. Сайт https://ольгагринюк.рф

 

для начала ссылку сразу на проблемный товар, чтобы не копаться по всему сайту

Share this post


Link to post
Share on other sites

1. у вас опции в корзине никак не отображаются

 

2. удаление товаров только визуальное

т.е. из списка они удаляются - но фактически по-прежнему в корзине, здесь и копайте

 

2376a629b456409ea4d498e6241d229c.png

Share this post


Link to post
Share on other sites

да, товары с опциями удаляются только визуально, без опций - полностью. 

Видимо да, т.к. опции в корзину не вытащены, они препятствуют полному удалению товара. Ок. Спасибо! Буду смотреть.

Share this post


Link to post
Share on other sites

Короче, корзина самописная, не все так просто. На коммерческой основе кто-нибудь готов исправить эту ошибку?

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
You are posting as a guest. If you have an account, please sign in.
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.

×

Important Information

On our site, cookies are used and personal data is processed to improve the user interface. To find out what and what personal data we are processing, please go to the link. If you click "I agree," it means that you understand and accept all the conditions specified in this Privacy Notice.