Jump to content
Search In
  • More options...
Find results that contain...
Find results in...

vadshesh

Newbie
  
  • Posts

    12
  • Joined

  • Last visited

Recent Profile Visitors

823 profile views

vadshesh's Achievements

Apprentice

Apprentice (3/14)

  • First Post
  • Collaborator
  • Conversation Starter
  • Week One Done
  • One Month Later

Recent Badges

0

Reputation

  1. Уважаемые коллеги, задача состоит в следующем - нужно в скрипте приема уведомлений Яндекс-платежей вызвать public function confirm($order_id, $order_status_id, $comment = '', $notify = false) класса class ModelCheckoutOrder extends Model (это catalog/model/checkout/order.php). Пишу так: require_once('system/startup.php'); require_once('catalog/model/checkout/order.php'); $order = new ModelCheckoutOrder(); //$order->getOrder($r['order_id']); //$order->confirm($r['order_id'], 17); //ModelCheckoutOrder::confirm($r['order_id'], 17); $r['order_id'] - ИД заказа (оно выбирается из БД), 17 - ИД статуса оплаченного заказа.Если откомментить любую из строк, выдается ошибка 500.Подскажите, пожалуйста, как это правильно сделать?Спасибо!
  2. Скажите, а в скрипте system/library/cart.php (в вашей версии) опции записываются так: public function add($product_id, $qty = 1, $option, $profile_id = '') { $key = (int) $product_id . ':'; if ($option) { $key .= base64_encode(serialize($option)) . ':'; } else { $key .= ':'; } if ($profile_id) { $key .= (int) $profile_id; } if ((int) $qty && ((int) $qty > 0)) { if (!isset($this->session->data['cart'][$key])) { $this->session->data['cart'][$key] = (int) $qty; } else { $this->session->data['cart'][$key] += (int) $qty; } } $this->data = array(); } ?
  3. Уважаемые коллеги, помогите, пожалуйста, разобраться с такой проблемой. Есть страница товара http://рыболовные-мушки.рф/Рыболовная-мушка-"Палмер- Синель"-p3.html. Там есть селекты цвета и размера, которые не добавляются вместе с товаром в корзину. В хтмл они описаны так: <select name="option[3]" data-id="3" onchange="changeChoice()"class="serequired"> <option value=""> --- Выберите --- </option> <option value="27">10 Черный / Гризли</option> .......................... </select> и <select name="option[4]" data-id="4" onchange="changeChoice()"class="serequired"> <option value=""> --- Выберите --- </option> <option value="30">10</option> <option value="32">12</option> <option value="31">14</option> </select> Кнопка "Купить": <input type="button" value="Купить" id="button-cart" class="button"onclick="addToCart('3');"> В common.js function addToCart(product_id, quantity) { quantity = typeof(quantity) != 'undefined' ? quantity : 1; console.log('click cart'); $('.vserror').remove(); p=0; $(".serequired").each(function() { if($(this).val()=='') { b=$(this).prev().prev().html(); $(this).after('<div class="vserror">Поле '+b+'должно быть заполнено!</div>'); p=1; } }) if(p!=0)return false; $.ajax({ url: 'index.php?route=checkout/cart/add', type: 'post', data: 'product_id=' + product_id + '&quantity=' + quantity, dataType: 'json', success: function(json) { $('.success,.succesv, .warning, .attention, .information, .error').remove(); if(json.error != null && json.error.option != null) { for(var ii in json.error.option) { c="*[name='option["+ii+"]']"; b=".option[id='option-"+ii+"']"; if($(c).val()=='')$(b).after('<div class="vserror">'+json.error.option[ii]+'</div>'); } } else { if (json['redirect']) { location = json['redirect']; } if (json['success']) { $('#notification').html('<div class="succesv">' + json['success'] + '<img src="catalog/view/theme/default/image/close.png" alt="" class="close" /></div>'); //$('.success').show('slow'); $('#cart-total').html(json['total']); $("#cartcons").html(json.totaltop); // $('html, body').animate({ scrollTop: 0 }, 'slow'); } } } }); } А где же здесь передача этих опций? Причем в чистом двиге та же самая ерунда... Но идем в контроллер checkout/cart.php function add(). Тут написано: if (isset($this->request->post['option'])) { $option = array_filter($this->request->post['option']); } else { $option = array(); } т.е. опций должны "поститься" аяксом. Но в каком виде? Ниже по коду написано: $this->cart->add($this->request->post['product_id'], $quantity, $option, $profile_id); А сама эта публичная функция описана так: public function add($product_id, $qty = 1, $option, $profile_id ='') { $key = (int) $product_id . ':'; if ($option) { $key .= base64_encode(serialize($option)) . ':'; } else { $key .= ':'; } if ($profile_id) { $key .= (int) $profile_id; } if ((int) $qty && ((int) $qty > 0)) { if (!isset($this->session->data['cart'][$key])) { $this->session->data['cart'][$key] = (int) $qty; } else { $this->session->data['cart'][$key] += (int) $qty; } } $this->data = array(); } Так вот вопрос: в каком виде я должен "аяксить" опции в common.js в addToCart, чтобы они верно располагались в корзине, а потом и в заказе? Большое спасибо!
  4. А я бы взялся за это дело. Позволю себе не согласиться с OC Team - в том-то и штука, что за $200+ можно и нужно сделать качественный продукт. Вопрос в ясности задачи, нужно ли торопиться в ее выполнении, и в смекалке программиста )))))))) Пишите в личку - будем обсуждать.
  5. Можем обсудить список работ по магазину, кроме тех предупреждений, что выдаются сейчас. Пишите в личку.
  6. Насчет шаблона не скажу, я не верстальщик. Хотя если шаблон готов, то натянуть можно. А вот добавление посетителями товаров в магазин и сортировку сделать можно - надо только обсудить детали.
  7. А что-то типа <ifmodule mod_headers.c> # 30 days - <filesmatch "\.(ico|pdf|flv|jpg|jpeg|png|gif|swf)$"> Header set Cache-Control "max-age=2592000, public" </filesmatch> # 30 days <filesmatch "\.(css|js)$"> Header set Cache-Control "max-age=2592000, public" </filesmatch> # 2 days - in seconds <filesmatch "\.(xml|txt)$"> Header set Cache-Control "max-age=172800, public, must-revalidate" </filesmatch> </ifmodule> в .htaccess не помогает?
  8. Готов к сотрудничеству. Опыт в программировании - 17 лет, opencart - более скромный - 1 год. Из разработок https://opencartforum.com/files/file/2259-cookie-для-зарегестрированных-пользователей/
  9. Если задачу еще не решили, могу попытаться ее решить
  10. Всем спасибо! Ошибка была связана с путаницей входа на фтп.
  11. Сразу скажу, что я новичок в ОпенКарте да и вообще в MVCL А вопрос такой. Я настроил дополнение webmoney_wmr в админке и начал тестировать его с боевой стороны. Потом внес свои дополнения в код контроллера для изучения некоторых его параметров. При работе с этим моим блоком я получил ряд предупреждений. Выяснив нужные параметры, я удалил свои правки в контроллере, а предупреждения остались. Это как? Я даже удалял контроллер webmoney_wmr, а оно все-равно выдает предупреждения. Чистил кэш броузера и одноименную папку на фтп - ничего не помогает. Для конкретности - зайдите на http://2.zulu01.z8.ru/ забросьте что либо в корзину и начните оформлять заказ. В шаге 1 укажите оформление без регистрации. В ш.2 введите любые данные. В ш. 5 укажите wmr. Тогда в секции ш.6 будет Notice: Undefined variable: out in /home/zulu01/www/site2/public_html/catalog/controller/payment/webmoney_wmr.php on line 28Notice: Trying to get property of non-object in /home/zulu01/www/site2/public_html/catalog/controller/payment/webmoney_wmr.php on line 31Warning: reset() expects parameter 1 to be array, null given in /home/zulu01/www/site2/public_html/catalog/controller/payment/webmoney_wmr.php on line 32Warning: key() expects parameter 1 to be array, null given in /home/zulu01/www/site2/public_html/catalog/controller/payment/webmoney_wmr.php on line 32 Хотя в строчках 28, 31 и 32 этого кода нет. Пичем в .htaccess я явно запретил кэширование. Объясните мне, пожалуйста, как с этим справится?
Guest
×
  • Create New...

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.