Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

Missing argument 4 for Cart::add() | Undefined variable: profile_id


devel

Recommended Posts

При попытке добавить в существующи заказ еще товары (менеджером, в админке), вылетает ошибка SyntaxError: Unexpected tocken. В логах вот что:

2013-11-04 14:10:43 - PHP Warning: Missing argument 4 for Cart::add(), called in www\catalog\controller\checkout\manual.php on line 74 and defined in www\system\library\cart.php on line 318
2013-11-04 14:10:43 - PHP Notice: Undefined variable: profile_id in www\system\library\cart.php on line 327

Решение найдено на форуме разработчика, как "предположительно  работающее". Я проверил - работает. Решение: замена в /system/library/cart.php



public function add($product_id, $qty = 1, $option, $profile_id) {

на:



public function add($product_id, $qty = 1, $option, $profile_id = '') { 

Opencart 1.5.6, Default Theme.

  • +1 1
Надіслати
Поділитися на інших сайтах


Нашел Журнал ошибок, сейчас там:

2013-11-07 1:50:52 - PHP Warning:  json_encode() [<a href='function.json-encode'>function.json-encode</a>]: Invalid UTF-8 sequence in argument in /***/catalog/controller/checkout/manual.php on line 581

 

Строка 581 (manual.php):

$this->response->setOutput(json_encode($json));

 

При повторном действии (добавление товара в заказ) возникает эта же ошибка

Змінено користувачем RHCk
Надіслати
Поділитися на інших сайтах


Вы в каком редакторе работаете? Похоже, у вас с кодировкой где-то косяк, т.к. в 581 строке:

$this->response->setOutput(json_encode($json));	

Если правили www\catalog\controller\checkout\manual.php, то попробуйте сохранить его в UTF-8 без BOM (например в Notepad++)

Надіслати
Поділитися на інших сайтах


Пользуюсь Notepad++, сохраняю в этой кодировке, manual.php не трогал. Менял только то, что с НДС связано, может если только там где-то пропустил смену кодировки. Думаете есть вероятность, что из-за этого такой результат?

Надіслати
Поділитися на інших сайтах


Думаете есть вероятность, что из-за этого такой результат?

Все может быть. Самая простейшая и малоочевидная опечатка может отнять уйму времени...

 

 

На чистом opencart 1.5.6 ошибка другая:

SyntaxError: JSON.parse: unexpected characterOK<b>Warning</b>: Missing argument 4 for Cart::add(), called in V:\home\clear-oc.test\www\catalog\controller\checkout\manual.php on line 74 and defined in <b>V:\home\clear-oc.test\www\system\library\cart.php</b> on line <b>318</b><b>Notice</b>: Undefined variable: profile_id in <b>V:\home\clear-oc.test\www\system\library\cart.php</b> on line <b>327</b><b>Warning</b>: Missing argument 4 for Cart::add(), called in V:\home\clear-oc.test\www\catalog\controller\checkout\manual.php on line 104 and defined in <b>V:\home\clear-oc.test\www\system\library\cart.php</b> on line <b>318</b><b>Notice</b>: Undefined variable: profile_id in <b>V:\home\clear-oc.test\www\system\library\cart.php</b> on line <b>327</b>{"order_product":[{"product_id":"41","name":"iMac","model":"Product 14","option":[],"download":[],"quantity":1,"stock":true,"price":100,"total":100,"tax":0,"reward":0},{"product_id":"29","name":"Palm Treo Pro","model":"Product 2","option":[],"download":[],"quantity":1,"stock":true,"price":279.99,"total":279.99,"tax":0,"reward":0}],"order_voucher":[],"shipping_method":{"flat":{"title":"Flat Rate","quote":{"flat":{"code":"flat.flat","title":"Flat Shipping Rate","cost":"5.00","tax_class_id":"9","text":"$5.00"}},"sort_order":"1","error":false}},"order_total":[{"code":"sub_total","title":"Sub-Total","text":"$379.99","value":379.99,"sort_order":"1"},{"code":"shipping","title":"Flat Shipping Rate","text":"$5.00","value":"5.00","sort_order":"3"},{"code":"total","title":"Total","text":"$384.99","value":384.99,"sort_order":"9"}],"payment_methods":[],"payment_method":{"cod":{"code":"cod","title":"Cash On Delivery","sort_order":"5"}},"success":"Order totals has been successfully re-calculated!"}
Надіслати
Поділитися на інших сайтах


То что касается НДС переделаю заново, с контролем смены кодировки.

 

Ошибка в моем случае, это ошибка после замены, описанной в первом сообщении

 

07.11.2013 13:40

Кодировки проверил, архив в теме перезалил. Результат с редактированием заказа тот же, точнее текст ошибок меняется, но ошибка присутствует.

 

На форуме разработчиков, немного ниже предложенного решения, предлагается воздержаться от попыток построить рабочий магазин на 1.5.6

 

Текст ошибок до замены:

PHP Warning:  Missing argument 4 for Cart::add(), called in /***/catalog/controller/checkout/manual.php on line 74 and defined in /***/system/library/cart.php on line 318
PHP Notice:  Undefined variable: profile_id in /***/system/library/cart.php on line 327
PHP Warning:  Missing argument 4 for Cart::add(), called in /***/catalog/controller/checkout/manual.php on line 104 and defined in /***/system/library/cart.php on line 318
PHP Notice:  Undefined variable: profile_id in /***/system/library/cart.php on line 327
PHP Warning:  json_encode() [<a href='function.json-encode'>function.json-encode</a>]: Invalid UTF-8 sequence in argument in /***/catalog/controller/checkout/manual.php on line 581
 
Текст ошибки после замены:
PHP Warning:  json_encode() [<a href='function.json-encode'>function.json-encode</a>]: Invalid UTF-8 sequence in argument in /***/catalog/controller/checkout/manual.php on line 581
 
Прогресс заметен. Может это как-то связано с локализацией?
Змінено користувачем RHCk
Надіслати
Поділитися на інших сайтах


Ошибка в моем случае, это ошибка после замены, описанной в первом сообщении

Попробуйте на денвер в другую папку  поставить чистый opencart 1.5.6 и выполнить действия из первого сообщения.

Выложите логи до замены и после (на чистом oc).

 

У вас в последнем сообщении видно из лога, что решение из первого поста работает, т.к в логе три варнинга до замены, и один - после замены. Вот этот "один" вызван чем то другим..  

Надіслати
Поділитися на інших сайтах


Установил чистый Opencart v1.5.6, без локализации, оформил заказ, при попытке внести в заказ изменения в Журнале ошибок следующее:

 

PHP Warning:  Missing argument 4 for Cart::add(), called in /***/catalog/controller/checkout/manual.php on line 74 and defined in /home/c/cl89890/opencart.bvp/public_html/system/library/cart.php on line 318
PHP Notice:  Undefined variable: profile_id in /***/system/library/cart.php on line 327
PHP Warning:  Missing argument 4 for Cart::add(), called in /***/catalog/controller/checkout/manual.php on line 104 and defined in /home/c/cl89890/opencart.bvp/public_html/system/library/cart.php on line 318
PHP Notice:  Undefined variable: profile_id in /***/system/library/cart.php on line 327
 
После замены из первого сообщения ошибка не появляется, товар корректно добавляется в заказ.
 
07.11.2013 14:25
Откатываю изменения назад (меняю /system/library/cart.php на тот, который в дистрибутиве). Устанавливаю локализацию
 
Пробую изменить заказ, получаю:
 
PHP Warning:  Missing argument 4 for Cart::add(), called in /***/catalog/controller/checkout/manual.php on line 74 and defined in /***/system/library/cart.php on line 318
PHP Notice:  Undefined variable: profile_id in /***/system/library/cart.php on line 327
PHP Warning:  Missing argument 4 for Cart::add(), called in /***/catalog/controller/checkout/manual.php on line 74 and defined in /***/system/library/cart.php on line 318
PHP Notice:  Undefined variable: profile_id in /***/system/library/cart.php on line 327
PHP Warning:  Missing argument 4 for Cart::add(), called in /***/catalog/controller/checkout/manual.php on line 74 and defined in /***/system/library/cart.php on line 318
PHP Notice:  Undefined variable: profile_id in /***/system/library/cart.php on line 327
PHP Warning:  Missing argument 4 for Cart::add(), called in /***/catalog/controller/checkout/manual.php on line 74 and defined in /***/system/library/cart.php on line 318
PHP Notice:  Undefined variable: profile_id in /***/system/library/cart.php on line 327
PHP Warning:  Missing argument 4 for Cart::add(), called in ***/catalog/controller/checkout/manual.php on line 104 and defined in /***/system/library/cart.php on line 318
PHP Notice:  Undefined variable: profile_id in /***/system/library/cart.php on line 327
 
07.11.2013 14:35
Делаю изменения из первого сообщения, ошибки не появляются.
 
07.11.2013 14:40
Добавляю валюту рубль, устанавливаю её по умолчанию. Делаю заказ (два заказа - имя покупателя и адрес в одном латиница, во втором кириллица), пытаюсь его изменить - получаю:
 
PHP Warning:  json_encode() [<a href='function.json-encode'>function.json-encode</a>]: Invalid UTF-8 sequence in argument in /***/catalog/controller/checkout/manual.php on line 581

post-674130-0-00303600-1383821105_thumb.jpg

Надіслати
Поділитися на інших сайтах


Откатываю изменения назад (меняю /system/library/cart.php на тот, который в дистрибутиве).

А зачем выего меняли и на что? 

Invalid UTF-8 sequence in argument

Старый баг, судя по всему. Вот аж когда обсуждалось.

Навскидку сказать не могу ничего, opencart знаю мало. Очевидно, дело в кодировках. В идеале - везде utf-8 без BOM

Надіслати
Поділитися на інших сайтах


 

 

А зачем выего меняли и на что? 

Для чистоты эксперимента. Менял на тот, который без изменений из дистрибутива Opencart.

 

Нашел вот ещё - тыц и тыц

Надіслати
Поділитися на інших сайтах


RHCk, чем закончилась история с 





PHP Warning:  json_encode() [<a href='function.json-encode'>function.json-encode</a>]: Invalid UTF-8 sequence in argument in /***/catalog/controller/checkout/manual.php on line 581

??

Поиском нашел еще вариант - длина имени в кириллице. Попробуйте товар с 5-10 символами с латинскими буквами и товар с 5-10 сиволами в кириллице. К сожалению, я принять участия в таком эксперименте не могу, т.к. данная ошибка у меня не возникает. Возможно, пока. Тем не менее, если вы решили проблему - поделитесь рецептом. Вам будут благодарны те, кто идет за вами по вашим "граблям" )

Надіслати
Поділитися на інших сайтах


  • 2 weeks later...

При попытке добавить в существующи заказ еще товары (менеджером, в админке), вылетает ошибка SyntaxError: Unexpected tocken. В логах вот что:

2013-11-04 14:10:43 - PHP Warning: Missing argument 4 for Cart::add(), called in www\catalog\controller\checkout\manual.php on line 74 and defined in www\system\library\cart.php on line 318

2013-11-04 14:10:43 - PHP Notice: Undefined variable: profile_id in www\system\library\cart.php on line 327

Решение найдено на форуме разработчика, как "предположительно  работающее". Я проверил - работает. Решение: замена в /system/library/cart.php



public function add($product_id, $qty = 1, $option, $profile_id) {

на:



public function add($product_id, $qty = 1, $option, $profile_id = '') { 

Opencart 1.5.6, Default Theme.

 У меня была ошибка с заказом - не добавлялся товар в корзину - пока на модуль в хедере не нажмёшь, и не было всплывающего окна при заказе. Сделал вашу замену - зарабтало)

Надіслати
Поділитися на інших сайтах


  • 2 months later...

RHCk, чем закончилась история с 





PHP Warning:  json_encode() [<a href='function.json-encode'>function.json-encode</a>]: Invalid UTF-8 sequence in argument in /***/catalog/controller/checkout/manual.php on line 581

??

Поиском нашел еще вариант - длина имени в кириллице. Попробуйте товар с 5-10 символами с латинскими буквами и товар с 5-10 сиволами в кириллице. К сожалению, я принять участия в таком эксперименте не могу, т.к. данная ошибка у меня не возникает. Возможно, пока. Тем не менее, если вы решили проблему - поделитесь рецептом. Вам будут благодарны те, кто идет за вами по вашим "граблям" )

Исходный файл русификации /russian/checout/manual.php в кодировке Windows-1251. Необходимо сохранить его в кодировке UTF-8. После этого всё работает. Прикладываю переконвертированную папку russian и отдельно данный файл.

russian.zip

manual.php

Надіслати
Поділитися на інших сайтах


  • 3 weeks later...

Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз
  • Зараз на сторінці   0 користувачів

    • Ні користувачів, які переглядиють цю сторінку
×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.