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

fitolavr

Newbie
  
  • Posts

    7
  • Joined

  • Last visited

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

fitolavr's Achievements

Explorer

Explorer (4/14)

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

Recent Badges

2

Reputation

  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. Опции не предлагайте, так как нужен нормальный учет товара.
×
×
  • 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.