Перейти к публикации
Поиск в
  • Дополнительно...
Искать результаты, содержащие...
Искать результаты в...

lavka

Пользователи
  
  • Публикаций

    240
  • Зарегистрирован

  • Посещение

Все публикации пользователя lavka

  1. Это сейчас решена. А через пару дней снова вернут 5.228 диапазон и проблема вернется.
  2. На здоровье, я буду представлять здесь антикоммерческое направление бесплатных ответов) Малость доработал, чтобы в логе не сыпались ошибки, если купон не задан. После строчки $this->load->model('checkout/coupon'); Дописать условие if (isset($this->session->data['coupon'])) { ***сюда засунуть всю функцию*** } else { $pricecheck = $this->cart->getSubTotal(); } //конец кода if ($status) { if ($pricecheck < 10000) {
  3. Не нашел такой темы - все хотят удалить функционал купона в корзине, а мне надо совсем другое. Если клиент применил купон в корзине, у него должна быть возможность отменить этот купон (ну, или подарочный сертификат). Но в опенкарте такого функционала я не нашел, то есть клиенту придется чистить кукисы и заказывать снова, чтобы в корзине не было купона. Бред же. Может кто знает, как сделать?
  4. Понимаю что речь идет о правке /catalog/total/coupon.php где надо сделать условие типа если (не установлена спеццена) тогда применить купон, иначе выход, но это слишком сильное колдунство для меня, не получается ничего :(
  5. Подниму вопрос, тоже хочется такую возможность, пускай даже через правку кода, а не модуль.
  6. Я не знаю урла несуществующего товара. Их может быть сотни, я не стану следить за каждым и тем более набивать htaccess до мегабайтных размеров :) Я абсолютно точно сейчас вижу магазин на опенкарте, у которого если поменять в урле название товара на белиберду (у них сео урлы), то открывается страница категории этого товара. Я видел в контроллере product.php обработку и переадресацию на страницу ошибки при каком-то условии и предполагаю, что именно это то, что нужно. Но я не смог разобраться с этим местом и понять, как перебрасывать в категорию. Если кто может помочь, буду признателен.
  7. Короче, продолжение. Оказывается, функция $this->cart->getSubTotal() возвращает стоимость товаров в корзине без учета примененного купона. К примеру, если бесплатная доставка от 10000 рублей, и корзина стоила 10500 рублей, а после купона стала 9500, то доставка все равно остается бесплатной. Я сделал следующее решение, но выглядит, как костыль: //код для получения цены и сравнения с порогом бесплатной доставки $this->load->model('checkout/coupon'); // грузим модуль чтобы пользовать getCoupon $couponvalue = $this->model_checkout_coupon->getCoupon($this->session->data['coupon']); //получаем значение скидки купона // получаем какой-то sub_total, он нужен ниже if (!$couponvalue['product']) { $sub_total = $this->cart->getSubTotal(); } else { $sub_total = 0; foreach ($this->cart->getProducts() as $product) { if (in_array($product['product_id'], $couponvalue['product'])) { $sub_total += $product['total']; } } } //получаем размер скидки в зависимости от типа дисконта (процент или фикс) if ($couponvalue['type'] == 'F') { $discount1 = $couponvalue['discount'] * ($this->cart->getSubTotal() / $sub_total); } elseif ($couponvalue['type'] == 'P') { $discount1 = floor($this->cart->getSubTotal() / 100 * $couponvalue['discount']);} //вычитаем из корзины размер скидки $pricecheck = ($this->cart->getSubTotal() - $discount1); //конец кода if ($status) { if ($pricecheck < 10000) { Может быть, кто знает функцию в Опенкарте, которая вернет стоимость корзины с вычтенным купоном?
  8. Получаю постоянно сообщение "вам запрещено просматривать форум, обратитесь к администрации". Несколько раз писал администрации, что форум не пускает. В результате получил одну отписку - назовите свой IP адрес и после моего ответа тишина. Никто не объяснил, в чем проблема, форум для меня все так же не работает. Из этой темы немного понял, что проблема в провайдере. Вы уверены, что именно так нужно вести бизнес - огораживаться от всех посетителей провайдера из-за нежелания модерировать форум? Как вы предлагаете пользоваться форумом тем, кто находится в заблокированном диапазоне IP?
  9. Ну отличный совет, чо. Конечно же, я не искал перед тем, как запостить. Если знаете, подскажите название модуля, я такого не встречал.
  10. Может быть появилось решение? Абсолютно уверен, что на опенкарте существует такая возможность - видел у конкурентов. Нужно, чтобы URL страницы с отсутствующим товаром не включал &product_id в адресе, а просто переходил в категорию. Не могу понять, какой файл или код за это отвечает, замучился искать. Подскажите, пожалуйста!
  11. Наконец, сделал - округление купона вниз при любых значениях. Теперь 100,5 руб станут 100. В файле catalog/model/total/coupon.php на строке (47) обернуть выражение в floor(): $discount = floor($product['total'] / 100 * $coupon_info['discount']);
  12. А, я думал, вы это сразу заметите)) Да, в контролере есть строки $this->cart->clear(); unset($this->session->data['shipping_method']); unset($this->session->data['shipping_methods']); unset($this->session->data['payment_method']); unset($this->session->data['payment_methods']); unset($this->session->data['guest']); unset($this->session->data['comment']); unset($this->session->data['order_id']); unset($this->session->data['coupon']); unset($this->session->data['reward']); unset($this->session->data['voucher']); unset($this->session->data['vouchers']); Они как раз удаляют все эти значения переменных сразу после вывода первый раз на страницу.
  13. Вы закинули эту добавку для гугл аналитикс по ссылке? В гугле появляются данные? Попробуйте просто на странице вывести содержимое переменных: <?php if(isset($order_id) && $order_id) { ?> <?php echo $order_id; ?><br /> <?php echo $store_name; ?><br /> <?php echo $order_info["total"]; ?><br /> <?php echo $tax; ?><br /> <?php echo $order_info["shipping_city"]; ?><br /> <?php echo $order_info["shipping_zone"]; ?><br /> <?php echo $order_info["shipping_country"]; ?><br /> <?php foreach ($order_products as $row) { ?> <?php echo $order_id; ?><br /> <?php echo $row["model"]; ?><br /> <?php echo $row["name"]; ?><br /> <?php echo $row["price"]; ?><br /> <?php echo $row["quantity"]; ?><br /> <?php } ?> Гляньте также в model/account/order.php другие переменные, которые есть у заказа. Там, например, взял телефон, который гуглу не выводится.
  14. Сделал так: На страницу success.tpl перед <?php echo $text_message; ?> вставил <?php if(isset($order_id)) { ?> <h2><?php echo $order_info["firstname"]; ?>, спасибо за ваш заказ!</h2> <p>Мы свяжемся с вами в ближайшее время по телефону <?php echo $order_info["telephone"]; ?><br /> Номер вашего заказа: <?php echo $order_id; ?></p> <table> <thead> <tr> <td>Вы заказали:</td> </tr> </thead> <tbody> <tr> <td> <p><?php foreach ($order_products as $row){echo $row["name"].'<br />';} ?></p> </td> </tr> </tbody> <tfoot> <tr> <td> Сумма вашего заказа: <strong><?php echo round($order_info["total"]).' руб.'; ?></strong> </td> </tr> </tfoot> </table> <?php } ?>А в \catalog\controller\checkout\success.php уже были внесены изменения благодаря этому моду: https://opencartforum.com/topic/19726-otslezhivanie-prodazh-v-google-analytics-vqmod/
  15. После оформления заказа хочу показать покупателю все данные о заказе, как в письме на почту. Дело в том, что почта необязательна и многие не пишут ее, следовательно, не знают ни номера заказа, ни прочей информации. Понимаю, что речь идет о правке файла темы success.tpl, но не могу понять, где брать данные. Письмо берется вроде из catalog/model/checkout/order.php, но как передать эти данные для страницы success.tpl, я не пойму, ведь у письма нет контроллера... Помогите, пожалуйста, что-то я запутался сегодня совсем :(
  16. Редирект работает, прописывал именно как вам указал. У меня тоже ЧПУ с Seopro. Это вставлять в .htaccess в корне сайта. Где-то после основных правил редиректа опенкарта и "RewriteBase /"
  17. Подниму тему, очень актуально. Видел, на одном сайте на опенкарте так сделано. Отписал автору, но ответа не получил...
  18. Ищу решение, как запретить скидывать цену купоном с товаров, уже продающихся со скидкой. Например, в корзине Шляпа-1 100 руб. Шляпа-2 50 руб. (цена без скидки 100 руб.) Купон -10% Итого 140 руб. (90р. + 50р.) По умолчанию купон применится к обоим товарам и итог станет 135 р. Понимаю, что речь о каком-нибудь обороте, вроде if (цена == цена со скидкой) { хрен, а не скидка } else { скидка } :) но как именно и куда?
  19. Хотел поделиться своим решением относительно ватермарка. Картинка с водным знаком в папке кэша в любом случае содержит путь к оригиналу без этого водного знака, например: http://site.ru/image/cache/data-pictures-pictrure12345-300x600.jpg Таким образом, зная эту тонкость опенкарта, мы исправляем путь на http://site.ru/image/data/pictures/pictrure12345.jpg и получаем оригинал без копирайта. Защититься от этого поможет ключ разного регистра в имени файла, например pICturE12345.jpg. В кэш картинка попадет в низком регистре - data-pictures-pictrure12345-300x600.jpg, но при обращении по восстановленному пути (как в примере выше) вы получите ошибку 404, поскольку юниксовый хостинг, как правило, регистрозависим и имена pictrure12345.jpg и pICturE12345.jpg принадлежат разным файлам в одной папке. Вариантов перебора ключа в имени файла предостаточно, 2количество знаков в ключе, в приведенном примере - 128. Перебирайте на здоровье. Есть минусы, которые я не учел?
  20. С этим модулем проблемы: 1. Нигде не фиксируется, какой постамат выбрал пользователь - ни в письме о заказе, ни в админке. Приходится перезванивать и уточнять. 2. После обновления страницы корзины пропадает выбранный постамат и ссылка на выбор исчезает. 3. В поле "Регион" пишется "Выберите постамат" вместо обычной надписи про выбор региона. Как это можно исправить?
  21. Оказалось, модуль корзины в шапке берет информацию о стоимости доставки не из переменной $method_data, которую модуль доставки возвращает, а из $quote_data Итоговая функция в файле конкретного способа доставки будет примерно такая (здесь пример для фиксированной стоимости доставки): if ($status) { if ($this->cart->getSubTotal() < 3000) { $quote_data = array(); $quote_data['flat'] = array( 'code' => 'flat.flat', 'title' => $this->language->get('text_description'), 'cost' => $this->config->get('flat_cost'), 'tax_class_id' => $this->config->get('flat_tax_class_id'), 'text' => $this->currency->format($this->tax->calculate($this->config->get('flat_cost'), $this->config->get('flat_tax_class_id'), $this->config->get('config_tax'))) ); $method_data = array( 'code' => 'flat', 'title' => $this->language->get('text_title'), 'quote' => $quote_data, 'sort_order' => $this->config->get('flat_sort_order'), 'error' => false ); } else { $quote_data = array(); $quote_data['flat'] = array( 'code' => 'flat.flat', 'title' => $this->language->get('text_description'), 'cost' => '0', //Это как раз сумма доставки 'tax_class_id' => $this->config->get('flat_tax_class_id'), 'text' => $this->currency->format('0') //Это значение для суммы в названии способа доставки ); $method_data = array( 'code' => 'flat', 'title' => $this->language->get('text_title'), 'quote' => $quote_data, 'sort_order' => $this->config->get('flat_sort_order'), 'error' => false ); } }
  22. Благодарю, именно так и работает, как вы написали. Но остается проблема - в шапке, в корзине все равно плюсуется стоимость доставки. Не могу найти, где же она берется, если я добавил предложенное вами условие в модуль конкретной доставки и в итоговой корзине стоимость доставки = 0

×
×
  • Создать...

Важная информация

На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности.