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

fitolavr

Новачок
  
  • Публікації

    6
  • З нами

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

Відвідувачі профілю

Блок відвідувачів профілю відключений і не буде доступний широкому іншим користувачам

fitolavr's Achievements

Rookie

Rookie (2/14)

  • Dedicated Rare
  • First Post
  • Week One Done
  • One Month Later
  • One Year In

Recent Badges

1

Репутація

  1. Модуль работает с бонусами. При изменении статуса заказа в опенкарт происходит начисление бонусов. При заказе клиент может ими воспользоваться - бонусы списываются. Так как поступившие заказы передаются и обрабатываются в Торгсофт , естественно дальнейшее начисление бонусов, списание происходит уже в Торгсофт. Получается какая-то сумма бонусов, которая отличается от суммы в опенкарт. На сайт из Торгсофт модулем синхронизации передается накопленная сумма бонусов. Только проблема - некуда передавать и что с этими данными делать дальше. Нужно поменять алгоритм начисления бонусов. Сделать начисление бонусы не при изменении статуса заказа в опенкарт (статус там менятся не будет), а связать сумму бонусов, поступившую из торгсофт с модулем бонусов. Как я себе это представляю: Создаем поле, значение в котором постоянно обновляется: заполняется суммой бонусов, которые прислал торгсофт. Создаем еще одно поле, где будет происходить расчет по формуле: сумма бонусов от торгсофта минус сумма бонусов в опенкарт. если эта разница – положительное число, то в модуле соответствующее поле заполняется этим положительным числом (начисляются бонусы), если разница отрицательна - заполняется этим числом со знаком минус (возможно, что в торгсофте при обработке заказа будет списано больше баллов, чем было списано сначала при формировании заказа в опенкарт), при этом идет дополнительное списание бонусов в модуле. если разница равна нулю – ничего не заполняется в таблицу. В модуле эти бонусы (поступившие и существующие), как и раньше суммируются, и получается правильная сумма бонусов, которые клиент может использовать при следующем заказе.
  2. Модуль с запросами в несколько секунд уже нашли и отключили. Насчет малого времени: да, сейчас мало, но это при том, что подключен к модулю всего один товар для теста. А если таких товаров сотни?!
  3. Администратор сервера обратил внимание на длинные запросы в БД: "есть запрос в базу от вашего сайта, он дёргает аж 40 тыс строк с базы, это при условии, что она у вас сейчас маленькая... всего на пару десятков мегабайт. запрос страшный, его явно какой-то модуль делает. Один модуль найден путем исключения. После его отключения скорость сайта резко повысилась. Именно он создавал основную нагрузку на БД. Нужно найти какие еще модули тормозят БД и решить проблему. Сейчас они быстрые, но потом на большой базе будут вызывать тормоза." # Query_time: 0.031116 Lock_time: 0.000455 Rows_sent: 24 Rows_examined: 9712 SET timestamp=1622103747; SELECT IF(hpl.parent_id IS NOT NULL AND h2s.store_id IS NOT NULL AND hph.pid IS NOT NULL, hpl.parent_id, p.product_id) AS product_id, (SELECT AVG(rating) AS total FROM oc_review r1 WHERE r1.product_id = p.product_id AND r1.status = '1' GROUP BY r1.product_id) AS rating, (SELECT price FROM oc_product_discount pd2 WHERE pd2.product_id = p.product_id AND pd2.customer_group_id = '1' AND pd2.quantity = '1' AND ((pd2.date_start = '0000-00-00' OR pd2.date_start < NOW()) AND (pd2.date_end = '0000-00-00' OR pd2.date_end > NOW())) ORDER BY pd2.priority ASC, pd2.price ASC LIMIT 1) AS discount, (SELECT price FROM oc_product_special ps WHERE ps.product_id = p.product_id AND ps.customer_group_id = '1' AND ((ps.date_start = '0000-00-00' OR ps.date_start < NOW()) AND (ps.date_end = '0000-00-00' OR ps.date_end > NOW())) ORDER BY ps.priority ASC, ps.price ASC LIMIT 1) AS special FROM oc_category_path cp LEFT JOIN oc_product_to_category p2c ON (cp.category_id = p2c.category_id) LEFT JOIN oc_product p ON (p2c.product_id = p.product_id) LEFT JOIN oc_product_description pd ON (p.product_id = pd.product_id) LEFT JOIN oc_product_to_store p2s ON (p.product_id = p2s.product_id) LEFT JOIN oc_hpmodel_product_hidden hph ON (p.product_id = hph.pid) LEFT JOIN oc_hpmodel_links hpl ON (p.product_id = hpl.product_id) LEFT JOIN oc_hpmodel_to_store h2s ON (hpl.type_id = h2s.type_id AND h2s.store_id = '0') WHERE pd.language_id = '1' AND p.status = '1' AND p.date_available <= NOW() AND p2s.store_id = '0' AND cp.path_id = '442' GROUP BY IF(hpl.parent_id IS NOT NULL AND h2s.store_id IS NOT NULL AND hph.pid IS NOT NULL, hpl.parent_id, p.product_id) ORDER BY p.quantity > 0 DESC, LCASE(pd.name) ASC, LCASE(pd.name) ASC LIMIT 0,24; # Query_time: 0.009318 Lock_time: 0.000480 Rows_sent: 1 Rows_examined: 7685 SET timestamp=1622103747; SELECT COUNT(DISTINCT IF(hpl.parent_id IS NOT NULL AND h2s.store_id IS NOT NULL AND hph.pid IS NOT NULL, hpl.parent_id, p.product_id)) AS total FROM oc_category_path cp LEFT JOIN oc_product_to_category p2c ON (cp.category_id = p2c.category_id) LEFT JOIN oc_product p ON (p2c.product_id = p.product_id) LEFT JOIN oc_product_description pd ON (p.product_id = pd.product_id) LEFT JOIN oc_product_to_store p2s ON (p.product_id = p2s.product_id) LEFT JOIN oc_hpmodel_product_hidden hph ON (p.product_id = hph.pid) LEFT JOIN oc_hpmodel_links hpl ON (p.product_id = hpl.product_id) LEFT JOIN oc_hpmodel_to_store h2s ON (hpl.type_id = h2s.type_id AND h2s.store_id = '0') WHERE pd.language_id = '1' AND p.status = '1' AND p.date_available <= NOW() AND p2s.store_id = '0' AND cp.path_id = '442'; # Query_time: 0.007833 Lock_time: 0.000248 Rows_sent: 1 Rows_examined: 6323 SELECT COUNT(DISTINCT IF(hpl.parent_id IS NOT NULL AND h2s.store_id IS NOT NULL AND hph.pid IS NOT NULL, hpl.parent_id, p.product_id)) AS total FROM oc_category_path cp LEFT JOIN oc_product_to_category p2c ON (cp.category_id = p2c.category_id) LEFT JOIN oc_product p ON (p2c.product_id = p.product_id) LEFT JOIN oc_product_description pd ON (p.product_id = pd.product_id) LEFT JOIN oc_product_to_store p2s ON (p.product_id = p2s.product_id) LEFT JOIN oc_hpmodel_product_hidden hph ON (p.product_id = hph.pid) LEFT JOIN oc_hpmodel_links hpl ON (p.product_id = hpl.product_id) LEFT JOIN oc_hpmodel_to_store h2s ON (hpl.type_id = h2s.type_id AND h2s.store_id = '0') WHERE pd.language_id = '1' AND p.status = '1' AND p.date_available <= NOW() AND p2s.store_id = '0' AND cp.path_id = '120'; # Query_time: 0.010417 Lock_time: 0.000262 Rows_sent: 10 Rows_examined: 6374 SELECT IF(hpl.parent_id IS NOT NULL AND h2s.store_id IS NOT NULL AND hph.pid IS NOT NULL, hpl.parent_id, p.product_id) AS product_id, (SELECT AVG(rating) AS total FROM oc_review r1 WHERE r1.product_id = p.product_id AND r1.status = '1' GROUP BY r1.product_id) AS rating, (SELECT price FROM oc_product_discount pd2 WHERE pd2.product_id = p.product_id AND pd2.customer_group_id = '1' AND pd2.quantity = '1' AND ((pd2.date_start = '0000-00-00' OR pd2.date_start < NOW()) AND (pd2.date_end = '0000-00-00' OR pd2.date_end > NOW())) ORDER BY pd2.priority ASC, pd2.price ASC LIMIT 1) AS discount, (SELECT price FROM oc_product_special ps WHERE ps.product_id = p.product_id AND ps.customer_group_id = '1' AND ((ps.date_start = '0000-00-00' OR ps.date_start < NOW()) AND (ps.date_end = '0000-00-00' OR ps.date_end > NOW())) ORDER BY ps.priority ASC, ps.price ASC LIMIT 1) AS special FROM oc_category_path cp LEFT JOIN oc_product_to_category p2c ON (cp.category_id = p2c.category_id) LEFT JOIN oc_product p ON (p2c.product_id = p.product_id) LEFT JOIN oc_product_description pd ON (p.product_id = pd.product_id) LEFT JOIN oc_product_to_store p2s ON (p.product_id = p2s.product_id) LEFT JOIN oc_hpmodel_product_hidden hph ON (p.product_id = hph.pid) LEFT JOIN oc_hpmodel_links hpl ON (p.product_id = hpl.product_id) LEFT JOIN oc_hpmodel_to_store h2s ON (hpl.type_id = h2s.type_id AND h2s.store_id = '0') WHERE pd.language_id = '1' AND p.status = '1' AND p.date_available <= NOW() AND p2s.store_id = '0' AND cp.path_id = '120' GROUP BY IF(hpl.parent_id IS NOT NULL AND h2s.store_id IS NOT NULL AND hph.pid IS NOT NULL, hpl.parent_id, p.product_id) ORDER BY p.quantity > 0 DESC, LCASE(pd.name) ASC, LCASE(pd.name) ASC LIMIT 0,24;
  4. Сайт медленно грузится. Время ответа сервера до 5 секунд. Нужно оптимизировать запросы в базу данных. Найти модули, которые создают большую нагрузку, сделать отладку и профилировку кода на каждой конкретной тормозящей странице.
  5. Есть тип товаров "весовой" https://fitolavr.com.ua/granulirovannyiy-chernyiy-chay-assam-namdang.html Отличие от штучного только в том, что место количества задаются граммы. Выставляется минимальное кол-во, добавить можно вес товара, кратный минимальному. Сейчас все граммы суммируются в корзине. Нужно добавить возможность выбора кол-ва для выбранного веса: например 50г - 2 шт, 100г - 2 шт. В итоге должно быть списано со склада 300г. В корзине товары не должны склеиваться. Нужно "подружить" с редактором заказов OrderPro. Опции не предлагайте, так как нужен нормальный учет товара.

×
×
  • Створити...

Important Information

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