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

OcBox Cart Lifetime: кошик покупця живе 30 днів замість години, без помилки 1213 Deadlock і прибирання на кожному перегляді сторінки для OpenCart і ocStore

OcBox ☆☆☆☆☆ 0 відгуків 49 завантажень 491 07.10.26
1.0.0 Ioncube Loader: Так
Безкоштовно
OpenCart3.0
ocStore3.0
Тип ліцензії
Метод активаціїБез активації
Ioncube LoaderТак
Звернення до сервера розробникаНі
Завантаження49
Опубліковано01.10.26
Оновлене07.10.26
Розмір файлу15 КБ

Відгуки користувачів

OcBox Cart Lifetime: кошик покупця живе 30 днів замість години, без помилки 1213 Deadlock і прибирання на кожному перегляді сторінки для OpenCart та ocStore

Це безкоштовний модуль формату Community Edition. Він лагодить дві болі, у яких насправді один корінь. Перша: у стоковому OpenCart кошик незалогіненого покупця живе рівно одну годину, і людина, що зайшла зранку й повернулась увечері, бачить порожній кошик. Друга: прибирання старих кошиків запускається у кожному перегляді будь-якої сторінки, і в години пік це робить взаємні блокування рядків бази (помилка 1213), через які додавання в кошик падає з порожньою сторінкою. Модуль розтягує життя кошика гостя до 30 днів зі зсувним вікном, прибирання робить рідко і порціями, а повернення покупця зливає старий кошик з поточним без дублів. Безкоштовно, без ionCube, без прив’язки до доменів.

Швидкі посилання: Дві болі з одного кореня · Що робить модуль · Покажчик у базі одним кліком · Чесна межа модуля · Сумісність

Дві болі з одного кореня, пояснюю простими словами

Біль перша, видима власнику магазину. У стоковому OpenCart кошик покупця, який ще не увійшов під своїм обліковим записом, живе рівно одну годину. Людина поклала товар, пішла порадитись із дружиною, повернулась увечері, а кошик порожній. Вона не починає спочатку, вона йде до конкурента. Для товарів, які обирають довго (кухня, меблі, велосипед, курс, страхування), це прямі втрачені гроші. У налаштуваннях OpenCart такої опції просто немає, тому більшість власників магазинів навіть не здогадується, що так влаштовано зсередини.

Біль друга, видима програмісту. Те саме прибирання старих кошиків ядро OpenCart запускає на кожному перегляді будь-якої сторінки каталогу. Запит побудований так, що база не може скористатись покажчиком і перебирає всю таблицю кошиків, тримаючи при цьому блокування на цілий діапазон рядків. На жвавому магазині паралельне додавання товару в кошик стає в чергу за цим прибиранням, і два запити заклинюють один одного. У лозі бази сиплеться помилка номер 1213 (Deadlock found when trying to get lock), а покупець у цю мить бачить порожню сторінку замість доданого товару. Загострюється в години пік, під час вивантаження з обліковки і коли по сайту ходять боти пошуковиків.

Корінь обох проблем один: ядро прибирає кошики не там, де треба, не з тією частотою, яка потрібна, і за запитом, що блокує таблицю. Виправити це означає прибирання відв’язати від кожного перегляду, зменшити вікно, яке воно чіпає за раз, і додати до таблиці кошиків нормальний покажчик за датою.

Що робить модуль, по пунктах

Нижче всі зміни, які модуль вносить у поведінку кошика. Кожну можна увімкнути чи вимкнути окремо, тому ви самі вирішуєте, наскільки сильно відходити від стокового OpenCart.

Життя кошика гостя розтягується до 30 днів зі зсувним вікном

✓ Кошик живе 30 днів, і цей строк починається заново з кожною дією покупця
Типово кошик неавторизованого покупця живе 30 днів (значення налаштовується від 1 до 365 днів). Строк зсувний: щоразу, коли покупець заходить і щось дивиться, кладе товар, змінює кількість, лічильник починається заново. Поки людина періодично повертається, кошик її чекає. Так само поводиться покинутий кошик для нагадувань: він лишається доступним для аналізу й відновлення, а не зникає через годину після виходу з сайту.
⚠ Без цього: кошик стирається через 60 хвилин, і покупець, який повернувся навіть по обіді, починає з нуля. Половина таких просто не починає.

Повернення покупця зливає старий кошик з поточним, без дублів

✓ Старий і новий кошики складаються в один, однакові позиції додаються кількістю
Коли покупець повертається на сайт (нова сесія, новий сеанс браузера), модуль знаходить його попередній кошик за підписаним кукі-маркером і зливає з поточним у один. Однакові позиції з однаковими опціями складаються кількістю, а не стають двома рядками. Різні позиції лягають одна поряд з одною. Так само поводиться вхід під обліковим записом: гостьовий кошик додається до клієнтського, замість того щоб один з них зникнути.
⚠ Без цього: у клієнта або два товари «телефон» замість чотирьох, або гостьовий кошик зникає разом з увійшлим клієнтом, і купівля починається з нуля.

Прибирання запускається рідко і за раз чіпає обмежену порцію

✓ Один прохід прибирання на тисячу переглядів, і він торкається лише кількох сотень рядків за раз
Замість того щоб гнати великий DELETE у кожному перегляді, модуль запускає прибирання приблизно раз на тисячу переглядів (частота налаштовується). За один прохід чіпає обмежену порцію рядків (типово 500, налаштовується), використовує покажчик за датою і тримає блокування на мілісекунди замість секунд. Паралельні додавання в кошик більше не стають у чергу і не отримують 1213 Deadlock.
⚠ Без цього: у години пік журнал бази рясніє помилкою 1213, покупець тисне «Купити» і бачить порожню сторінку, а власник магазину не розуміє, чому в аналітиці стрибнув відсоток покинутих кошиків.

Один клік створює рекомендований покажчик у базі

✓ Кнопка «Створити покажчик» прямо на сторінці налаштувань, без лазіння в редактор бази
Швидке прибирання за датою потребує покажчика на колонці date_added таблиці кошиків. У стоковій схемі OpenCart такого покажчика немає, і додати його руками через редактор бази більшість власників магазинів не стане. Модуль показує стан таблиці на панелі статусу, і якщо покажчика бракує, пропонує створити його однією кнопкою. Безпечно для живого магазину: створення покажчика на таблиці кошиків це операція на кілька секунд навіть при сотнях тисяч рядків.
⚠ Без цього: нормальна частота прибирання помітно повільніша, бо база перебирає всю таблицю замість того, щоб одразу знайти найстаріші рядки. На великій таблиці різниця десятикратна.

Панель стану: все, що відбувається з таблицею кошиків, видно одразу

✓ Стан таблиці, покажчик, кількість рядків, вік найстарішого запису: на одній сторінці
На сторінці налаштувань показується: чи створений рекомендований покажчик у базі, скільки зараз рядків у таблиці кошиків, вік найстарішого з них, коли востаннє спрацювало прибирання, скільки рядків воно забрало. Так одразу видно, що модуль дійсно працює і скільки роботи взяв на себе. Якщо щось не так (наприклад, прибирання жодного разу не запускалось після встановлення), це помітно, а не ховається всередині бази.
⚠ Без цього: власник магазину не має способу перевірити, скільки гостьових кошиків зараз лежить у базі і коли її востаннє прибирали, крім запиту до редактора бази.

Налаштування: тривалість, частота прибирання, розмір порції

✓ Кілька полів у звичній адмінці OpenCart, без правок у коді і базі
На сторінці налаштувань: перемикач увімкнути чи вимкнути модуль, число днів життя кошика (типово 30), частота прибирання (приблизно раз на тисячу переглядів), розмір порції за один прохід (типово 500 рядків). Усе робиться галочками й числами, без правок у файлі cart.php ядра і без запитів у базу вручну. Для магазину, у якого свої умови (наприклад, довгий цикл купівлі), всі значення можна підняти чи опустити, і модуль продовжить працювати.
⚠ Без цього: будь-яка зміна поведінки кошика означає ручну правку файлу ядра, яку наступне оновлення OpenCart перетре.

Чесна межа модуля: що він робить, а чого не обіцяє

Пишемо прямо, бо нам не потрібні люди, які прийдуть зі словами «ви обіцяли, що помилок не буде». Модуль робить взаємні блокування рядків бази (1213 Deadlock) рідкісними, а не повністю неможливими. Він прибирає три головні причини: прибирання у кожному перегляді, широкий діапазон блокування і відсутність покажчика. Але повністю виключити 1213 Deadlock можна лише зміною рівня ізоляції транзакцій на сервері бази (READ-COMMITTED замість стокового REPEATABLE-READ), а це вже рівень my.cnf і домовленість з хостингом, а не модуля. Для переважної більшості магазинів цього й не треба: після встановлення модуля помилка 1213 переходить з «кілька разів на день» у «кілька разів на місяць», часто взагалі зникає з поля зору.

Що це означає простими словами

Раніше, щоб у OpenCart кошик жив довше години і не вбивав базу своїм прибиранням, треба було лізти у файл ядра system/library/cart/cart.php, правити запити руками, окремо робити кукі з підписом, окремо йти в редактор бази і додавати покажчик, і сподіватись, що наступне оновлення OpenCart це не перетре. OcBox Cart Lifetime збирає все це в один модуль, який ставиться через OCMOD, має сторінку налаштувань в адмінці і покажчик створює своєю кнопкою.

Для кого цей модуль

Для будь-якого магазину на OpenCart 3.x чи ocStore 3.x, у якого хоч раз було одне з трьох: клієнт пожалівся, що «кошик зникає», аналітика показує неприродно високий відсоток покинутих кошиків на короткій дистанції, у журналі бази трапляється помилка 1213 Deadlock. Особливо корисний для магазинів з довгим циклом обирання (меблі, кухні, велосипеди, курси, страхування, автозапчастини під підбір), де покупець звичайно повертається не того ж дня.

Сумісність

Модуль працює на OpenCart 3.0.x та ocStore 3.x, PHP від 7.0 до 8.3, MySQL 5.7+ і MariaDB 10+. Встановлюється через OCMOD у system/library/cart/cart.php, тому сумісний з більшістю шаблонів і сторонніх модулів кошика (Prime, UpStore, CyberStore, Chameleon, LuxShop, NewStore та інші). Без ionCube, без прив’язки до доменів, без зовнішніх залежностей. Складання з іншими модулями, що правлять cart.php, перевіряється на сторінці оновлення модифікацій.

Безкоштовно і буде таким назавжди.

Це наш внесок у якість українського OpenCart-ринку. Ми не плануємо робити з Cart Lifetime платну версію, не плануємо робити «розширений Pro» з додатковими опціями за гроші, не плануємо прив’язувати до покупки іншого платного модуля. Ставте, користуйтесь, діліться враженнями у темі підтримки.

Регламент видачі файлів модуля

Модуль безкоштовний і видається одразу після завантаження з цієї сторінки. Жодних ключів, активації чи реєстрації не потрібно: розпаковуєте архів, заливаєте upload/ у корінь магазину, оновлюєте модифікації в адмінці (Розширення → Модифікатори → Оновити), заходите у Налаштування модуля і натискаєте «Створити покажчик у базі». Усе.

Знайшли помилку в роботі модуля?

Напишіть у тему підтримки або в особисті повідомлення: посилання на сторінку, що ви робили, що сталося, і текст помилки. Як за пʼять хвилин увімкнути показ помилок, знайти журнал і побачити помилки в консолі браузера, покроково зі скріншотами: Помилки на сайті OpenCart: як їх увімкнути, знайти і передати розробнику. З таким звітом ми виправляємо проблему значно швидше.

Рекомендовані платні модулі OcBox

Smart Related
Smart Related
$30, пов’язані товари
SEO FAQ AI
SEO FAQ AI
$30, AI FAQ + Schema.org
AI Product Editor
AI Product Editor
$50, масове редагування
Image Pro
Image Pro
$15, WebP, водяний знак
Filter
Filter
$30, розумний фільтр + SEO
Category Manager
Category Manager
$15, візуальний менеджер категорій
AI Smart Search
AI Smart Search
$200, AI-пошук з синонімами
AI Chat
AI Chat
$100, AI-консультант 24/7
AI Photo Studio
AI Photo Studio
$50, AI-обробка фото
PaymentHub
PaymentHub
$80, хаб оплат
ShippingHub
ShippingHub
$80, хаб доставок
SmartOrder
SmartOrder
$30, швидке замовлення
ShippingRules
ShippingRules
$30, правила доставки
AI Megareports
AI Megareports
$20, звіти й Telegram-дайджест
Product Bundles
Product Bundles
$30, комплекти і набори
Simple Super Search
Simple Super Search
$15, нечіткий пошук без Sphinx

OcBox MEGA

Підписуйтесь на наш канал: t.me/ocboxchannel

Характеристики

Системні вимогиPHP 7.0+, MySQL 5.5+
Метод активаціїБез активації
Ioncube LoaderТак
OpenCart3.0
ocStore3.0
OpenCart.Pro, ocShopНе проверялось
Звернення до сервера розробникаНі
Якщо сервер розробника недоступнийДополнение работает
ЗнижкаНі
Сумісно з шаблонамиDefault, Journal, CyberStore, Chameleon, Flavor
АдаптаціяПлатна
ЛокалізаціяУкраїнська, Англійська
Версія1.0.0
Розмір файлу15 КБ
Опубліковано01.10.26
Оновлене07.10.26
  • +1 1

Інші розширення OcBox


  • Зараз на сторінці   0 користувачів

    • Ні користувачів, які переглядиють цю сторінку
Гість
×
  • Створити...

Important Information

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