• Объявления

    • dinox

      Закрытый раздел разработчиков   21.08.2017

      У нас на форуме существует закрытый раздел для разработчиков в котором мы обсуждаем нюансы работы на нашем форуме, в каталоге дополнений и другие моменты которые интересны в большинстве случаев только разработчикам. На данный момент существует лишь 2 условия для попадания:
      1. Наличие промодерированного дополнения в нашем каталоге  2. Отсуствие варезной деятельности 
      Если эти правила выполнены, пишите запрос @ArtemPitov на попадание в раздел разработчиков
igorfelix

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

Рекомендуемые сообщения

igorfelix    15

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

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
afwollis    1 092

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

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
igorfelix    15

наш любимый 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.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
igorfelix    15

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
afwollis    1 092
igorfelix    15

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
afwollis    1 092

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
igorfelix    15

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
abadrozadub    4

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
bionicle12    0

Находил я эту тему раза 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 проекта по срокам опоздал, моя недоволен.

Изменено пользователем bionicle12

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
bionicle12    0

+ кнопка назад и на 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 гадости я писал про тех кто до этого им сайт делали, и все параметры в опции запихали, а то вдруг подумаете что я на разрабов ругаюсь, опенкарт как по мне самый мимими движок, для верстки по-крайне мере)) Все удобно, все замечательно и скорость получше чем у части моих клиентов в престе.

Изменено пользователем bionicle12

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Nymphetamine    10

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Raino    2

Также недавно столкнулся у клиента с данной проблемой на 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. прошу прощения за некропост, но может пригодится кому-нибудь. Да и бага по факту устойчивая и гарантированно воспроизводится, можно и пофиксить в сборке.
 

Изменено пользователем Raino

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Slavec86    0

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

 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
AlexDW    768
31 минуту назад, Slavec86 сказал:

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

 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
AlexDW    768

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

 

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

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

 

2376a629b456409ea4d498e6241d229c.png

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Slavec86    0

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Slavec86    0

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

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

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти


  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу