LiveStore Liveopencart 3.0.3.9

Новости форума и сайта.
Скачать доработанную версию LiveStore: 3.0.3.9
shureg
Сообщения: 1
Зарегистрирован: 08.09.2024

Re: ocStore Liveopencart 3.0.3.9

Непрочитанное сообщение shureg »

Наверное, стоит посмотреть, что там за форма, какой код и есть ли действительно отправка. 
Аватара пользователя
DEVAGENCY
Разработчик дополнений
Сообщения: 80
Зарегистрирован: 03.04.2022
Откуда: Moscow
Мои дополнения: devagency
Поблагодарил: 15 раз
Спасибо: 13 раз
Контактная информация:

Re: ocStore Liveopencart 3.0.3.9

Непрочитанное сообщение DEVAGENCY »

Тогда остается в раздел платных услуг, там помогу решить вопрос :) 
Сказать "Спасибо" - деньги пойдут на развитие форума Liveopencart!
Телеграм — @devagency
brooks
Сообщения: 67
Зарегистрирован: 18.02.2023
Поблагодарил: 27 раз
Спасибо: 3 раз

Re: ocStore Liveopencart 3.0.3.9

Непрочитанное сообщение brooks »

Ошибка при обновлении...
Стоит ocStore 3.0.3.9 + Простор. Ставил пару месяцев назад.
Изображение
Аватара пользователя
Tom
Разработчик дополнений
Сообщения: 231
Зарегистрирован: 10.03.2022
Откуда: Казахстан - Алматы
Поблагодарил: 11 раз
Спасибо: 100 раз
Контактная информация:

Re: ocStore Liveopencart 3.0.3.9

Непрочитанное сообщение Tom »

Потому что в этой версии и не должно быть данной таблицы.
brooks
Сообщения: 67
Зарегистрирован: 18.02.2023
Поблагодарил: 27 раз
Спасибо: 3 раз

Re: ocStore Liveopencart 3.0.3.9

Непрочитанное сообщение brooks »

Tom писал(а): 24 авг 2025, 17:13 Потому что в этой версии и не должно быть данной таблицы.

В какой в этой? Я ставил ocStore 3.0.3.9. За пару месяцев разработчики внесли какие-то правки (в этой ветки о них писали). В этой же ветки мне написали, как обновить движок. Причем новая версия, как это не парадоксально, также 3.0.3.9. Ок, ладно, разработчикам виднее. Обновляю так, как сказано в инструкции. Получаю ошибку. Сообщаю о ней так, как сказано в инструкции. Получаю ваш ответ! Что я сделал не так? Что значит "в этой версии и не должно быть данной таблицы", если установочный архив я качал отсюда же?!?!?!
Аватара пользователя
spectrum
Разработчик дополнений
Сообщения: 106
Зарегистрирован: 10.03.2022
Откуда: РФ
Поблагодарил: 63 раз
Спасибо: 46 раз

Re: ocStore Liveopencart 3.0.3.9

Непрочитанное сообщение spectrum »

Только что попробовал у себя, всё прошло без ошибок. Ну да ладно.

В базе данных правок вроде-бы не было в обновлениях, поэтому скорее всего достаточно будет просто файлы движка обновить путем закачивания их поверх текущих.
Аватара пользователя
Tom
Разработчик дополнений
Сообщения: 231
Зарегистрирован: 10.03.2022
Откуда: Казахстан - Алматы
Поблагодарил: 11 раз
Спасибо: 100 раз
Контактная информация:

Re: ocStore Liveopencart 3.0.3.9

Непрочитанное сообщение Tom »

brooks писал(а): 24 авг 2025, 18:28
Tom писал(а): 24 авг 2025, 17:13 Потому что в этой версии и не должно быть данной таблицы.

В какой в этой? Я ставил ocStore 3.0.3.9. За пару месяцев разработчики внесли какие-то правки (в этой ветки о них писали). В этой же ветки мне написали, как обновить движок. Причем новая версия, как это не парадоксально, также 3.0.3.9. Ок, ладно, разработчикам виднее. Обновляю так, как сказано в инструкции. Получаю ошибку. Сообщаю о ней так, как сказано в инструкции. Получаю ваш ответ! Что я сделал не так? Что значит "в этой версии и не должно быть данной таблицы", если установочный архив я качал отсюда же?!?!?!
Нет таблицы url_alias.
Ошибка эта с самых ранних версий опенкарт 3. Сборка на которую вы пытаетесь обновить, лишь продолжает использовать данный подход, а не приобрела её в результате каких то недавних изменений.
Если вкратце, то для опенкарт Обновление, это больше про версии, например  с двойки на тройку. Чем обновление внутри одной и той же ветки как в случае с тройкой,  например с 3.0.2 на 3.0.7 итд.
В двойке короткие ссылки хранятся в той самой таблице url_alias, в тройке же зачем то было решено перенести их в таблицу seo_url, а не добавить нужные поля (магазин, язык) в прежней таблице.
Вот и получается в момент запуска скрипта обновления, он доходит до взаимодействия с таблицей тех самых коротких ссылок и переносит эти данные в новую таблицу seo_url, считая что обновление происходит как раз с более старых версий. И не найдя таблицы url_alias , падает с ошибкой как на вашем скрине.

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

Код: Выделить всё

CREATE TABLE IF NOT EXISTS `oc_url_alias` (
  `url_alias_id` int(11) NOT NULL AUTO_INCREMENT,
  `query` varchar(255) NOT NULL,
  `keyword` varchar(255) NOT NULL,
  PRIMARY KEY (`url_alias_id`),
  KEY `query` (`query`),
  KEY `keyword` (`keyword`)
) ENGINE=InnoDB AUTO_INCREMENT=10962 DEFAULT CHARSET=utf8;
после чего запустить обновление. По его окончанию, зайти в базу данных и удалить таблицу oc_url_alias (в моём примере префикс oc_, ваш может быть иным).
Ну а делать обновление на магазин с установленным шаблоном
brooks писал(а): 24 авг 2025, 12:42 ocStore 3.0.3.9 + Простор

вовсе безрассудство. Шаблон писался под конкретную версию. Все его модификаторы цепляются строго к тем строкам, что были в той или иной версии. Есть вероятность получения ошибки далее уже в шаблоне и всех установленных дополнениях/модификаторах.
Само обновление подобное не имеет совершенно никакого смысла.
И более правильно делается, путём развертывания полностью нового тестового магазина на нужной версии и создания с нуля на ней той самой обновленной версии.

В рамках данной сборки и версии ocStore Liveopencart 3.0.3.9 можно исправить эту старую ошибку.Не   претендую на оригинальность, но можно просто добавить проверку на наличие полей в файле upload\install\model\upgrade\1010.php 
 

Код: Выделить всё

<?php
class ModelUpgrade1010 extends Model {
	public function upgrade() {

        $config = new Config();

        // Загружаем настройки по умолчанию (store_id = 0)
        $setting_query = $this->db->query("SELECT * FROM `" . DB_PREFIX . "setting` WHERE store_id = '0'");

        foreach ($setting_query->rows as $setting) {
            $config->set($setting['key'], $setting['value']);
        }

        // Получаем language_id по коду языка из config
        $query = $this->db->query("SELECT language_id FROM `" . DB_PREFIX . "language` WHERE `code` = '" . $this->db->escape($config->get('config_language')) . "'");

        if (!$query->row) {
            return; // Если язык не найден — выходим
        }

        $language_id = (int)$query->row["language_id"];

        // Проверяем, существует ли таблица url_alias
        $table_exists = $this->db->query("SHOW TABLES LIKE '" . DB_PREFIX . "url_alias'");

        if ($table_exists->num_rows == 0) {
            // Таблица url_alias не существует — значит, мы уже в OC 3.x или обновляемся из более поздней версии
            // Ничего делать не нужно
            return;
        }

        // Если таблица есть — выполняем миграцию
        $query = $this->db->query("SELECT * FROM `" . DB_PREFIX . "url_alias`");

        if ($query->rows) {
            foreach ($query->rows as $url) {
                $this->db->query("
                    INSERT INTO `" . DB_PREFIX . "seo_url`
                    SET 
                        `store_id` = '0',
                        `language_id` = '" . (int)$language_id . "',
                        `query` = '" . $this->db->escape($url['query']) . "',
                        `keyword` = '" . $this->db->escape($url['keyword']) . "'
                ");
            }
        }
    }
}


 
brooks
Сообщения: 67
Зарегистрирован: 18.02.2023
Поблагодарил: 27 раз
Спасибо: 3 раз

Re: ocStore Liveopencart 3.0.3.9

Непрочитанное сообщение brooks »

spectrum писал(а): 24 авг 2025, 21:03 Только что попробовал у себя, всё прошло без ошибок. Ну да ладно.

В базе данных правок вроде-бы не было в обновлениях, поэтому скорее всего достаточно будет просто файлы движка обновить путем закачивания их поверх текущих.
Благодарю Вас за проверку. Сам был за городом, не имел возможности с нуля развернуть проект.
Tom писал(а): 25 авг 2025, 07:26
brooks писал(а): 24 авг 2025, 18:28
Tom писал(а): 24 авг 2025, 17:13 Потому что в этой версии и не должно быть данной таблицы.

В какой в этой? Я ставил ocStore 3.0.3.9. За пару месяцев разработчики внесли какие-то правки (в этой ветки о них писали). В этой же ветки мне написали, как обновить движок. Причем новая версия, как это не парадоксально, также 3.0.3.9. Ок, ладно, разработчикам виднее. Обновляю так, как сказано в инструкции. Получаю ошибку. Сообщаю о ней так, как сказано в инструкции. Получаю ваш ответ! Что я сделал не так? Что значит &quot;в этой версии и не должно быть данной таблицы&quot;, если установочный архив я качал отсюда же?!?!?!
Нет таблицы url_alias.
Ошибка эта с самых ранних версий опенкарт 3. Сборка на которую вы пытаетесь обновить, лишь продолжает использовать данный подход, а не приобрела её в результате каких то недавних изменений.
Если вкратце, то для опенкарт Обновление, это больше про версии, например  с двойки на тройку. Чем обновление внутри одной и той же ветки как в случае с тройкой,  например с 3.0.2 на 3.0.7 итд.
В двойке короткие ссылки хранятся в той самой таблице url_alias, в тройке же зачем было решено перенести их в таблицу seo_url, а не добавить нужные поля (магазин, язык) в прежней таблице.
Вот и получается в момент запуска скрипта обновления, он доходит до взаимодействия с таблицей тех самых коротких ссылок и переносит эти данные в новую таблицу seo_url, считая что обновление происходит как раз с более старых версий. И не найдя таблицы url_alias , падает с ошибкой как на вашем скрине.

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

Код: Выделить всё

CREATE TABLE IF NOT EXISTS `oc_url_alias` (
  `url_alias_id` int(11) NOT NULL AUTO_INCREMENT,
  `query` varchar(255) NOT NULL,
  `keyword` varchar(255) NOT NULL,
  PRIMARY KEY (`url_alias_id`),
  KEY `query` (`query`),
  KEY `keyword` (`keyword`)
) ENGINE=InnoDB AUTO_INCREMENT=10962 DEFAULT CHARSET=utf8;
после чего запустить обновление. По его окончанию, зайти в базу данных и удалить таблицу oc_url_alias (в моём примере префикс oc_, ваш может быть иным).
Ну а делать обновление на магазин с установленным шаблоном
brooks писал(а): 24 авг 2025, 12:42 ocStore 3.0.3.9 + Простор

вовсе безрассудство. Шаблон писался под конкретную версию. Все его модификаторы цепляются строго к тем строкам, что были в той или иной версии. Есть вероятность получения ошибки далее уже в шаблоне и всех установленных дополнениях/модификаторах.
Само обновление подобное не имеет совершенно никакого смысла.
И более правильно делается, путём развертывания полностью нового тестового магазина на нужной версии и создания с нуля на ней той самой обновленной версии.

В рамках данной сборки и версии ocStore Liveopencart 3.0.3.9 можно исправить эту старую ошибку.Не   претендую на оригинальность, но можно просто добавить проверку на наличие полей в файле upload\install\model\upgrade\1010.php 
 

Код: Выделить всё

<?php
class ModelUpgrade1010 extends Model {
	public function upgrade() {

        $config = new Config();

        // Загружаем настройки по умолчанию (store_id = 0)
        $setting_query = $this->db->query(&quot;SELECT * FROM `&quot; . DB_PREFIX . &quot;setting` WHERE store_id = '0'&quot;);

        foreach ($setting_query->rows as $setting) {
            $config->set($setting['key'], $setting['value']);
        }

        // Получаем language_id по коду языка из config
        $query = $this->db->query(&quot;SELECT language_id FROM `&quot; . DB_PREFIX . &quot;language` WHERE `code` = '&quot; . $this->db->escape($config->get('config_language')) . &quot;'&quot;);

        if (!$query->row) {
            return; // Если язык не найден — выходим
        }

        $language_id = (int)$query->row[&quot;language_id&quot;];

        // Проверяем, существует ли таблица url_alias
        $table_exists = $this->db->query(&quot;SHOW TABLES LIKE '&quot; . DB_PREFIX . &quot;url_alias'&quot;);

        if ($table_exists->num_rows == 0) {
            // Таблица url_alias не существует — значит, мы уже в OC 3.x или обновляемся из более поздней версии
            // Ничего делать не нужно
            return;
        }

        // Если таблица есть — выполняем миграцию
        $query = $this->db->query(&quot;SELECT * FROM `&quot; . DB_PREFIX . &quot;url_alias`&quot;);

        if ($query->rows) {
            foreach ($query->rows as $url) {
                $this->db->query(&quot;
                    INSERT INTO `&quot; . DB_PREFIX . &quot;seo_url`
                    SET 
                        `store_id` = '0',
                        `language_id` = '&quot; . (int)$language_id . &quot;',
                        `query` = '&quot; . $this->db->escape($url['query']) . &quot;',
                        `keyword` = '&quot; . $this->db->escape($url['keyword']) . &quot;'
                &quot;);
            }
        }
    }
}

И вам спасибо за разъяснения. Доя человека, который просто установил ocStore и купил шаблон, все это, конечно, трудно постижимо...

Пойду в платный раздел.
Аватара пользователя
spectrum
Разработчик дополнений
Сообщения: 106
Зарегистрирован: 10.03.2022
Откуда: РФ
Поблагодарил: 63 раз
Спасибо: 46 раз

Re: ocStore Liveopencart 3.0.3.9

Непрочитанное сообщение spectrum »

Tom писал(а): 25 авг 2025, 07:26 В рамках данной сборки и версии ocStore Liveopencart 3.0.3.9 можно исправить эту старую ошибку.Не   претендую на оригинальность, но можно просто добавить проверку на наличие полей в файле upload\install\model\upgrade\1010.php 

Вообще это фиксилось уже ранее. Возможно не попало в финальный архив с движком.

 
Аватара пользователя
liveopencart
liveopencart.ru
Сообщения: 303
Зарегистрирован: 10.03.2022
Мои дополнения: 19th19th
Поблагодарил: 84 раз
Спасибо: 155 раз
Контактная информация:

Re: ocStore Liveopencart 3.0.3.9

Непрочитанное сообщение liveopencart »

Исправлен процесс апгрейда. Спасибо brooks и spectrum
brooks
Сообщения: 67
Зарегистрирован: 18.02.2023
Поблагодарил: 27 раз
Спасибо: 3 раз

Re: ocStore Liveopencart 3.0.3.9

Непрочитанное сообщение brooks »

Проблему с отправкой почты решили. Правили контроллер catalog/controller/information/contact.php.Была проверка на чек бокс которого нету в форме. Что это? Может галочка соглашения на обработку персональных данных? Тогда она может подгружаться из шаблона Простор или от модуля Simple.
Аватара пользователя
devimirochnik
Разработчик дополнений
Сообщения: 206
Зарегистрирован: 14.04.2022
Откуда: Россия
Мои дополнения: devimirochnik
Поблагодарил: 7 раз
Спасибо: 16 раз

Re: ocStore Liveopencart 3.0.3.9

Непрочитанное сообщение devimirochnik »

Было бы круто добавить в модификаторы возможность не только редактировать модификаторы, но и добавлять без установки. Полезно, когда нужно добавлять свои модификаторы для правок в сайте. Без этого нужно заливать пустой окмод, а потом редактировать
Мои модули: Оптимизация, SEO, Скидки, Отчёты и прочее

Оказываю услуги поддержки и выполнения различного рода задач для сайтов (допилы) в рамках самозанятости (фриланс). Стоимость и прочее зависит от задач. График ненормированный, но дело делаю.
Аватара пользователя
spectrum
Разработчик дополнений
Сообщения: 106
Зарегистрирован: 10.03.2022
Откуда: РФ
Поблагодарил: 63 раз
Спасибо: 46 раз

Re: ocStore Liveopencart 3.0.3.9

Непрочитанное сообщение spectrum »

devimirochnik писал(а): 07 сен 2025, 21:21 Было бы круто добавить в модификаторы возможность не только редактировать модификаторы, но и добавлять без установки. Полезно, когда нужно добавлять свои модификаторы для правок в сайте. Без этого нужно заливать пустой окмод, а потом редактировать

В папку system модификатор положите и редактируйте его, сколько влезет
Аватара пользователя
Tom
Разработчик дополнений
Сообщения: 231
Зарегистрирован: 10.03.2022
Откуда: Казахстан - Алматы
Поблагодарил: 11 раз
Спасибо: 100 раз
Контактная информация:

Re: ocStore Liveopencart 3.0.3.9

Непрочитанное сообщение Tom »

devimirochnik писал(а): 07 сен 2025, 21:21 Было бы круто добавить в модификаторы возможность не только редактировать модификаторы, но и добавлять без установки. Полезно, когда нужно добавлять свои модификаторы для правок в сайте. Без этого нужно заливать пустой окмод, а потом редактировать

Я вот это решение использую. Проверял и на этой сборке. Единственное пришлось добавить в модификатор 

Код: Выделить всё

    <file path="admin/controller/marketplace/modification.php">
      
        <operation>
            <search>
                <![CDATA[protected function getList() {]]>
            </search>
            <add position="after">
                <![CDATA[$this->load->model('extension/modification/editor');]]>
            </add>
        </operation>
.....
а то иногда вываливает  ошибку 

Код: Выделить всё

Fatal error: Uncaught Error: Call to a member function getExtensionInstallByExtensionInstallId() on null

https://www.opencart.com/index.php?rout ... n_id=22015
Аватара пользователя
devimirochnik
Разработчик дополнений
Сообщения: 206
Зарегистрирован: 14.04.2022
Откуда: Россия
Мои дополнения: devimirochnik
Поблагодарил: 7 раз
Спасибо: 16 раз

Re: ocStore Liveopencart 3.0.3.9

Непрочитанное сообщение devimirochnik »

spectrum писал(а): 15 сен 2025, 14:07 В папку system модификатор положите и редактируйте его, сколько влезет
Ну такое себе. Особенно когда модификатор должен быть поверх шаба, который в систем и лежит обычно. Плюс это не лучше перепаковки пустого окмода
 
Последний раз редактировалось devimirochnik 15 сен 2025, 20:14, всего редактировалось 1 раз.
Мои модули: Оптимизация, SEO, Скидки, Отчёты и прочее

Оказываю услуги поддержки и выполнения различного рода задач для сайтов (допилы) в рамках самозанятости (фриланс). Стоимость и прочее зависит от задач. График ненормированный, но дело делаю.
Аватара пользователя
devimirochnik
Разработчик дополнений
Сообщения: 206
Зарегистрирован: 14.04.2022
Откуда: Россия
Мои дополнения: devimirochnik
Поблагодарил: 7 раз
Спасибо: 16 раз

Re: ocStore Liveopencart 3.0.3.9

Непрочитанное сообщение devimirochnik »

Tom писал(а): 15 сен 2025, 15:01
devimirochnik писал(а): 07 сен 2025, 21:21 Было бы круто добавить в модификаторы возможность не только редактировать модификаторы, но и добавлять без установки. Полезно, когда нужно добавлять свои модификаторы для правок в сайте. Без этого нужно заливать пустой окмод, а потом редактировать

Я вот это решение использую. Проверял и на этой сборке. Единственное пришлось добавить в модификатор 
 

Код: Выделить всё

    <file path=&quot;admin/controller/marketplace/modification.php&quot;>
      
        <operation>
            <search>
                <![CDATA[protected function getList() {]]>
            </search>
            <add position=&quot;after&quot;>
                <![CDATA[$this->load->model('extension/modification/editor');]]>
            </add>
        </operation>
.....
а то иногда вываливает  ошибку 
 

Код: Выделить всё

Fatal error: Uncaught Error: Call to a member function getExtensionInstallByExtensionInstallId() on null

https://www.opencart.com/index.php?rout ... n_id=22015

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

Кстати, код не полностью приложился
Мои модули: Оптимизация, SEO, Скидки, Отчёты и прочее

Оказываю услуги поддержки и выполнения различного рода задач для сайтов (допилы) в рамках самозанятости (фриланс). Стоимость и прочее зависит от задач. График ненормированный, но дело делаю.
Аватара пользователя
spectrum
Разработчик дополнений
Сообщения: 106
Зарегистрирован: 10.03.2022
Откуда: РФ
Поблагодарил: 63 раз
Спасибо: 46 раз

Re: ocStore Liveopencart 3.0.3.9

Непрочитанное сообщение spectrum »

devimirochnik писал(а): 15 сен 2025, 20:10 Ну такое себе. Особенно когда модификатор должен быть поверх шаба, который в систем и лежит обычно. Плюс это не лучше перепаковки пустого окмода

Кто мешает своему тестовому модификатору сделать префикс в имени, чтобы он исполнялся последним?
Да и добавлять сторонние, а не написанные самостоятельно, решения в сборку ну очень не очень.
Аватара пользователя
devimirochnik
Разработчик дополнений
Сообщения: 206
Зарегистрирован: 14.04.2022
Откуда: Россия
Мои дополнения: devimirochnik
Поблагодарил: 7 раз
Спасибо: 16 раз

Re: ocStore Liveopencart 3.0.3.9

Непрочитанное сообщение devimirochnik »

spectrum писал(а): 15 сен 2025, 20:46
devimirochnik писал(а): 15 сен 2025, 20:10 Ну такое себе. Особенно когда модификатор должен быть поверх шаба, который в систем и лежит обычно. Плюс это не лучше перепаковки пустого окмода

Кто мешает своему тестовому модификатору сделать префикс в имени, чтобы он исполнялся последним?
Да и добавлять сторонние, а не написанные самостоятельно, решения в сборку ну очень не очень.
Никто и не предлагает в сборку добавлять данный модуль. Просто допилить уже текущий редактор модификаторов
Мои модули: Оптимизация, SEO, Скидки, Отчёты и прочее

Оказываю услуги поддержки и выполнения различного рода задач для сайтов (допилы) в рамках самозанятости (фриланс). Стоимость и прочее зависит от задач. График ненормированный, но дело делаю.
Аватара пользователя
spectrum
Разработчик дополнений
Сообщения: 106
Зарегистрирован: 10.03.2022
Откуда: РФ
Поблагодарил: 63 раз
Спасибо: 46 раз

Re: ocStore Liveopencart 3.0.3.9

Непрочитанное сообщение spectrum »

devimirochnik писал(а): 15 сен 2025, 22:23 Никто и не предлагает в сборку добавлять данный модуль. Просто допилить уже текущий редактор модификаторов

Видимо я "проспал" этот момент. Спасибо
Аватара пользователя
Tom
Разработчик дополнений
Сообщения: 231
Зарегистрирован: 10.03.2022
Откуда: Казахстан - Алматы
Поблагодарил: 11 раз
Спасибо: 100 раз
Контактная информация:

Re: ocStore Liveopencart 3.0.3.9

Непрочитанное сообщение Tom »

devimirochnik писал(а): 15 сен 2025, 20:13 Кстати, код не полностью приложился

Потому что я обозначил только то что нужно добавить.
Ответить