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

nogocuHoBuk

Користувачі
  • Публікації

    354
  • З нами

  • Відвідування

Усі публікації користувача nogocuHoBuk

  1. где пишет? Если галки проставлены, то, подозреваю, что ошибка появляется после установки дополнений.
  2. Ну вариантов, же, действительно не так много. Проверить файлы конфигураций /config.php, /admin/config.php и /system/library/config.php И если с ними всё в порядке - перекачать папку system. Ведь ошибка явно говорит о том, что проблема в классе Config. Возможно некоторые файлы не загрузились (сталкивался пару раз при заливке на хост). Ошибка была другая, но тот факт, что некоторые файлы либо пустые либо их не существовало - имел место быть...
  3. Верно. Тут мой завтык... Но ещё раз обращу внимание на саму строку с ошибкой: Эта строка некорректная Должно быть == Не думаю, что в Simple на проде такой косяк. Либо сторонний модуль либо "правленый" Simple.
  4. Первый пункт очень расплывчатый и малоинформативный. У вас движок-динозавр, которому уже как минимум 7 лет. За 7 лет на Ваш сайт могли быть внесены сотни изменений в функционал. И если изменения в модификаторах можно отследить, то изменения, внесенные в код напрямую отследить нереально (разве что увидеть случайно). Потому фраза "с сохранением текущего функционала" не несет никакой полезной информации. Создайте полноценное ТЗ, в котором распишите ВЕСЬ функционал, который Вам необходим.
  5. В \catalog\model\checkout\order.php в функции addOrder после $order_id = $this->db->getLastId(); добавляем: $new_auto_incr = ($order_id+1) + rand(3,10); $this->db->query("ALTER TABLE `" . DB_PREFIX . "order` AUTO_INCREMENT = ".$new_auto_incr); Примерно так: После внесения правок ОБЯЗАТЕЛЬНО обновить модификаторы.
  6. т.е. при изменении номера на +3 за неделю это, конечно придаст магазину престижа
  7. Так то можно при желании, запустить итератор аутоинкремета в таблице oc_order в функцию добавления заказа с циклом, ограниченным рандомайзером.... Только зачем?
  8. По факту Вам дали уже максимальную информацию Там действительно ничего сложного создать модуль конкретно для Вас с возможностью указания размера миниатюр в самой категории. А при отсутствии указания, например, брать дефолтные настройки. Это действительно не сложный модуль, ноооо НЕ БЕСПЛАТНЫЙ Прям орнул. В точку. Не смог пройти мимо - плюсанул
  9. Информация о том, получил поставщик инфу или нет, как оказалось, содержится в самом ответе т.е. ResultStatus - статус получения заказа (таблицу ответов смотрите в документации API поставщика) Точно знаем, что ResultStatus = 2 - Не корректный ApiKey Т.е. Вам нужно в заказе создать флаг отправки, который в случае успешной отправки заказа поставщику (думаю что ResultStatus = 1, но это предположения) перевести этот флаг в "отправлено" И можно смело вешать задачу на крон с отбором заказов по фильтру - (оплачен, не отправлен). Раз в 10-20-30 минут. В зависимости от количества заказов. Думаю, это самая оптимальная реализация. Хотя их, действительно, много. Я вижу как минимум 3.
  10. Ну, так то это нотис, а не ошибка Предупреждение. И гласит оно примерно следующее: В массиве order_data отсутствует указанный вами ключ (речь о shipping_method) Тут ещё такой момент - это Вы неправильно скопировали, или в коде действительно такое сравнение? $data['quick'] = ($order_data['shipping_method'] = '') ? true : false; Ибо по логике там должно быть $data['quick'] = ($order_data['shipping_method'] == '') ? true : false; Т.е. если данных заказа указан метод доставки - это обычный заказ, если не указа - быстрый заказ. А сам нотис можно убрать в коде оформления быстрого заказа прописав дефолтный shipping_method. Либо слегка изменив код на такой: $data['quick'] = false; if (isset($order_data['shipping_method'])){ if ($order_data['shipping_method'] == '') $data['quick'] = true; } else { $data['quick'] = true; } Т.е. проверяем существование $order_data['shipping_method'] и если существует - дальнейшая проверка. И тогда исключение "PHP Notice: Undefined variable" не выскочит...
  11. Этот момент так-же требует разъяснения. Всё ж зависит от способов оплаты. Если у Вас подключен платежный модуль, который общается с платежной системой (например тинькофф) то схема следующая: 1. Покупатель оформляет заказ. 2. В БД создается заказ со статусом "ожидание", а покупателя перекидывает на страницу оплаты. 3. Если оплата произведена, то платиежная система отправит на Ваш сайт коллбек с информацией о получении оплаты 4. Сайт, по колбеку, находит заказ и переводит его в статус "В обработке". В этом случае функцию формирования массива для отправки можно встроить в АПИ для приема колбека от платежной системы (образно) Но если у Вас прием оплаты, например, на счет/карту, то перевод статуса заказа происходит не автоматически, а оператором, который отслеживает поступившие средства, и по данным платежа переводит тот или иной заказ в статус "В обработке" В этом случае формирования массива для отправки нужно встраивать в админку в order_edit и отслуживать новый статус.... Это уже не совсем автоматизация. В таком случае можно просто кнопку добавить в форму заказа типа такой: Просто нужно делать так, чтобы мухи были отдельно, а котлеты отдельно. Либо автоматизация, и тогда искать общее событие, к которому можно "присосаться", либо забить на автоматизацию, и прикрутить скрипт на кнопку. Полная инфа, как и документация АПИ, как и варианты оплат и прочеепрочее есть только у Вас.
  12. Что-то советовать и обсуждать невозможно без ТЗ (как уже выше писали) Сумма, по факту, не имеет значения, так как обе стороны согласились (хоть 100 вечнозеленых, хоть 100000). Если ТЗ выполнено - никаких претензий возникнуть не должно. Если же какой-то из пунктов не выполнен - можно требовать либо возмещения, либо исправления. И да, без "второй стороны конфликта" сложно что-то советовать и предполагать. Просто выглядит это примерно так: Алек Болдуин на съемках фильма застрелил оператора и ранил режиссера. И мы все тут обсуждаем какой Алек нехороший. Кто-то вспоминает, что это всё из-за того, что в США разрешено ношение оружия. Некто напомнил, что Болдуин, так-то, ещё и побухивает время от времени. А в итоге оказывается, что Алек стрелял холостыми строго по правилам режиссера, в направлении, указанном режиссером, но пуля при выстреле не сгорела, а её осколки угодили в оператора и режиссера. И вины Алека нет и быть не может.... Очень маловероятно. В большинстве случаев это обычно вытекает в "Слушайте, не нужно мне напаривать! Мне главное чтоб работало", а это уже ОЧЕНЬ расплывчатая формулировка. И да, если в работе есть ошибки, которых по умолчанию быть не должно - исполнитель должен их устранить (либо доступно объяснить по какой причине это сделать невозможно)
  13. Совет с записью в сессию массива $this->session->data['product_options'] с выбранными опциями и ключом - product_id, а затем чтением этого массива в карточке товара и включения выбранных пользователем - очень даже правильное решение. Естественно нужно предусмотреть очистку массива товаров с опциями в случае, если страница не равно карточка товара. Но то уже "оптимизация". Если в этом месте у Вас недопонимание - лучше обратитесь к спецу. Ибо тут не мануал нужно давать, а полноценный курс по сессиям, их хранению, очистке и использованию.
  14. Собственно тоже да, но мы пока не знаем нужно изменение для конкретной службы доставки или для всех, у который сумма 0 Если для конкретной, то по shipping_code, как в моём примере if ($order_total['code'] == 'shipping' && $order_info['shipping_code'] == 'flat.flat') { Если в любой доставке с 0, то по сумме: if ($order_total['code'] == 'shipping' && (int)$order_total['value'] == 0) {
  15. Нене. Не там строчка: Вам, скорее всего, действительно нужно смотреть именно в сторону самого модуля импорта. Без "взгляда" на код не понять где и почему возникает описанная Вами ошибка. Много "факторов"
  16. Откажитесь от моей первоначальной затеи сравнивать название службы доставки То я был сонный Правильней привязаться к коду доставки: foreach ($order_totals as $order_total) { if ($order_total['code'] == 'shipping' && $order_info['shipping_code'] == 'flat.flat') { $data['totals'][] = array( 'title' => $order_total['title'], 'text' => 'Тут добавляйте любой нужный Вам текст. Даже чистый HTML, что-то типа <b>жирный текст</b>', ); } else { $data['totals'][] = array( 'title' => $order_total['title'], 'text' => $this->currency->format($order_total['value'], $order_info['currency_code'], $order_info['currency_value']), ); } } flat.flat - вставил для примера. Вы можете вставить код Вашей службы доставки (новой почты)
  17. Не совсем понятна задача (точнее есть уточняющие вопросы) 1. Нужно ли принимать ответ поставщика? Если нужно, то в каком формате? Если нет - как Вы узнаете, что реквест отправлен? 2. Почему ExtOrderPaid - 1? Т.е. отправку данных нужно производить только после оплаты? Как быть, если оплата при получении? От ответа на второй вопрос зависит то, в какое именно место нужно интегрировать отправку запроса. Ибо если задача "тыкнуться" к поставщику при оформлении заказа (мол поступил такой-то заказ), то правильней будет вкорячить в mail/order чтобы реквест отрабатывал одновременно с уведомлениями. Если же задача только после оплаты, то привязываться нужно к статусу заказа (либо "завершен", либо "оплачен" - ну или Ваши аналоги этих статусов) Ну и, уверен, по мере ответов на эти вопросы могут возникнуть новые...
  18. Нужно смотреть. Бо непонятно ж где именно Вы удалили строку. в модифицированном файле или в родном? Если в модифицированном, то её там добавляет модуль типа "Товары подкатегорий в родительской категории"
  19. Самый первый подводный камень, он же самый огромный (я бы даже сказал айсберг) это то, что WordPress, это, в первую очередь, CMS для БЛОГА, в который вкостылили магазин. А опенкарт - это магазин, в который вкостыливают блог.
  20. Не совсем понятна суть задачи. На что именно Вам нужно заменить "0 грн"? Для конкретной службы доставки или для всех, у которых стоимость 0? Если для конкретной службы - Новая почта - и если учитывать, что в самой службе невозможно в поле стоимость ввести текст (ну или что Вам нужно), то самы простой вариант - в контроллере внести изменения. в файле /catalog/controller/mail/order.php в функции add находим код: foreach ($order_totals as $order_total) { $data['totals'][] = array( 'title' => $order_total['title'], 'text' => $this->currency->format($order_total['value'], $order_info['currency_code'], $order_info['currency_value']), ); } Ну и заменяем его на такой код: foreach ($order_totals as $order_total) { if ($order_total['title'] == 'Отправка службой "Новая почта"') { $data['totals'][] = array( 'title' => $order_total['title'], 'text' => 'Тут добавляйте любой нужный Вам текст. Даже чистый HTML, что-то типа <b>жирный текст</b>', ); } else { $data['totals'][] = array( 'title' => $order_total['title'], 'text' => $this->currency->format($order_total['value'], $order_info['currency_code'], $order_info['currency_value']), ); } } Могут возникнуть сложности со строкой if ($order_total['title'] == 'Отправка службой "Новая почта"') { Так как есть вероятность что вместо кавычек у Вас в строке могут быть и экранированные кавычки /", и юникод &#34; и прочее. То уже Вам смотреть, но логика именно такая. И да, если нужно исправить в письме, которое отправляется админу, то в функции alert ищите тот же цикл: foreach ($order_totals as $order_total) { $data['totals'][] = array( 'title' => $order_total['title'], 'value' => html_entity_decode($this->currency->format($order_total['value'], $order_info['currency_code'], $order_info['currency_value']), ENT_NOQUOTES, 'UTF-8') ); } Ну и по аналогии... Если же нужно Все ноли заменить на какой-то определенный текст, то можно изменить условие и вместо: if ($order_total['title'] == 'Отправка службой "Новая почта"') { вставить это: if ((int)$order_total['value'] == 0) { Но, опять же, это костыли, назначение которого не совсем понятно
  21. Ну вот. Оказывается и готовые решения уже имеются. Спасибо, @chukcha
  22. А, разве, тут дело в импорте? Вывод товаров в главной категории делается либо модулем, либо правкой одной строке в файле /catalog/controller/product/category.php Если подобная строка присутсвует (лучше смотреть в модификаторы) - удалите, и товары будут показываться только в нужной категории. Импорт тут не при чём. ЗЫ. Хотя я могу и ошибаться... ЗЗЫ. Или не могу... В голове каша. ЗЗЗЫ. Нет. Всё верно.
  23. Всё зависит от того понадобятся Вам "старые" товары в будущем или нет. Удалять 30к+ товаров с заполненными описанием, опциями, изображениями etc, конечно, жалко. Для начала нужно понимание есть ли у нового поставщика в ассортименте товары из Вашего списка. Если есть - то при настройке экспорта с сайта поставщика нужно будет проделать работу по сопоставлению -> какой товар поставщика куда писать. Тут нет возможности подсказать конкретно так как это зависит и от модуля экспорта, от поставщика, от формата данных, которые предоставляет поставщик и т.д. Ненужные товары можно как удалить, так и отключить. Опять же, всё зависит от вашего сервера и БД. Если есть вероятность что вернетесь к старой нише - отключаем. Если не вернетесь и товар точно можно в топку - удаляем. НО Перед удалением нужно создать модификатор (на коленке), который создаст список всех удаляемых/отключаемых товаров с линками на эти товары. Нужно это для того, чтобы создать ОГРОМНЫЙ .htaccess (например) и настроить на все удаленные товары редирект с несуществующего товара на главную, к примеру. Ну или в каталог. Либо на посадочную, созданную специально для этих товаров, мол "к сожалению данного товара уже нет в списке, но Вы можете найти другие товары в нашем магазине. Тут уже всё зависит от Вас. Каждый редирект можно настроить индивидуально от категории и перенаправлять на ту же категорию или максимально подходящую. Что-то вроде такого: "удалять урл в яндексе и гугле" точно не стоит... Зачем терять ссылочную массу.
×
×
  • Створити...

Important Information

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