Opencart order php: opencart/order.php at master · opencart/opencart · GitHub

Дороботка CMC Opencart 2.0. • фриланс-работа для специалиста • категория PHP ≡ Заказчик Александр Коломиец

Switch to English version?

Yes

Переключитись на українську версію?

Так

Переключиться на русскую версию?

Да

Przełączyć się na polską weкrsję?

Tak

5 из 6

выполнение проекта

Следующий шаг: проект завершен

  1. публикация

  2. прием ставок

  3. утверждение условий

  4. резервирование

  5. выполнение проекта

  6. обмен отзывами

Привет) На сайте 26.com.ua есть ошибки которые нужно подправить. Сам сайт идет как тестовое задание, сайт не основной, вся информация тянется с другого сайта, при  общение более подробней смогу объяснить.  Ищу человека на длительное сотрудничество, часто возникают разные вопросы для доработки или внесения нового функционала.

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

но если зайти в админку и найти товар, зайти в него и просто сохранить — все работает. Такая проблема встречается в +- 15% товарах. Все новые добавленные соответственно работают.

2 проблема при переходе в украинской версии в категории выдает ошибку — много переадресаций

3 проблема в мобильной версии, нет слайда фото, как версии для пк, фото идут друг над другом и только потом описание товара

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

  • Ставки

    10

дата
онлайн
рейтинг
стоимость
время выполнения

  1. ставка скрыта фрилансером

  2. 3 дня6000 UAH

    3 дня6000 UAH

    Приветствую, есть опыт работы с ОпенКартом, готов взяться как за текущие правки, так и за те которые возможно возникнут в будущем

  3. 7 дней6000 UAH

    7 дней6000 UAH

    Добрый день, специализируюсь на опен карт, готов выполнить ваше задание. Обращайтесь буду рад сотрудничеству

  4. 5 дней6000 UAH

    5 дней6000 UAH

    Здравствуйте, готов помочь в выполнении правок, опыт работы с opencart более 7 лет, есть самописные модули, пишите в ЛС, обсудим

  5. 1 день6000 UAH

    1 день6000 UAH

    здравствуйте. готов решить все ваши задачи по этому вопросу. а потом если что и на долгосрочное сотрудничество

  6. 1 день6000 UAH

    1 день6000 UAH

    Доброго дня!
    Мы готовы помочь вам с этими и последующими ошибками.
    Пишите, я буду рад сотрудничать!
    Доброго дня!
    Готовий допомогти Вам з цими і наступними помилками.
    Пишіть, буду радий співпраці!

    Показать оригинал

    Перевести

  7. 4 дня6000 UAH

    4 дня6000 UAH

    Добро пожаловать, Александр, меня зовут Дмитрий, я занимаюсь разработкой сайтов 8 лет. Работаю с Opencart, WordPress. Готовы помочь, давайте обсудим детали.
    Вітаю, Олександр, мене звати Дмитро, я займаюся розробкою сайтів 8 років. Працюю з Opencart, WordPress. Готовий допомогти, давайте обговоримо деталі.

    Показать оригинал

    Перевести

  8. Победившая ставка2 дня6000 UAH

    Победившая ставка2 дня6000 UAH

    Выполню качественно
    Опыт разработки под опенкарт 15 лет
    __________________________

  9. 2723

     51  0

    4 дня6000 UAH

    Назар Д.

    4 дня6000 UAH

    Доброго дня . Я могу посмотреть и все исправить. Пишите – поговорим
    Доброго дня. Можу глянути і все виправити. Пишіть — обговоримо.

    Завжди радий допомогти)

    Показать оригинал

    Перевести

  10. 4 дня5900 UAH

    4 дня5900 UAH

    Я делаю .
    • • • • • • • • • •
    Сделаю.
    ————————————————————

    Показать оригинал

    Перевести

9 часов 55 минут назад

68 просмотров

Тайны недостающих заказов — Antropy

Опубликовано Джо 1 апреля 2021 г.

Это слишком обычное явление — возможно, вы столкнулись с возможностью фильтрации по «Отсутствующим заказам» в панели администратора, или, возможно, клиент отправил электронное письмо или звонили, чтобы спросить о статусе заказа, который, кажется, буквально отсутствует в списке заказов.

Какими бы ни были обстоятельства, когда вы фильтруете «Отсутствующие заказы», ​​вашему взору предстает ужасное зрелище — множество заказов, о которых вы никогда не знали, которых до сих пор нигде не было видно! Откуда взялись все эти заказы, а главное, почему они пропали? И что с этим можно сделать?

Не паникуйте!

Прежде всего, не паникуйте! Может вообще не быть проблемы. Название «Отсутствующие заказы» является неправильным, и их более точно называют неподтвержденными заказами.

Любой заказ в базе данных вашего магазина, у которого еще нет статуса (Ожидание, Обработка, Завершено и т. д.), по умолчанию имеет статус «Отсутствует». Но зачем делать заказ без присвоения ему статуса?

Все заказы начинаются как Отсутствующие заказы

Заказ впервые добавляется в базу данных магазина, когда покупатель достигает шага 6 «Подтвердить заказ» в кассе OpenCart. Этот заказ будет иметь статус по умолчанию «Отсутствует»; ответственность за присвоение заказу его первого статуса фактически лежит на расширении платежа.

Идея заключается в том, что клиент вводит свои платежные реквизиты, платежное расширение подтверждает, что платеж был произведен (если необходимо), и присваивает заказу его первый статус, тем самым подтверждая заказ и вытаскивая его из Missing Orders. Затем OpenCart отправит уведомления по электронной почте покупателю, администратору магазина и так далее.

Итак, Отсутствующий заказ — это только заказ, оплата которого не подтверждена на 100%. Это означает, что любой случай, когда покупатель достигает последнего этапа оформления заказа, а затем не производит оплату, приведет к тому, что в базу данных вашего магазина будет добавлен отсутствующий заказ.

Если покупатель передумает в конце оформления заказа и перейдет на другую страницу или закроет браузер, заказ уже будет добавлен, но со статусом «Отсутствует». Даже если покупатель возвращается на один шаг назад, чтобы выбрать другой способ оплаты, OpenCart будет считать это еще одним новым заказом, когда он снова перейдет к последнему шагу оформления заказа, поэтому иногда несколько копий одного и того же заказа могут быть найдены в «Отсутствующих заказах». .

Таким образом, большинство случаев отсутствия заказов безвредны и являются результатом особенностей обработки заказов OpenCart. Однако, если в вашей учетной записи отображаются платежи за заказы, указанные как «Отсутствующие заказы» в панели администратора вашего магазина, это может указывать на проблему с процессом подтверждения заказа.

Обратные вызовы

Обратные вызовы — также известные как IPN от Paypal, веб-перехватчики от Stripe, отзывы о транзакциях от Barclaycard и другие названия — это способ, с помощью которого ваш магазин подтверждает внешнему платежному провайдеру, что платеж был принят.

Обычно они работают следующим образом:

  1. Покупатель вводит свои платежные реквизиты либо на странице оформления заказа в вашем магазине, либо на странице оплаты за пределами сайта. Они отправляются на платежный шлюз.
  2. Платежный шлюз проверяет платеж, и, если он действителен, его серверы делают «обратный вызов» на сервер вашего магазина, чтобы подтвердить оплаченный заказ.
  3. Соответствующее платежное расширение получает сообщение и подтверждает заказ в вашем магазине, присваивая ему статус, вытягивая его из Пропущенных заказов.

Как и во всем, что зависит от внешнего сервера, здесь есть много возможностей для того, чтобы что-то пойти не так.

  • Правильно ли настроены параметры обратного вызова на панели управления вашей учетной записи поставщика платежей? Некоторые поставщики платежей ожидают «URL обратного вызова», поэтому они знают, где именно на вашем сайте должен пройти обратный вызов. Обычно это можно найти в настройках расширения платежа на панели администратора OpenCart, и его можно скопировать и вставить в соответствующее текстовое поле на панели управления вашего платежного аккаунта. Ранее мы написали статью, в которой показано, как настроить это для PayPal Standard.

  • Доходят ли запросы обратного вызова до сервера вашего веб-сайта? Возможно, вам придется проконсультироваться со своим платежным провайдером и/или хостинг-провайдером, могут ли они видеть какие-либо неудачные попытки подключения или входящие обратные вызовы от платежного шлюза, возможно, блокируются брандмауэром на вашем сервере.

  • Если ваш магазин получает обратные вызовы, правильно ли они обрабатываются платежным расширением? Поставщики платежей часто вносят изменения в свои API и протоколы, чтобы не отставать от постоянно меняющихся правил безопасности, и если ваше платежное расширение не обновлялось какое-то время, это может означать, что за это время были внесены некоторые изменения, нарушающие совместимость. Обновление платежного расширения до последней версии может решить проблему; если это стороннее расширение, разработчик расширения должен иметь возможность сообщать о любых изменениях, внесенных платежным провайдером, которые могут вызвать проблемы с отсутствующим заказом.

  • Если на сервере вашего веб-сайта установлена ​​версия PHP старше 5.6, это может вызывать проблемы с некоторыми расширениями, которые используют curl_exec для инициирования запроса обратного вызова, например PayPal Payments Standard. Если это так с вашим сервером, пришло время обновиться! Либо обратитесь к своему хостинг-провайдеру, либо ознакомьтесь с нашими планами хостинга, если вы предпочитаете, чтобы ваш сайт размещался у экспертов OpenCart.

Другие расширения

Множество расширений добавляют различные дополнительные биты в процедуру подтверждения заказа OpenCart — код, который присваивает заказу его первый статус и выводит его из списка «Отсутствующие заказы». Возможно, что какой-то из этих дополнительных или измененных кодов вызывает сбой процедуры подтверждения заказа или другие неправильные действия. Это становится более вероятным, чем больше у вас расширений, изменяющих одни и те же области кода, поскольку шансы на столкновение или конфликт увеличиваются.

Однажды мы видели пример плохо написанного расширения для защиты от мошенничества, которое привело к серьезному хаосу в связи с недостающим порядком. Расширение должно было проверять IP-адрес каждого входящего заказа, но вылетало при запуске, что приводило к фатальной ошибке при попытке подтвердить любой заказ ! Это лишь один пример того, как сторонние расширения могут повлиять на процесс подтверждения заказа.

Проверьте журнал ошибок OpenCart и журнал ошибок сервера на наличие ошибок, связанных с такими файлами, как catalog/model/checkout/order. php или catalog_model_checkout_order.php . Надежный показатель, если вы можете найти ссылки в ошибках на addOrderHistory — имя процедуры подтверждения заказа.

В случае сторонних расширений, как правило, лучше всего может помочь сам разработчик расширения, однако часто бывает довольно сложно определить, какие изменения в код вносятся какими расширениями, поэтому вы можете проконсультироваться с OpenCart. эксперт, чтобы помочь разрешить конфликты между несколькими сторонними расширениями.

Сеансовые файлы cookie

Довольно малоизвестный, появившийся в середине 2020 года — пока клиент находится на странице оплаты, детали заказа хранятся в сеансовом файле cookie клиента — то же самое, что «запоминает», когда вы входите в систему. сайт.

Некоторые недавние изменения в том, как веб-браузеры обрабатывают эти файлы cookie, означают, что при возврате со страницы оплаты сеансовый файл cookie клиента может быть сброшен, в результате чего OpenCart «забывает», какой заказ необходимо удалить из «Отсутствующих заказов»!

Эта проблема обычно проявляется только в оплаченных заказах , иногда обнаруживается в отсутствующих заказах, поскольку это зависит от веб-браузера клиента. Еще один признак находится в журнале ошибок OpenCart — ищите ошибки с упоминанием Undefined index: order_id , которые исходят из файлов, связанных с платежами. Если соответствующая строка в файле содержит это: $this->session->data['order_id'] — это очень вероятный признак проблем с cookie сеанса.

Эта проблема чаще всего затрагивает более старые версии OpenCart 1 и 2 — к счастью, мы разработали бесплатное расширение, чтобы привести эти версии в соответствие с новыми правилами в отношении сеансовых файлов cookie. Расширение имеет версии для OpenCart 1.5.6.4 и всех версий OpenCart 2. Если ваши симптомы отсутствия заказа звучат так, как указано выше, это расширение вполне может помочь.

Свяжитесь с нами

Если ничего из вышеперечисленного не помогло, почему бы не обратиться к специалисту по OpenCart для решения проблемы? Свяжитесь с нами сегодня для цитаты и мы посмотрим!

Как изменить идентификатор приращения заказа и разрешить очень большие номера заказов в OpenCart .

Исходная информация

Когда OpenCart установлен, таблицы со столбцами order_id настроены как тип данных INT(11) , и по умолчанию эти столбцы подписаны, что означает, что они поддерживают отрицательные или положительные числа (что не имеет никакого смысла для номеров заказов). В качестве столбца INT(11) SIGNED он мог содержать номера заказов до 2147483647, а если поле было INT(11) UNISGNED , то оно могло бы содержать номера заказов до 4294967295. Но для моих административных нужд этого все равно было недостаточно. .

Решение

Примечание:  Следующий метод был протестирован только на OpenCart v1.5.2, и я не могу сказать, как он будет работать на других версиях.

Обновление (9 июля 2014 г.):  Этот метод не работает в OpenCart версии 1.5.4+. OpenCart теперь преобразует большой номер заказа в меньшее целое число, прежде чем он будет записан в базу данных, тем самым нарушая этот метод.

Во-первых, вы должны воспользоваться этой возможностью, чтобы сделать резервную копию базы данных OpenCart на случай, если что-то пойдет не так.

Разрешение очень больших порядковых номеров

После исключения других целочисленных типов данных я обратился к типу данных BIGINT UNSIGNED , который может содержать порядковые номера до 18446744073709551615.

Чтобы использовать этот тип данных, вам потребуется выполнить несколько запросов SQL изменить некоторые столбцы в схеме базы данных. Если в вашей установке есть настройка префикса таблицы, настройте запросы по мере необходимости.

 ALTER TABLE `affiliate_transaction` CHANGE COLUMN `order_id` `order_id` BIGINT UNSIGNED NOT NULL;
ALTER TABLE `coupon_history` CHANGE COLUMN `order_id` `order_id` BIGINT UNSIGNED NOT NULL;
ALTER TABLE `customer_reward` CHANGE COLUMN `order_id` `order_id` BIGINT UNSIGNED NOT NULL DEFAULT '0';
ALTER TABLE `customer_transaction` CHANGE COLUMN `order_id` `order_id` BIGINT UNSIGNED NOT NULL;
ALTER TABLE `order` CHANGE COLUMN `order_id` `order_id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT;
ALTER TABLE `order_download` CHANGE COLUMN `order_id` `order_id` BIGINT UNSIGNED NOT NULL;
ALTER TABLE `order_fraud` CHANGE COLUMN `order_id` `order_id` BIGINT UNSIGNED NOT NULL DEFAULT '0';
ALTER TABLE `order_history` CHANGE COLUMN `order_id` `order_id` BIGINT UNSIGNED NOT NULL;
ALTER TABLE `order_option` CHANGE COLUMN `order_id` `order_id` BIGINT UNSIGNED NOT NULL;
ALTER TABLE `order_product` CHANGE COLUMN `order_id` `order_id` BIGINT UNSIGNED NOT NULL;
ALTER TABLE `order_total` CHANGE COLUMN `order_id` `order_id` BIGINT UNSIGNED NOT NULL;
ALTER TABLE `order_voucher` CHANGE COLUMN `order_id` `order_id` BIGINT UNSIGNED NOT NULL DEFAULT '0';
ALTER TABLE `return` CHANGE COLUMN `order_id` `order_id` BIGINT UNSIGNED NOT NULL;
ALTER TABLE `voucher` CHANGE COLUMN `order_id` `order_id` BIGINT UNSIGNED NOT NULL;
ALTER TABLE `voucher_history` CHANGE COLUMN `order_id` `order_id` BIGINT UNSIGNED NOT NULL; 

Установка идентификатора приращения заказа

Теперь вы можете установить значение столбца AUTO_INCREMENT таблицы order order_id в неотрицательное число от 1 до 184467440737095901615: заказ` AUTO_INCREMENT =

03001;

Еще раз, если ваша установка использует префикс таблицы, при необходимости обновите запрос.