CREATE TABLE `oc_google_base_category_to_category` (
  `google_base_category_id` int(11) NOT NULL,
  `category_id` int(11) NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci;

--
-- Дамп даних таблиці `oc_google_base_category_to_category`
--

INSERT INTO `oc_google_base_category_to_category` (`google_base_category_id`, `category_id`) VALUES
(133, 352),
(133, 453),
(133, 455),
(574, 447),
(604, 454),
(1636, 177),
(1636, 434),
(1636, 490),
(1779, 523),
(1963, 558),
(2077, 452),
(2206, 520),
(2996, 426),
(7244, 559),
(8320, 449),
(500000, 445),
(503740, 456),
(504634, 557),
(504635, 492),
(504638, 446);

-- --------------------------------------------------------

--
-- Структура таблиці `oc_information`
--

CREATE TABLE `oc_information` (
  `information_id` int(11) NOT NULL,
  `bottom` int(1) NOT NULL DEFAULT 0,
  `sort_order` int(3) NOT NULL DEFAULT 0,
  `status` tinyint(1) NOT NULL DEFAULT 1
) ENGINE=MyISAM DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci;

--
-- Дамп даних таблиці `oc_information`
--

INSERT INTO `oc_information` (`information_id`, `bottom`, `sort_order`, `status`) VALUES
(3, 1, 3, 1),
(4, 1, 1, 1),
(5, 1, 4, 1),
(6, 1, 2, 1);

-- --------------------------------------------------------

--
-- Структура таблиці `oc_information_description`
--

CREATE TABLE `oc_information_description` (
  `information_id` int(11) NOT NULL,
  `language_id` int(11) NOT NULL,
  `title` varchar(64) NOT NULL,
  `description` text NOT NULL,
  `meta_title` varchar(255) NOT NULL,
  `meta_h1` varchar(255) NOT NULL,
  `meta_description` varchar(255) NOT NULL,
  `meta_keyword` varchar(255) NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci;

--
-- Дамп даних таблиці `oc_information_description`
--

INSERT INTO `oc_information_description` (`information_id`, `language_id`, `title`, `description`, `meta_title`, `meta_h1`, `meta_description`, `meta_keyword`) VALUES
(4, 1, 'О нас', '&lt;p style=&quot;margin-bottom: 10px;&quot;&gt;&amp;nbsp; Наша команда лично может&amp;nbsp; и хочет помочь нашим клиентам, если у них возникнут трудности с выбором товара. Как по телефону, так и по электронной почте я смогу проконсультировать вас по поводу предназначения товара, его качества, страны - производителя, цены и возможных скидках на него.&amp;nbsp;&lt;/p&gt;&lt;p style=&quot;margin-bottom: 10px;&quot;&gt;&amp;nbsp; Мы находимся на рынке&amp;nbsp; товаров сантехники с 2015 года. За это время мы успели завести партнёрские отношения с некоторыми известными производителями из таких стран, как Украина, Турция, Польша, Россия, Германия и США. Весь товар в обязательном порядке проходит сертификацию в Украине и имеет необходимые документы.&amp;nbsp;&lt;/p&gt;&lt;p style=&quot;margin-bottom: 10px;&quot;&gt;&amp;nbsp; На все товары время от времени действуют различные акции и скидки. Не упустите момент купить необходимый вам товар по более низкой цене! Это порадует не только ребёнка, но и вас, как родителя.&lt;/p&gt;&lt;p style=&quot;margin-bottom: 10px;&quot;&gt;&amp;nbsp; Почему стоит покупать&amp;nbsp; товары именно на chipsantehnik.com.ua. Наша команда&amp;nbsp; может и хочет помочь нашим клиентам, если у них возникнут трудности с выбором товара. Как по телефону, так и по электронной почте мы сможем проконсультировать вас по поводу предназначения товара, его качества, страны - производителя, цены и возможных скидках на него. Так что, звоните и пишите - мы будем рады вам помочь. Вы можете быть уверены, что получите товар хорошего качества, который будет служить вам довольно долгое время, с быстрой доставкой по Украине, за разумные деньги, а порой и с неплохой скидкой.&lt;/p&gt;&lt;p style=&quot;margin-bottom: 10px;&quot;&gt;&amp;nbsp; Если мы смогли&amp;nbsp; вас заинтересовать, то прошу вас ознакомиться с нашим каталогом или акционными товарами. Желаем вам найти то, что вас интересует! Приятного просмотра!&lt;/p&gt;&lt;div style=&quot;color: rgb(51, 51, 51); font-family: Montserrat, sans-serif; font-size: 14px;&quot;&gt;&lt;br&gt;&lt;/div&gt;', '', '', '', ''),
(5, 1, 'Условия соглашения', '&lt;h2 style=&quot;margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding: 0px;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Публичная оферта&lt;/h2&gt;&lt;h3 style=&quot;margin: 5px 0px; padding: 0px;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Преамбула&lt;/h3&gt;&lt;p style=&quot;margin-top: 10px; margin-bottom: 10px; padding: 0px;&quot;&gt;Дорогие посетители сайта chipsantehnik.com.ua перед использованием сайта, просим Вас обратить внимание, что пользование веб-ресурсом в любом виде (в том числе, но не ограничиваясь, размещением Вами Заказов товаров с использованием сайта (chipsantehnik.com.ua), участие в акционных предложениях, программах лояльности, заполнение заявок, форм и т.п.) означает, что Вы ознакомились с условиями использования сайта (chipsantehnik.com.ua и полностью с ними согласились. Данная Публичная оферта обязательная для выполнения обеими сторонами. Если вы не согласны с условиями данной Публичной оферты, Вам необходимо отказаться от использования сайта (chipsantehnik.com.ua).&lt;/p&gt;&lt;h3 style=&quot;margin: 5px 0px; padding: 0px;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Значение терминов&lt;/h3&gt;&lt;p style=&quot;margin-top: 10px; margin-bottom: 10px; padding: 0px;&quot;&gt;Администрация&amp;nbsp;— администрация сайта chipsantehnik.com.ua, зарегистрированное в Украине &amp;nbsp;находится по адресу: Украина, Запорожье, ул. Святого Николая, 6&lt;/p&gt;&lt;p style=&quot;margin-top: 10px; margin-bottom: 10px; padding: 0px;&quot;&gt;Акционный контент&amp;nbsp;— контент, который может быть загружен по акционной цене в течении определенного времени, о котором можно узнать в соответствующем разделе нашего интернет магазина.&lt;/p&gt;&lt;p style=&quot;margin-top: 10px; margin-bottom: 10px; padding: 0px;&quot;&gt;Заказ&amp;nbsp;— правильно оформленный запрос Покупателя (заполненный в соответствии с установленными правилами в разделе «Оформление заказа») адресованный Продавцу, с предложением продажи Товара выбранного на сайте, с указанием его количества.&lt;/p&gt;&lt;p style=&quot;margin-top: 10px; margin-bottom: 10px; padding: 0px;&quot;&gt;Пользователь&amp;nbsp;— совершеннолетнее, дееспособное физическое лицо, которое использует данный веб-ресурс и/или его отдельные возможности, которое дало согласие на использование сайта по условиям Публичной оферты и выполнило ряд нижеперечисленных условий.&lt;/p&gt;&lt;p style=&quot;margin-top: 10px; margin-bottom: 10px; padding: 0px;&quot;&gt;Получатель&amp;nbsp;— лицо, уполномоченное получить товар, указанное Плательщиком в разделе «Оформление заказа». Если данные не указаны в разделе «Оформление заказа», Получателем становится Плательщик. Плательщик — лицо, оплачивающее заказ Покупателя, если данные в разделе «Оформление заказа» не указаны, Плательщиком становится Покупатель.&lt;/p&gt;&lt;p style=&quot;margin-top: 10px; margin-bottom: 10px; padding: 0px;&quot;&gt;Покупатель&amp;nbsp;— Пользователь прошедший процедуру регистрации, который осуществляет заказ и расположен к приобретению/покупке товаров, выставленных на продажу Продавцом и размещенных на сайте Qube.ua.&lt;/p&gt;&lt;p style=&quot;margin-top: 10px; margin-bottom: 10px; padding: 0px;&quot;&gt;Продавец&amp;nbsp;— юридическое лицо или физическое лицо-предприниматель, имеющее возможность добавлять на сайт предложения о покупке размещенных товаров. Продавцом может быть, как Администрация, так и любой пользователь, которого Администрация наделила правами на размещение информации о товаре на сайте chipsantehnik.com.ua. Данные Продавца указываются в документах на передачу товара Покупателю (акт приема-передачи, расходная накладная, товарный чек и т.п., подтверждающих факт передачи товара Покупателю).&lt;/p&gt;&lt;p style=&quot;margin-top: 10px; margin-bottom: 10px; padding: 0px;&quot;&gt;Предложение&amp;nbsp;— информация о товаре, добавленная Продавцом на сайте, имеющая в себе сведения о товаре, его цене, способе оплаты и доставки, информацию о акциях и скидках, а также другие условия покупки товара. Условия сделок, представленных на сайте, устанавливаются Продавцом. Предложение является информацией о возможных условиях приобретения товара.&lt;/p&gt;&lt;p style=&quot;margin-top: 10px; margin-bottom: 10px; padding: 0px;&quot;&gt;Сайт&amp;nbsp;— вeб-ресурс, имеющий адрес в сети интернет (chipsantehnik.com.ua), на отдельных страницах (в разделах) которого размещены правила (условия) регистрации, оформления заказа, акционных предложений, программ лояльности, оплаты, доставки, возврата товара, гарантии и т.п., а также содержащий информацию о Покупателе (контактные данные, заказ, адреса доставки и др.), с помощью которого Пользователь имеет возможность совершить покупку необходимого товара.&lt;/p&gt;&lt;p style=&quot;margin-top: 10px; margin-bottom: 10px; padding: 0px;&quot;&gt;Товар&amp;nbsp;— материальный объект, выставленный на продажу Продавцом, размещенный на сайте, по которому указана стоимость, название, описание, характеристики и указано его наличие.&lt;/p&gt;&lt;p style=&quot;margin-top: 10px; margin-bottom: 10px; padding: 0px;&quot;&gt;Соглашение&amp;nbsp;— данная публичная оферта, включающая все ее правила и дополнения к ней.&lt;/p&gt;&lt;h3 style=&quot;margin: 5px 0px; padding: 0px;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;1.Общие положения&lt;/h3&gt;&lt;p style=&quot;margin-top: 10px; margin-bottom: 10px; padding: 0px;&quot;&gt;1.1. Это Соглашение регулирует порядок доступа пользователя к сведениям, размещенным на Сайте, условия использования сайта, а также возможность передачи товаров и другие условия.&lt;/p&gt;&lt;p style=&quot;margin-top: 10px; margin-bottom: 10px; padding: 0px;&quot;&gt;1.2. Сайт является площадкой для размещения предложений о продаже товаров Продавцом.&lt;/p&gt;&lt;p style=&quot;margin-top: 10px; margin-bottom: 10px; padding: 0px;&quot;&gt;1.3. Данное соглашение в соответствии со ст. 633, ст. 641 и гл. 63 Гражданского кодекса Украины является Публичным договором (офертой) и адресовано неопределенному кругу лиц в независимости от статуса (физическое лицо, юридическое лицо, физическое лицо-предприниматель), желающих совершить покупку товаров, сведения о которых хранятся на Сайте. Поскольку настоящее Соглашение является публичной офертой, то получая разрешение на использование материалов сайта, Пользователь\\Покупатель считается присоединенным к настоящему Соглашению.&lt;/p&gt;&lt;p style=&quot;margin-top: 10px; margin-bottom: 10px; padding: 0px;&quot;&gt;1.4. Сведения о товаре отображаются на Сайте и являются динамичными. Это означает, что сведения могут быть обновлены, изменены и дополнены Администрацией в любое время без предварительного оповещения об этом пользователя. Некоторые изменения вступают в силу после их размещения на Сайте и применяются к любому заказу, оформленному после их публикации.&lt;/p&gt;&lt;p style=&quot;margin-top: 10px; margin-bottom: 10px; padding: 0px;&quot;&gt;1.5. Информация о товаре Продавца, условия его покупки, цены и любые другие сведения Продавца точно отображаются на Сайте.&lt;/p&gt;&lt;p style=&quot;margin-top: 10px; margin-bottom: 10px; padding: 0px;&quot;&gt;1.6. Настоящее Соглашение может быть заключено физическим лицом, достигшим совершеннолетия, обладающего полной дееспособностью, использующим данную платформу и\\или ее отдельные функции, которое дало согласие на условия Соглашения и полностью принимает на себя обязательства, которые могут возникнуть в результате использования сайта и заключения настоящего Соглашения.&lt;/p&gt;&lt;p style=&quot;margin-top: 10px; margin-bottom: 10px; padding: 0px;&quot;&gt;1.7. Заказывая товар на Сайте, Покупатель дает согласие на все условия настоящего Соглашения и его дополнений.&lt;/p&gt;&lt;p style=&quot;margin-top: 10px; margin-bottom: 10px; padding: 0px;&quot;&gt;1.8. Предложение на Сайте не является офертой. Однако Покупатель после ознакомления с Предложением имеет право сделать оферту Продавцу способом выбора товара и указания необходимой информации в разделе «Оформление заказа». Заполнение данной формы считается офертой Покупателя Продавцу на покупку выбранного товара на условиях, указанных в Предложении. Оферту Продавцу может сделать и Пользователь, который не прошел процедуру регистрации, при этом он должен правильно указать все требуемые данные в форму «Оформление заказа» на Сайте.&lt;/p&gt;&lt;p style=&quot;margin-top: 10px; margin-bottom: 10px; padding: 0px;&quot;&gt;1.9. Оферта можно считать принятой Продавцом, если он совершил действия, которые свидетельствуют о принятии оферты Покупателя, а именно: фактически отгрузил товар в соответствии с условиями, предусмотренными офертой Покупателя или дал Покупателю доступ и возможность загрузить контент через Личный кабинет.&lt;/p&gt;&lt;p style=&quot;margin-top: 10px; margin-bottom: 10px; padding: 0px;&quot;&gt;1.10. После получения оферты Покупателя Продавец имеет право предложить приобретение товара на своих условиях, чем было предусмотрено офертой Покупателя. В данном случае такое предложение считается встречной офертой и должно быть согласовано с Покупателем. Принятием встречной оферты считается фактическая оплата, получение Покупателем\\Получателем товара на условиях, определяемых встречной офертой. Продавец вправе отменить такую встречную оферту до момента оплаты и получения товара.&lt;/p&gt;&lt;p style=&quot;margin-top: 10px; margin-bottom: 10px; padding: 0px;&quot;&gt;1.11. В случае ошибочного акцепта Стороны могут изменить условия только в случае своевременного оповещения друг друга о сложившейся ситуации.&lt;/p&gt;&lt;p style=&quot;margin-top: 10px; margin-bottom: 10px; padding: 0px;&quot;&gt;1.12. Достаточным доказательством принятия оферты Продавцом или встречной оферты (то есть согласования Сторонами всех существенных условий продажи товара) является фактическая его оплата, получение товара Покупателем\\Получателем.&lt;/p&gt;&lt;p style=&quot;margin-top: 10px; margin-bottom: 10px; padding: 0px;&quot;&gt;1.13. Принятием Продавцом оферты Покупателя не считается принятием направление Продавцом\\Администрацией средствами электротехнической (sms-информирование, электронная почта, телефон и т.п.) или иной связи сообщение Продавца/Администрации о получении Заказа Покупателя или о сроках его получения и/или о цене товара. Данное сообщение является лишь уведомлением о получении Продавцом оферты Покупателя (но не о принятии) и содержит воспроизведения условий оферты, предоставленной Покупателем.&lt;/p&gt;&lt;p style=&quot;margin-top: 10px; margin-bottom: 10px; padding: 0px;&quot;&gt;1.14. Сведения о товаре представлены непосредственно на Сайте, кроме этого при получении товара, до момента подписания документов, подтверждающих получение товара, Покупатель\\Получатель должен ознакомиться с информацией о товаре, содержащейся на Товаре и/или упаковке и/или в товаросопроводительных документах. Для получения более детальной информации, Покупатель/Получатель должен связаться с Продавцом и задать все интересующие его вопросы, до момента получения товара.&lt;/p&gt;&lt;p style=&quot;margin-top: 10px; margin-bottom: 10px; padding: 0px;&quot;&gt;1.15. Скидки и акции не суммируются между собой.&lt;/p&gt;&lt;p style=&quot;margin-top: 10px; margin-bottom: 10px; padding: 0px;&quot;&gt;1.16. Скидка по промокоду не может быть использована при покупке подарочного сертификата.&lt;/p&gt;&lt;p style=&quot;margin-top: 10px; margin-bottom: 10px; padding: 0px;&quot;&gt;1.17. Вы можете оплатить любой товар на сайте подарочным сертификатом (исключением является покупка нового подарочного сертификата).&lt;/p&gt;&lt;p style=&quot;margin-top: 10px; margin-bottom: 10px; padding: 0px;&quot;&gt;1.18. Владельцем прав интеллектуальной собственности на распространение Контента, представленного на Сайте, является Qube.ua, которая зарегистрированная по адресу: (индекс, город, улица, номер дома). Использование текстовых и фото/видео материалов Сайта возможно только с разрешения Администрации.&lt;/p&gt;&lt;p style=&quot;margin-top: 10px; margin-bottom: 10px; padding: 0px;&quot;&gt;1.19. Данный сайт: (Qube.ua) может быть использован другими субъектами хозяйствования на основе соответствующих договоров аренды и/или оказания услуг и др. В свою очередь эти субъекты хозяйствования могут осуществлять продажу товаров конечным потребителям, и нести ответственность по данной продукции перед конечными потребителями.&lt;/p&gt;&lt;h3 style=&quot;margin: 5px 0px; padding: 0px;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 2. Регистрация на сайте и порядок оформления Заказа&lt;/h3&gt;&lt;p style=&quot;margin-top: 10px; margin-bottom: 10px; padding: 0px;&quot;&gt;2.1. Для осуществления покупок на сайте, Пользователь должен пройти процедуру регистрации. Для этого необходимо перейти во вкладку «Вход» и ввести данные в форму для регистрации. Администратор имеет право отклонить любую заявку о регистрации и/или прекратить чью-то регистрацию на Сайте.&lt;/p&gt;&lt;p style=&quot;margin-top: 10px; margin-bottom: 10px; padding: 0px;&quot;&gt;2.2. Также Пользователь имеет возможность осуществить Заказ товара без создания личного профиля, но при этом он должен правильно указать информацию в обязательных для заполнения полях в разделе «Оформление заказа».&lt;/p&gt;&lt;p style=&quot;margin-top: 10px; margin-bottom: 10px; padding: 0px;&quot;&gt;2.3. Во время регистрации на Сайте, а именно при вводе данных в регистрационную форму и создании Личного профиля, Пользователь берет на себя обязательство предоставлять информацию, выделенную как обязательная, в полной мере, а также Пользователь берет на себя ответственность за достоверность, правильность и актуальность необходимой для предоставления информации. В случае предоставления Зарегистрированным Пользователем ложной информации, Администрация Сайта имеет полное право заблокировать Учетную запись без каких-либо объяснений и компенсаций.&lt;/p&gt;&lt;p style=&quot;margin-top: 10px; margin-bottom: 10px; padding: 0px;&quot;&gt;2.4. При регистрации, а также оформлении Заказа, Покупатель подтверждает свое согласие с правилами и условиями сайта, и обязуется не нарушать установленные порядки.&lt;/p&gt;&lt;p style=&quot;margin-top: 10px; margin-bottom: 10px; padding: 0px;&quot;&gt;2.5. Заказ переходит в стадию выполнения, а договор между Продавцом и Покупателем считается заключенным после подтверждения заказа Покупателем. Данную процедуру можно выполнить с помощью подтверждения через электронную почту или номер мобильного телефона, указанного при регистрации.&lt;/p&gt;&lt;p style=&quot;margin-top: 10px; margin-bottom: 10px; padding: 0px;&quot;&gt;2.6. Продавец может отказать в выполнении Заказа в случае отсутствия товара на складе. Он должен связаться с Покупателем и уведомить его о случившемся. При таком развитии событий, все обязанности сторон, связанные с данным Заказом – прекращаются, а в случае предоплаты или оплаты товара – деньги возвращаются Покупателю.&lt;/p&gt;&lt;p style=&quot;margin-top: 10px; margin-bottom: 10px; padding: 0px;&quot;&gt;2.7. Если Продавец не может связаться с Покупателем для подтверждения заказа – он имеет право отменить этот заказ.&lt;/p&gt;&lt;p style=&quot;margin-top: 10px; margin-bottom: 10px; padding: 0px;&quot;&gt;3. Стоимость и условия оплаты товаров 3.1. Стоимость товара, не включает в себя цену за доставку и указана в соответствующем разделе на сайте.&lt;/p&gt;&lt;p style=&quot;margin-top: 10px; margin-bottom: 10px; padding: 0px;&quot;&gt;3.2. Продавец наделен правом изменять цену на свои товары без предупреждения. Однако Продавец не может менять стоимость уже заказанного товара после его подтверждения согласно правилам продажи.&lt;/p&gt;&lt;p style=&quot;margin-top: 10px; margin-bottom: 10px; padding: 0px;&quot;&gt;3.3. Заказ оплачивается в гривнах, национальной валюте.&lt;/p&gt;&lt;p style=&quot;margin-top: 10px; margin-bottom: 10px; padding: 0px;&quot;&gt;3.4. Покупатель имеет возможность оплатить свой заказ наличными или безналичными средствами при заказе товара, через терминал, курьеру при получении, на точке выдачи служб доставки, почте или в магазине компании Qube.&lt;/p&gt;&lt;p style=&quot;margin-top: 10px; margin-bottom: 10px; padding: 0px;&quot;&gt;3.5. Оператором по вопросам приема заказов, оплаты и доставки является сотрудник компании Qube, которой принадлежит выбранный Пользователем товар.&lt;/p&gt;&lt;p style=&quot;margin-top: 10px; margin-bottom: 10px; padding: 0px;&quot;&gt;3.6. Покупатель должен полностью оплатить товар до момента его передачи Продавцом.&lt;/p&gt;&lt;p style=&quot;margin-top: 10px; margin-bottom: 10px; padding: 0px;&quot;&gt;3.7. В случае отмены заказа Покупателем или Продавцом, уплаченные денежные средства возвращаются Плательщику, за исключением средств, которые были потрачены на доставку до момента отмены заказа.&lt;/p&gt;&lt;p style=&quot;margin-top: 10px; margin-bottom: 10px; padding: 0px;&quot;&gt;3.8. Просмотр каталога товара представленного на веб-сайте Qube.ua, является бесплатным для Пользователей Сайта.&lt;/p&gt;&lt;p style=&quot;margin-top: 10px; margin-bottom: 10px; padding: 0px;&quot;&gt;3.9. При отмене заказа или осуществлении возврата, денежные средства возвращаются Покупателю.&lt;/p&gt;&lt;p style=&quot;margin-top: 10px; margin-bottom: 10px; padding: 0px;&quot;&gt;3.10. Выплата денежных средств при возврате товара, проводиться только после получения Продавцом товара и заполнения ним заявки на возврат.&lt;/p&gt;&lt;p style=&quot;margin-top: 10px; margin-bottom: 10px; padding: 0px;&quot;&gt;3.11. Возврат денежных средств может происходить одним из следующих способов: на банковскую карту, с которой была произведена оплата Покупателем; путем осуществления почтового перевода.&lt;/p&gt;&lt;p style=&quot;margin-top: 10px; margin-bottom: 10px; padding: 0px;&quot;&gt;3.12. Время возврата денежных средств напрямую зависит от способа выплаты (на карту – от одного часа до 3-х банковских дней, при возврате почтовым переводом – до 15 дней).&lt;/p&gt;&lt;p style=&quot;margin-top: 10px; margin-bottom: 10px; padding: 0px;&quot;&gt;3.13. Дополнительные правила и условия возврата денежных средств вы можете найти в соответствующих разделах Сайта.&lt;/p&gt;&lt;p style=&quot;margin-top: 10px; margin-bottom: 10px; padding: 0px;&quot;&gt;3.14. За покупки на сайте Qube.ua могут начисляться бонусные средства, которыми можно осуществлять полную или частичную оплату товаров. Порядок начисления бонусов на счет и правила их использования можно найти в соответствующем разделе Сайта.&lt;/p&gt;&lt;p style=&quot;margin-top: 10px; margin-bottom: 10px; padding: 0px;&quot;&gt;3.15. Продавец может выбирать удобные для него способы оплаты товара, размещенного на Сайте.&lt;/p&gt;&lt;h3 style=&quot;margin: 5px 0px; padding: 0px;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;4. Порядок передачи товара&lt;/h3&gt;&lt;p style=&quot;margin-top: 10px; margin-bottom: 10px; padding: 0px;&quot;&gt;4.1. Доставка товара производится по всей территории Украины, за исключением АР Крым и временно оккупированных территорий.&lt;/p&gt;&lt;p style=&quot;margin-top: 10px; margin-bottom: 10px; padding: 0px;&quot;&gt;4.2. Доставка заказанного товара производится по указанному адресу в течении 5 дней с момента оформления заказа. Доставка по Киеву осуществляется в день подтверждения заказа с заранее согласованными условиями доставки.&lt;/p&gt;&lt;p style=&quot;margin-top: 10px; margin-bottom: 10px; padding: 0px;&quot;&gt;4.3. При заказе от 11000 гривен, доставка осуществляется бесплатно, за счет компании Qube. (исключением является крупногабаритный товар).&lt;/p&gt;&lt;p style=&quot;margin-top: 10px; margin-bottom: 10px; padding: 0px;&quot;&gt;4.5. Покупатель самостоятельно может выбрать способ доставки при оформлении заказа, это может быть: доставка курьером по указанному адресу; получение товара в одном из отделений службы доставки, которое вы указали при оформлении заказа; самовывоз из отделения Qube.ua.&lt;/p&gt;&lt;p style=&quot;margin-top: 10px; margin-bottom: 10px; padding: 0px;&quot;&gt;4.6. Стоимость доставки зависит от ее способа. Ее цена регулируется службой, которая выполняет доставку. Подробнее о ценах и способах доставки вы можете узнать в разделе «Оформление заказа».&lt;/p&gt;&lt;p style=&quot;margin-top: 10px; margin-bottom: 10px; padding: 0px;&quot;&gt;4.7. Продавец отвечает за доставку и контролирует ее осуществление к указанным срокам, однако форс-мажоры, которые могут случатся в ходе непредвиденных обстоятельств, находятся вне компетенции Продавца, поэтому в случае такого исхода, Продавец обязуется информировать Покупателя о новых датах и времени доставки с помощью связи по телефону или электронной почте.&lt;/p&gt;&lt;p style=&quot;margin-top: 10px; margin-bottom: 10px; padding: 0px;&quot;&gt;4.8. Моментом получения товара Покупателем является подписание Получателем\\Покупателем документа, подтверждающего факт принятия заказанного им товара (товарно-транспортная накладная, акт приема-передачи, декларация на пересылку и т.п.) или фактического получения Получателем\\Покупателем товара и совершения им действий, свидетельствующих о принятии товара. Для выдачи Товара Получателю последний обязан предъявить при получении Товара документ, удостоверяющий личность (паспорт, права и тд).&lt;/p&gt;&lt;p style=&quot;margin-top: 10px; margin-bottom: 10px; padding: 0px;&quot;&gt;4.9. Продавец не несет ответственности за действия службы доставки товаров. Поэтому Покупатель, перед получение заказа, обязан проверить целостность товара, наличие чека, гарантии и тд. В случае каких-нибудь эксцессов, Покупатель должен связаться со службой доставки и предъявить им свои претензии.&lt;/p&gt;&lt;p style=&quot;margin-top: 10px; margin-bottom: 10px; padding: 0px;&quot;&gt;4.10. Покупатель имеет полное право нарушить целостность упаковки товара, провести осмотр товара, а также распорядиться товаром любым другим способом по своему усмотрению, но после его полной оплаты. Определенное положение не лишает Покупателя прав, предусмотренных Законом Украины «О защите прав потребителей» о возврате товара надлежащего и ненадлежащего качества.&lt;/p&gt;&lt;p style=&quot;margin-top: 10px; margin-bottom: 10px; padding: 0px;&quot;&gt;4.11. Покупатель имеет право назначить Получателем заказанного товара третье лицо. В данном случае Покупатель должен указать в форме Заказа информацию, необходимую для идентификации Получателя и доставки ему товара. На отношения Сторон в таком случае действуют положения ст. 636 Гражданского кодекса Украины.&lt;/p&gt;&lt;p style=&quot;margin-top: 10px; margin-bottom: 10px; padding: 0px;&quot;&gt;4.12. Продавец на свое усмотрение может выбрать подходящие способы доставки при заказе товара (п. 4.5.).&lt;/p&gt;&lt;h3 style=&quot;margin: 5px 0px; padding: 0px;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 5. Гарантийные условия&lt;/h3&gt;&lt;p style=&quot;margin-top: 10px; margin-bottom: 10px; padding: 0px;&quot;&gt;5.1. При условии правильного обращения с товаром, Продавец отвечает за высокое качество товара в течении срока гарантии. Гарантия предоставляется на разный срок от 14 дней до 38 месяцев, в зависимости от типа товара.&lt;/p&gt;&lt;p style=&quot;margin-top: 10px; margin-bottom: 10px; padding: 0px;&quot;&gt;5.2. Гарантия вступает в силу с момента получения товара Покупателем, что фиксируется в соответствующем документе. Всю информацию, связанную с гарантийными условиями вы сможете найти и ознакомиться в соответствующем разделе Сайта.&lt;/p&gt;&lt;h3 style=&quot;margin: 5px 0px; padding: 0px;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;6. Возврат товара&lt;/h3&gt;&lt;p style=&quot;margin-top: 10px; margin-bottom: 10px; padding: 0px;&quot;&gt;6.1. Возврат товара ненадлежащего качества&lt;/p&gt;&lt;p style=&quot;margin-top: 10px; margin-bottom: 10px; padding: 0px;&quot;&gt;6.1.1. Возврат товара ненадлежащего качества производится в течении времени установленного условиями гарантии для данной категории товаров, по правилам, установленные законодательством, документами на товар и/или указанные Поставщиком при предоставлении сведения о товаре.&lt;/p&gt;&lt;p style=&quot;margin-top: 10px; margin-bottom: 10px; padding: 0px;&quot;&gt;6.1.2. В случае неисправности товара по вине производителя, Продавец обязуется в указанные порядки и сроки, вернуть полную стоимость товара Покупателю, согласно правилам публичной оферты.&lt;/p&gt;&lt;p style=&quot;margin-top: 10px; margin-bottom: 10px; padding: 0px;&quot;&gt;6.1.3. Покупатель должен предъявить свои требования в виде письменного заявления по адресу: Украина, 04080 г. Киев, ул. Кирилловская, 104&lt;/p&gt;&lt;p style=&quot;margin-top: 10px; margin-bottom: 10px; padding: 0px;&quot;&gt;6.1.4. При наличии технического паспорта, гарантийного талона или других документов о товаре, Покупатель обязан предоставить их Продавцу для дальнейшего оказания услуги возврата.&lt;/p&gt;&lt;p style=&quot;margin-top: 10px; margin-bottom: 10px; padding: 0px;&quot;&gt;6.1.5. Продавец вправе отказаться от приемки товара, отправленного Покупателем без предоставления вышеуказанных документов, а также не рассматривать заявление (претензию) Покупателя до устранения допущенных им недостатков. В случае, если Покупатель не направит указанные документы в течение 1 (одного) месяца, обязательства продавца по обеспечению сохранности такого направленного товара прекращаются, и он имеет право распорядиться товаром по своему усмотрению. Продавец не обязан осуществлять обратную отправку товара, заявление по которому оформлено ненадлежащим образом и не представлены надлежащие документы.&lt;/p&gt;&lt;p style=&quot;margin-top: 10px; margin-bottom: 10px; padding: 0px;&quot;&gt;6.1.6. Продавец имеет право отказать Покупателю в возврате средств, если он сможет доказать, что дефекты товара возникли из-за нарушения Покупателем правил использования и хранения товара, а также условий его возврата.&lt;/p&gt;&lt;p style=&quot;margin-top: 10px; margin-bottom: 10px; padding: 0px;&quot;&gt;6.1.7. Требования Покупателя рассматриваются в течение 14 рабочих дней с момента их получения.&lt;/p&gt;&lt;p style=&quot;margin-top: 10px; margin-bottom: 10px; padding: 0px;&quot;&gt;6.2. Дополнительную информацию по поводу возврата товара, вы сможете найти в соответствующих разделах сайта.&lt;/p&gt;&lt;h3 style=&quot;margin: 5px 0px; padding: 0px;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 7. Доступ к Сайту&lt;/h3&gt;&lt;p style=&quot;margin-top: 10px; margin-bottom: 10px; padding: 0px;&quot;&gt;7.1. Администрация прилагает все возможные усилия для обеспечения надлежащего функционирования сайта, однако не несет ответственности за неисполнение или ненадлежащее исполнение обязательств, предусмотренных настоящим Соглашением, а также за вред, причиненный в связи с этим, в результате, но не ограничиваясь: неправомерными действиями третьих лиц; ошибками в работе сайта, обусловленными ошибками в коде, компьютерными вирусами и другими посторонними фрагментами кода в программном обеспечении Сайта; отсутствием соединения между устройством Пользователя и сервером Сайта, а также между сервером Сайта и сетью Интернет; проведением государственными органами и другими должным образом уполномоченными организациями оперативных мероприятий, влияющих на работу Сайта; выполнением обновлений программного обеспечения Сайта; по применимым и вступившим в силу решением уполномоченных органов государственной власти.&lt;/p&gt;&lt;p style=&quot;margin-top: 10px; margin-bottom: 10px; padding: 0px;&quot;&gt;7.2. Администрация оставляет за собой право: заблокировать доступ к Сайту; отменить все покупки, совершенные путем использования неавторизованного доступа; взыскать возмещение убытков, причиненных использованием неавторизованного доступа к Сайту; запретить доступ к оплате бонусным счетом. С целью недопущения несанкционированного автоматического сканирования Сайта, а также использования сайта с целью проведения мошеннических действий и при наличии обоснованного подозрения в злоупотреблениях со стороны Пользователя.&lt;/p&gt;&lt;h3 style=&quot;margin: 5px 0px; padding: 0px;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;8. Ответственность Сторон&lt;/h3&gt;&lt;p style=&quot;margin-top: 10px; margin-bottom: 10px; padding: 0px;&quot;&gt;8.1. Покупатель\\Пользователь сайта дает свое согласие и гарантию не делать какие-либо действия, нарушающие законодательство Украины или нормы международного права, в том числе в сфере интеллектуальной собственности, авторских и/или смежных прав, а также любых действий, которые приводят или могут привести к нарушению нормального функционирования Сайта и его сервисов.&lt;/p&gt;&lt;p style=&quot;margin-top: 10px; margin-bottom: 10px; padding: 0px;&quot;&gt;8.2. В случае несанкционированного доступа к аккаунту Покупателя, Пользователь обязан проинформировать Администрацию о доступе к Сайту третьих лиц. Уведомление Администрации производится с помощью Службы поддержки сайта.&lt;/p&gt;&lt;p style=&quot;margin-top: 10px; margin-bottom: 10px; padding: 0px;&quot;&gt;8.3. Личный профиль на Сайте дает возможность его использовать исключительно одним пользователем Сайта. Передача данных профиля третьим лицам – не допускается. Администрация имеет полное право отменить покупки и заблокировать аккаунт, в случае выявление фактов передачи профиля в коллективное пользование или в пользование третьих лиц.&lt;/p&gt;&lt;p style=&quot;margin-top: 10px; margin-bottom: 10px; padding: 0px;&quot;&gt;8.4. Пользователю/Покупателю запрещается предлагать или использовать сведения, представленные на Сайте (в том числе Контент), в коммерческих целях без письменного согласия его авторов/Правообладателей и Администрации Сайта, а также любым другим способом распространять полученный Контент, его копии.&lt;/p&gt;&lt;p style=&quot;margin-top: 10px; margin-bottom: 10px; padding: 0px;&quot;&gt;8.5. Принимая условия Соглашения, Пользователь\\Покупатель подтверждает, что ознакомлен и согласен с условиями настоящего Соглашения.&lt;/p&gt;&lt;p style=&quot;margin-top: 10px; margin-bottom: 10px; padding: 0px;&quot;&gt;8.6. Комментарии и иные записи Пользователя\\Покупателя на Сайте не должны противоречить требованиям законодательства Украины и общепринятых норм морали и нравственности.&lt;/p&gt;&lt;p style=&quot;margin-top: 10px; margin-bottom: 10px; padding: 0px;&quot;&gt;8.7. Использование материалов Сайта допускается лишь по согласованию с Администрацией. При цитировании, обязательно нужно указать ссылку на сайт.&lt;/p&gt;&lt;p style=&quot;margin-top: 10px; margin-bottom: 10px; padding: 0px;&quot;&gt;8.8. Пользователь/Покупатель несет полную ответственность за правильность информации, указанной при регистрации и оформлении заказа. В случае возникновения проблем с доставкой, отправкой и выдачей товара по причине неверно предоставленной информации, Покупатель компенсирует Продавцу все убытки.&lt;/p&gt;&lt;p style=&quot;margin-top: 10px; margin-bottom: 10px; padding: 0px;&quot;&gt;8.9. Продавец не несет ответственности за финансовые операции, которые осуществляет Плательщик. Ответственность полностью лежит на учреждениях, предоставляющих банковские услуг, выбранных Пользователем при оформлении заказа.&lt;/p&gt;&lt;p style=&quot;margin-top: 10px; margin-bottom: 10px; padding: 0px;&quot;&gt;8.10. Администратор не несет ответственности за работу интернет провайдеров, процессинговых центров, платежных систем, операторов связи, банковских учреждений, сервисов оплаты Visa/MasterCard, в результате которых необходимые сведения, данные не поступили или поступили с опозданием, были утеряны или повреждены. Любые претензии и споры по проведению платежей и получению денежных возвратов Плательщик посылает такой самостоятельно выбранной компании, а в случае невозможности их решения мирным путем они решаются в соответствии с положениями раздела 8 настоящего Соглашения.&lt;/p&gt;&lt;p style=&quot;margin-top: 10px; margin-bottom: 10px; padding: 0px;&quot;&gt;8.11. В случае несоответствия фактических условий продажи, Покупатель имеет право отказаться от получения товара и потребовать возврат полной его стоимости. Этим правом можно воспользоваться до подписания документов о получении товара.&lt;/p&gt;&lt;p style=&quot;margin-top: 10px; margin-bottom: 10px; padding: 0px;&quot;&gt;8.12. Администратор сайта не несет ответственность за работоспособность оборудования, на котором размещен Сайт, доступность Сайта, работу каналов передачи данных и другие технические средства для осуществления Пользователями доступа к Сайту.&lt;/p&gt;&lt;p style=&quot;margin-top: 10px; margin-bottom: 10px; padding: 0px;&quot;&gt;8.13. Ответственность Администратора не может превышать стоимости приобретенных товаров на Сайте и не включает любую упущенную выгоду, косвенные убытки, ущерб, нанесенный третьим лицам.&lt;/p&gt;&lt;p style=&quot;margin-top: 10px; margin-bottom: 10px; padding: 0px;&quot;&gt;8.14. Ответственность за доставку, ее сроки, а также за целостность товара несет компания, обеспечивающая доставку товара.&lt;/p&gt;&lt;p style=&quot;margin-top: 10px; margin-bottom: 10px; padding: 0px;&quot;&gt;8.15. Ответственность Продавца при изменении условий предложения к продаже и продажи товара ограничивается правом Пользователя\\Получателя\\Покупателя отказаться от приобретения товара и потребовать возврата уплаченных за него денежных средств.&lt;/p&gt;&lt;h3 style=&quot;margin: 5px 0px; padding: 0px;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;9. Решение споров и применимое право&lt;/h3&gt;&lt;p style=&quot;margin-top: 10px; margin-bottom: 10px; padding: 0px;&quot;&gt;9.1. Настоящее Соглашение составлено в соответствии с законодательством Украины. Пользователь\\Покупатель, находящийся за пределами этой юрисдикции, полностью согласен подчинить правоотношения, возникающие во время любого пользования Сайтом, законодательству Украины, а эти условия действуют к нему в максимальном разрешенном его юрисдикцией объеме без применения каких-либо коллизионных норм.&lt;/p&gt;&lt;p style=&quot;margin-top: 10px; margin-bottom: 10px; padding: 0px;&quot;&gt;9.2. Стороны подтверждают, что в случае если любое условие этого договора станет или будет признано недействительным в связи с несоответствием закону, это условие не будет приниматься во внимание или же Сторонами будут приниматься меры по изменению договора в той мере, чтобы сделать договор действительным и сохранить в полном объеме намерения Сторон.&lt;/p&gt;&lt;p style=&quot;margin-top: 10px; margin-bottom: 10px; padding: 0px;&quot;&gt;9.3. Если спор между Покупателем и Продавцом невозможно уладить в течении 30 дней, конфликт улаживается в соответствии с действующим законодательством Украины.&lt;/p&gt;&lt;h3 style=&quot;margin: 5px 0px; padding: 0px;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 10. Использование персональных данных Пользователя&lt;/h3&gt;&lt;p style=&quot;margin-top: 10px; margin-bottom: 10px; padding: 0px;&quot;&gt;10.1. Информация, указанная Пользователем при регистрации (ФИО, номер мобильного телефона, e-mail, почтовый адрес и т.п.), является его персональными данными. Персональные данные пользователя являются конфиденциальной информацией, сбор и последующая обработка персональных данных осуществляется Администрацией в соответствии с Законом Украины «О защите персональных данных» и другими нормативно-правовыми актами Украины. Источником сбора персональных данных является информация, непосредственно и добровольно предоставленная Пользователем.&lt;/p&gt;&lt;p style=&quot;margin-top: 10px; margin-bottom: 10px; padding: 0px;&quot;&gt;10.2. Своим согласием с настоящим Соглашением Пользователь добровольно предоставляет Администрации, указанные в регистрационной форме персональные данные для регистрации в информационной системе в качестве Пользователя, а также с целью поддержки долгосрочного сотрудничества с Администрацией Сайта. Пользователь также дает согласие на использование его персональных данных для обработки Заказов на приобретение товаров, получение рекламных и специальных предложений, информации об акциях, розыгрышах, другой информации о деятельности Администрации.&lt;/p&gt;&lt;p style=&quot;margin-top: 10px; margin-bottom: 10px; padding: 0px;&quot;&gt;10.3. Пользователь дает право Администрации осуществлять обработку его персональных данных, в том числе: записывать персональные данные в базы данных Администрации (без дополнительного уведомления Пользователя об этом), осуществлять пожизненное хранение данных, их накопления, обновление, изменение (в случае необходимости).&lt;/p&gt;&lt;p style=&quot;margin-top: 10px; margin-bottom: 10px; padding: 0px;&quot;&gt;10.4. Владельцем предоставленных Пользователем персональных данных является Qube.ua, которая зарегистрирована на территории Украины по адресу: Украина, 04080 г. Киев, ул. Кирилловская, 104&lt;/p&gt;&lt;p style=&quot;margin-top: 10px; margin-bottom: 10px; padding: 0px;&quot;&gt;10.5. Для правки своих персональных данных, в случае их изменения, Пользователь должен предоставить новые сведения Администрации с помощью Службы поддержки или путем самостоятельного исправления правильности данных в соответствующем разделе Личного профиля. В случае невыполнения Пользователем данного требования, Администрация не несет ответственности за неблагоприятные последствия, связанные с использованием устаревших данных.&lt;/p&gt;&lt;p style=&quot;margin-top: 10px; margin-bottom: 10px; padding: 0px;&quot;&gt;10.6. При своем желании Пользователь Сайта может запретить использование своих персональных данных. Для этого Пользователю необходимо создать обращение к Службе поддержки по телефону, указанному на Сайте, с соответствующим сообщением.&lt;/p&gt;&lt;p style=&quot;margin-top: 10px; margin-bottom: 10px; padding: 0px;&quot;&gt;10.7. Администрация не принимает регистрационные данные Пользователя в случае их неправильной подачи.&lt;/p&gt;&lt;p style=&quot;margin-top: 10px; margin-bottom: 10px; padding: 0px;&quot;&gt;10.8. Администрация обязана информировать Пользователя о его возможностях и вознаграждениях. Администрация не несет ответственность за сообщения, которые не были доставлены не по их вине.&lt;/p&gt;&lt;p style=&quot;margin-top: 10px; margin-bottom: 10px; padding: 0px;&quot;&gt;10.9. Для целей, предусмотренных п. 10.2. Соглашения, Пользователь предоставляет Администрации право отправлять ему любую информацию коммерческого и/или информационного характера, а также информацию о других потребительских предложениях по почте, электронной почте, телефону, SMS, viber-сообщениях, осуществлять звонки на указанный в регистрационной форме Учетной записи телефонный мобильный номер.&lt;/p&gt;&lt;p style=&quot;margin-top: 10px; margin-bottom: 10px; padding: 0px;&quot;&gt;10.10. Информация о пользователе, указанная при регистрации, является конфиденциальной. Доступ к данным имеют исключительно уполномоченные лица Администрации и сам Пользователь, а также эти данные могут быть предоставлены по требованию правоохранительных и/или других органов в соответствии с действующим законодательством. 10.11. Ответственность за неправдивость указанных данных в Личном профиле несет Пользователь.&lt;/p&gt;&lt;h3 style=&quot;margin: 5px 0px; padding: 0px;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 11. Другие условия&lt;/h3&gt;&lt;p style=&quot;margin-top: 10px; margin-bottom: 10px; padding: 0px;&quot;&gt;11.1. Все правила и условия осуществления/выполнения отдельных действий/операций, размещенные в соответствующих разделах сайта, являются неотъемлемыми частями (как Приложения) настоящего Соглашения, определяющие обязательства для обеих сторон. В случае если условия, зафиксированные в тексте настоящего Соглашения, и условия, указанные в его приложениях (разделах сайта) отличаются, Стороны руководствуются условиями, определенными в приложениях. Продажа товара Продавцом Покупателю регулируется настоящим Договором, а также Законом Украины «Об электронной коммерции», Законом Украины «О защите прав потребителей», Правилами продажи товаров на заказ и вне торг', '', '', '', ''),
(3, 1, 'Политика безопасности', '&lt;p style=&quot;margin-bottom: 10px;&quot;&gt;&lt;span style=&quot;color: rgb(51, 51, 51); font-family: Montserrat, sans-serif; font-size: 14px;&quot;&gt;&amp;nbsp;&lt;/span&gt;В этом разделе мы объясним вам с какой целью мы собираем ваши личные данные и как будем их использовать.&lt;/p&gt;&lt;p style=&quot;margin-bottom: 10px;&quot;&gt;&amp;nbsp; Как мы получаем информацию о вас? Когда вы регистрируетесь на сайте, мы получаем такие данные о вас, как ваши имя, фамилия, телефон, адрес электронной почты и адрес, на который будем отправлять товары. Данная информация необходима нам для того, чтобы знать куда и на чьё имя отправлять заказ, и к кому обращаться в случае, если возникнут некоторые вопросы или заминки. Здесь стоит указать реальные данные, чтобы вы были уверены, что заказ точно дойдёт до вас.&lt;/p&gt;&lt;p style=&quot;margin-bottom: 10px;&quot;&gt;&amp;nbsp; Также мы собираем анонимные данные о каждом посетителе сайта &quot;chipsantehnik.com.ua&quot;. Среди таких данных можно выделить: количество кликов на сайте; дата и время вашего визита на наш сайт; адрес веб - страницы, с которой вы перешли в интернет - магазин &quot;chipsantehnik.com.ua&quot;; страницы, которые вы просматривали на данном сайте; вид браузера или компьютера, с которого вы зашли в интернет - магазин.&amp;nbsp;&lt;/p&gt;&lt;p style=&quot;margin-bottom: 10px;&quot;&gt;&amp;nbsp; Защита вашей личной информации. Мы прилагаем максимум усилий для охраны той информации, которую вы нам предоставили.&amp;nbsp;&amp;nbsp;Мы знаем, что несем ответственность в соответствии с законодательством Украины о защите персональных данных. Мы стараемся поддерживать высокий уровень безопасности для обеспечения защиты личной информации при использовании интернет - магазина&amp;nbsp;&quot;chipsantehnik.com.ua&quot;, в том числе, выполняя требования законодательства о защите персональных данных.&lt;/p&gt;&lt;p style=&quot;margin-bottom: 10px;&quot;&gt;&amp;nbsp; Хотим предупредить, что мы можем изменить настоящую Политику безопасности в любое время. Пожалуйста, почаще заходите на эту страницу. Если мы будем вносить изменения в то, как мы собираем и используем информацию, мы сообщим вам здесь, и обновим редакцию настоящей Политики безопасности. Продолжение использования Вами нашего сайта и выход на него автоматически означает ваше согласие с такими изменениями.&lt;/p&gt;\r\n', '', '', '', ''),
(6, 4, 'Інформація про доставку', '&lt;p&gt;&amp;nbsp; Придбання товару тільки онлайн. Доставка по всіх містах України здійснюється переважно Новою поштою за тарифами нової пошти за рахунок клієнта і може доставлятися на відділення або за адресою. Оплата зворотним платежом (2% + 40 грн = згідно з тарифами Нової пошти) або на картку Приват банку (комісія 0,5%). Вантаж завжди страхується на повну вартість + 0,5% суми товару.&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; Якщо відправляється вантаж, який вимагає дерев\'яний каркас (унітаз, душ кабіна тощо), то + 210 грн за 0,5 м3 каркаса, при такому замовленні потрібна передоплата не менше 500 грн.&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp;Також готові відправити Ваше замовлення, будь-яким зручним для Вас способом - іншим перевізником,&amp;nbsp; або запропонуйте Ваш варіант.&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; Безналичный расчет возможен в некоторых случаях в среднем +8 % к цене.&lt;/p&gt;&lt;p class=&quot;justifyleft&quot; style=&quot;margin-top: 13px; margin-bottom: 8px; padding: 0px; border: 0px; vertical-align: baseline; line-height: 17px;&quot;&gt;&amp;nbsp; Возврат происходит в течении 14 дней с момента подтверждения заказа - поэтому большая просьба при получении товара у курьера или на Новой Почте проверить весь товар на целостность и соответствия артикулов, после этого дома удостоверится что он вам подходит по размерам, цвету, внешнему виду и т.д. - если что то не устраивает сообщите нам как можно скорее и нужно будет назад отправить товар нам Новой почтой или вернуть нам на склад, главное что бы мы успели его вернуть обратно поставщику и что бы товарный вид и комплектация была такая же как и при получении товара.&lt;/p&gt;', '', '', '', '');
INSERT INTO `oc_information_description` (`information_id`, `language_id`, `title`, `description`, `meta_title`, `meta_h1`, `meta_description`, `meta_keyword`) VALUES
(3, 4, 'Політика безпеки', '&lt;p&gt;&amp;nbsp; У цьому розділі ми пояснимо вам з якою метою ми збираємо ваші особисті дані та як будемо їх використовувати.&lt;/p&gt;&lt;p&gt;&amp;nbsp; Як ми отримуємо інформацію про Вас? Коли ви реєструєтеся на сайті, ми отримуємо такі дані про вас, як ваше ім\'я, прізвище, телефон, адресу електронної пошти та адресу, на яку будемо надсилати товари. Дана інформація необхідна нам для того, щоб знати куди і на чиє ім\'я відправляти замовлення, і до кого звертатись у випадку, якщо виникнуть деякі запитання чи затримки. Тут варто вказати реальні дані, щоб ви були впевнені, що замовлення точно дійде до вас.&lt;br&gt;&lt;/p&gt;&lt;p&gt;&lt;br&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;Також ми збираємо анонімні дані щодо кожного відвідувача сайту &quot;chipsantehnik.com.ua&quot;. Серед таких даних можна назвати: кількість кліків на сайті; дата та час вашого візиту на наш сайт; адреса веб-сторінки, з якої ви перейшли в інтернет-магазин &quot;chipsantehnik.com.ua&quot;; сторінки, які ви переглядали на цьому сайті; вид браузера або комп\'ютера, з якого ви зайшли в інтернет-магазин.&lt;/p&gt;&lt;p&gt;&amp;nbsp; Захист вашої особистої інформації Ми докладаємо максимум зусиль для охорони інформації, яку ви нам надали. Ми знаємо, що відповідаємо відповідно до законодавства України про захист персональних даних. Ми намагаємось підтримувати високий рівень безпеки для забезпечення захисту особистої інформації при використанні інтернет-магазину &quot;chipsantehnik.com.ua&quot;, в тому числі, виконуючи вимоги законодавства щодо захисту персональних даних.&lt;br&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp; Хочемо попередити, що ми можемо змінити цю Політику безпеки у будь-який час. Будь ласка, частіше заходьте на цю сторінку. Якщо ми будемо вносити зміни до того, як ми збираємо та використовуємо інформацію, ми повідомимо вас тут, і оновимо редакцію цієї Політики безпеки. Продовження використання Вами нашого сайту та вихід на нього автоматично означає вашу згоду з такими змінами.&lt;br&gt;&lt;/p&gt;\r\n', '', '', '', ''),
(5, 4, 'Угода користувача', '&lt;h2 style=&quot;margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding: 0px;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Публічна оферта&lt;/h2&gt;&lt;h3 style=&quot;margin: 5px 0px; padding: 0px;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Преамбула&lt;/h3&gt;&lt;p style=&quot;margin-top: 10px; margin-bottom: 10px; padding: 0px;&quot;&gt;Дорогі відвідувачі сайту&amp;nbsp;chipsantehnik.com.ua, перед використанням сайту, просимо Вас звернути увагу, що користування веб-ресурсом в будь-якому вигляді (в тому числі, але не обмежуючись, розміщенням Вами Замовлень товарів з використанням сайту (chipsantehnik.com.ua), участь в акційних пропозиціях , програмах лояльності, заповнення заявок, форм і т.п.) означає, що Ви ознайомилися з умовами використання сайту (chipsantehnik.com.ua) і повністю з ними погодилися. Дана Публічна оферта обов\'язкова для виконання обома сторонами. Якщо ви не згодні з умовами даної Публічної оферти, Вам необхідно відмовитися від використання сайту (chipsantehnik.com.ua).&lt;/p&gt;&lt;h3 style=&quot;margin: 5px 0px; padding: 0px;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Значення термінів&lt;/h3&gt;&lt;p style=&quot;margin-top: 10px; margin-bottom: 10px; padding: 0px;&quot;&gt;Адміністрація&amp;nbsp;- адміністрація сайтуchipsantehnik.com.ua, зареєстроване в Україні &amp;nbsp;і знаходиться за адресою: Україна, м Запоріжжя вул&amp;nbsp; &amp;nbsp;Святого Миколая, 6&lt;/p&gt;&lt;p style=&quot;margin-top: 10px; margin-bottom: 10px; padding: 0px;&quot;&gt;Акційний контент&amp;nbsp;- контент, який може бути завантажений за акційною ціною протягом певного часу, про який можна дізнатися у відповідному розділі нашого інтернет магазину.&lt;/p&gt;&lt;p style=&quot;margin-top: 10px; margin-bottom: 10px; padding: 0px;&quot;&gt;Замовлення&amp;nbsp;- правильно оформлений запит Покупця (заповнений відповідно до встановлених правил в розділі «Оформлення замовлення») адресований Продавцю, з пропозицією продажу Товару обраного на сайті, із зазначенням його кількості.&lt;/p&gt;&lt;p style=&quot;margin-top: 10px; margin-bottom: 10px; padding: 0px;&quot;&gt;Користувач&amp;nbsp;- повнолітня, дієздатна фізична особа, яка використовує даний веб-ресурс і / або його окремі можливості, яка дала згоду на використання сайту згідно умов Публічної оферти і виконала ряд нижчеперелічених умов.&lt;/p&gt;&lt;p style=&quot;margin-top: 10px; margin-bottom: 10px; padding: 0px;&quot;&gt;Одержувач&amp;nbsp;- особа, уповноважена отримати товар, вказана Платником в розділі «Оформлення замовлення». Якщо дані не вказані в розділі «Оформлення замовлення», Одержувачем стає Платник.&lt;/p&gt;&lt;p style=&quot;margin-top: 10px; margin-bottom: 10px; padding: 0px;&quot;&gt;Платник&amp;nbsp;- особа, яка оплачує замовлення Покупця, якщо дані в розділі «Оформлення замовлення» не вказані, Платником стає Покупець.&lt;/p&gt;&lt;p style=&quot;margin-top: 10px; margin-bottom: 10px; padding: 0px;&quot;&gt;Покупець&amp;nbsp;- Користувач пройшов процедуру реєстрації, який здійснює замовлення і розташований до придбання / купівлі товарів, виставлених на продаж Продавцем і розміщених на сайті&amp;nbsp;chipsantehnik.com.ua&lt;/p&gt;&lt;p style=&quot;margin-top: 10px; margin-bottom: 10px; padding: 0px;&quot;&gt;Продавець&amp;nbsp;- юридична особа або фізична особа-підприємець, яка має можливість додавати на сайт пропозиції про покупку розміщених товарів. Продавцем може бути, як Адміністрація, так і будь-який користувач, якого Адміністрація наділила правами на розміщення інформації про товар на сайті&amp;nbsp;chipsantehnik.com.ua. Дані Продавця вказуються в документах на передачу товару Покупцеві (акт прийому-передачі, видаткова накладна, товарний чек і т.п., що підтверджують факт передачі товару Покупцеві).&lt;/p&gt;&lt;p style=&quot;margin-top: 10px; margin-bottom: 10px; padding: 0px;&quot;&gt;Пропозиція&amp;nbsp;- інформація про товар, додана Продавцем на сайті, що має в собі відомості про товар, його ціну, спосіб оплати і доставки, інформацію про акції і знижки, а також інші умови покупки товару. Умови угод, представлених на сайті, встановлюються Продавцем. Пропозиція є інформацією про можливі умови придбання товару.&lt;/p&gt;&lt;p style=&quot;margin-top: 10px; margin-bottom: 10px; padding: 0px;&quot;&gt;Сайт&amp;nbsp;- вeб-ресурс, який має адресу в мережі інтернет (chipsantehnik.com.ua), на окремих сторінках (в розділах) якого розміщено правила (умови) реєстрації, оформлення замовлення, акційних пропозицій, програм лояльності, оплати, доставки, повернення товару, гарантії та т.п., а також містить інформацію про Покупця (контактні дані, замовлення, адреси доставки та ін.), за допомогою якого Користувач має можливість зробити покупку необхідного товару.&lt;/p&gt;&lt;p style=&quot;margin-top: 10px; margin-bottom: 10px; padding: 0px;&quot;&gt;Товар&amp;nbsp;- матеріальний об\'єкт, виставлений на продаж Продавцем, розміщений на сайті, за яким зазначена вартість, назву, опис, характеристики та вказано його наявність. Угода - дана публічна оферта, що включає всі її правила і доповнення до неї.&lt;/p&gt;&lt;h3 style=&quot;margin: 5px 0px; padding: 0px;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 1. Загальні положення&lt;/h3&gt;&lt;p style=&quot;margin-top: 10px; margin-bottom: 10px; padding: 0px;&quot;&gt;1.1. Ця Угода регулює порядок доступу користувача до відомостей, розміщених на Сайті, умови використання сайту, а також можливість передачі товарів та інші умови.&lt;/p&gt;&lt;p style=&quot;margin-top: 10px; margin-bottom: 10px; padding: 0px;&quot;&gt;1.2. Сайт є майданчиком для розміщення пропозицій про продаж товарів Продавцем.&lt;/p&gt;&lt;p style=&quot;margin-top: 10px; margin-bottom: 10px; padding: 0px;&quot;&gt;1.3. Дана угода відповідно до ст. 633, ст. 641 і гл. 63 Цивільного кодексу України є Публічним договором (офертою) і адресовано невизначеному колу осіб в незалежності від статусу (фізична особа, юридична особа, фізична особа-підприємець), що бажають здійснити покупку товарів, відомості про яких зберігаються на Сайті. Оскільки ця Угода є публічною офертою, то отримуючи дозвіл на використання матеріалів сайту, Користувач \\ Покупець вважається приєднаним до цієї Угоди.&lt;/p&gt;&lt;p style=&quot;margin-top: 10px; margin-bottom: 10px; padding: 0px;&quot;&gt;1.4. Відомості про товар відображаються на Сайті і є динамічними. Це означає, що відомості можуть бути оновлені, змінені і доповнені Адміністрацією в будь-який час без попереднього сповіщення про це користувача. Деякі зміни вступають в силу після їх розміщення на Сайті і застосовуються до будь-якого замовлення, оформленим після їх публікації.&lt;/p&gt;&lt;p style=&quot;margin-top: 10px; margin-bottom: 10px; padding: 0px;&quot;&gt;1.5. Інформація про товар Продавця, умови його покупки, ціни і будь-які інші відомості Продавця точно відображаються на Сайті.&lt;/p&gt;&lt;p style=&quot;margin-top: 10px; margin-bottom: 10px; padding: 0px;&quot;&gt;1.6. Ця Угода може бути укладена фізичною особою, яка досягла повноліття, що володіє повною дієздатністю, що використовують дану платформу і \\ або її окремі функції, яке дало згоду на умови Угоди і повністю приймає на себе зобов\'язання, які можуть виникнути в результаті використання сайту і укладення цієї Угоди.&lt;/p&gt;&lt;p style=&quot;margin-top: 10px; margin-bottom: 10px; padding: 0px;&quot;&gt;1.7. Замовляючи товар на Сайті, Покупець дає згоду на всі умови цієї Угоди та її додатків.&lt;/p&gt;&lt;p style=&quot;margin-top: 10px; margin-bottom: 10px; padding: 0px;&quot;&gt;1.8. Пропозиція на Сайті не є офертою. Однак Покупець після ознайомлення з Пропозицією має право зробити оферту Продавцю способом вибору товару і вказівки необхідної інформації в розділі «Оформлення замовлення». Заповнення даної форми вважається офертою Покупця Продавцю на покупку обраного товару на умовах, зазначених в Пропозиції. Оферту Продавцю може зробити і Користувач, який не пройшов процедуру реєстрації, при цьому він повинен правильно вказати всі необхідні дані в форму «Оформлення замовлення» на Сайті.&lt;/p&gt;&lt;p style=&quot;margin-top: 10px; margin-bottom: 10px; padding: 0px;&quot;&gt;1.9. Оферта можна вважати прийнятою Продавцем, якщо він вчинив дії, які свідчать про прийняття оферти Покупця, а саме: фактично відвантажив товар відповідно до умов, передбачених офертою Покупця або дав Покупцеві доступ і можливість завантажити контент через Особистий кабінет.&lt;/p&gt;&lt;p style=&quot;margin-top: 10px; margin-bottom: 10px; padding: 0px;&quot;&gt;1.10. Після отримання оферти Покупця Продавець має право запропонувати придбання товару на своїх умовах, ніж було передбачено офертою Покупця. В даному випадку така пропозиція вважається зустрічній офертою і має бути погоджено з Покупцем. Прийняттям зустрічній оферти вважається фактична оплата, отримання Покупцем \\ Одержувачем товару на умовах, що визначаються зустрічній офертою. Продавець має право скасувати таку зустрічну оферту до моменту оплати і отримання товару.&lt;/p&gt;&lt;p style=&quot;margin-top: 10px; margin-bottom: 10px; padding: 0px;&quot;&gt;1.11. У разі помилкового акцепту Сторони можуть змінити умови тільки в разі своєчасного оповіщення один одного про ситуації, що склалася.&lt;/p&gt;&lt;p style=&quot;margin-top: 10px; margin-bottom: 10px; padding: 0px;&quot;&gt;1.12. Достатнім доказом прийняття оферти Продавцем або зустрічної оферти (тобто узгодження Сторонами всіх істотних умов продажу товару) є фактична його оплата, отримання товару Покупцем \\ Одержувачем.&lt;/p&gt;&lt;p style=&quot;margin-top: 10px; margin-bottom: 10px; padding: 0px;&quot;&gt;1.13. Прийняттям Продавцем оферти Покупця не рахується прийняттям напрямок Продавцем \\ Адміністрацією засобами електротехнічної (sms-інформування, електронна пошта, телефон і т.п.) або іншого зв\'язку повідомлення Продавця / Адміністрації про одержання Замовлення Покупця або про терміни його отримання і / або про ціну товару . Дане повідомлення є лише повідомленням про отримання Продавцем оферти Покупця (але не про прийняття) і містить відтворення умов оферти, наданої Покупцем.&lt;/p&gt;&lt;p style=&quot;margin-top: 10px; margin-bottom: 10px; padding: 0px;&quot;&gt;1.14. Відомості про товар представлені безпосередньо на Сайті, крім цього при отриманні товару, до моменту підписання документів, що підтверджують отримання товару, Покупець \\ Одержувач повинен ознайомитися з інформацією про товар, що міститься на Товарі і / або упаковці та / або в товаросупровідних документах. Для отримання більш детальної інформації, Покупець / Одержувач повинен зв\'язатися з Продавцем і задати всі його питання, до моменту отримання товару.&lt;/p&gt;&lt;p style=&quot;margin-top: 10px; margin-bottom: 10px; padding: 0px;&quot;&gt;1.15. Знижки та акції не сумуються між собою.&lt;/p&gt;&lt;p style=&quot;margin-top: 10px; margin-bottom: 10px; padding: 0px;&quot;&gt;1.16. Знижка по промокодом не може бути використана при покупці подарункового сертифікату.&lt;/p&gt;&lt;p style=&quot;margin-top: 10px; margin-bottom: 10px; padding: 0px;&quot;&gt;1.17. Ви можете сплатити будь-який товар на сайті подарунковим сертифікатом (винятком є ​​покупка нового подарункового сертифікату).&lt;/p&gt;&lt;p style=&quot;margin-top: 10px; margin-bottom: 10px; padding: 0px;&quot;&gt;1.18. Власником прав інтелектуальної власності на поширення Контенту, представленого на Сайті, є компанія Qube.ua, яка зареєстрована за адресою: (індекс, місто, вулиця, номер будинку). Використання текстових та фото / відео матеріалів Сайту можливе лише з дозволу Адміністрації.&lt;/p&gt;&lt;p style=&quot;margin-top: 10px; margin-bottom: 10px; padding: 0px;&quot;&gt;1.19. Даний сайт: (Qube.ua) може бути використаний іншими суб\'єктами господарювання на основі відповідних договорів оренди та / або надання послуг та ін. В свою чергу ці суб\'єкти господарювання можуть здійснювати продаж товарів кінцевим споживачам, і нести відповідальність за даної продукції перед кінцевими споживачами.&lt;/p&gt;&lt;h3 style=&quot;margin: 5px 0px; padding: 0px;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;2. Реєстрація на сайті і порядок оформлення Замовлення&lt;/h3&gt;&lt;p style=&quot;margin-top: 10px; margin-bottom: 10px; padding: 0px;&quot;&gt;2.1. Для здійснення покупок на сайті, Користувач повинен пройти процедуру реєстрації. Для цього необхідно перейти у вкладку «Вхід» і ввести дані в форму для реєстрації. Адміністратор має право відхилити будь-яку заявку про реєстрацію та / або припинити чиюсь реєстрацію на Сайті.&lt;/p&gt;&lt;p style=&quot;margin-top: 10px; margin-bottom: 10px; padding: 0px;&quot;&gt;2.2. Також Користувач має можливість здійснити Замовлення товару без створення особистого профілю, але при цьому він повинен правильно вказати інформацію в обов\'язкових для заповнення полях в розділі «Оформлення замовлення».&lt;/p&gt;&lt;p style=&quot;margin-top: 10px; margin-bottom: 10px; padding: 0px;&quot;&gt;2.3. Під час реєстрації на Сайті, а саме при введенні даних в реєстраційну форму та створенні Особистого профілю, Користувач бере на себе зобов\'язання надавати інформацію, виділену як обов\'язкова, в повній мірі, а також Користувач бере на себе відповідальність за достовірність, правильність та актуальність необхідної для надання інформації. У разі надання зареєстрованим Користувачем неправдивої інформації, Адміністрація Сайту має повне право заблокувати Обліковий запис без будь-яких пояснень і компенсацій.&lt;/p&gt;&lt;p style=&quot;margin-top: 10px; margin-bottom: 10px; padding: 0px;&quot;&gt;2.4. При реєстрації, а також оформленні Замовлення, Покупець підтверджує свою згоду з правилами і умовами сайту, і зобов\'язується не порушувати встановлені порядки.&lt;/p&gt;&lt;p style=&quot;margin-top: 10px; margin-bottom: 10px; padding: 0px;&quot;&gt;2.5. Замовлення переходить в стадію виконання, а договір між Продавцем і Покупцем вважається укладеним після підтвердження замовлення Покупцем. Дану процедуру можна виконати за допомогою підтвердження через електронну пошту або номер мобільного телефону, зазначеного при реєстрації.&lt;/p&gt;&lt;p style=&quot;margin-top: 10px; margin-bottom: 10px; padding: 0px;&quot;&gt;2.6. Продавець може відмовити у виконанні Замовлення в разі відсутності товару на складі. Він повинен зв\'язатися з Покупцем і повідомити його про те, що трапилося. При такому розвитку подій, все обов\'язки сторін, пов\'язані з даними Замовленням - припиняються, а в разі передоплати або оплати товару - гроші повертаються Покупцю.&lt;/p&gt;&lt;p style=&quot;margin-top: 10px; margin-bottom: 10px; padding: 0px;&quot;&gt;2.7. Якщо Продавець не може зв\'язатися з Покупцем для підтвердження замовлення - він має право скасувати це замовлення.&lt;/p&gt;&lt;h3 style=&quot;margin: 5px 0px; padding: 0px;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 3. Вартість і умови оплати товарів&lt;/h3&gt;&lt;p style=&quot;margin-top: 10px; margin-bottom: 10px; padding: 0px;&quot;&gt;3.1. Вартість товару, не включає в себе ціну за доставку і вказана у відповідному розділі на сайті.&lt;/p&gt;&lt;p style=&quot;margin-top: 10px; margin-bottom: 10px; padding: 0px;&quot;&gt;3.2. Продавець має право змінювати ціну на свої товари без попередження. Однак Продавець не може змінювати вартість вже замовленого товару після його підтвердження згідно з правилами продажу.&lt;/p&gt;&lt;p style=&quot;margin-top: 10px; margin-bottom: 10px; padding: 0px;&quot;&gt;3.3. Замовлення оплачується в гривнях, національній валюті.&lt;/p&gt;&lt;p style=&quot;margin-top: 10px; margin-bottom: 10px; padding: 0px;&quot;&gt;3.4. Покупець має можливість оплатити своє замовлення готівкою або безготівковими коштами при замовленні товару, через термінал, кур\'єру при отриманні, на точці видачі служб доставки, поштою або в магазині компанії Qube.&lt;/p&gt;&lt;p style=&quot;margin-top: 10px; margin-bottom: 10px; padding: 0px;&quot;&gt;3.5. Оператором з питань прийому замовлень, оплати і доставки є співробітник компанії Qube, якій належить обраний Користувачем товар.&lt;/p&gt;&lt;p style=&quot;margin-top: 10px; margin-bottom: 10px; padding: 0px;&quot;&gt;3.6. Покупець повинен повністю оплатити товар до моменту його передачі Продавцем.&lt;/p&gt;&lt;p style=&quot;margin-top: 10px; margin-bottom: 10px; padding: 0px;&quot;&gt;3.7. У разі скасування замовлення Покупцем або Продавцем, сплачені грошові кошти повертаються Платнику, за винятком коштів, які були витрачені на доставку до моменту скасування замовлення.&lt;/p&gt;&lt;p style=&quot;margin-top: 10px; margin-bottom: 10px; padding: 0px;&quot;&gt;3.8. Перегляд каталогу товару представленого на веб-сайті Qube.ua, є безкоштовним для користувачів Сайту.&lt;/p&gt;&lt;p style=&quot;margin-top: 10px; margin-bottom: 10px; padding: 0px;&quot;&gt;3.9. При скасуванні замовлення або здійсненні повернення, грошові кошти повертаються Покупцю.&lt;/p&gt;&lt;p style=&quot;margin-top: 10px; margin-bottom: 10px; padding: 0px;&quot;&gt;3.10. Виплата грошових коштів при поверненні товару, проводитися тільки після отримання Продавцем товару та заповнення ним заявки на повернення.&lt;/p&gt;&lt;p style=&quot;margin-top: 10px; margin-bottom: 10px; padding: 0px;&quot;&gt;3.11. Повернення грошових коштів може відбуватися одним із таких способів: на банківську карту, з якої була проведена оплата Покупцем; шляхом здійснення поштового переказу.&lt;/p&gt;&lt;p style=&quot;margin-top: 10px; margin-bottom: 10px; padding: 0px;&quot;&gt;3.12. Час повернення грошових коштів безпосередньо залежить від способу виплати (на карту - від однієї години до 3-х банківських днів, при поверненні поштовим переказом - до 15 днів).&lt;/p&gt;&lt;p style=&quot;margin-top: 10px; margin-bottom: 10px; padding: 0px;&quot;&gt;3.13. Додаткові правила і умови повернення грошових коштів ви можете знайти у відповідних розділах Сайту.&lt;/p&gt;&lt;p style=&quot;margin-top: 10px; margin-bottom: 10px; padding: 0px;&quot;&gt;3.14. За покупки на сайті Qube.ua можуть нараховуватися бонусні кошти, якими можна здійснювати повну або часткову оплату товарів. Порядок нарахування бонусів на рахунок і правила їх використання можна знайти у відповідному розділі сайту.&lt;/p&gt;&lt;p style=&quot;margin-top: 10px; margin-bottom: 10px; padding: 0px;&quot;&gt;3.15. Продавець може вибирати зручні для нього способи оплати товару, розміщеного на Сайті.&lt;/p&gt;&lt;h3 style=&quot;margin: 5px 0px; padding: 0px;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;4. Порядок передачі товару&lt;/h3&gt;&lt;p style=&quot;margin-top: 10px; margin-bottom: 10px; padding: 0px;&quot;&gt;4.1. Доставка товару проводиться по всій території України, за винятком АР Крим і тимчасово окупованих територій.&lt;/p&gt;&lt;p style=&quot;margin-top: 10px; margin-bottom: 10px; padding: 0px;&quot;&gt;4.2. Доставка замовленого товару здійснюється за вказаною адресою протягом 5 днів з моменту оформлення замовлення. Доставка по Києву здійснюється в день підтвердження замовлення з попередньо узгодженими умовами доставки.&lt;/p&gt;&lt;p style=&quot;margin-top: 10px; margin-bottom: 10px; padding: 0px;&quot;&gt;4.3. При замовленні від 11000 гривень, доставка здійснюється безкоштовно, за рахунок компанії Qube. (Винятком є ​​великогабаритний товар).&lt;/p&gt;&lt;p style=&quot;margin-top: 10px; margin-bottom: 10px; padding: 0px;&quot;&gt;4.5. Покупець самостійно може вибрати спосіб доставки при оформленні замовлення, це може бути: доставка кур\'єром за вказаною адресою; отримання товару в одному з відділень служби доставки, яке ви вказали при оформленні замовлення; самовивіз з відділення Qube.&lt;/p&gt;&lt;p style=&quot;margin-top: 10px; margin-bottom: 10px; padding: 0px;&quot;&gt;4.6. Вартість доставки залежить від її способу. Її ціна регулюється службою, яка виконує доставку. Детальніше про ціни і способи доставки ви можете дізнатися в розділі «Оформлення замовлення».&lt;/p&gt;&lt;p style=&quot;margin-top: 10px; margin-bottom: 10px; padding: 0px;&quot;&gt;4.7. Продавець відповідає за доставку і контролює її здійснення до зазначених термінів, однак форс-мажори, які можуть трапляться в ході непередбачених обставин, знаходяться поза компетенцією Продавця, тому в разі такого результату, Продавець зобов\'язується інформувати Покупця про нові дати і часу доставки за допомогою зв\'язку з телефону або електронній пошті.&lt;/p&gt;&lt;p style=&quot;margin-top: 10px; margin-bottom: 10px; padding: 0px;&quot;&gt;4.8. Моментом отримання товару Покупцем є підписання Одержувачем \\ Покупцем документа, що підтверджує факт прийняття замовленого ним товару (товарно-транспортна накладна, акт прийому-передачі, декларація на пересилку і т.п.) або фактичного отримання Одержувачем \\ Покупцем товару і здійснення ним дій, що свідчать про прийняття товару. Для видачі Товару Одержувачу останній зобов\'язаний пред\'явити при отриманні Товару документ, що засвідчує особу (паспорт, права і тд).&lt;/p&gt;&lt;p style=&quot;margin-top: 10px; margin-bottom: 10px; padding: 0px;&quot;&gt;4.9. Продавець не несе відповідальності за дії служби доставки товарів. Тому Покупець, перед отримання замовлення, зобов\'язаний перевірити цілісність товару, наявність чека, гарантії і тд. У разі якихось ексцесів, Покупець повинен звернутися до служби доставки і пред\'явити їм свої претензії.&lt;/p&gt;&lt;p style=&quot;margin-top: 10px; margin-bottom: 10px; padding: 0px;&quot;&gt;4.10. Покупець має повне право порушити цілісність упаковки товару, провести огляд товару, а також розпорядитися товаром будь-яким іншим способом на свій розсуд, але після його повної оплати. Певне положення не позбавляє Покупця прав, передбачених Законом України «Про захист прав споживачів» про повернення товару належної та неналежної якості.&lt;/p&gt;&lt;p style=&quot;margin-top: 10px; margin-bottom: 10px; padding: 0px;&quot;&gt;4.11. Покупець має право призначити Одержувачем замовленого товару третя особа. В даному випадку Покупець повинен вказати у формі Замовлення інформацію, необхідну для ідентифікації отримувача і доставки йому товару. На відносини Сторін в такому випадку діють положення ст. 636 Цивільного кодексу України.&lt;/p&gt;&lt;p style=&quot;margin-top: 10px; margin-bottom: 10px; padding: 0px;&quot;&gt;4.12. Продавець на свій розсуд може вибрати відповідні способи доставки при замовленні товару (п. 4.5.).&lt;/p&gt;&lt;h3 style=&quot;margin: 5px 0px; padding: 0px;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;5. Гарантійні умови&lt;/h3&gt;&lt;p style=&quot;margin-top: 10px; margin-bottom: 10px; padding: 0px;&quot;&gt;5.1. За умови правильного поводження з товаром, Продавець відповідає за високу якість товару протягом строку гарантії. Гарантія надається на різний термін від 14 днів до 38 місяців, в залежності від типу товару.&lt;/p&gt;&lt;p style=&quot;margin-top: 10px; margin-bottom: 10px; padding: 0px;&quot;&gt;5.2. Гарантія вступає в силу з моменту отримання товару Покупцем, що фіксується у відповідному документі. Всю інформацію, пов\'язану з гарантійними умовами ви зможете знайти і ознайомитися у відповідному розділі сайту.&lt;/p&gt;&lt;h3 style=&quot;margin: 5px 0px; padding: 0px;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 6. Повернення товару&lt;/h3&gt;&lt;p style=&quot;margin-top: 10px; margin-bottom: 10px; padding: 0px;&quot;&gt;6.1. Повернення товару неналежної якості&lt;/p&gt;&lt;p style=&quot;margin-top: 10px; margin-bottom: 10px; padding: 0px;&quot;&gt;6.1.1. Повернення товару неналежної якості проводиться в плині часу встановленого умовами гарантії для цієї категорії товарів, за правилами, встановленими законодавством, документами на товар та / або зазначені Постачальником при наданні відомості про товар.&lt;/p&gt;&lt;p style=&quot;margin-top: 10px; margin-bottom: 10px; padding: 0px;&quot;&gt;6.1.2. У разі несправності товару з вини виробника, Продавець зобов\'язується в зазначені порядки і терміни, повернути повну вартість товару Покупцеві, згідно з правилами публічної оферти.&lt;/p&gt;&lt;p style=&quot;margin-top: 10px; margin-bottom: 10px; padding: 0px;&quot;&gt;6.1.3. Покупець повинен пред\'явити свої вимоги у вигляді письмової заяви за адресою: Україна, 04080 м.Київ, вул. Кирилівська, 104&lt;/p&gt;&lt;p style=&quot;margin-top: 10px; margin-bottom: 10px; padding: 0px;&quot;&gt;6.1.4. При наявності технічного паспорта, гарантійного талона або інших документів про товар, Покупець зобов\'язаний надати їх Продавцю для подальшого надання послуги повернення.&lt;/p&gt;&lt;p style=&quot;margin-top: 10px; margin-bottom: 10px; padding: 0px;&quot;&gt;6.1.5. Продавець має право відмовитися від приймання товару, відправленого Покупцем без надання вищевказаних документів, а також не розглядати заяву (претензію) Покупця до усунення допущених ним недоліків. У разі, якщо Покупець не направить зазначені документи протягом 1 (одного) місяця, зобов\'язання продавця щодо забезпечення збереження такого спрямованого товару припиняються, і він має право розпорядитися товаром на свій розсуд. Продавець не зобов\'язаний здійснювати зворотний відправку товару, заяву за яким оформлено неналежним чином і не представлені належні документи.&lt;/p&gt;&lt;p style=&quot;margin-top: 10px; margin-bottom: 10px; padding: 0px;&quot;&gt;6.1.6. Продавець має право відмовити Покупцеві в поверненні коштів, якщо він зможе довести, що дефекти товару виникли через порушення Покупцем правил використання та зберігання товару, а також умов його повернення.&lt;/p&gt;&lt;p style=&quot;margin-top: 10px; margin-bottom: 10px; padding: 0px;&quot;&gt;6.1.7. Вимоги Покупця розглядаються протягом 14 робочих днів з моменту їх отримання.&lt;/p&gt;&lt;p style=&quot;margin-top: 10px; margin-bottom: 10px; padding: 0px;&quot;&gt;6.2. Додаткову інформацію з приводу повернення товару, ви зможете знайти у відповідних розділах сайту.&lt;/p&gt;&lt;h3 style=&quot;margin: 5px 0px; padding: 0px;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 7. Доступ до Сайту&lt;/h3&gt;&lt;p style=&quot;margin-top: 10px; margin-bottom: 10px; padding: 0px;&quot;&gt;7.1. Адміністрація докладає всіх можливих зусиль для забезпечення належного функціонування сайту, проте не несе відповідальності за невиконання або неналежне виконання зобов\'язань, передбачених цією Угодою, а також за шкоду, заподіяну в зв\'язку з цим, в результаті, але не обмежуючись: неправомірними діями третіх осіб; помилками в роботі сайту, зумовленими помилками в коді, комп\'ютерними вірусами та іншими сторонніми фрагментами коду в програмному забезпеченні Сайту; відсутністю з\'єднання між пристроєм Користувача і сервером Сайту, а також між сервером Сайту і мережею Інтернет; проведенням державними органами та іншими належним чином уповноваженими організаціями оперативних заходів, що впливають на роботу Сайту; виконанням оновлень програмного забезпечення Сайту; за прийнятними і набрав чинності рішенням уповноважених органів державної влади.&lt;/p&gt;&lt;p style=&quot;margin-top: 10px; margin-bottom: 10px; padding: 0px;&quot;&gt;7.2. Адміністрація залишає за собою право: заблокувати доступ до Сайту; скасувати всі покупки, здійснені шляхом використання несанкціонованого доступу; стягнути відшкодування збитків, заподіяних використанням неавторизованого доступу до Сайту; заборонити доступ до оплати бонусним рахунком. З метою недопущення несанкціонованого автоматичного сканування Сайту, а також використання сайту з метою проведення шахрайських дій і при наявності обґрунтованої підозри у зловживаннях з боку Користувача.&lt;/p&gt;&lt;h3 style=&quot;margin: 5px 0px; padding: 0px;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;8. Відповідальність Сторін&lt;/h3&gt;&lt;p style=&quot;margin-top: 10px; margin-bottom: 10px; padding: 0px;&quot;&gt;8.1. Покупець \\ Користувач сайту дає свою згоду і гарантію не робити будь-які дії, що порушують законодавство України або норми міжнародного права, в тому числі в сфері інтелектуальної власності, авторських і / або суміжних прав, а також будь-яких дій, які призводять або можуть призвести до порушення нормального функціонування Сайту і його сервісів.&lt;/p&gt;&lt;p style=&quot;margin-top: 10px; margin-bottom: 10px; padding: 0px;&quot;&gt;8.2. У разі несанкціонованого доступу до аккаунту Покупця, Користувач зобов\'язаний проінформувати Адміністрацію про доступ до Сайту третіх осіб. Повідомлення Адміністрації проводиться за допомогою Служби підтримки сайту.&lt;/p&gt;&lt;p style=&quot;margin-top: 10px; margin-bottom: 10px; padding: 0px;&quot;&gt;8.3. Особистий профіль на Сайті дає можливість його використовувати виключно одним користувачем Сайту. Передача даних профілю третім особам - не допускається. Адміністрація має повне право скасувати покупки і заблокувати аккаунт, в разі виявлення фактів передачі профілю в колективне користування або в користування третіх осіб.&lt;/p&gt;&lt;p style=&quot;margin-top: 10px; margin-bottom: 10px; padding: 0px;&quot;&gt;8.4. Користувачеві / Покупцеві забороняється пропонувати або використовувати відомості, представлені на Сайті (в тому числі Контент), в комерційних цілях без письмової згоди його авторів / правовласників і Адміністрації Сайту, а також будь-яким іншим способом поширювати отриманий Контент, його копії.&lt;/p&gt;&lt;p style=&quot;margin-top: 10px; margin-bottom: 10px; padding: 0px;&quot;&gt;8.5. Приймаючи умови Угоди, Користувач \\ Покупець підтверджує, що ознайомлений і згоден з умовами цієї Угоди.&lt;/p&gt;&lt;p style=&quot;margin-top: 10px; margin-bottom: 10px; padding: 0px;&quot;&gt;8.6. Коментарі та інші записи Користувача \\ Покупця на Сайті не повинні суперечити вимогам законодавства України та загальноприйнятих норм моралі та моральності.&lt;/p&gt;&lt;p style=&quot;margin-top: 10px; margin-bottom: 10px; padding: 0px;&quot;&gt;8.7. Використання матеріалів сайту допускається лише за погодженням з Адміністрацією. При цитуванні, обов\'язково потрібно вказати посилання на сайт.&lt;/p&gt;&lt;p style=&quot;margin-top: 10px; margin-bottom: 10px; padding: 0px;&quot;&gt;8.8. Користувач / Покупець несе повну відповідальність за правильність інформації, зазначеної при реєстрації та оформленні замовлення. У разі виникнення проблем з доставкою, відправкою і видачею товару через невірно наданої інформації, Покупець компенсує Продавцеві всі збитки.&lt;/p&gt;&lt;p style=&quot;margin-top: 10px; margin-bottom: 10px; padding: 0px;&quot;&gt;8.9. Продавець не несе відповідальності за фінансові операції, які здійснює Платник. Відповідальність повністю лежить на установах, що надають банківські послуги, обраних Користувачем при оформленні замовлення.&lt;/p&gt;&lt;p style=&quot;margin-top: 10px; margin-bottom: 10px; padding: 0px;&quot;&gt;8.10. Адміністратор не несе відповідальності за роботу інтернет провайдерів, процесингових центрів, платіжних систем, операторів зв\'язку, банківських установ, сервісів оплати Visa / MasterCard, в результаті яких необхідні відомості, дані не надійшли або надійшли із запізненням, були загублені або пошкоджені. Будь-які претензії і суперечки по проведенню платежів і отримання грошових повернень Платник посилає такий самостійно обраної компанії, а в разі неможливості їх вирішення мирним шляхом вони вирішуються відповідно до положень розділу 8 цієї Угоди.&lt;/p&gt;&lt;p style=&quot;margin-top: 10px; margin-bottom: 10px; padding: 0px;&quot;&gt;8.11. У разі невідповідності фактичних умов продажу, Покупець має право відмовитися від отримання товару і вимагати повернення повної його вартості. Цим правом можна скористатися до підписання документів про отримання товару.&lt;/p&gt;&lt;p style=&quot;margin-top: 10px; margin-bottom: 10px; padding: 0px;&quot;&gt;8.12. Адміністратор сайту не несе відповідальність за працездатність обладнання, на якому розміщений сайт, доступність Сайту, роботу каналів передачі даних та інші технічні засоби для здійснення Користувачами доступу до Сайту.&lt;/p&gt;&lt;p style=&quot;margin-top: 10px; margin-bottom: 10px; padding: 0px;&quot;&gt;8.13. Відповідальність Адміністратора не може перевищувати вартості придбаних товарів на Сайті і не включає будь-яку упущену вигоду, непрямі збитки, збиток, нанесений третім особам.&lt;/p&gt;&lt;p style=&quot;margin-top: 10px; margin-bottom: 10px; padding: 0px;&quot;&gt;8.14. Відповідальність за доставку, її терміни, а також за цілісність товару несе компанія, що забезпечує доставку товару.&lt;/p&gt;&lt;p style=&quot;margin-top: 10px; margin-bottom: 10px; padding: 0px;&quot;&gt;8.15. Відповідальність Продавця при зміні умов пропозиції до продажу і продажу товару обмежується правом Користувача \\ Одержувача \\ Покупця відмовитися від придбання товару і вимагати повернення сплачених за нього коштів.&lt;/p&gt;&lt;h3 style=&quot;margin: 5px 0px; padding: 0px;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 9. Вирішення спорів і застосовне право&lt;/h3&gt;&lt;p style=&quot;margin-top: 10px; margin-bottom: 10px; padding: 0px;&quot;&gt;9.1. Ця Угода складена відповідно до законодавства України. Користувач \\ Покупець, що знаходиться за межами цієї юрисдикції, повністю згоден підпорядкувати правовідносини, що виникають під час будь-якого користування Сайтом, законодавству України, а ці умови діють до нього в максимальному дозволеному її юрисдикцією обсязі без застосування будь-яких колізійних норм.&lt;/p&gt;&lt;p style=&quot;margin-top: 10px; margin-bottom: 10px; padding: 0px;&quot;&gt;9.2. Сторони підтверджують, що в разі якщо будь-яка умова цього договору стане або буде визнано недійсним у зв\'язку з невідповідністю закону, ця умова не буде прийматися до уваги або ж Сторонами будуть вживатися заходи щодо зміни договору в тій мірі, щоб зробити договір дійсним і зберегти в повному обсязі наміри Сторін.&lt;/p&gt;&lt;p style=&quot;margin-top: 10px; margin-bottom: 10px; padding: 0px;&quot;&gt;9.3. Якщо спір між Покупцем і Продавцем неможливо залагодити протягом 30 днів, конфлікт улагоджується відповідно до чинного законодавства України.&lt;/p&gt;&lt;h3 style=&quot;margin: 5px 0px; padding: 0px;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;10. Використання персональних даних Користувача&lt;/h3&gt;&lt;p style=&quot;margin-top: 10px; margin-bottom: 10px; padding: 0px;&quot;&gt;10.1. Інформація, зазначена Користувачем при реєстрації (ПІБ, номер мобільного телефону, e-mail, поштова адреса і т.п.), є його персональними даними. Персональні дані користувача є конфіденційною інформацією, збір і подальша обробка персональних даних здійснюється Адміністрацією відповідно до Закону України «Про захист персональних даних» та іншими нормативно-правовими актами України. Джерелом збору персональних даних є інформація, безпосередньо і добровільно надана Користувачем.&lt;/p&gt;&lt;p style=&quot;margin-top: 10px; margin-bottom: 10px; padding: 0px;&quot;&gt;10.2. Своєю згодою до цієї Угоди Користувач добровільно надає Адміністрації, зазначені в реєстраційній формі персональні дані для реєстрації в інформаційній системі в якості Користувача, а також з метою підтримки довгострокового співробітництва з Адміністрацією Сайту. Користувач також дає згоду на використання його персональних даних для обробки Замовлень на придбання товарів, отримання рекламних та спеціальних пропозицій, інформації про акції, розіграші, іншої інформації про діяльність Адміністрації.&lt;/p&gt;&lt;p style=&quot;margin-top: 10px; margin-bottom: 10px; padding: 0px;&quot;&gt;10.3. Користувач дає право Адміністрації здійснювати обробку його персональних даних, в тому числі: записувати персональні дані в бази даних Адміністрації (без додаткового повідомлення Користувача про це), здійснювати довічне зберігання даних, їх накопичення, оновлення, зміна (в разі необхідності).&lt;/p&gt;&lt;p style=&quot;margin-top: 10px; margin-bottom: 10px; padding: 0px;&quot;&gt;10.4. Власником наданих Користувачем персональних даних є Qube.ua, яка зареєстрована на території України за адресою: Україна, 04080 м.Київ, вул. Кирилівська, 104&lt;/p&gt;&lt;p style=&quot;margin-top: 10px; margin-bottom: 10px; padding: 0px;&quot;&gt;10.5. Для редагування своїх персональних даних, в разі їх зміни, Користувач повинен надати нові відомості Адміністрації за допомогою Служби підтримки або шляхом самостійного виправлення правильності даних у відповідному розділі Особистого профілю. У разі невиконання Користувачем цієї вимоги, Адміністрація не несе відповідальності за несприятливі наслідки, пов\'язані з використанням застарілих даних.&lt;/p&gt;&lt;p style=&quot;margin-top: 10px; margin-bottom: 10px; padding: 0px;&quot;&gt;10.6. При своєму бажанні Користувач Сайту може заборонити використання своїх персональних даних. Для цього Користувачеві необхідно створити звернення до Служби підтримки за телефоном, вказаним на Сайті, з відповідним повідомленням.&lt;/p&gt;&lt;p style=&quot;margin-top: 10px; margin-bottom: 10px; padding: 0px;&quot;&gt;10.7. Адміністрація не приймає реєстраційні дані Користувача в разі їх неправильної подачі.&lt;/p&gt;&lt;p style=&quot;margin-top: 10px; margin-bottom: 10px; padding: 0px;&quot;&gt;10.8. Адміністрація зобов\'язана інформувати Користувача про його можливості та винагороди. Адміністрація не несе відповідальність за повідомлення, які не були доставлені не з їхньої вини.&lt;/p&gt;&lt;p style=&quot;margin-top: 10px; margin-bottom: 10px; padding: 0px;&quot;&gt;10.9. Для цілей, передбачених п. 10.2. Угоди, Користувач надає Адміністрації право відправляти йому будь-яку інформацію комерційного і / або інформаційного характеру, а також інформацію про інших споживчих пропозиціях поштою, електронною поштою, телефоном, SMS, viber-повідомленнях, здійснювати дзвінки на вказаний в реєстраційній формі облікового запису телефонний мобільний номер .&lt;/p&gt;&lt;p style=&quot;margin-top: 10px; margin-bottom: 10px; padding: 0px;&quot;&gt;10.10. Інформація про користувача, зазначена при реєстрації, є конфіденційною. Доступ до даних мають виключно уповноважені особи Адміністрації і сам Користувач, а також ці дані можуть бути надані на вимогу правоохоронних та / або інших органів відповідно до чинного законодавства.&lt;/p&gt;&lt;p style=&quot;margin-top: 10px; margin-bottom: 10px; padding: 0px;&quot;&gt;10.11. Відповідальність за неправдивість вказаних даних в Особистому профілі несе Користувач.&lt;/p&gt;&lt;h3 style=&quot;margin: 5px 0px; padding: 0px;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;11. Інші умови&lt;/h3&gt;&lt;p style=&quot;margin-top: 10px; margin-bottom: 10px; padding: 0px;&quot;&gt;11.1. Всі правила і умови здійснення / виконання окремих дій / операцій, розміщені у відповідних розділах сайту, є невід\'ємними частинами (як Додатки) цієї Угоди, що визначають зобов\'язання для обох сторін. У разі якщо умови, зафіксовані в тексті цієї Угоди, і умови, зазначені в його додатках (розділах сайту) відрізняються, Сторони керуються умовами, визначеними в додатках. Продаж товару Продавцем Покупцю регулюється цим Договором, а також Законом України «Про електронну комерцію», Законом України «Про захист прав споживачів», Правилами продажу товарів на замовлення та поза торговельними або офісними приміщеннями та іншими законодавчими актами в частині, що не суперечить специфіці електронної комерції .&lt;/p&gt;&lt;p style=&quot;margin-top: 10px; margin-bottom: 10px; padding: 0px;&quot;&gt;11.2. При оформленні замовлення Покупець підтверджує, що: - він ознайомився і погодився з усіма умовами, викладеними в даній Публічної оферти, і беззастережно їх приймає; - всі дії, які їм будуть здійснені, не суперечитимуть умовам цієї Угоди.&lt;/p&gt;&lt;p style=&quot;margin-top: 10px; margin-bottom: 10px; padding: 0px;&quot;&gt;11.3. Адміністрація має право без попереднього повідомлення вносити зміни в текст цієї Угоди та / або додатків. Зміни в Публічну оферту вступають в силу після їх публікації і застосовуються до будь-якого замовлення, зробленого після їх публікації.&lt;/p&gt;&lt;p style=&quot;margin-top: 10px; margin-bottom: 10px; padding: 0px;&quot;&gt;11.4 Користувач зобов\'язаний ознайомитися і погодитися з усіма пунктами цієї Угоди, в іншому випадку - Користувач повинен припинити використання Сайту.&lt;/p&gt;&lt;p style=&quot;margin-top: 10px; margin-bottom: 10px; padding: 0px;&quot;&gt;11.5. Продавець і Покупець підтримують зв\'язок за допомогою використання електронної пошти, телефонного зв\'язку (SMS і т.д), д', '', '', '', ''),
(4, 4, 'Про нас', '&lt;p&gt;&amp;nbsp; Наша команда особисто може і хоче допомогти нашим клієнтам, якщо у них виникнуть проблеми з вибором товару. Як по телефону, так і електронною поштою я зможу проконсультувати вас з приводу призначення товару, його якості, країни-виробника, ціни та можливих знижок на нього.&lt;/p&gt;&lt;p&gt;&amp;nbsp; Ми на ринку товарів сантехніки з 2015 року. За цей час ми встигли налагодити партнерські відносини з деякими відомими виробниками з таких країн, як Україна, Туреччина, Польща, Росія, Німеччина та США. Весь товар обов\'язково проходить сертифікацію в Україні та має необхідні документи.&lt;/p&gt;&lt;p&gt;&amp;nbsp; На всі товари іноді діють різні акції та знижки. Не пропустіть момент купити необхідний вам товар за нижчою ціною! Це порадує не лише дитину, а й вас як батька.&lt;/p&gt;&lt;p&gt;&amp;nbsp; Чому варто купувати товари саме на www.chipsantehnik.com.ua. Наша команда може і хоче допомогти нашим клієнтам, якщо у них виникнуть проблеми з вибором товару. Як по телефону, так і електронною поштою ми зможемо проконсультувати вас з приводу призначення товару, його якості, країни-виробника, ціни та можливих знижок на нього. Так що, дзвоніть та пишіть - ми будемо раді вам допомогти. Ви можете бути впевнені, що отримаєте товар хорошої якості, який буде вам досить довгий час, з швидкою доставкою по Україні, за розумні гроші, а часом і з непоганою знижкою.&lt;br&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp; Якщо ми змогли вас зацікавити, прошу вас ознайомитися з нашим каталогом або акційними товарами. Бажаємо вам знайти те, що вас цікавить! Приємного перегляду!&lt;br&gt;&lt;/p&gt;\r\n', '', '', '', ''),
(6, 1, 'Информация о доставке', '&lt;p style=&quot;margin-top: 13px; margin-bottom: 8px; padding: 0px; border: 0px; vertical-align: baseline; line-height: 17px;&quot;&gt;&lt;span style=&quot;border-style: initial; border-color: initial; border-image: initial;&quot;&gt;Приобретение товара только онлайн.&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;border-style: initial; border-color: initial; border-image: initial;&quot;&gt;Доставка по всем городам Украины&lt;/span&gt;&amp;nbsp;осуществляется в основном&amp;nbsp;&lt;span style=&quot;border-style: initial; border-color: initial; border-image: initial;&quot;&gt;Новой почтой по тарифам новой почты&lt;/span&gt;&amp;nbsp;за счет клиента и может доставляться на отделение или по адресу. Оплата обратным платежом (2% + 40 грн = согласно тарифам Новой почты) или на карточку Приват банка (комиссия 0,5%). Груз всегда страхуется на полную стоимость + 0,5% от суммы товара.&lt;/p&gt;&lt;p style=&quot;margin-top: 13px; margin-bottom: 8px; padding: 0px; border: 0px; vertical-align: baseline; line-height: 17px;&quot;&gt;Если отправляется груз который требует деревянный каркас (унитаз, душ кабина и т.д.) то + 210 грн за 0,5 м3 каркаса, при таком заказе нужна предоплата не менее 500 грн.&lt;/p&gt;&lt;p style=&quot;margin-top: 13px; margin-bottom: 8px; padding: 0px; border: 0px; vertical-align: baseline; line-height: 17px;&quot;&gt;&amp;nbsp;Также готовы отправить Ваш заказ, любым удобным для Вас способом - другим перевозщиком или предложите Ваш вариант.&lt;/p&gt;&lt;p class=&quot;justifyleft&quot; style=&quot;margin-top: 13px; margin-bottom: 8px; padding: 0px; border: 0px; vertical-align: baseline; line-height: 17px;&quot;&gt;&amp;nbsp;Безналичный расчет возможен в некоторых случаях в среднем +8 % к цене. &lt;/p&gt;&lt;p class=&quot;justifyleft&quot; style=&quot;margin-top: 13px; margin-bottom: 8px; padding: 0px; border: 0px; vertical-align: baseline; line-height: 17px;&quot;&gt;Возврат происходит в течении 14 дней с момента подтверждения заказа - поэтому большая просьба при получении товара у курьера или на Новой Почте проверить весь товар на целостность и соответствия артикулов, после этого дома удостоверится что он вам подходит по размерам, цвету, внешнему виду и т.д. - если что то не устраивает сообщите нам как можно скорее и нужно будет назад отправить товар нам Новой почтой или вернуть нам на склад, главное что бы мы успели его вернуть обратно поставщику и что бы товарный вид и комплектация была такая же как и при получении товара.&lt;/p&gt;', '', '', '', '');

-- --------------------------------------------------------

--
-- Структура таблиці `oc_information_to_layout`
--

CREATE TABLE `oc_information_to_layout` (
  `information_id` int(11) NOT NULL,
  `store_id` int(11) NOT NULL,
  `layout_id` int(11) NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci;

--
-- Дамп даних таблиці `oc_information_to_layout`
--

INSERT INTO `oc_information_to_layout` (`information_id`, `store_id`, `layout_id`) VALUES
(6, 0, 0),
(4, 0, 0),
(3, 0, 0),
(5, 0, 0);

-- --------------------------------------------------------

--
-- Структура таблиці `oc_information_to_store`
--

CREATE TABLE `oc_information_to_store` (
  `information_id` int(11) NOT NULL,
  `store_id` int(11) NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci;

--
-- Дамп даних таблиці `oc_information_to_store`
--

INSERT INTO `oc_information_to_store` (`information_id`, `store_id`) VALUES
(3, 0),
(4, 0),
(5, 0),
(6, 0);

-- --------------------------------------------------------

--
-- Структура таблиці `oc_language`
--

CREATE TABLE `oc_language` (
  `language_id` int(11) NOT NULL,
  `name` varchar(32) NOT NULL,
  `code` varchar(5) NOT NULL,
  `url` varchar(32) NOT NULL,
  `locale` varchar(255) NOT NULL,
  `image` varchar(64) NOT NULL,
  `directory` varchar(32) NOT NULL,
  `sort_order` int(3) NOT NULL DEFAULT 0,
  `status` tinyint(1) NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci;

--
-- Дамп даних таблиці `oc_language`
--

INSERT INTO `oc_language` (`language_id`, `name`, `code`, `url`, `locale`, `image`, `directory`, `sort_order`, `status`) VALUES
(1, 'Рус', 'ru-ru', 'ru', 'ru_RU.UTF-8,ru_RU,russian', 'ru.png', 'russian', 1, 1),
(4, 'Укр', 'uk-ua', 'ua', 'ua_UA.UTF-8,ua_UA,ua_UA,ua', '', '', 2, 1);

-- --------------------------------------------------------

--
-- Структура таблиці `oc_layout`
--

CREATE TABLE `oc_layout` (
  `layout_id` int(11) NOT NULL,
  `name` varchar(64) NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci;

--
-- Дамп даних таблиці `oc_layout`
--

INSERT INTO `oc_layout` (`layout_id`, `name`) VALUES
(1, 'Главная'),
(2, 'Продукт'),
(3, 'Категория'),
(4, 'По умолчанию'),
(5, 'Производитель'),
(6, 'Аккаунт'),
(7, 'Оформление заказ'),
(8, 'Контакты'),
(9, 'Карта сайта'),
(10, 'Партнерская программа'),
(11, 'Информация'),
(12, 'Сравнение'),
(13, 'Поиск');

-- --------------------------------------------------------

--
-- Структура таблиці `oc_layout_module`
--

CREATE TABLE `oc_layout_module` (
  `layout_module_id` int(11) NOT NULL,
  `layout_id` int(11) NOT NULL,
  `code` varchar(64) NOT NULL,
  `position` varchar(14) NOT NULL,
  `sort_order` int(3) NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci;

--
-- Дамп даних таблиці `oc_layout_module`
--

INSERT INTO `oc_layout_module` (`layout_module_id`, `layout_id`, `code`, `position`, `sort_order`) VALUES
(164, 4, 'account', 'content_top', 1),
(163, 4, 'account', 'content_top', 0),
(20, 5, '0', 'column_left', 2),
(69, 10, 'affiliate', 'column_right', 1),
(68, 6, 'account', 'column_right', 1),
(144, 3, 'category', 'column_left', 0),
(161, 1, 'testimonial.35', 'content_bottom', 7),
(160, 1, 'xds_latest.34', 'content_bottom', 5),
(159, 1, 'xds_special.33', 'content_bottom', 4),
(158, 1, 'xds_viewed.32', 'content_bottom', 3),
(157, 1, 'xds_featured.39', 'content_bottom', 2),
(156, 1, 'xds_custom_blocks.37', 'content_bottom', 1),
(145, 3, 'prostofilter', 'column_left', 1),
(155, 1, 'slideshow.27', 'content_top', 0),
(162, 1, 'prostofilter', 'content_bottom', 8);

-- --------------------------------------------------------

--
-- Структура таблиці `oc_layout_route`
--

CREATE TABLE `oc_layout_route` (
  `layout_route_id` int(11) NOT NULL,
  `layout_id` int(11) NOT NULL,
  `store_id` int(11) NOT NULL,
  `route` varchar(64) NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci;

--
-- Дамп даних таблиці `oc_layout_route`
--

INSERT INTO `oc_layout_route` (`layout_route_id`, `layout_id`, `store_id`, `route`) VALUES
(38, 6, 0, 'account/%'),
(17, 10, 0, 'affiliate/%'),
(67, 3, 0, 'product/category'),
(69, 1, 0, 'common/home'),
(20, 2, 0, 'product/product'),
(24, 11, 0, 'information/information'),
(23, 7, 0, 'checkout/%'),
(70, 8, 0, 'information/contact'),
(32, 9, 0, 'information/sitemap'),
(72, 4, 0, ''),
(45, 5, 0, 'product/manufacturer'),
(52, 12, 0, 'product/compare'),
(71, 13, 0, 'product/search');

-- --------------------------------------------------------

--
-- Структура таблиці `oc_length_class`
--

CREATE TABLE `oc_length_class` (
  `length_class_id` int(11) NOT NULL,
  `value` decimal(15,2) NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci;

--
-- Дамп даних таблиці `oc_length_class`
--

INSERT INTO `oc_length_class` (`length_class_id`, `value`) VALUES
(1, 1.00),
(2, 10.00),
(3, 0.39);

-- --------------------------------------------------------

--
-- Структура таблиці `oc_length_class_description`
--

CREATE TABLE `oc_length_class_description` (
  `length_class_id` int(11) NOT NULL,
  `language_id` int(11) NOT NULL,
  `title` varchar(32) NOT NULL,
  `unit` varchar(4) NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci;

--
-- Дамп даних таблиці `oc_length_class_description`
--

INSERT INTO `oc_length_class_description` (`length_class_id`, `language_id`, `title`, `unit`) VALUES
(1, 1, 'Сантиметр', 'см'),
(2, 1, 'Миллиметр', 'мм'),
(1, 4, 'Сантиметр', 'см'),
(2, 4, 'Миллиметр', 'мм');

-- --------------------------------------------------------

--
-- Структура таблиці `oc_location`
--

CREATE TABLE `oc_location` (
  `location_id` int(11) NOT NULL,
  `name` varchar(32) NOT NULL,
  `address` text NOT NULL,
  `telephone` varchar(32) NOT NULL,
  `fax` varchar(32) NOT NULL,
  `geocode` varchar(32) NOT NULL,
  `image` varchar(255) DEFAULT NULL,
  `open` text NOT NULL,
  `comment` text NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci;

-- --------------------------------------------------------

--
-- Структура таблиці `oc_manufacturer`
--

CREATE TABLE `oc_manufacturer` (
  `manufacturer_id` int(11) NOT NULL,
  `name` varchar(64) NOT NULL,
  `image` varchar(255) DEFAULT NULL,
  `sort_order` int(3) NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci;

--
-- Дамп даних таблиці `oc_manufacturer`
--

INSERT INTO `oc_manufacturer` (`manufacturer_id`, `name`, `image`, `sort_order`) VALUES
(1, 'PLAMIX', NULL, 0),
(2, 'KOER', NULL, 0),
(3, 'GRANDFAR', NULL, 0),
(4, 'ZERIX', NULL, 0),
(5, 'HAIBA', NULL, 0),
(6, 'САНКОМ', NULL, 0),
(7, 'GROHE', NULL, 0),
(8, 'MIXXUS', NULL, 0),
(9, 'CHAMPION', NULL, 0),
(10, 'G-FERRO', NULL, 0),
(11, 'EUROPRODUCT', NULL, 0),
(12, 'ARMATA', NULL, 0),
(13, 'NOLF', NULL, 0),
(14, 'MIXXUS PREMIUM', NULL, 0),
(15, 'CRON', NULL, 0),
(16, 'LATRES', NULL, 0),
(17, 'ROHO', NULL, 0),
(18, 'СУМЫ', NULL, 0),
(19, 'IBERGRIF', NULL, 0),
(20, 'TAIFU', NULL, 0),
(21, 'MASTER', NULL, 0),
(22, 'NOLF CLASSIC', NULL, 0),
(23, 'WATERPRO', NULL, 0),
(24, 'TROPICAL FOREST', NULL, 0),
(25, 'GROMIX', NULL, 0),
(26, 'PEXAL', NULL, 0),
(27, 'BITHERM', NULL, 0),
(28, 'UNIPAK', NULL, 0),
(29, 'SANLUX', NULL, 0),
(30, 'BLUETTI', NULL, 0),
(31, 'Integral', NULL, 0),
(32, 'Intelli', NULL, 0),
(33, 'SANTAN', NULL, 0),
(34, 'AQUAVITA', NULL, 0),
(35, 'SUNTERMO', NULL, 0),
(36, 'BRITOLLI', NULL, 0),
(37, 'КОРМОРОБ', NULL, 0);

-- --------------------------------------------------------

--
-- Структура таблиці `oc_manufacturer_description`
--

CREATE TABLE `oc_manufacturer_description` (
  `manufacturer_id` int(11) NOT NULL,
  `language_id` int(11) NOT NULL,
  `name` varchar(64) NOT NULL,
  `description` text NOT NULL,
  `meta_title` varchar(255) NOT NULL,
  `meta_h1` varchar(255) NOT NULL,
  `meta_description` varchar(255) NOT NULL,
  `meta_keyword` varchar(255) NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci;

--
-- Дамп даних таблиці `oc_manufacturer_description`
--

INSERT INTO `oc_manufacturer_description` (`manufacturer_id`, `language_id`, `name`, `description`, `meta_title`, `meta_h1`, `meta_description`, `meta_keyword`) VALUES
(1, 1, 'PLAMIX', '', '', '', '', ''),
(1, 4, 'PLAMIX', '', '', '', '', ''),
(2, 1, 'KOER', '', '', '', '', ''),
(2, 4, 'KOER', '', '', '', '', ''),
(3, 1, 'GRANDFAR', '', '', '', '', ''),
(3, 4, 'GRANDFAR', '', '', '', '', ''),
(4, 1, 'ZERIX', '', '', '', '', ''),
(4, 4, 'ZERIX', '', '', '', '', ''),
(5, 1, 'HAIBA', '', '', '', '', ''),
(5, 4, 'HAIBA', '', '', '', '', ''),
(6, 1, 'САНКОМ', '', '', '', '', ''),
(6, 4, 'САНКОМ', '', '', '', '', ''),
(7, 1, 'GROHE', '', '', '', '', ''),
(7, 4, 'GROHE', '', '', '', '', ''),
(8, 1, 'MIXXUS', '', '', '', '', ''),
(8, 4, 'MIXXUS', '', '', '', '', ''),
(9, 1, 'CHAMPION', '', '', '', '', ''),
(9, 4, 'CHAMPION', '', '', '', '', ''),
(10, 1, 'G-FERRO', '', '', '', '', ''),
(10, 4, 'G-FERRO', '', '', '', '', ''),
(11, 1, 'EUROPRODUCT', '', '', '', '', ''),
(11, 4, 'EUROPRODUCT', '', '', '', '', ''),
(12, 1, 'ARMATA', '', '', '', '', ''),
(12, 4, 'ARMATA', '', '', '', '', ''),
(13, 1, 'NOLF', '', '', '', '', ''),
(13, 4, 'NOLF', '', '', '', '', ''),
(14, 1, 'MIXXUS PREMIUM', '', '', '', '', ''),
(14, 4, 'MIXXUS PREMIUM', '', '', '', '', ''),
(15, 1, 'CRON', '', '', '', '', ''),
(15, 4, 'CRON', '', '', '', '', ''),
(16, 1, 'LATRES', '', '', '', '', ''),
(16, 4, 'LATRES', '', '', '', '', ''),
(17, 1, 'ROHO', '', '', '', '', ''),
(17, 4, 'ROHO', '', '', '', '', ''),
(18, 1, 'СУМЫ', '', '', '', '', ''),
(18, 4, 'СУМЫ', '', '', '', '', ''),
(19, 1, 'IBERGRIF', '', '', '', '', ''),
(19, 4, 'IBERGRIF', '', '', '', '', ''),
(20, 1, 'TAIFU', '', '', '', '', ''),
(20, 4, 'TAIFU', '', '', '', '', ''),
(21, 1, 'MASTER', '', '', '', '', ''),
(21, 4, 'MASTER', '', '', '', '', ''),
(22, 1, 'NOLF CLASSIC', '', '', '', '', ''),
(22, 4, 'NOLF CLASSIC', '', '', '', '', ''),
(23, 1, 'WATERPRO', '', '', '', '', ''),
(23, 4, 'WATERPRO', '', '', '', '', ''),
(24, 1, 'TROPICAL FOREST', '', '', '', '', ''),
(24, 4, 'TROPICAL FOREST', '', '', '', '', ''),
(25, 1, 'GROMIX', '', '', '', '', ''),
(25, 4, 'GROMIX', '', '', '', '', ''),
(26, 1, 'PEXAL', '', '', '', '', ''),
(26, 4, 'PEXAL', '', '', '', '', ''),
(27, 1, 'BITHERM', '', '', '', '', ''),
(27, 4, 'BITHERM', '', '', '', '', ''),
(28, 1, 'UNIPAK', '', '', '', '', ''),
(28, 4, 'UNIPAK', '', '', '', '', ''),
(29, 1, 'SANLUX', '', '', '', '', ''),
(29, 4, 'SANLUX', '', '', '', '', ''),
(30, 1, 'BLUETTI', '', '', '', '', ''),
(30, 4, 'BLUETTI', '', '', '', '', ''),
(31, 1, 'Integral', '', '', '', '', ''),
(31, 4, 'Integral', '', '', '', '', ''),
(32, 1, 'Intelli', '', '', '', '', ''),
(32, 4, 'Intelli', '', '', '', '', ''),
(189, 1, '', '', '', '', '', ''),
(188, 1, '', '', '', '', '', ''),
(187, 1, '', '', '', '', '', ''),
(186, 1, '', '', '', '', '', ''),
(127, 1, '', '', '', '', '', ''),
(185, 1, '', '', '', '', '', ''),
(184, 1, '', '', '', '', '', ''),
(183, 1, '', '', '', '', '', ''),
(182, 1, '', '', '', '', '', ''),
(181, 1, '', '', '', '', '', ''),
(190, 1, '', '', '', '', '', ''),
(180, 1, '', '', '', '', '', ''),
(179, 1, '', '', '', '', '', ''),
(178, 1, '', '', '', '', '', ''),
(177, 1, '', '', '', '', '', ''),
(176, 1, '', '', '', '', '', ''),
(175, 1, '', '', '', '', '', ''),
(174, 1, '', '', '', '', '', ''),
(173, 1, '', '', '', '', '', ''),
(172, 1, '', '', '', '', '', ''),
(171, 1, '', '', '', '', '', ''),
(170, 1, '', '', '', '', '', ''),
(169, 1, '', '', '', '', '', ''),
(168, 1, '', '', '', '', '', ''),
(167, 1, '', '', '', '', '', ''),
(166, 1, '', '', '', '', '', ''),
(150, 1, '', '', '', '', '', ''),
(165, 1, '', '', '', '', '', ''),
(164, 1, '', '', '', '', '', ''),
(163, 1, '', '', '', '', '', ''),
(162, 1, '', '', '', '', '', ''),
(161, 1, '', '', '', '', '', ''),
(33, 1, 'SANTAN', '', '', '', '', ''),
(33, 4, 'SANTAN', '', '', '', '', ''),
(34, 1, 'AQUAVITA', '', '', '', '', ''),
(34, 4, 'AQUAVITA', '', '', '', '', ''),
(35, 1, 'SUNTERMO', '', '', '', '', ''),
(35, 4, 'SUNTERMO', '', '', '', '', ''),
(36, 1, 'BRITOLLI', '', '', '', '', ''),
(36, 4, 'BRITOLLI', '', '', '', '', ''),
(37, 1, 'КОРМОРОБ', '', '', '', '', ''),
(37, 4, 'КОРМОРОБ', '', '', '', '', '');

-- --------------------------------------------------------

--
-- Структура таблиці `oc_manufacturer_to_store`
--

CREATE TABLE `oc_manufacturer_to_store` (
  `manufacturer_id` int(11) NOT NULL,
  `store_id` int(11) NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci;

--
-- Дамп даних таблиці `oc_manufacturer_to_store`
--

INSERT INTO `oc_manufacturer_to_store` (`manufacturer_id`, `store_id`) VALUES
(1, 0),
(2, 0),
(3, 0),
(4, 0),
(5, 0),
(6, 0),
(7, 0),
(8, 0),
(9, 0),
(10, 0),
(11, 0),
(12, 0),
(13, 0),
(14, 0),
(15, 0),
(16, 0),
(17, 0),
(18, 0),
(19, 0),
(20, 0),
(21, 0),
(22, 0),
(23, 0),
(24, 0),
(25, 0),
(26, 0),
(27, 0),
(28, 0),
(29, 0),
(30, 0),
(31, 0),
(32, 0),
(33, 0),
(34, 0),
(35, 0),
(36, 0),
(37, 0);

-- --------------------------------------------------------

--
-- Структура таблиці `oc_marketing`
--

CREATE TABLE `oc_marketing` (
  `marketing_id` int(11) NOT NULL,
  `name` varchar(32) NOT NULL,
  `description` text NOT NULL,
  `code` varchar(64) NOT NULL,
  `clicks` int(5) NOT NULL DEFAULT 0,
  `date_added` datetime NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci;

-- --------------------------------------------------------

--
-- Структура таблиці `oc_menu`
--

CREATE TABLE `oc_menu` (
  `menu_id` int(11) NOT NULL,
  `store_id` int(11) NOT NULL,
  `type` varchar(6) NOT NULL,
  `link` varchar(255) NOT NULL,
  `sort_order` int(3) NOT NULL,
  `status` tinyint(1) NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci;

-- --------------------------------------------------------

--
-- Структура таблиці `oc_menu_description`
--

CREATE TABLE `oc_menu_description` (
  `menu_id` int(11) NOT NULL,
  `language_id` int(11) NOT NULL,
  `name` varchar(64) NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci;

-- --------------------------------------------------------

--
-- Структура таблиці `oc_menu_module`
--

CREATE TABLE `oc_menu_module` (
  `menu_module_id` int(11) NOT NULL,
  `menu_id` int(11) NOT NULL,
  `code` varchar(64) NOT NULL,
  `sort_order` int(3) NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci;

-- --------------------------------------------------------

--
-- Структура таблиці `oc_merchant_tags`
--

CREATE TABLE `oc_merchant_tags` (
  `tag_id` int(11) UNSIGNED NOT NULL,
  `name` varchar(50) DEFAULT NULL,
  `value` varchar(255) DEFAULT NULL,
  `product_id` int(11) DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci;

-- --------------------------------------------------------

--
-- Структура таблиці `oc_modification`
--

CREATE TABLE `oc_modification` (
  `modification_id` int(11) NOT NULL,
  `name` varchar(64) NOT NULL,
  `code` varchar(64) NOT NULL,
  `author` varchar(64) NOT NULL,
  `version` varchar(32) NOT NULL,
  `link` varchar(255) NOT NULL,
  `xml` mediumtext NOT NULL,
  `status` tinyint(1) NOT NULL,
  `date_added` datetime NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci;

--
-- Дамп даних таблиці `oc_modification`
--

INSERT INTO `oc_modification` (`modification_id`, `name`, `code`, `author`, `version`, `link`, `xml`, `status`, `date_added`) VALUES
(1, 'Local copy OCMOD', 'isensealabs_quickfix_ocmod', 'iSenseLabs', '1.3', 'http://isenselabs.com', '<modification>\r\n    <name>Local copy OCMOD</name>\r\n	<version>1.3</version>\r\n	<link>http://isenselabs.com</link>\r\n	<author>iSenseLabs</author>\r\n	<code>isensealabs_quickfix_ocmod</code>\r\n\r\n	<file path=\"admin/controller/extension/installer.php\">\r\n		<operation error=\"skip\">\r\n			<search ><![CDATA[\'url\'  => str_replace(\'&amp;\', \'&\', $this->url->link(\'extension/installer/ftp\', \'token=\' . $this->session->data[\'token\'],]]></search>\r\n			<add position=\"replace\"><![CDATA[\'url\'  => str_replace(\'&amp;\', \'&\', $this->url->link(\'extension/installer/localcopy\', \'token=\' . $this->session->data[\'token\'],]]></add>\r\n		</operation>\r\n\r\n		<operation>\r\n			<search><![CDATA[public function unzip() {]]></search>\r\n			<add position=\"before\"><![CDATA[			\r\n	public function localcopy() {\r\n		$this->load->language(\'extension/installer\');\r\n\r\n		$json = array();\r\n\r\n		if (!$this->user->hasPermission(\'modify\', \'extension/installer\')) {\r\n			$json[\'error\'] = $this->language->get(\'error_permission\');\r\n		}\r\n\r\n		if (VERSION == \'2.0.0.0\') {\r\n		    $directory = DIR_DOWNLOAD  . str_replace(array(\'../\', \'..\\\\\', \'..\'), \'\', $this->request->post[\'path\']) . \'/upload/\';\r\n		} else {\r\n		    $directory = DIR_UPLOAD  . str_replace(array(\'../\', \'..\\\\\', \'..\'), \'\', $this->request->post[\'path\']) . \'/upload/\';\r\n		}\r\n\r\n		if (!is_dir($directory)) {\r\n			$json[\'error\'] = $this->language->get(\'error_directory\');\r\n		}\r\n\r\n		if (!$json) {\r\n			// Get a list of files ready to upload\r\n			$files = array();\r\n\r\n			$path = array($directory . \'*\');\r\n\r\n			while (count($path) != 0) {\r\n				$next = array_shift($path);\r\n\r\n				foreach (glob($next) as $file) {\r\n					if (is_dir($file)) {\r\n						$path[] = $file . \'/*\';\r\n					}\r\n\r\n					$files[] = $file;\r\n				}\r\n			}\r\n\r\n			$root = dirname(DIR_APPLICATION).\'/\';\r\n\r\n			foreach ($files as $file) {\r\n				// Upload everything in the upload directory\r\n				$destination = substr($file, strlen($directory));\r\n\r\n				// Update from newer OpenCart versions:\r\n				if (substr($destination, 0, 5) == \'admin\') {\r\n					$destination = DIR_APPLICATION . substr($destination, 5);\r\n				} else if (substr($destination, 0, 7) == \'catalog\') {\r\n					$destination = DIR_CATALOG . substr($destination, 7);\r\n				} else if (substr($destination, 0, 5) == \'image\') {\r\n					$destination = DIR_IMAGE . substr($destination, 5);\r\n				} else if (substr($destination, 0, 6) == \'system\') {\r\n					$destination = DIR_SYSTEM . substr($destination, 6);\r\n				} else {\r\n					$destination = $root.$destination;\r\n				}\r\n\r\n				if (is_dir($file)) {\r\n					if (!file_exists($destination)) {\r\n						if (!mkdir($destination)) {\r\n							$json[\'error\'] = sprintf($this->language->get(\'error_ftp_directory\'), $destination);\r\n						}\r\n					}\r\n				}\r\n\r\n				if (is_file($file)) {\r\n					if (!copy($file, $destination)) {\r\n						$json[\'error\'] = sprintf($this->language->get(\'error_ftp_file\'), $file);\r\n					}\r\n				}\r\n			}\r\n		}\r\n\r\n		$this->response->addHeader(\'Content-Type: application/json\');\r\n		$this->response->setOutput(json_encode($json));\r\n	}]]></add>\r\n		</operation>\r\n	</file>	\r\n</modification>\r\n', 1, '2018-11-22 17:50:28');
INSERT INTO `oc_modification` (`modification_id`, `name`, `code`, `author`, `version`, `link`, `xml`, `status`, `date_added`) VALUES
(2, 'Coloring Theme Modification', 'coloring', 'xds', '1.6.6', '', '<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<modification>\n  <name>Coloring Theme Modification</name>\n	<code>coloring</code>\n  <version>1.6.6</version>\n  <author>xds</author>\n\n	<file path=\"catalog/controller/common/home.php\">\n		<operation>\n      <search><![CDATA[\n				$data[\'header\'] = $this->load->controller(\'common/header\');\n      ]]></search>\n      <add position=\"before\"><![CDATA[\n\n				$this->load->model(\'setting/setting\');\n			\n				$coloring = array();\n				$coloring = $this->model_setting_setting->getSetting(\'coloring\', $this->config->get(\'config_store_id\'));\n				\n				$this->load->model(\'extension/module\');\n				\n				$new_modules = array();\n				$data[\'new_modules_1\'] = array();\n				$data[\'new_modules_2\'] = array();\n				$data[\'new_modules_3\'] = array();\n				$data[\'new_modules_4\'] = array();\n				$data[\'new_modules_5\'] = array();\n				\n				\n				if (isset($coloring[\'t1_new_home_layout_module\'])) {\n					$new_modules = $coloring[\'t1_new_home_layout_module\'];\n				}\n				\n				\n				$data[\'hide_home_menu\'] = false;\n				\n				if (isset($coloring[\'t1_hide_home_menu\'])) {\n					$data[\'hide_home_menu\'] = $coloring[\'t1_hide_home_menu\'];\n				}\n				\n				\n				foreach ($new_modules as $new_module) {\n				\n					if ($new_module[\'position\'] == \'position_1\') {\n						$part = explode(\'.\', $new_module[\'code\']);\n						if (isset($part[0]) && $this->config->get($part[0] . \'_status\')) {\n							$data[\'new_modules_1\'][] = array(\n								\'module\'     => $this->load->controller(\'extension/module/\' . $part[0]),\n								\'sort_order\' => $new_module[\'sort_order\']\n							);\n						}\n						if (isset($part[1])) {\n							$setting_info = $this->model_extension_module->getModule($part[1]);\n							if ($setting_info && $setting_info[\'status\']) {\n								$data[\'new_modules_1\'][] = array(\n									\'module\'     => $this->load->controller(\'extension/module/\' . $part[0], $setting_info),\n									\'sort_order\' => $new_module[\'sort_order\']\n								);\n							}\n						}\n					} elseif ($new_module[\'position\'] == \'position_2\') {\n						$part = explode(\'.\', $new_module[\'code\']);\n						if (isset($part[0]) && $this->config->get($part[0] . \'_status\')) {\n							$data[\'new_modules_2\'][] = array(\n								\'module\'     => $this->load->controller(\'extension/module/\' . $part[0]),\n								\'sort_order\' => $new_module[\'sort_order\']\n							);\n						}\n						if (isset($part[1])) {\n							$setting_info = $this->model_extension_module->getModule($part[1]);\n							if ($setting_info && $setting_info[\'status\']) {\n								$data[\'new_modules_2\'][] = array(\n									\'module\'     => $this->load->controller(\'extension/module/\' . $part[0], $setting_info),\n									\'sort_order\' => $new_module[\'sort_order\']\n								);\n							}\n						}\n					} elseif ($new_module[\'position\'] == \'position_3\') {\n						$part = explode(\'.\', $new_module[\'code\']);\n						if (isset($part[0]) && $this->config->get($part[0] . \'_status\')) {\n							$data[\'new_modules_3\'][] = array(\n								\'module\'     => $this->load->controller(\'extension/module/\' . $part[0]),\n								\'sort_order\' => $new_module[\'sort_order\']\n							);\n\n						}\n						if (isset($part[1])) {\n							$setting_info = $this->model_extension_module->getModule($part[1]);\n							if ($setting_info && $setting_info[\'status\']) {\n								$data[\'new_modules_3\'][] = array(\n									\'module\'     => $this->load->controller(\'extension/module/\' . $part[0], $setting_info),\n									\'sort_order\' => $new_module[\'sort_order\']\n								);\n\n							}\n						}\n					} elseif($new_module[\'position\'] == \'position_4\') {\n						$part = explode(\'.\', $new_module[\'code\']);\n						if (isset($part[0]) && $this->config->get($part[0] . \'_status\')) {\n							$data[\'new_modules_4\'][] = array(\n								\'module\'     => $this->load->controller(\'extension/module/\' . $part[0]),\n								\'sort_order\' => $new_module[\'sort_order\']\n							);\n\n						}\n						if (isset($part[1])) {\n							$setting_info = $this->model_extension_module->getModule($part[1]);\n							if ($setting_info && $setting_info[\'status\']) {\n								$data[\'new_modules_4\'][] = array(\n									\'module\'     => $this->load->controller(\'extension/module/\' . $part[0], $setting_info),\n									\'sort_order\' => $new_module[\'sort_order\']\n								);\n\n							}\n						}\n					} else {\n						$part = explode(\'.\', $new_module[\'code\']);\n						if (isset($part[0]) && $this->config->get($part[0] . \'_status\')) {\n							$data[\'new_modules_5\'][] = array(\n								\'module\'     => $this->load->controller(\'extension/module/\' . $part[0]),\n								\'sort_order\' => $new_module[\'sort_order\']\n							);\n\n						}\n						if (isset($part[1])) {\n							$setting_info = $this->model_extension_module->getModule($part[1]);\n							if ($setting_info && $setting_info[\'status\']) {\n								$data[\'new_modules_5\'][] = array(\n									\'module\'     => $this->load->controller(\'extension/module/\' . $part[0], $setting_info),\n									\'sort_order\' => $new_module[\'sort_order\']\n								);\n\n							}\n						}\n					}\n					\n					if (!empty($data[\'new_modules_1\'])){\n						foreach ($data[\'new_modules_1\'] as $key => $value) {\n							$sort_new_modules_1[$key] = $value[\'sort_order\'];\n						} \n						array_multisort($sort_new_modules_1, SORT_ASC, $data[\'new_modules_1\']);\n					}\n					if (!empty($data[\'new_modules_2\'])){\n						foreach ($data[\'new_modules_2\'] as $key => $value) {\n							$sort_new_modules_2[$key] = $value[\'sort_order\'];\n						} \n						array_multisort($sort_new_modules_2, SORT_ASC, $data[\'new_modules_2\']);\n					}\n					if (!empty($data[\'new_modules_3\'])){\n						foreach ($data[\'new_modules_3\'] as $key => $value) {\n							$sort_new_modules_3[$key] = $value[\'sort_order\'];\n						} \n						array_multisort($sort_new_modules_3, SORT_ASC, $data[\'new_modules_3\']);\n					}\n					if (!empty($data[\'new_modules_4\'])){\n						foreach ($data[\'new_modules_4\'] as $key => $value) {\n							$sort_new_modules_4[$key] = $value[\'sort_order\'];\n						} \n						array_multisort($sort_new_modules_4, SORT_ASC, $data[\'new_modules_4\']);\n					}\n					if (!empty($data[\'new_modules_5\'])){\n						foreach ($data[\'new_modules_5\'] as $key => $value) {\n							$sort_new_modules_5[$key] = $value[\'sort_order\'];\n						} \n						array_multisort($sort_new_modules_5, SORT_ASC, $data[\'new_modules_5\']);\n					}\n					\n				}\n				\n				\n      ]]></add>\n    </operation>\n  </file>\n	\n	<file path=\"catalog/controller/common/column_left.php\">\n		<operation>\n      <search><![CDATA[\n				$this->load->model(\'design/layout\');\n      ]]></search>\n      <add position=\"after\"><![CDATA[\n				$this->load->model(\'setting/setting\');\n				\n				$language_id = $this->config->get(\'config_language_id\');\n				\n				$this->load->language(\'coloring/coloring\');\n				\n				$data[\'button_text\'] = $this->language->get(\'col_left_text\');\n				\n				$coloring = array();\n				$coloring = $this->model_setting_setting->getSetting(\'coloring\', $this->config->get(\'config_store_id\'));\n				\n				if (isset($coloring[\'t1_col_left_button_text\'][$language_id]) && !empty($coloring[\'t1_col_left_button_text\'][$language_id])) {\n					$data[\'button_text\'] = $coloring[\'t1_col_left_button_text\'][$language_id];\n				}\n				\n      ]]></add>\n    </operation>\n  </file>\n	\n	<file path=\"catalog/controller/common/column_right.php\">\n		<operation>\n      <search><![CDATA[\n				$this->load->model(\'design/layout\');\n      ]]></search>\n      <add position=\"after\"><![CDATA[\n				$this->load->model(\'setting/setting\');\n				\n				$language_id = $this->config->get(\'config_language_id\');\n				\n				$this->load->language(\'coloring/coloring\');\n				\n				$data[\'button_text\'] = $this->language->get(\'col_right_text\');\n				\n				$coloring = array();\n				$coloring = $this->model_setting_setting->getSetting(\'coloring\', $this->config->get(\'config_store_id\'));\n				\n				if (isset($coloring[\'t1_col_right_button_text\'][$language_id]) && !empty($coloring[\'t1_col_right_button_text\'][$language_id])) {\n					$data[\'button_text\'] = $coloring[\'t1_col_right_button_text\'][$language_id];\n				}\n      ]]></add>\n    </operation>\n  </file>\n	\n	<file path=\"catalog/controller/common/search.php\">\n		<operation>\n      <search><![CDATA[\n				$this->load->language(\'common/search\');\n      ]]></search>\n      <add position=\"after\"><![CDATA[\n				$this->load->language(\'coloring/coloring\');\n				\n				$data[\'search_text_category\'] = $this->language->get(\'search_text_category\');\n				$data[\'search_text_category_alt\'] = $this->language->get(\'search_text_category\');\n				\n        if (isset($this->request->get[\'category_id\'])) {\n					$category_id = $this->request->get[\'category_id\'];\n				} else {\n					$category_id = 0;\n				}\n				\n				$data[\'category_id\'] = $category_id;\n				\n				$data[\'search_categories\'] = array();\n				$search_categories_1 = $this->model_catalog_category->getCategories(0);\n				foreach ($search_categories_1 as $search_category) {\n					$data[\'search_categories\'][] = array(\n						\'category_id\' => $search_category[\'category_id\'],\n						\'name\'        => $search_category[\'name\']\n					);\n				}\n      ]]></add>\n    </operation>\n  </file>\n	\n	<file path=\"catalog/controller/common/header.php\">\n		<operation>\n      <search><![CDATA[\n				$this->load->language(\'common/header\');\n      ]]></search>\n      <add position=\"after\"><![CDATA[\n				$this->load->language(\'coloring/coloring\');\n				$this->load->model(\'setting/setting\');\n				$this->load->model(\'tool/image\');\n\n				$data[\'header_email_text\'] = $this->language->get(\'header_email_text\');\n				$data[\'header_phone_text\'] = $this->language->get(\'header_phone_text\');	\n				$data[\'header_address_text\'] = $this->language->get(\'header_address_text\');	\n				\n				$data[\'header_product_compare\'] = sprintf($this->language->get(\'coloring_product_compare\'), (isset($this->session->data[\'compare\']) ? count($this->session->data[\'compare\']) : 0));		\n\n				$data[\'header_product_compare_link\'] = $this->url->link(\'product/compare\');\n				\n				$data[\'language_id\'] = $this->config->get(\'config_language_id\');\n				$language_id = $this->config->get(\'config_language_id\');\n\n				$coloring = array();\n				$coloring = $this->model_setting_setting->getSetting(\'coloring\', $this->config->get(\'config_store_id\'));\n				$data[\'stylesheet\'] = $coloring;\n				\n				$data[\'header_menu\'] = array();\n				\n				$data[\'skin\'] = false;\n				\n				if (isset($coloring[\'t1_skin\'])) {\n					$data[\'skin\'] = $coloring[\'t1_skin\'];\n				}\n				\n				$data[\'header_menu_toggle\'] = false;\n\n				if (isset($coloring[\'t1_main_menu_toggle\'])) {\n					$data[\'header_menu_toggle\'] = $coloring[\'t1_main_menu_toggle\'];\n				}\n				\n				if (isset($coloring[\'t1_main_menu_item\'])) {\n					$data[\'header_menu\'] = $coloring[\'t1_main_menu_item\'];\n				}\n				\n				if (!empty($data[\'header_menu\'])){\n					foreach ($data[\'header_menu\'] as $key => $value) {\n						$sort_heder_menu[$key] = $value[\'sort\'];\n					} \n					array_multisort($sort_heder_menu, SORT_ASC, $data[\'header_menu\']);\n				}\n\n				$data[\'help_menu_text\'] = $this->language->get(\'header_help_support\');\n				\n				if (isset($coloring[\'t1_help_menu_text\'])) {\n					if ($coloring[\'t1_help_menu_text\'][$language_id] != \'\') {\n						$data[\'help_menu_text\'] = $coloring[\'t1_help_menu_text\'][$language_id];\n					}\n				}\n				\n				$data[\'help_menu\'] = array();\n				$data[\'help_menu_toggle\'] = false;\n				$data[\'help_menu_left\'] = false;\n				\n				if (isset($coloring[\'t1_help_menu_toggle\'])) {\n					$data[\'help_menu_toggle\'] = $coloring[\'t1_help_menu_toggle\'];\n				}\n				if (isset($coloring[\'t1_help_menu_left\']) && $coloring[\'t1_help_menu_left\']) {\n					$data[\'help_menu_left\'] = true;\n				}\n				\n				if (isset($coloring[\'t1_help_menu_item\'])) {\n					$data[\'help_menu\'] = $coloring[\'t1_help_menu_item\'];\n				}\n				\n				if (!empty($data[\'help_menu\'])){\n					foreach ($data[\'help_menu\'] as $key => $value) {\n						$sort_help_menu[$key] = $value[\'sort\'];\n					} \n					array_multisort($sort_help_menu, SORT_ASC, $data[\'help_menu\']);\n				}\n				\n				\n				$data[\'category_mask\'] = \'\';\n				\n				if (isset($coloring[\'t1_category_mask_toggle\'])) {\n					$data[\'category_mask\'] = $coloring[\'t1_category_mask_toggle\'];\n				}\n				\n				\n				$data[\'hide_home_menu\'] = false;\n				\n				if (isset($coloring[\'t1_hide_home_menu\'])) {\n					$data[\'hide_home_menu\'] = $coloring[\'t1_hide_home_menu\'];\n				}\n				\n				\n				$data[\'sub_no_fullheight\'] = false;\n				\n				if (isset($coloring[\'t1_category_no_full_height_submenu\'])) {\n					$data[\'sub_no_fullheight\'] = $coloring[\'t1_category_no_full_height_submenu\'];\n				}\n				\n				\n				\n				$data[\'category_third_level_toggle\'] = false;\n				\n				if (isset($coloring[\'t1_category_third_level_toggle\'])) {\n					$data[\'category_third_level_toggle\'] = $coloring[\'t1_category_third_level_toggle\'];\n				}\n				\n				$data[\'category_third_level_limit\'] = 5;\n				\n				if (isset($coloring[\'t1_category_third_level_limit\'])) {\n					$data[\'category_third_level_limit\'] = $coloring[\'t1_category_third_level_limit\'];\n				}\n				\n				\n				\n				\n				$category_icons = array();\n				\n				if (isset($coloring[\'t1_category_icon\'])) {\n					$category_icons = $coloring[\'t1_category_icon\'];\n				}\n				\n				\n				$data[\'add_category_menu\'] = array();\n				$data[\'add_category_menu_toggle\'] = false;\n				\n				if (isset($coloring[\'t1_add_cat_links_toggle\'])) {\n					$data[\'add_category_menu_toggle\'] = $coloring[\'t1_add_cat_links_toggle\'];\n				}\n				\n				$results = array();\n				\n				if (isset($coloring[\'t1_add_cat_links_item\'])) {\n					$results = $coloring[\'t1_add_cat_links_item\'];\n				}\n\n				$data[\'add_category_menu\'] = array();\n		\n				foreach ($results as $result) {\n					\n					if (is_file(DIR_IMAGE . $result[\'image_peace\'])) {\n						$image_peace = $result[\'image_peace\'];\n					} else {\n						$image_peace = \'\';\n					}\n					\n					if (is_file(DIR_IMAGE . $result[\'image_hover\'])) {\n						$image_hover = $result[\'image_hover\'];\n					} else {\n						$image_hover = \'\';\n					}\n					\n					$data[\'add_category_menu\'][] = array(\n							\'image_peace\' => $this->model_tool_image->resize($image_peace, 24, 24),\n							\'image_hover\' => $this->model_tool_image->resize($image_hover, 24, 24),\n							\'title\'			  => $result[\'title\'],\n							\'link\'  			=> $result[\'link\'],\n							\'position\'		=> $result[\'position\'],\n							\'sort\'  			=> $result[\'sort\']\n						);	\n					}\n				\n				\n				\n				\n				\n				\n				\n				if (!empty($data[\'add_category_menu\'])){\n					foreach ($data[\'add_category_menu\'] as $key => $value) {\n						$sort_add_category_menu[$key] = $value[\'sort\'];\n					} \n					array_multisort($sort_add_category_menu, SORT_ASC, $data[\'add_category_menu\']);\n				}\n				\n				$data[\'header_contacts_toggle\'] = false;\n				\n				if (isset($coloring[\'t1_contact_main_toggle\'])) {\n					$data[\'header_contacts_toggle\'] = $coloring[\'t1_contact_main_toggle\'];\n				}\n				\n				$data[\'callback_form_toggle\'] = false;\n				\n				if (isset($coloring[\'t1_callback_form_toggle\'])) {\n					$data[\'callback_form_toggle\'] = $coloring[\'t1_callback_form_toggle\'];\n				}\n				\n				$data[\'callback_form_text\'] = \"\";\n				\n				if (isset($coloring[\'t1_callback_form_button_text\'])) {\n					$data[\'callback_form_text\'] = $coloring[\'t1_callback_form_button_text\'];\n				}\n				\n				$data[\'callback_form_link\'] = $this->url->link(\'extension/module/xds_callback\');\n				\n				$data[\'header_add_contacts_toggle\'] = false;\n				\n				if (isset($coloring[\'t1_contact_add_toggle\'])) {\n					$data[\'header_add_contacts_toggle\'] = $coloring[\'t1_contact_add_toggle\'];\n				}\n\n				$data[\'main_telephone\'] = \"\";\n				\n				if (isset($coloring[\'t1_contact_main_phone\'])) {\n					$data[\'main_telephone\'] = $coloring[\'t1_contact_main_phone\'];\n				}\n				\n				$data[\'main_telephone2\'] = \"\";\n				\n				if (isset($coloring[\'t1_contact_main_phone2\'])) {\n					$data[\'main_telephone2\'] = $coloring[\'t1_contact_main_phone2\'];\n				}\n				\n				$data[\'contact_hint\'] = \"\";\n				\n				if (isset($coloring[\'t1_contact_hint\'])) {\n					$data[\'contact_hint\'] = $coloring[\'t1_contact_hint\'];\n				}\n				\n				$data[\'contact_schedule\'] = \"\";\n				\n				if (isset($coloring[\'t1_schedule\'])) {\n					$data[\'contact_schedule\'] = $coloring[\'t1_schedule\'];\n				}\n				\n				$data[\'contact_email\'] = \"\";\n				\n				if (isset($coloring[\'t1_contact_email\'])) {\n					$data[\'contact_email\'] = $coloring[\'t1_contact_email\'];\n				}\n\n				$data[\'all_phones\'] = array();\n				\n				if (isset($coloring[\'t1_header_contact\'])) {\n					$data[\'all_phones\'] = $coloring[\'t1_header_contact\'];\n				}\n				\n				if (!empty($data[\'all_phones\'])){\n					foreach ($data[\'all_phones\'] as $key => $value) {\n						$sort_all_phones[$key] = $value[\'sort\'];\n					} \n					array_multisort($sort_all_phones, SORT_ASC, $data[\'all_phones\']);\n				}\n				\n				$data[\'other_contacts\'] = array();\n				\n				if (isset($coloring[\'t1_additional_contact\'])) {\n					$data[\'other_contacts\'] = $coloring[\'t1_additional_contact\'];\n				}\n				\n				if (!empty($data[\'other_contacts\'])){\n					foreach ($data[\'other_contacts\'] as $key => $value) {\n						$sort_other_contacts[$key] = $value[\'sort\'];\n					} \n					array_multisort($sort_other_contacts, SORT_ASC, $data[\'other_contacts\']);\n				}\n				\n				$data[\'user_name\'] = $this->customer->getFirstName();\n				\n				$data[\'og_url_coloring\'] = (isset($this->request->server[\'HTTPS\']) ? HTTPS_SERVER : HTTP_SERVER) . substr($this->request->server[\'REQUEST_URI\'], 1, (strlen($this->request->server[\'REQUEST_URI\'])-1));\n				\n				\n				\n				$data[\'special_sticker\'] = false;\n				$data[\'special_sticker_color\'] = false;\n				$data[\'special_sticker_t_color\'] = false;\n				\n				$data[\'ups_sticker\'] = false;\n				$data[\'ups_sticker_color\'] = false;\n				$data[\'ups_sticker_t_color\'] = false;\n\n				$data[\'ean_sticker\'] = false;\n				$data[\'ean_sticker_color\'] = false;\n				$data[\'ean_sticker_t_color\'] = false;\n				\n				$data[\'jan_sticker\'] = false;\n				$data[\'jan_sticker_color\'] = false;\n				$data[\'jan_sticker_t_color\'] = false;\n				\n				$data[\'isbn_sticker\'] = false;\n				$data[\'isbn_sticker_color\'] = false;\n				$data[\'isbn_sticker_t_color\'] = false;\n				\n				$data[\'mpn_sticker\'] = false;\n				$data[\'mpn_sticker_color\'] = false;\n				$data[\'mpn_sticker_t_color\'] = false;\n				\n				\n				if (isset($coloring[\'t1_special_sticker\'])) {\n					$data[\'special_sticker\'] = $coloring[\'t1_special_sticker\'];\n				}\n				if (isset($coloring[\'t1_special_sticker_color\'])) {\n					$data[\'special_sticker_color\'] = $coloring[\'t1_special_sticker_color\'];\n				}\n				if (isset($coloring[\'t1_special_sticker_t_color\'])) {\n					$data[\'special_sticker_t_color\'] = $coloring[\'t1_special_sticker_t_color\'];\n				}\n				\n				if (isset($coloring[\'t1_ups_sticker\'])) {\n					$data[\'ups_sticker\'] = $coloring[\'t1_ups_sticker\'];\n				}\n				if (isset($coloring[\'t1_ups_sticker_color\'])) {\n					$data[\'ups_sticker_color\'] = $coloring[\'t1_ups_sticker_color\'];\n				}\n				if (isset($coloring[\'t1_ups_sticker_t_color\'])) {\n					$data[\'ups_sticker_t_color\'] = $coloring[\'t1_ups_sticker_t_color\'];\n				}\n				\n				if (isset($coloring[\'t1_ean_sticker\'])) {\n					$data[\'ean_sticker\'] = $coloring[\'t1_ean_sticker\'];\n				}\n				if (isset($coloring[\'t1_ean_sticker_color\'])) {\n					$data[\'ean_sticker_color\'] = $coloring[\'t1_ean_sticker_color\'];\n				}\n				if (isset($coloring[\'t1_ean_sticker_t_color\'])) {\n					$data[\'ean_sticker_t_color\'] = $coloring[\'t1_ean_sticker_t_color\'];\n				}\n				\n				if (isset($coloring[\'t1_jan_sticker\'])) {\n					$data[\'jan_sticker\'] = $coloring[\'t1_jan_sticker\'];\n				}\n				if (isset($coloring[\'t1_jan_sticker_color\'])) {\n					$data[\'jan_sticker_color\'] = $coloring[\'t1_jan_sticker_color\'];\n				}\n				if (isset($coloring[\'t1_jan_sticker_t_color\'])) {\n					$data[\'jan_sticker_t_color\'] = $coloring[\'t1_jan_sticker_t_color\'];\n				}\n				\n				if (isset($coloring[\'t1_isbn_sticker\'])) {\n					$data[\'isbn_sticker\'] = $coloring[\'t1_isbn_sticker\'];\n				}\n				if (isset($coloring[\'t1_ups_sticker_color\'])) {\n					$data[\'isbn_sticker_color\'] = $coloring[\'t1_isbn_sticker_color\'];\n				}\n				if (isset($coloring[\'t1_ups_sticker_t_color\'])) {\n					$data[\'isbn_sticker_t_color\'] = $coloring[\'t1_isbn_sticker_t_color\'];\n				}\n				\n				if (isset($coloring[\'t1_mpn_sticker\'])) {\n					$data[\'mpn_sticker\'] = $coloring[\'t1_mpn_sticker\'];\n				}\n				if (isset($coloring[\'t1_mpn_sticker_color\'])) {\n					$data[\'mpn_sticker_color\'] = $coloring[\'t1_mpn_sticker_color\'];\n				}\n				if (isset($coloring[\'t1_mpn_sticker_t_color\'])) {\n					$data[\'mpn_sticker_t_color\'] = $coloring[\'t1_mpn_sticker_t_color\'];\n				}\n				\n				\n				\n				\n\n      ]]></add>\n    </operation>\n		<operation>\n      <search><![CDATA[\n				foreach ($categories as $category) {\n      ]]></search>\n      <add position=\"after\"><![CDATA[\n				if (isset($category_icons[$category[\'category_id\']][\'peace\']) && is_file(DIR_IMAGE . $category_icons[$category[\'category_id\']][\'peace\'])) {\n					$icon_peace = $this->model_tool_image->resize($category_icons[$category[\'category_id\']][\'peace\'], 24, 24);\n				} else {\n					$icon_peace = \'\';\n				}\n				\n				if (isset($category_icons[$category[\'category_id\']][\'hover\']) && is_file(DIR_IMAGE . $category_icons[$category[\'category_id\']][\'hover\'])) {\n					$icon_hover = $this->model_tool_image->resize($category_icons[$category[\'category_id\']][\'hover\'], 24, 24);\n				} else {\n					$icon_hover = \'\';\n				}\n      ]]></add>\n    </operation>\n		<operation>\n      <search><![CDATA[\n				$data[\'categories\'][] = array(\n      ]]></search>\n      <add position=\"after\"><![CDATA[\n				\'category_id\' => $category[\'category_id\'],\n				\'icon_peace\' => $icon_peace,\n				\'icon_hover\' => $icon_hover,\n\n      ]]></add>\n    </operation>\n		<operation>\n      <search><![CDATA[\n				$data[\'text_wishlist\'] = sprintf($this->language->get(\'text_wishlist\'), $this->model_account_wishlist->getTotalWishlist());\n      ]]></search>\n      <add position=\"after\"><![CDATA[\n				$data[\'text_wishlist\'] = sprintf($this->language->get(\'coloring_text_wishlist\'), $this->model_account_wishlist->getTotalWishlist());\n      ]]></add>\n    </operation>\n		<operation>\n      <search><![CDATA[\n				$data[\'text_wishlist\'] = sprintf($this->language->get(\'text_wishlist\'), (isset($this->session->data[\'wishlist\']) ? count($this->session->data[\'wishlist\']) : 0));\n      ]]></search>\n      <add position=\"after\"><![CDATA[\n				$data[\'text_wishlist\'] = sprintf($this->language->get(\'coloring_text_wishlist\'), (isset($this->session->data[\'wishlist\']) ? count($this->session->data[\'wishlist\']) : 0));\n      ]]></add>\n    </operation>\n		<operation>\n      <search><![CDATA[\n				\'name\'  => $child[\'name\'] . ($this->config->get(\'config_product_count\') ? \' (\' . $this->model_catalog_product->getTotalProducts($filter_data) . \')\' : \'\'),\n      ]]></search>\n      <add position=\"replace\"><![CDATA[\n				\'name\'  => $child[\'name\'] . ($this->config->get(\'config_product_count\') ? \' <span class=\"count\">\' . $this->model_catalog_product->getTotalProducts($filter_data) . \'</span>\' : \'\'),\n				]]></add>\n    </operation>\n		<operation>\n      <search><![CDATA[\n				foreach ($children as $child) {\n      ]]></search>\n      <add position=\"after\"><![CDATA[\n				$children2_data = array();\n				$children2 = $this->model_catalog_category->getCategories($child[\'category_id\']);\n				foreach ($children2 as $child2) {\n					$filter2_data = array(\n						\'filter_category_id\'  => $child2[\'category_id\'],\n						\'filter_sub_category\' => true\n					);\n					$children2_data[] = array(\n						\'name\'  => $child2[\'name\'] . ($this->config->get(\'config_product_count\') ? \' <span class=\"count\">\' . $this->model_catalog_product->getTotalProducts($filter2_data) . \'</span>\' : \'\'),\n						\'href\'  => $this->url->link(\'product/category\', \'path=\' . $category[\'category_id\'] . \'_\' . $child[\'category_id\'].\'_\'. $child2[\'category_id\'])\n					);\n				}\n				\n				\n				if (isset($category_icons[$child[\'category_id\']][\'peace\']) && is_file(DIR_IMAGE . $category_icons[$child[\'category_id\']][\'peace\'])) {\n					$child_icon_peace = $this->model_tool_image->resize($category_icons[$child[\'category_id\']][\'peace\'], 24, 24);\n				} else {\n					$child_icon_peace = \'\';\n				}\n				\n				if (isset($category_icons[$child[\'category_id\']][\'hover\']) && is_file(DIR_IMAGE . $category_icons[$child[\'category_id\']][\'hover\'])) {\n					$child_icon_hover = $this->model_tool_image->resize($category_icons[$child[\'category_id\']][\'hover\'], 24, 24);\n				} else {\n					$child_icon_hover = \'\';\n				}\n				\n				\n				\n      ]]></add>\n    </operation>\n		<operation>\n      <search><![CDATA[\n				$children_data[] = array(\n      ]]></search>\n      <add position=\"after\"><![CDATA[\n				\'icon_peace\' => $child_icon_peace,\n				\'icon_hover\' => $child_icon_hover,\n				\'category_id\' => $child[\'category_id\'],\n				\'children2\'    => $children2_data,\n      ]]></add>\n    </operation>\n  </file>\n	\n	<file path=\"catalog/controller/common/cart.php\">\n		<operation>\n      <search><![CDATA[\n				$this->load->language(\'common/cart\');\n      ]]></search>\n      <add position=\"after\"><![CDATA[\n				$this->load->language(\'coloring/coloring\');\n      ]]></add>\n    </operation>\n		<operation>\n      <search><![CDATA[\n				$data[\'text_items\'] = sprintf($this->language->get(\'text_items\'), $this->cart->countProducts() + (isset($this->session->data[\'vouchers\']) ? count($this->session->data[\'vouchers\']) : 0), $this->currency->format($total, $this->session->data[\'currency\']));\n      ]]></search>\n      <add position=\"after\"><![CDATA[\n				$data[\'text_items_new\'] = sprintf($this->language->get(\'coloring_text_items\'), $this->cart->countProducts() + (isset($this->session->data[\'vouchers\']) ? count($this->session->data[\'vouchers\']) : 0), $this->currency->format($total, $this->session->data[\'currency\']));\n				\n				$data[\'text_items_popup\'] = sprintf($this->language->get(\'coloring_text_items_popup\'), $this->cart->countProducts() + (isset($this->session->data[\'vouchers\']) ? count($this->session->data[\'vouchers\']) : 0), $this->currency->format($total, $this->session->data[\'currency\']));\n				\n				$data[\'text_popup_cart\'] = $this->language->get(\'text_popup_cart\');\n				$data[\'text_popup_continue\'] = $this->language->get(\'text_popup_continue\');\n				$data[\'text_popup_options\'] = $this->language->get(\'text_popup_options\');\n      ]]></add>\n    </operation>\n	</file>\n	\n	<file path=\"catalog/controller/common/footer.php\"> \n		<operation>\n      <search><![CDATA[\n				$this->load->language(\'common/footer\');\n      ]]></search>\n      <add position=\"after\"><![CDATA[\n				$this->load->language(\'coloring/coloring\');\n				\n				$this->load->model(\'setting/setting\');\n				$this->load->model(\'design/banner\');\n				$this->load->model(\'tool/image\');\n\n				$data[\'language_id\'] = $this->config->get(\'config_language_id\');\n				\n				$data[\'coloring\'] = array();\n				$data[\'coloring\'] = $this->model_setting_setting->getSetting(\'coloring\');\n				\n				$coloring = array();\n				$coloring = $this->model_setting_setting->getSetting(\'coloring\', $this->config->get(\'config_store_id\'));\n				\n				$pay_icons_banner_id = -99;\n				$data[\'pay_icons_toggle\'] = false;\n				$data[\'footer_map_toggle\'] = false;\n				$data[\'footer_map\'] = array();\n\n				if(!empty($coloring)){\n					$pay_icons_banner_id = $coloring[\'t1_pay_icons_banner_id\'];\n					$data[\'pay_icons_toggle\'] = $coloring[\'t1_pay_icons_toggle\'];\n					$data[\'footer_map_toggle\'] = $coloring[\'t1_footer_map_toggle\'];\n					$data[\'footer_map\'] = $coloring[\'t1_footer_map\'];\n				}\n				\n				$data[\'pay_icons\'] = array();\n				$pay_icons = $this->model_design_banner->getBanner($pay_icons_banner_id);\n				\n				foreach ($pay_icons as $pay_icon) {\n					if (is_file(DIR_IMAGE . $pay_icon[\'image\'])) {\n						$data[\'pay_icons\'][] = array(\n							\'title\' => $pay_icon[\'title\'],\n							\'link\'  => $pay_icon[\'link\'],\n							\'image\' => $this->model_tool_image->resize($pay_icon[\'image\'], 48, 32)\n						);\n					}\n				}				\n				\n      ]]></add>\n    </operation>\n		<operation>\n      <search><![CDATA[\n				$data[\'powered\'] = sprintf($this->language->get(\'text_powered\'), $this->config->get(\'config_name\'), date(\'Y\', time()));\n      ]]></search>\n      <add position=\"replace\"><![CDATA[\n				\n				$data[\'powered\'] = sprintf($this->language->get(\'text_powered\'), $this->config->get(\'config_name\'), date(\'Y\', time())).$this->language->get(\'theme_powered\');\n      ]]></add>\n    </operation>\n  </file>\n	\n	<file path=\"catalog/controller/product/product.php\">\n		<operation>\n      <search><![CDATA[\n				$data[\'images\'][] = array(\n      ]]></search>\n      <add position=\"after\"><![CDATA[\n				\'helper_thumb\' => $this->model_tool_image->resize($result[\'image\'], $this->config->get($this->config->get(\'config_theme\') . \'_image_thumb_width\'), $this->config->get($this->config->get(\'config_theme\') . \'_image_thumb_height\')),\n      ]]></add>\n    </operation>\n		<operation>\n      <search><![CDATA[\n				$data[\'images\'] = array();\n      ]]></search>\n      <add position=\"before\"><![CDATA[\n			\n				if ($product_info[\'image\']) {\n					$data[\'thumb_small\'] = $this->model_tool_image->resize($product_info[\'image\'], $this->config->get($this->config->get(\'config_theme\') . \'_image_additional_width\'), $this->config->get($this->config->get(\'config_theme\') . \'_image_additional_height\'));\n				} else {\n					$data[\'thumb_small\'] = \'\';\n				}\n			\n				$data[\'img_small\'] = $this->config->get($this->config->get(\'config_theme\') . \'_image_additional_width\').\'x\'.$this->config->get($this->config->get(\'config_theme\') . \'_image_additional_height\');\n				$data[\'img_big\'] = $this->config->get($this->config->get(\'config_theme\') . \'_image_thumb_width\').\'x\'.$this->config->get($this->config->get(\'config_theme\') . \'_image_thumb_height\');\n      ]]></add>\n    </operation>\n		<operation>\n      <search><![CDATA[\n				$this->load->model(\'catalog/category\');\n      ]]></search>\n      <add position=\"after\"><![CDATA[\n				$this->load->model(\'setting/setting\');\n				\n				\n				\n				$language_id = $this->config->get(\'config_language_id\');\n				\n				$data[\'short_description_off\'] = \'\';\n				$data[\'short_attribute_off\'] = \'\';\n				$data[\'social_likes_off\'] = \'\';\n				$data[\'disable_cart_button_text\'] = \'\';\n				$data[\'disable_cart_button\'] = \'\';\n				$data[\'related_product_position\'] = \'\';\n			\n				$coloring = array();\n				$coloring = $this->model_setting_setting->getSetting(\'coloring\', $this->config->get(\'config_store_id\'));\n				\n				\n				\n				if (isset($coloring[\'t1_product_short_description\'])) {\n					$data[\'short_description_off\'] = $coloring[\'t1_product_short_description\'];\n				}\n				\n				if (isset($coloring[\'t1_product_short_attributes\'])) {\n					$data[\'short_attribute_off\'] = $coloring[\'t1_product_short_attributes\'];\n				}\n				\n				if (isset($coloring[\'t1_product_social_likes\'])) {\n					$data[\'social_likes_off\'] = $coloring[\'t1_product_social_likes\'];\n				}\n\n				if (isset($coloring[\'t1_disable_cart_button\'])) {\n					$data[\'disable_cart_button\'] = $coloring[\'t1_disable_cart_button\'];\n				}\n				\n				$data[\'on_off_fastorder\'] = false;\n				if (isset($coloring[\'t1_on_off_fastorder\'])) {\n					$data[\'on_off_fastorder\'] = $coloring[\'t1_on_off_fastorder\'];\n				}\n				\n				$data[\'on_off_fastorder_out_of_stok\'] = false;\n				if (isset($coloring[\'t1_on_off_fastorder_out_of_stok\'])) {\n					$data[\'on_off_fastorder_out_of_stok\'] = $coloring[\'t1_on_off_fastorder_out_of_stok\'];\n				}\n				\n				if (isset($coloring[\'t1_related_product_position\'])) {\n					$data[\'related_product_position\'] = $coloring[\'t1_related_product_position\'];\n				}\n\n				if (isset($coloring[\'t1_disable_cart_button_text\'])) {\n					$data[\'disable_cart_button_text\'] = $coloring[\'t1_disable_cart_button_text\'][$language_id];\n				}\n\n				$data[\'currency_code\'] = $this->session->data[\'currency\'];\n				\n				\n				\n				if (!isset($this->session->data[\'xds_product_viewed\'])) {\n  				$this->session->data[\'xds_product_viewed\'] = array();\n  			} else {\n  				$this->session->data[\'xds_product_viewed\'][] = $this->request->get[\'product_id\'];\n  			}\n				\n				\n				\n				\n				\n				\n				\n				\n				\n				\n				\n				\n				\n      ]]></add>\n    </operation>\n		<operation>\n      <search><![CDATA[\n				$data[\'text_select\'] = $this->language->get(\'text_select\');\n      ]]></search>\n      <add position=\"before\"><![CDATA[\n				$this->document->addStyle(\'catalog/view/theme/coloring/assets/owl-carousel/owl.carousel.css\');\n				$this->document->addStyle(\'catalog/view/theme/coloring/assets/owl-carousel/owl.theme.css\');\n				$this->document->addScript(\'catalog/view/theme/coloring/assets/owl-carousel/owl.carousel.min.js\');\n			\n				$this->document->addScript(\'catalog/view/theme/coloring/assets/share/social-likes.min.js\');\n				$this->document->addStyle(\'catalog/view/theme/coloring/assets/share/social-likes_birman.css\');\n				\n				\n				$this->load->language(\'coloring/coloring\');\n				\n				$data[\'product_short_description_text\'] = $this->language->get(\'product_short_description_text\');\n				$data[\'product_read_more_text\'] = $this->language->get(\'product_read_more_text\');\n				$data[\'product_all_specifications_text\'] = $this->language->get(\'product_all_specifications_text\');\n				$data[\'product_required_text\'] = $this->language->get(\'product_required_text\');\n				$data[\'product_share_text\'] = $this->language->get(\'product_share_text\');\n				$data[\'fastorder_text\'] = $this->language->get(\'fastorder_text\');\n				\n				$data[\'product_quantity_text\'] = sprintf($this->language->get(\'product_quantity_text\'), $product_info[\'quantity\']);\n\n      ]]></add>\n    </operation>\n		<operation>\n      <search><![CDATA[\n				$this->load->model(\'tool/image\');\n      ]]></search>\n      <add position=\"before\"><![CDATA[\n			\n				$data[\'product_quantity\'] = $product_info[\'quantity\'];\n				$data[\'config_stock_display\'] = $this->config->get(\'config_stock_display\');\n				\n				if ($product_info[\'quantity\'] <= 0) {\n					$data[\'product_stock\'] = $product_info[\'stock_status\'];\n				} else {\n					$data[\'product_stock\'] = $this->language->get(\'text_instock\');\n				}\n				\n				\n				$data[\'special_sticker\'] = false;\n				$data[\'ups_sticker\'] = false;\n				$data[\'ean_sticker\'] = false;\n				$data[\'jan_sticker\'] = false;\n				$data[\'isbn_sticker\'] = false;\n				$data[\'mpn_sticker\'] = false;\n\n				if ($product_info[\'price\'] && $product_info[\'special\']) {\n					$data[\'special_sticker_text\'] = round(100 - ($product_info[\'special\'] / $product_info[\'price\']) * 100) * (-1);\n				} else {\n					$data[\'special_sticker_text\'] = false;\n				}\n\n				$data[\'ups_sticker_text\'] = $product_info[\'upc\'];\n				$data[\'ean_sticker_text\'] = $product_info[\'ean\'];\n				$data[\'jan_sticker_text\'] = $product_info[\'jan\'];\n				$data[\'isbn_sticker_text\'] = $product_info[\'isbn\'];\n				$data[\'mpn_sticker_text\'] = $product_info[\'mpn\'];\n\n				\n				if (isset($coloring[\'t1_special_sticker\'])) {\n					$data[\'special_sticker\'] = $coloring[\'t1_special_sticker\'];\n				}\n				\n				if (isset($coloring[\'t1_ups_sticker\'])) {\n					$data[\'ups_sticker\'] = $coloring[\'t1_ups_sticker\'];\n				}\n\n				if (isset($coloring[\'t1_ean_sticker\'])) {\n					$data[\'ean_sticker\'] = $coloring[\'t1_ean_sticker\'];\n				}\n\n				if (isset($coloring[\'t1_jan_sticker\'])) {\n					$data[\'jan_sticker\'] = $coloring[\'t1_jan_sticker\'];\n				}\n\n				if (isset($coloring[\'t1_isbn_sticker\'])) {\n					$data[\'isbn_sticker\'] = $coloring[\'t1_isbn_sticker\'];\n				}\n\n				if (isset($coloring[\'t1_mpn_sticker\'])) {\n					$data[\'mpn_sticker\'] = $coloring[\'t1_mpn_sticker\'];\n				}\n\n				\n      ]]></add>\n    </operation>\n  </file>\n	\n	<file path=\"catalog/controller/product/category.php\">\n		<operation>\n      <search><![CDATA[\n				$this->load->language(\'product/category\');\n      ]]></search>\n      <add position=\"after\"><![CDATA[\n				$this->load->language(\'coloring/coloring\');\n				\n				$this->document->addScript(\'catalog/view/theme/coloring/assets/owl-carousel/owl.carousel.min.js\');\n				$this->document->addStyle(\'catalog/view/theme/coloring/assets/owl-carousel/owl.carousel.css\');\n				$this->document->addStyle(\'catalog/view/theme/coloring/assets/owl-carousel/owl.theme.css\');\n				\n				$this->document->addScript(\'catalog/view/javascript/jquery/datetimepicker/moment.js\');\n				$this->document->addScript(\'catalog/view/javascript/jquery/datetimepicker/bootstrap-datetimepicker.min.js\');\n				$this->document->addStyle(\'catalog/view/javascript/jquery/datetimepicker/bootstrap-datetimepicker.min.css\');\n      ]]></add>\n    </operation>\n		<operation>\n      <search><![CDATA[\n				$data[\'categories\'][] = array(\n      ]]></search>\n      <add position=\"after\"><![CDATA[\n				\'image\' => $this->model_tool_image->resize($result[\'image\'], 120, 120),\n      ]]></add>\n    </operation>\n		\n		\n		<operation>\n      <search><![CDATA[\n				$data[\'products\'][] = array(\n      ]]></search>\n      <add position=\"before\"><![CDATA[\n				\n				if ($result[\'price\'] && $result[\'special\']) {\n					$special_sticker_text = round(100 - ($result[\'special\'] / $result[\'price\']) * 100) * (-1);\n				} else {\n					$special_sticker_text = false;\n				}\n\n				$ups_sticker_text = $result[\'upc\'];\n				$ean_sticker_text = $result[\'ean\'];\n				$jan_sticker_text = $result[\'jan\'];\n				$isbn_sticker_text = $result[\'isbn\'];\n				$mpn_sticker_text = $result[\'mpn\'];\n\n      ]]></add>\n    </operation>\n		\n		\n		<operation>\n      <search><![CDATA[\n				$data[\'products\'][] = array(\n      ]]></search>\n      <add position=\"after\"><![CDATA[\n				\'quantity\' 					  	=> $result[\'quantity\'],\n				\'reviews\'   						=> sprintf($this->language->get(\'category_reviews_text\'), $result[\'reviews\']),\n				\'special_sticker_text\'  => $special_sticker_text,\n				\'ups_sticker_text\'			=> $ups_sticker_text,\n				\'ean_sticker_text\' 			=> $ean_sticker_text,\n				\'jan_sticker_text\' 			=> $jan_sticker_text,\n				\'isbn_sticker_text\' 		=> $isbn_sticker_text,\n				\'mpn_sticker_text\'			=> $mpn_sticker_text,\n				\n      ]]></add>\n    </operation>\n		<operation>\n      <search><![CDATA[\n				$this->load->model(\'tool/image\');\n      ]]></search>\n      <add position=\"after\"><![CDATA[\n				$this->load->model(\'setting/setting\');\n				\n				$language_id = $this->config->get(\'config_language_id\');\n				\n				$data[\'subcategory_left\'] = \'\';\n				$data[\'disable_cart_button_text\'] = \'\';\n				$data[\'disable_cart_button\'] = \'\';\n				$data[\'description_position\'] = \'\';\n				\n				$coloring = array();\n				$coloring = $this->model_setting_setting->getSetting(\'coloring\', $this->config->get(\'config_store_id\'));\n				\n				if (isset($coloring[\'t1_left_subcategory\'])) {\n					$data[\'subcategory_left\'] = $coloring[\'t1_left_subcategory\'];\n				}\n				\n				if (isset($coloring[\'t1_disable_cart_button\'])) {\n					$data[\'disable_cart_button\'] = $coloring[\'t1_disable_cart_button\'];\n				}\n\n				if (isset($coloring[\'t1_disable_cart_button_text\'])) {\n					$data[\'disable_cart_button_text\'] = $coloring[\'t1_disable_cart_button_text\'][$language_id];\n				}\n				\n				$data[\'on_off_qview\'] = false;\n				if (isset($coloring[\'t1_on_off_qview\'])) {\n					$data[\'on_off_qview\'] = $coloring[\'t1_on_off_qview\'];\n				}\n				\n				$data[\'on_off_fastorder\'] = false;\n				if (isset($coloring[\'t1_on_off_fastorder\'])) {\n					$data[\'on_off_fastorder\'] = $coloring[\'t1_on_off_fastorder\'];\n				}\n				\n				$data[\'on_off_fastorder_out_of_stok\'] = false;\n				if (isset($coloring[\'t1_on_off_fastorder_out_of_stok\'])) {\n					$data[\'on_off_fastorder_out_of_stok\'] = $coloring[\'t1_on_off_fastorder_out_of_stok\'];\n				}\n						\n				$data[\'second_button\'] = false;\n				if (isset($coloring[\'t1_second_button\'])) {\n					$data[\'second_button\'] = $coloring[\'t1_second_button\'];\n				}\n				\n				$data[\'fastorder_text\'] = $this->language->get(\'fastorder_text\');\n\n				$data[\'qview_text\'] = $this->language->get(\'qview_text\');\n				\n				if (isset($coloring[\'t1_category_description_position\'])) {\n					$data[\'description_position\'] = $coloring[\'t1_category_description_position\'];\n				}\n				\n				\n				\n				\n				$data[\'special_sticker\'] = false;\n				$data[\'ups_sticker\'] = false;\n				$data[\'ean_sticker\'] = false;\n				$data[\'jan_sticker\'] = false;\n				$data[\'isbn_sticker\'] = false;\n				$data[\'mpn_sticker\'] = false;\n				\n				\n				if (isset($coloring[\'t1_special_sticker\'])) {\n					$data[\'special_sticker\'] = $coloring[\'t1_special_sticker\'];\n				}\n				if (isset($coloring[\'t1_ups_sticker\'])) {\n					$data[\'ups_sticker\'] = $coloring[\'t1_ups_sticker\'];\n				}\n				if (isset($coloring[\'t1_ean_sticker\'])) {\n					$data[\'ean_sticker\'] = $coloring[\'t1_ean_sticker\'];\n				}\n				if (isset($coloring[\'t1_jan_sticker\'])) {\n					$data[\'jan_sticker\'] = $coloring[\'t1_jan_sticker\'];\n				}\n				if (isset($coloring[\'t1_isbn_sticker\'])) {\n					$data[\'isbn_sticker\'] = $coloring[\'t1_isbn_sticker\'];\n				}\n				if (isset($coloring[\'t1_mpn_sticker\'])) {\n					$data[\'mpn_sticker\'] = $coloring[\'t1_mpn_sticker\'];\n				}\n\n      ]]></add>\n    </operation>\n		<operation>\n      <search><![CDATA[\n				\'href\'  => $this->url->link(\'product/category\', \'path=\' . $this->request->get[\'path\'] . \'&sort=p.model&order=DESC\' . $url)\n      ]]></search>\n      <add position=\"after\" offset=\"1\"><![CDATA[\n				$data[\'sorts\'][] = array(\n					\'text\'  => $this->language->get(\'text_quantity_asc\'),\n					\'value\' => \'p.quantity-ASC\',\n					\'href\'  => $this->url->link(\'product/category\', \'path=\' . $this->request->get[\'path\'] . \'&sort=p.quantity&order=ASC\' . $url)\n				);\n				$data[\'sorts\'][] = array(\n					\'text\'  => $this->language->get(\'text_quantity_desc\'),\n					\'value\' => \'p.quantity-DESC\',\n					\'href\'  => $this->url->link(\'product/category\', \'path=\' . $this->request->get[\'path\'] . \'&sort=p.quantity&order=DESC\' . $url)\n				);\n      ]]></add>\n    </operation>\n  </file>\n	\n	<file path=\"catalog/controller/product/search.php\">\n		<operation>\n      <search><![CDATA[\n				$this->load->language(\'product/search\');\n      ]]></search>\n      <add position=\"after\"><![CDATA[\n				$this->load->language(\'coloring/coloring\');\n				\n				$this->document->addScript(\'catalog/view/theme/coloring/assets/owl-carousel/owl.carousel.min.js\');\n				$this->document->addStyle(\'catalog/view/theme/coloring/assets/owl-carousel/owl.carousel.css\');\n				$this->document->addStyle(\'catalog/view/theme/coloring/assets/owl-carousel/owl.theme.css\');\n				\n				$this->document->addScript(\'catalog/view/javascript/jquery/datetimepicker/moment.js\');\n				$this->document->addScript(\'catalog/view/javascript/jquery/datetimepicker/bootstrap-datetimepicker.min.js\');\n				$this->document->addStyle(\'catalog/view/javascript/jquery/datetimepicker/bootstrap-datetimepicker.min.css\');\n      ]]></add>\n    </operation>\n\n		<operation>\n      <search><![CDATA[\n				$data[\'products\'][] = array(\n      ]]></search>\n      <add position=\"before\"><![CDATA[\n				\n				if ($result[\'price\'] && $result[\'special\']) {\n					$special_sticker_text = round(100 - ($result[\'special\'] / $result[\'price\']) * 100) * (-1);\n				} else {\n					$special_sticker_text = false;\n				}\n\n				$ups_sticker_text = $result[\'upc\'];\n				$ean_sticker_text = $result[\'ean\'];\n				$jan_sticker_text = $result[\'jan\'];\n				$isbn_sticker_text = $result[\'isbn\'];\n				$mpn_sticker_text = $result[\'mpn\'];\n\n      ]]></add>\n    </operation>\n		\n		<operation>\n      <search><![CDATA[\n				$data[\'products\'][] = array(\n      ]]></search>\n      <add position=\"after\"><![CDATA[\n				\'quantity\'  => $result[\'quantity\'],\n				\'reviews\'   => sprintf($this->language->get(\'category_reviews_text\'), $result[\'reviews\']),\n				\'special_sticker_text\'  => $special_sticker_text,\n				\'ups_sticker_text\'			=> $ups_sticker_text,\n				\'ean_sticker_text\' 			=> $ean_sticker_text,\n				\'jan_sticker_text\' 			=> $jan_sticker_text,\n				\'isbn_sticker_text\' 		=> $isbn_sticker_text,\n				\'mpn_sticker_text\'			=> $mpn_sticker_text,\n      ]]></add>\n    </operation>\n		<operation>\n      <search><![CDATA[\n				$this->load->model(\'tool/image\');\n      ]]></search>\n      <add position=\"after\"><![CDATA[\n				$this->load->model(\'setting/setting\');\n				\n				$language_id = $this->config->get(\'config_language_id\');\n				\n				$data[\'disable_cart_button_text\'] = \'\';\n				$data[\'disable_cart_button\'] = \'\';\n				\n				$coloring = array();\n				$coloring = $this->model_setting_setting->getSetting(\'coloring\', $this->config->get(\'config_store_id\'));\n				\n				if (isset($coloring[\'t1_disable_cart_button\'])) {\n					$data[\'disable_cart_button\'] = $coloring[\'t1_disable_cart_button\'];\n				}\n\n				if (isset($coloring[\'t1_disable_cart_button_text\'])) {\n					$data[\'disable_cart_button_text\'] = $coloring[\'t1_disable_cart_button_text\'][$language_id];\n				}\n				\n				$data[\'on_off_qview\'] = false;\n				if (isset($coloring[\'t1_on_off_qview\'])) {\n					$data[\'on_off_qview\'] = $coloring[\'t1_on_off_qview\'];\n				}\n				\n				$data[\'on_off_fastorder\'] = false;\n				if (isset($coloring[\'t1_on_off_fastorder\'])) {\n					$data[\'on_off_fastorder\'] = $coloring[\'t1_on_off_fastorder\'];\n				}\n				\n				$data[\'on_off_fastorder_out_of_stok\'] = false;\n				if (isset($coloring[\'t1_on_off_fastorder_out_of_stok\'])) {\n					$data[\'on_off_fastorder_out_of_stok\'] = $coloring[\'t1_on_off_fastorder_out_of_stok\'];\n				}\n						\n				$data[\'second_button\'] = false;\n				if (isset($coloring[\'t1_second_button\'])) {\n					$data[\'second_button\'] = $coloring[\'t1_second_button\'];\n				}\n				\n				$data[\'fastorder_text\'] = $this->language->get(\'fastorder_text\');\n\n				$data[\'qview_text\'] = $this->language->get(\'qview_text\');\n				\n				$data[\'special_sticker\'] = false;\n				$data[\'ups_sticker\'] = false;\n				$data[\'ean_sticker\'] = false;\n				$data[\'jan_sticker\'] = false;\n				$data[\'isbn_sticker\'] = false;\n				$data[\'mpn_sticker\'] = false;\n				\n				\n				if (isset($coloring[\'t1_special_sticker\'])) {\n					$data[\'special_sticker\'] = $coloring[\'t1_special_sticker\'];\n				}\n				if (isset($coloring[\'t1_ups_sticker\'])) {\n					$data[\'ups_sticker\'] = $coloring[\'t1_ups_sticker\'];\n				}\n				if (isset($coloring[\'t1_ean_sticker\'])) {\n					$data[\'ean_sticker\'] = $coloring[\'t1_ean_sticker\'];\n				}\n				if (isset($coloring[\'t1_jan_sticker\'])) {\n					$data[\'jan_sticker\'] = $coloring[\'t1_jan_sticker\'];\n				}\n				if (isset($coloring[\'t1_isbn_sticker\'])) {\n					$data[\'isbn_sticker\'] = $coloring[\'t1_isbn_sticker\'];\n				}\n				if (isset($coloring[\'t1_mpn_sticker\'])) {\n					$data[\'mpn_sticker\'] = $coloring[\'t1_mpn_sticker\'];\n				}\n				\n      ]]></add>\n    </operation>\n		<operation>\n      <search><![CDATA[\n				\'href\'  => $this->url->link(\'product/search\', \'sort=p.model&order=DESC\' . $url)\n      ]]></search>\n      <add position=\"after\" offset=\"1\"><![CDATA[\n				$data[\'sorts\'][] = array(\n					\'text\'  => $this->language->get(\'text_quantity_asc\'),\n					\'value\' => \'p.quantity-ASC\',\n					\'href\'  => $this->url->link(\'product/search\', \'&sort=p.quantity&order=ASC\' . $url)\n				);\n				$data[\'sorts\'][] = array(\n					\'text\'  => $this->language->get(\'text_quantity_desc\'),\n					\'value\' => \'p.quantity-DESC\',\n					\'href\'  => $this->url->link(\'product/search\', \'&sort=p.quantity&order=DESC\' . $url)\n				);\n      ]]></add>\n    </operation>\n  </file>\n	\n	<file path=\"catalog/controller/product/special.php\">\n		<operation>\n      <search><![CDATA[\n				$this->load->language(\'product/special\');\n      ]]></search>\n      <add position=\"after\"><![CDATA[\n				$this->load->language(\'coloring/coloring\');\n				\n				$this->document->addScript(\'catalog/view/theme/coloring/assets/owl-carousel/owl.carousel.min.js\');\n				$this->document->addStyle(\'catalog/view/theme/coloring/assets/owl-carousel/owl.carousel.css\');\n				$this->document->addStyle(\'catalog/view/theme/coloring/assets/owl-carousel/owl.theme.css\');\n				\n				$this->document->addScript(\'catalog/view/javascript/jquery/datetimepicker/moment.js\');\n				$this->document->addScript(\'catalog/view/javascript/jquery/datetimepicker/bootstrap-datetimepicker.min.js\');\n				$this->document->addStyle(\'catalog/view/javascript/jquery/datetimepicker/bootstrap-datetimepicker.min.css\');\n      ]]></add>\n    </operation>\n		\n		<operation>\n      <search><![CDATA[\n				$data[\'products\'][] = array(\n      ]]></search>\n      <add position=\"before\"><![CDATA[\n				\n				if ($result[\'price\'] && $result[\'special\']) {\n					$special_sticker_text = round(100 - ($result[\'special\'] / $result[\'price\']) * 100) * (-1);\n				} else {\n					$special_sticker_text = false;\n				}\n\n				$ups_sticker_text = $result[\'upc\'];\n				$ean_sticker_text = $result[\'ean\'];\n				$jan_sticker_text = $result[\'jan\'];\n				$isbn_sticker_text = $result[\'isbn\'];\n				$mpn_sticker_text = $result[\'mpn\'];\n\n      ]]></add>\n    </operation>\n		<operation>\n      <search><![CDATA[\n				$data[\'products\'][] = array(\n      ]]></search>\n      <add position=\"after\"><![CDATA[\n				\'quantity\'  => $result[\'quantity\'],\n				\'reviews\'   => sprintf($this->language->get(\'category_reviews_text\'), $result[\'reviews\']),\n				\'special_sticker_text\'  => $special_sticker_text,\n				\'ups_sticker_text\'			=> $ups_sticker_text,\n				\'ean_sticker_text\' 			=> $ean_sticker_text,\n				\'jan_sticker_text\' 			=> $jan_sticker_text,\n				\'isbn_sticker_text\' 		=> $isbn_sticker_text,\n				\'mpn_sticker_text\'			=> $mpn_sticker_text,\n      ]]></add>\n    </operation>\n		<operation>\n      <search><![CDATA[\n				$this->load->model(\'tool/image\');\n      ]]></search>\n      <add position=\"after\"><![CDATA[\n				$this->load->model(\'setting/setting\');\n				\n				$language_id = $this->config->get(\'config_language_id\');\n				\n				$data[\'disable_cart_button_text\'] = \'\';\n				$data[\'disable_cart_button\'] = \'\';\n				\n				$coloring = array();\n				$coloring = $this->model_setting_setting->getSetting(\'coloring\', $this->config->get(\'config_store_id\'));\n				\n				if (isset($coloring[\'t1_disable_cart_button\'])) {\n					$data[\'disable_cart_button\'] = $coloring[\'t1_disable_cart_button\'];\n				}\n\n				if (isset($coloring[\'t1_disable_cart_button_text\'])) {\n					$data[\'disable_cart_button_text\'] = $coloring[\'t1_disable_cart_button_text\'][$language_id];\n				}\n				\n				$data[\'on_off_qview\'] = false;\n				if (isset($coloring[\'t1_on_off_qview\'])) {\n					$data[\'on_off_qview\'] = $coloring[\'t1_on_off_qview\'];\n				}\n				\n				$data[\'on_off_fastorder\'] = false;\n				if (isset($coloring[\'t1_on_off_fastorder\'])) {\n					$data[\'on_off_fastorder\'] = $coloring[\'t1_on_off_fastorder\'];\n				}\n				\n				$data[\'on_off_fastorder_out_of_stok\'] = false;\n				if (isset($coloring[\'t1_on_off_fastorder_out_of_stok\'])) {\n					$data[\'on_off_fastorder_out_of_stok\'] = $coloring[\'t1_on_off_fastorder_out_of_stok\'];\n				}\n						\n				$data[\'second_button\'] = false;\n				if (isset($coloring[\'t1_second_button\'])) {\n					$data[\'second_button\'] = $coloring[\'t1_second_button\'];\n				}\n				\n				$data[\'fastorder_text\'] = $this->language->get(\'fastorder_text\');\n\n				$data[\'qview_text\'] = $this->language->get(\'qview_text\');\n				\n				$data[\'special_sticker\'] = false;\n				$data[\'ups_sticker\'] = false;\n				$data[\'ean_sticker\'] = false;\n				$data[\'jan_sticker\'] = false;\n				$data[\'isbn_sticker\'] = false;\n				$data[\'mpn_sticker\'] = false;\n				\n				\n				if (isset($coloring[\'t1_special_sticker\'])) {\n					$data[\'special_sticker\'] = $coloring[\'t1_special_sticker\'];\n				}\n				if (isset($coloring[\'t1_ups_sticker\'])) {\n					$data[\'ups_sticker\'] = $coloring[\'t1_ups_sticker\'];\n				}\n				if (isset($coloring[\'t1_ean_sticker\'])) {\n					$data[\'ean_sticker\'] = $coloring[\'t1_ean_sticker\'];\n				}\n				if (isset($coloring[\'t1_jan_sticker\'])) {\n					$data[\'jan_sticker\'] = $coloring[\'t1_jan_sticker\'];\n				}\n				if (isset($coloring[\'t1_isbn_sticker\'])) {\n					$data[\'isbn_sticker\'] = $coloring[\'t1_isbn_sticker\'];\n				}\n				if (isset($coloring[\'t1_mpn_sticker\'])) {\n					$data[\'mpn_sticker\'] = $coloring[\'t1_mpn_sticker\'];\n				}\n				\n      ]]></add>\n    </operation>\n		<operation>\n      <search><![CDATA[\n				\'href\'  => $this->url->link(\'product/special\', \'sort=p.model&order=DESC\' . $url)\n      ]]></search>\n      <add position=\"after\" offset=\"1\"><![CDATA[\n				$data[\'sorts\'][] = array(\n					\'text\'  => $this->language->get(\'text_quantity_asc\'),\n					\'value\' => \'p.quantity-ASC\',\n					\'href\'  => $this->url->link(\'product/special\', \'&sort=p.quantity&order=ASC\' . $url)\n				);\n				$data[\'sorts\'][] = array(\n					\'text\'  => $this->language->get(\'text_quantity_desc\'),\n					\'value\' => \'p.quantity-DESC\',\n					\'href\'  => $this->url->link(\'product/special\', \'&sort=p.quantity&order=DESC\' . $url)\n				);\n      ]]></add>\n    </operation>\n  </file>\n	\n	<file path=\"catalog/controller/product/manufacturer.php\">\n		<operation>\n      <search><![CDATA[\n				$this->load->language(\'product/manufacturer\');\n      ]]></search>\n      <add position=\"after\"><![CDATA[\n				$this->load->language(\'coloring/coloring\');\n				\n				$this->document->addScript(\'catalog/view/theme/coloring/assets/owl-carousel/owl.carousel.min.js\');\n				$this->document->addStyle(\'catalog/view/theme/coloring/assets/owl-carousel/owl.carousel.css\');\n				$this->document->addStyle(\'catalog/view/theme/coloring/assets/owl-carousel/owl.theme.css\');\n				\n				$this->document->addScript(\'catalog/view/javascript/jquery/datetimepicker/moment.js\');\n				$this->document->addScript(\'catalog/view/javascript/jquery/datetimepicker/bootstrap-datetimepicker.min.js\');\n				$this->document->addStyle(\'catalog/view/javascript/jquery/datetimepicker/bootstrap-datetimepicker.min.css\');\n      ]]></add>\n    </operation>\n\n		<operation>\n      <search><![CDATA[\n				$data[\'products\'][] = array(\n      ]]></search>\n      <add position=\"before\"><![CDATA[\n				\n				if ($result[\'price\'] && $result[\'special\']) {\n					$special_sticker_text = round(100 - ($result[\'special\'] / $result[\'price\']) * 100) * (-1);\n				} else {\n					$special_sticker_text = false;\n				}\n\n				$ups_sticker_text = $result[\'upc\'];\n				$ean_sticker_text = $result[\'ean\'];\n				$jan_sticker_text = $result[\'jan\'];\n				$isbn_sticker_text = $result[\'isbn\'];\n				$mpn_sticker_text = $result[\'mpn\'];\n\n      ]]></add>\n    </operation>\n		\n		<operation>\n      <search><![CDATA[\n				$data[\'products\'][] = array(\n      ]]></search>\n      <add position=\"after\"><![CDATA[\n				\'quantity\'  => $result[\'quantity\'],\n				\'reviews\'   => sprintf($this->language->get(\'category_reviews_text\'), $result[\'reviews\']),\n				\'special_sticker_text\'  => $special_sticker_text,\n				\'ups_sticker_text\'			=> $ups_sticker_text,\n				\'ean_sticker_text\' 			=> $ean_sticker_text,\n				\'jan_sticker_text\' 			=> $jan_sticker_text,\n				\'isbn_sticker_text\' 		=> $isbn_sticker_text,\n				\'mpn_sticker_text\'			=> $mpn_sticker_text,\n      ]]></add>\n    </operation>\n		<operation>\n      <search><![CDATA[\n				$this->load->model(\'tool/image\');\n      ]]></search>\n      <add position=\"after\"><![CDATA[\n				$this->load->model(\'setting/setting\');\n				\n				$language_id = $this->config->get(\'config_language_id\');\n				\n				$data[\'disable_cart_button_text\'] = \'\';\n				$data[\'disable_cart_button\'] = \'\';\n				\n				$coloring = array();\n				$coloring = $this->model_setting_setting->getSetting(\'coloring\', $this->config->get(\'config_store_id\'));\n				\n				if (isset($coloring[\'t1_disable_cart_button\'])) {\n					$data[\'disable_cart_button\'] = $coloring[\'t1_disable_cart_button\'];\n				}\n\n				if (isset($coloring[\'t1_disable_cart_button_text\'])) {\n					$data[\'disable_cart_button_text\'] = $coloring[\'t1_disable_cart_button_text\'][$language_id];\n				}\n				\n				$data[\'on_off_qview\'] = false;\n				if (isset($coloring[\'t1_on_off_qview\'])) {\n					$data[\'on_off_qview\'] = $coloring[\'t1_on_off_qview\'];\n				}\n				\n				$data[\'on_off_fastorder\'] = false;\n				if (isset($coloring[\'t1_on_off_fastorder\'])) {\n					$data[\'on_off_fastorder\'] = $coloring[\'t1_on_off_fastorder\'];\n				}\n				\n				$data[\'on_off_fastorder_out_of_stok\'] = false;\n				if (isset($coloring[\'t1_on_off_fastorder_out_of_stok\'])) {\n					$data[\'on_off_fastorder_out_of_stok\'] = $coloring[\'t1_on_off_fastorder_out_of_stok\'];\n				}\n						\n				$data[\'second_button\'] = false;\n				if (isset($coloring[\'t1_second_button\'])) {\n					$data[\'second_button\'] = $coloring[\'t1_second_button\'];\n				}\n				\n				$data[\'fastorder_text\'] = $this->language->get(\'fastorder_text\');\n\n				$data[\'qview_text\'] = $this->language->get(\'qview_text\');\n				\n				\n				\n				$data[\'special_sticker\'] = false;\n				$data[\'ups_sticker\'] = false;\n				$data[\'ean_sticker\'] = false;\n				$data[\'jan_sticker\'] = false;\n				$data[\'isbn_sticker\'] = false;\n				$data[\'mpn_sticker\'] = false;\n				\n				\n				if (isset($coloring[\'t1_special_sticker\'])) {\n					$data[\'special_sticker\'] = $coloring[\'t1_special_sticker\'];\n				}\n				if (isset($coloring[\'t1_ups_sticker\'])) {\n					$data[\'ups_sticker\'] = $coloring[\'t1_ups_sticker\'];\n				}\n				if (isset($coloring[\'t1_ean_sticker\'])) {\n					$data[\'ean_sticker\'] = $coloring[\'t1_ean_sticker\'];\n				}\n				if (isset($coloring[\'t1_jan_sticker\'])) {\n					$data[\'jan_sticker\'] = $coloring[\'t1_jan_sticker\'];\n				}\n				if (isset($coloring[\'t1_isbn_sticker\'])) {\n					$data[\'isbn_sticker\'] = $coloring[\'t1_isbn_sticker\'];\n				}\n				if (isset($coloring[\'t1_mpn_sticker\'])) {\n					$data[\'mpn_sticker\'] = $coloring[\'t1_mpn_sticker\'];\n				}\n				\n      ]]></add>\n    </operation>\n		<operation>\n      <search><![CDATA[\n				\'href\'  => $this->url->link(\'product/manufacturer/info\', \'manufacturer_id=\' . $this->request->get[\'manufacturer_id\'] . \'&sort=p.model&order=DESC\' . $url)\n      ]]></search>\n      <add position=\"after\" offset=\"1\"><![CDATA[\n				$data[\'sorts\'][] = array(\n					\'text\'  => $this->language->get(\'text_quantity_asc\'),\n					\'value\' => \'p.quantity-ASC\',\n					\'href\'  => $this->url->link(\'product/manufacturer/info\', \'manufacturer_id=\' . $this->request->get[\'manufacturer_id\'] . \'&sort=p.quantity&order=ASC\' . $url)\n				);\n				$data[\'sorts\'][] = array(\n					\'text\'  => $this->language->get(\'text_quantity_desc\'),\n					\'value\' => \'p.quantity-DESC\',\n					\'href\'  => $this->url->link(\'product/manufacturer/info\', \'manufacturer_id=\' . $this->request->get[\'manufacturer_id\'] . \'&sort=p.quantity&order=DESC\' . $url)\n				);\n      ]]></add>\n    </operation>\n  </file>\n	\n  <file path=\"catalog/controller/product/compare.php\">\n		<operation>\n      <search><![CDATA[\n				$json[\'total\'] = sprintf($this->language->get(\'text_compare\'), (isset($this->session->data[\'compare\']) ? count($this->session->data[\'compare\']) : 0));\n      ]]></search>\n      <add position=\"after\"><![CDATA[\n				$this->load->language(\'coloring/coloring\');\n				$json[\'total\'] = sprintf($this->language->get(\'coloring_product_compare\'), (isset($this->session->data[\'compare\']) ? count($this->session->data[\'compare\']) : 0));\n      ]]></add>\n    </operation>\n	</file>\n	\n	<file path=\"catalog/controller/extension/module/carousel.php\">\n		<operation>\n      <search><![CDATA[\n				$this->document->addStyle(\'catalog/view/javascript/jquery/owl-carousel/owl.carousel.css\');\n      ]]></search>\n      <add position=\"replace\"><![CDATA[\n        $this->document->addStyle(\'catalog/view/theme/coloring/assets/owl-carousel/owl.carousel.css\');\n				$this->document->addStyle(\'catalog/view/theme/coloring/assets/owl-carousel/owl.theme.css\');\n      ]]></add>\n    </operation>\n		<operation>\n      <search><![CDATA[\n				$this->document->addScript(\'catalog/view/javascript/jquery/owl-carousel/owl.carousel.min.js\');\n      ]]></search>\n      <add position=\"replace\"><![CDATA[\n        $this->document->addScript(\'catalog/view/theme/coloring/assets/owl-carousel/owl.carousel.min.js\');\n				$data[\'alt_text\'] = $setting[\'name\'];\n      ]]></add>\n    </operation>\n  </file>\n	\n	<file path=\"catalog/controller/extension/module/slideshow.php\">\n		<operation>\n      <search><![CDATA[\n				$this->document->addStyle(\'catalog/view/javascript/jquery/owl-carousel/owl.carousel.css\');\n      ]]></search>\n      <add position=\"replace\"><![CDATA[\n        $this->document->addStyle(\'catalog/view/theme/coloring/assets/nivo-slider/nivo-slider.css\');\n      ]]></add>\n    </operation>\n		<operation>\n      <search><![CDATA[\n				$this->document->addScript(\'catalog/view/javascript/jquery/owl-carousel/owl.carousel.min.js\');\n      ]]></search>\n      <add position=\"replace\"><![CDATA[\n        $this->document->addScript(\'catalog/view/theme/coloring/assets/nivo-slider/jquery.nivo.slider.pack.js\');\n      ]]></add>\n    </operation>\n  </file>\n	\n	<file path=\"catalog/controller/extension/module/featured.php\">\n		<operation>\n      <search><![CDATA[\n				$data[\'products\'][] = array(\n      ]]></search>\n      <add position=\"before\"><![CDATA[\n				\n				if ($product_info[\'price\'] && $product_info[\'special\']) {\n					$special_sticker_text = round(100 - ($product_info[\'special\'] / $product_info[\'price\']) * 100) * (-1);\n				} else {\n					$special_sticker_text = false;\n				}\n\n				$ups_sticker_text = $product_info[\'upc\'];\n				$ean_sticker_text = $product_info[\'ean\'];\n				$jan_sticker_text = $product_info[\'jan\'];\n				$isbn_sticker_text = $product_info[\'isbn\'];\n				$mpn_sticker_text = $product_info[\'mpn\'];\n\n      ]]></add>\n    </operation>\n		<operation>\n      <search><![CDATA[\n				$data[\'products\'][] = array(\n      ]]></search>\n      <add position=\"after\"><![CDATA[\n				\'quantity\'  => $product_info[\'quantity\'],\n				\'special_sticker_text\'  => $special_sticker_text,\n				\'ups_sticker_text\'			=> $ups_sticker_text,\n				\'ean_sticker_text\' 			=> $ean_sticker_text,\n				\'jan_sticker_text\' 			=> $jan_sticker_text,\n				\'isbn_sticker_text\' 		=> $isbn_sticker_text,\n				\'mpn_sticker_text\'			=> $mpn_sticker_text,\n      ]]></add>\n    </operation>\n		<operation>\n      <search><![CDATA[\n				$data[\'heading_title\'] = $this->language->get(\'heading_title\');\n      ]]></search>\n      <add position=\"after\"><![CDATA[\n				$this->load->model(\'setting/setting\');\n				$coloring = array();\n				$coloring = $this->model_setting_setting->getSetting(\'coloring\', $this->config->get(\'config_store_id\'));\n				$language_id = $this->config->get(\'config_language_id\');\n				$data[\'disable_cart_button\'] = false;\n				if (isset($coloring[\'t1_disable_cart_button\'])) {\n					$data[\'disable_cart_button\'] = $coloring[\'t1_disable_cart_button\'];\n				}\n				$data[\'disable_cart_button_text\'] = \"\";\n				if (isset($coloring[\'t1_disable_cart_button_text\'])) {\n					$data[\'disable_cart_button_text\'] = $coloring[\'t1_disable_cart_button_text\'][$language_id];\n				}\n				\n				$data[\'on_off_qview\'] = false;\n				if (isset($coloring[\'t1_on_off_qview\'])) {\n					$data[\'on_off_qview\'] = $coloring[\'t1_on_off_qview\'];\n				}\n				\n				$data[\'on_off_fastorder\'] = false;\n				if (isset($coloring[\'t1_on_off_fastorder\'])) {\n					$data[\'on_off_fastorder\'] = $coloring[\'t1_on_off_fastorder\'];\n				}\n				\n				$data[\'on_off_fastorder_out_of_stok\'] = false;\n				if (isset($coloring[\'t1_on_off_fastorder_out_of_stok\'])) {\n					$data[\'on_off_fastorder_out_of_stok\'] = $coloring[\'t1_on_off_fastorder_out_of_stok\'];\n				}\n				\n				$data[\'second_button\'] = false;\n				if (isset($coloring[\'t1_second_button\'])) {\n					$data[\'second_button\'] = $coloring[\'t1_second_button\'];\n				}\n				\n				$this->load->language(\'coloring/coloring\');\n				$data[\'qview_text\'] = $this->language->get(\'qview_text\');\n				$data[\'fastorder_text\'] = $this->language->get(\'fastorder_text\');\n				\n				$this->document->addScript(\'catalog/view/theme/coloring/assets/owl-carousel/owl.carousel.min.js\');\n				$this->document->addStyle(\'catalog/view/theme/coloring/assets/owl-carousel/owl.carousel.css\');\n				$this->document->addStyle(\'catalog/view/theme/coloring/assets/owl-carousel/owl.theme.css\');\n				\n				$this->document->addScript(\'catalog/view/javascript/jquery/datetimepicker/moment.js\');\n				$this->document->addScript(\'catalog/view/javascript/jquery/datetimepicker/bootstrap-datetimepicker.min.js\');\n				$this->document->addStyle(\'catalog/view/javascript/jquery/datetimepicker/bootstrap-datetimepicker.min.css\');\n				\n				\n				$data[\'special_sticker\'] = false;\n				$data[\'ups_sticker\'] = false;\n				$data[\'ean_sticker\'] = false;\n				$data[\'jan_sticker\'] = false;\n				$data[\'isbn_sticker\'] = false;\n				$data[\'mpn_sticker\'] = false;\n				\n				\n				if (isset($coloring[\'t1_special_sticker\'])) {\n					$data[\'special_sticker\'] = $coloring[\'t1_special_sticker\'];\n				}\n				if (isset($coloring[\'t1_ups_sticker\'])) {\n					$data[\'ups_sticker\'] = $coloring[\'t1_ups_sticker\'];\n				}\n				if (isset($coloring[\'t1_ean_sticker\'])) {\n					$data[\'ean_sticker\'] = $coloring[\'t1_ean_sticker\'];\n				}\n				if (isset($coloring[\'t1_jan_sticker\'])) {\n					$data[\'jan_sticker\'] = $coloring[\'t1_jan_sticker\'];\n				}\n				if (isset($coloring[\'t1_isbn_sticker\'])) {\n					$data[\'isbn_sticker\'] = $coloring[\'t1_isbn_sticker\'];\n				}\n				if (isset($coloring[\'t1_mpn_sticker\'])) {\n					$data[\'mpn_sticker\'] = $coloring[\'t1_mpn_sticker\'];\n				}\n      ]]></add>\n    </operation>\n  </file>\n	\n	<file path=\"catalog/controller/extension/module/latest.php\">\n		<operation>\n      <search><![CDATA[\n				$data[\'products\'][] = array(\n      ]]></search>\n      <add position=\"before\"><![CDATA[\n				\n				if ($result[\'price\'] && $result[\'special\']) {\n					$special_sticker_text = round(100 - ($result[\'special\'] / $result[\'price\']) * 100) * (-1);\n				} else {\n					$special_sticker_text = false;\n				}\n\n				$ups_sticker_text = $result[\'upc\'];\n				$ean_sticker_text = $result[\'ean\'];\n				$jan_sticker_text = $result[\'jan\'];\n				$isbn_sticker_text = $result[\'isbn\'];\n				$mpn_sticker_text = $result[\'mpn\'];\n\n      ]]></add>\n    </operation>\n		<operation>\n      <search><![CDATA[\n				$data[\'products\'][] = array(\n      ]]></search>\n      <add position=\"after\"><![CDATA[\n				\'quantity\'  => $result[\'quantity\'],\n				\'special_sticker_text\'  => $special_sticker_text,\n				\'ups_sticker_text\'			=> $ups_sticker_text,\n				\'ean_sticker_text\' 			=> $ean_sticker_text,\n				\'jan_sticker_text\' 			=> $jan_sticker_text,\n				\'isbn_sticker_text\' 		=> $isbn_sticker_text,\n				\'mpn_sticker_text\'			=> $mpn_sticker_text,\n      ]]></add>\n    </operation>\n		<operation>\n      <search><![CDATA[\n				$data[\'heading_title\'] = $this->language->get(\'heading_title\');\n      ]]></search>\n      <add position=\"after\"><![CDATA[\n				$this->load->model(\'setting/setting\');\n				$coloring = array();\n				$coloring = $this->model_setting_setting->getSetting(\'coloring\', $this->config->get(\'config_store_id\'));\n				$language_id = $this->config->get(\'config_language_id\');\n				$data[\'disable_cart_button\'] = false;\n				if (isset($coloring[\'t1_disable_cart_button\'])) {\n					$data[\'disable_cart_button\'] = $coloring[\'t1_disable_cart_button\'];\n				}\n				$data[\'disable_cart_button_text\'] = \"\";\n				if (isset($coloring[\'t1_disable_cart_button_text\'])) {\n					$data[\'disable_cart_button_text\'] = $coloring[\'t1_disable_cart_button_text\'][$language_id];\n				}\n				\n				$data[\'on_off_qview\'] = false;\n				if (isset($coloring[\'t1_on_off_qview\'])) {\n					$data[\'on_off_qview\'] = $coloring[\'t1_on_off_qview\'];\n				}\n				\n				$data[\'on_off_fastorder\'] = false;\n				if (isset($coloring[\'t1_on_off_fastorder\'])) {\n					$data[\'on_off_fastorder\'] = $coloring[\'t1_on_off_fastorder\'];\n				}\n				\n				$data[\'on_off_fastorder_out_of_stok\'] = false;\n				if (isset($coloring[\'t1_on_off_fastorder_out_of_stok\'])) {\n					$data[\'on_off_fastorder_out_of_stok\'] = $coloring[\'t1_on_off_fastorder_out_of_stok\'];\n				}\n				\n				$data[\'second_button\'] = false;\n				if (isset($coloring[\'t1_second_button\'])) {\n					$data[\'second_button\'] = $coloring[\'t1_second_button\'];\n				}\n				\n				$this->load->language(\'coloring/coloring\');\n				$data[\'qview_text\'] = $this->language->get(\'qview_text\');\n				$data[\'fastorder_text\'] = $this->language->get(\'fastorder_text\');\n				\n				$this->document->addScript(\'catalog/view/theme/coloring/assets/owl-carousel/owl.carousel.min.js\');\n				$this->document->addStyle(\'catalog/view/theme/coloring/assets/owl-carousel/owl.carousel.css\');\n				$this->document->addStyle(\'catalog/view/theme/coloring/assets/owl-carousel/owl.theme.css\');\n				\n				$this->document->addScript(\'catalog/view/javascript/jquery/datetimepicker/moment.js\');\n				$this->document->addScript(\'catalog/view/javascript/jquery/datetimepicker/bootstrap-datetimepicker.min.js\');\n				$this->document->addStyle(\'catalog/view/javascript/jquery/datetimepicker/bootstrap-datetimepicker.min.css\');\n				\n				$data[\'special_sticker\'] = false;\n				$data[\'ups_sticker\'] = false;\n				$data[\'ean_sticker\'] = false;\n				$data[\'jan_sticker\'] = false;\n				$data[\'isbn_sticker\'] = false;\n				$data[\'mpn_sticker\'] = false;\n				\n				\n				if (isset($coloring[\'t1_special_sticker\'])) {\n					$data[\'special_sticker\'] = $coloring[\'t1_special_sticker\'];\n				}\n				if (isset($coloring[\'t1_ups_sticker\'])) {\n					$data[\'ups_sticker\'] = $coloring[\'t1_ups_sticker\'];\n				}\n				if (isset($coloring[\'t1_ean_sticker\'])) {\n					$data[\'ean_sticker\'] = $coloring[\'t1_ean_sticker\'];\n				}\n				if (isset($coloring[\'t1_jan_sticker\'])) {\n					$data[\'jan_sticker\'] = $coloring[\'t1_jan_sticker\'];\n				}\n				if (isset($coloring[\'t1_isbn_sticker\'])) {\n					$data[\'isbn_sticker\'] = $coloring[\'t1_isbn_sticker\'];\n				}\n				if (isset($coloring[\'t1_mpn_sticker\'])) {\n					$data[\'mpn_sticker\'] = $coloring[\'t1_mpn_sticker\'];\n				}\n      ]]></add>\n    </operation>\n  </file>\n	\n	<file path=\"catalog/controller/extension/module/special.php\">\n		<operation>\n      <search><![CDATA[\n				$data[\'products\'][] = array(\n      ]]></search>\n      <add position=\"before\"><![CDATA[\n				\n				if ($result[\'price\'] && $result[\'special\']) {\n					$special_sticker_text = round(100 - ($result[\'special\'] / $result[\'price\']) * 100) * (-1);\n				} else {\n					$special_sticker_text = false;\n				}\n\n				$ups_sticker_text = $result[\'upc\'];\n				$ean_sticker_text = $result[\'ean\'];\n				$jan_sticker_text = $result[\'jan\'];\n				$isbn_sticker_text = $result[\'isbn\'];\n				$mpn_sticker_text = $result[\'mpn\'];\n\n      ]]></add>\n    </operation>\n		<operation>\n      <search><![CDATA[\n				$data[\'products\'][] = array(\n      ]]></search>\n      <add position=\"after\"><![CDATA[\n				\'quantity\'  => $result[\'quantity\'],\n				\'special_sticker_text\'  => $special_sticker_text,\n				\'ups_sticker_text\'			=> $ups_sticker_text,\n				\'ean_sticker_text\' 			=> $ean_sticker_text,\n				\'jan_sticker_text\' 			=> $jan_sticker_text,\n				\'isbn_sticker_text\' 		=> $isbn_sticker_text,\n				\'mpn_sticker_text\'			=> $mpn_sticker_text,\n      ]]></add>\n    </operation>\n		<operation>\n      <search><![CDATA[\n				$data[\'heading_title\'] = $this->language->get(\'heading_title\');\n      ]]></search>\n      <add position=\"after\"><![CDATA[\n				$this->load->model(\'setting/setting\');\n				$coloring = array();\n				$coloring = $this->model_setting_setting->getSetting(\'coloring\', $this->config->get(\'config_store_id\'));\n				$language_id = $this->config->get(\'config_language_id\');\n				$data[\'disable_cart_button\'] = false;\n				if (isset($coloring[\'t1_disable_cart_button\'])) {\n					$data[\'disable_cart_button\'] = $coloring[\'t1_disable_cart_button\'];\n				}\n				$data[\'disable_cart_button_text\'] = \"\";\n				if (isset($coloring[\'t1_disable_cart_button_text\'])) {\n					$data[\'disable_cart_button_text\'] = $coloring[\'t1_disable_cart_button_text\'][$language_id];\n				}\n				\n				$data[\'on_off_qview\'] = false;\n				if (isset($coloring[\'t1_on_off_qview\'])) {\n					$data[\'on_off_qview\'] = $coloring[\'t1_on_off_qview\'];\n				}\n				\n				$data[\'on_off_fastorder\'] = false;\n				if (isset($coloring[\'t1_on_off_fastorder\'])) {\n					$data[\'on_off_fastorder\'] = $coloring[\'t1_on_off_fastorder\'];\n				}\n				\n				$data[\'on_off_fastorder_out_of_stok\'] = false;\n				if (isset($coloring[\'t1_on_off_fastorder_out_of_stok\'])) {\n					$data[\'on_off_fastorder_out_of_stok\'] = $coloring[\'t1_on_off_fastorder_out_of_stok\'];\n				}\n				\n				$data[\'second_button\'] = false;\n				if (isset($coloring[\'t1_second_button\'])) {\n					$data[\'second_button\'] = $coloring[\'t1_second_button\'];\n				}\n				\n				$this->load->language(\'coloring/coloring\');\n				$data[\'qview_text\'] = $this->language->get(\'qview_text\');\n				$data[\'fastorder_text\'] = $this->language->get(\'fastorder_text\');\n				\n				$this->document->addScript(\'catalog/view/theme/coloring/assets/owl-carousel/owl.carousel.min.js\');\n				$this->document->addStyle(\'catalog/view/theme/coloring/assets/owl-carousel/owl.carousel.css\');\n				$this->document->addStyle(\'catalog/view/theme/coloring/assets/owl-carousel/owl.theme.css\');\n				\n				$this->document->addScript(\'catalog/view/javascript/jquery/datetimepicker/moment.js\');\n				$this->document->addScript(\'catalog/view/javascript/jquery/datetimepicker/bootstrap-datetimepicker.min.js\');\n				$this->document->addStyle(\'catalog/view/javascript/jquery/datetimepicker/bootstrap-datetimepicker.min.css\');\n				\n				$data[\'special_sticker\'] = false;\n				$data[\'ups_sticker\'] = false;\n				$data[\'ean_sticker\'] = false;\n				$data[\'jan_sticker\'] = false;\n				$data[\'isbn_sticker\'] = false;\n				$data[\'mpn_sticker\'] = false;\n				\n				\n				if (isset($coloring[\'t1_special_sticker\'])) {\n					$data[\'special_sticker\'] = $coloring[\'t1_special_sticker\'];\n				}\n				if (isset($coloring[\'t1_ups_sticker\'])) {\n					$data[\'ups_sticker\'] = $coloring[\'t1_ups_sticker\'];\n				}\n				if (isset($coloring[\'t1_ean_sticker\'])) {\n					$data[\'ean_sticker\'] = $coloring[\'t1_ean_sticker\'];\n				}\n				if (isset($coloring[\'t1_jan_sticker\'])) {\n					$data[\'jan_sticker\'] = $coloring[\'t1_jan_sticker\'];\n				}\n				if (isset($coloring[\'t1_isbn_sticker\'])) {\n					$data[\'isbn_sticker\'] = $coloring[\'t1_isbn_sticker\'];\n				}\n				if (isset($coloring[\'t1_mpn_sticker\'])) {\n					$data[\'mpn_sticker\'] = $coloring[\'t1_mpn_sticker\'];\n				}\n      ]]></add>\n    </operation>\n  </file>\n	\n	<file path=\"catalog/controller/extension/module/bestseller.php\">\n		<operation>\n      <search><![CDATA[\n				$data[\'products\'][] = array(\n      ]]></search>\n      <add position=\"before\"><![CDATA[\n				\n				if ($result[\'price\'] && $result[\'special\']) {\n					$special_sticker_text = round(100 - ($result[\'special\'] / $result[\'price\']) * 100) * (-1);\n				} else {\n					$special_sticker_text = false;\n				}\n\n				$ups_sticker_text = $result[\'upc\'];\n				$ean_sticker_text = $result[\'ean\'];\n				$jan_sticker_text = $result[\'jan\'];\n				$isbn_sticker_text = $result[\'isbn\'];\n				$mpn_sticker_text = $result[\'mpn\'];\n\n      ]]></add>\n    </operation>\n		<operation>\n      <search><![CDATA[\n				$data[\'products\'][] = array(\n      ]]></search>\n      <add position=\"after\"><![CDATA[\n				\'quantity\'  => $result[\'quantity\'],\n				\'special_sticker_text\'  => $special_sticker_text,\n				\'ups_sticker_text\'			=> $ups_sticker_text,\n				\'ean_sticker_text\' 			=> $ean_sticker_text,\n				\'jan_sticker_text\' 			=> $jan_sticker_text,\n				\'isbn_sticker_text\' 		=> $isbn_sticker_text,\n				\'mpn_sticker_text\'			=> $mpn_sticker_text,\n      ]]></add>\n    </operation>\n		<operation>\n      <search><![CDATA[\n				$data[\'heading_title\'] = $this->language->get(\'heading_title\');\n      ]]></search>\n      <add position=\"after\"><![CDATA[\n				$this->load->model(\'setting/setting\');\n				$coloring = array();\n				$coloring = $this->model_setting_setting->getSetting(\'coloring\', $this->config->get(\'config_store_id\'));\n				$language_id = $this->config->get(\'config_language_id\');\n				$data[\'disable_cart_button\'] = false;\n				if (isset($coloring[\'t1_disable_cart_button\'])) {\n					$data[\'disable_cart_button\'] = $coloring[\'t1_disable_cart_button\'];\n				}\n				$data[\'disable_cart_button_text\'] = \"\";\n				if (isset($coloring[\'t1_disable_cart_button_text\'])) {\n					$data[\'disable_cart_button_text\'] = $coloring[\'t1_disable_cart_button_text\'][$language_id];\n				}\n				\n				$data[\'on_off_qview\'] = false;\n				if (isset($coloring[\'t1_on_off_qview\'])) {\n					$data[\'on_off_qview\'] = $coloring[\'t1_on_off_qview\'];\n				}\n				\n				\n				$data[\'on_off_fastorder\'] = false;\n				if (isset($coloring[\'t1_on_off_fastorder\'])) {\n					$data[\'on_off_fastorder\'] = $coloring[\'t1_on_off_fastorder\'];\n				}\n				\n				$data[\'on_off_fastorder_out_of_stok\'] = false;\n				if (isset($coloring[\'t1_on_off_fastorder_out_of_stok\'])) {\n					$data[\'on_off_fastorder_out_of_stok\'] = $coloring[\'t1_on_off_fastorder_out_of_stok\'];\n				}\n				\n				$data[\'second_button\'] = false;\n				if (isset($coloring[\'t1_second_button\'])) {\n					$data[\'second_button\'] = $coloring[\'t1_second_button\'];\n				}\n				\n				$this->load->language(\'coloring/coloring\');\n				$data[\'qview_text\'] = $this->language->get(\'qview_text\');\n				$data[\'fastorder_text\'] = $this->language->get(\'fastorder_text\');\n				\n				$this->document->addScript(\'catalog/view/theme/coloring/assets/owl-carousel/owl.carousel.min.js\');\n				$this->document->addStyle(\'catalog/view/theme/coloring/assets/owl-carousel/owl.carousel.css\');\n				$this->document->addStyle(\'catalog/view/theme/coloring/assets/owl-carousel/owl.theme.css\');\n				\n				$this->document->addScript(\'catalog/view/javascript/jquery/datetimepicker/moment.js\');\n				$this->document->addScript(\'catalog/view/javascript/jquery/datetimepicker/bootstrap-datetimepicker.min.js\');\n				$this->document->addStyle(\'catalog/view/javascript/jquery/datetimepicker/bootstrap-datetimepicker.min.css\');\n				\n				$data[\'special_sticker\'] = false;\n				$data[\'ups_sticker\'] = false;\n				$data[\'ean_sticker\'] = false;\n				$data[\'jan_sticker\'] = false;\n				$data[\'isbn_sticker\'] = false;\n				$data[\'mpn_sticker\'] = false;\n				\n				\n				if (isset($coloring[\'t1_special_sticker\'])) {\n					$data[\'special_sticker\'] = $coloring[\'t1_special_sticker\'];\n				}\n				if (isset($coloring[\'t1_ups_sticker\'])) {\n					$data[\'ups_sticker\'] = $coloring[\'t1_ups_sticker\'];\n				}\n				if (isset($coloring[\'t1_ean_sticker\'])) {\n					$data[\'ean_sticker\'] = $coloring[\'t1_ean_sticker\'];\n				}\n				if (isset($coloring[\'t1_jan_sticker\'])) {\n					$data[\'jan_sticker\'] = $coloring[\'t1_jan_sticker\'];\n				}\n				if (isset($coloring[\'t1_isbn_sticker\'])) {\n					$data[\'isbn_sticker\'] = $coloring[\'t1_isbn_sticker\'];\n				}\n				if (isset($coloring[\'t1_mpn_sticker\'])) {\n					$data[\'mpn_sticker\'] = $coloring[\'t1_mpn_sticker\'];\n				}\n      ]]></add>\n    </operation>\n  </file>\n	\n	<file path=\"catalog/controller/extension/module/banner.php\">\n		<operation>\n      <search><![CDATA[\n				$this->document->addStyle(\'catalog/view/javascript/jquery/owl-carousel/owl.carousel.css\');\n      ]]></search>\n      <add position=\"replace\"><![CDATA[\n				$this->document->addStyle(\'catalog/view/theme/coloring/assets/owl-carousel/owl.carousel.css\');\n      ]]></add>\n    </operation>\n		<operation>\n      <search><![CDATA[\n				$this->document->addStyle(\'catalog/view/javascript/jquery/owl-carousel/owl.transitions.css\');\n      ]]></search>\n      <add position=\"replace\"><![CDATA[\n				$this->document->addStyle(\'catalog/view/theme/coloring/assets/owl-carousel/owl.transitions.css\');\n      ]]></add>\n    </operation>\n		<operation>\n      <search><![CDATA[\n				$this->document->addScript(\'catalog/view/javascript/jquery/owl-carousel/owl.carousel.min.js\');\n      ]]></search>\n      <add position=\"replace\"><![CDATA[\n				$this->document->addScript(\'catalog/view/theme/coloring/assets/owl-carousel/owl.carousel.min.js\');\n      ]]></add>\n    </operation>\n  </file>\n	\n	<file path=\"catalog/controller/extension/module/filter.php\">\n		<operation>\n      <search><![CDATA[\n				\'name\'      => $filter[\'name\'] . ($this->config->get(\'config_product_count\') ? \' (\' . $this->model_catalog_product->getTotalProducts($filter_data) . \')\' : \'\')\n      ]]></search>\n      <add position=\"replace\"><![CDATA[\n				\'name\'      => $filter[\'name\'],\n				\'total\' => $this->config->get(\'config_product_count\') ? \'\' . $this->model_catalog_product->getTotalProducts($filter_data) . \'\' : \'\'\n      ]]></add>\n    </operation>\n  </file>\n	\n	<file path=\"catalog/controller/account/wishlist.php\">\n		<operation>\n      <search><![CDATA[\n				$json[\'total\'] = sprintf($this->language->get(\'text_wishlist\'), (isset($this->session->data[\'wishlist\']) ? count($this->session->data[\'wishlist\']) : 0));\n      ]]></search>\n      <add position=\"after\"><![CDATA[\n				$this->load->language(\'coloring/coloring\');\n				$json[\'total\'] = sprintf($this->language->get(\'coloring_text_wishlist\'), (isset($this->session->data[\'wishlist\']) ? count($this->session->data[\'wishlist\']) : 0));\n      ]]></add>\n    </operation>\n		<operation>\n      <search><![CDATA[\n				$json[\'total\'] = sprintf($this->language->get(\'text_wishlist\'), $this->model_account_wishlist->getTotalWishlist());\n      ]]></search>\n      <add position=\"after\"><![CDATA[\n				$this->load->language(\'coloring/coloring\');\n				$json[\'total\'] = sprintf($this->language->get(\'coloring_text_wishlist\'), $this->model_account_wishlist->getTotalWishlist());\n      ]]></add>\n    </operation>\n	</file>\n	\n	<file path=\"catalog/controller/account/account.php\">\n		<operation>\n      <search><![CDATA[\n				$data[\'heading_title\'] = $this->language->get(\'heading_title\');\n      ]]></search>\n      <add position=\"after\"><![CDATA[\n				$this->load->language(\'coloring/coloring\');\n				$this->load->model(\'account/order\');\n				\n				$data[\'user_name\'] = $this->customer->getFirstName().\' \'.$this->customer->getLastName();\n				$data[\'user_balance\'] = $this->currency->format($this->customer->getBalance(), $this->session->data[\'currency\']);\n				$data[\'user_points\'] = (int)$this->customer->getRewardPoints();\n				$data[\'user_order_total\'] = $this->model_account_order->getTotalOrders();\n				\n				$this->load->model(\'account/wishlist\');\n				$data[\'user_wishlist_total\'] = $this->model_account_wishlist->getTotalWishlist();\n				\n				$data[\'text_user_balance\'] = $this->language->get(\'text_user_balance\');\n				$data[\'text_user_points\'] = $this->language->get(\'text_user_points\');\n				$data[\'text_user_order_total\'] = $this->language->get(\'text_user_order_total\');\n				$data[\'text_user_wishlist_total\'] = $this->language->get(\'text_user_wishlist_total\');\n				\n				$data[\'logout\'] = $this->url->link(\'account/logout\', \'\', \'SSL\');\n				$data[\'text_logout\'] = $this->language->get(\'text_logout\');\n      ]]></add>\n    </operation>\n  </file>\n	\n	<file path=\"catalog/controller/checkout/cart.php\">\n		<operation>\n      <search><![CDATA[\n				$this->load->language(\'checkout/cart\');\n      ]]></search>\n      <add position=\"after\"><![CDATA[\n				$this->load->language(\'coloring/coloring\');\n      ]]></add>\n    </operation>\n		<operation>\n      <search><![CDATA[\n				$json[\'total\'] = sprintf($this->language->get(\'text_items\'), $this->cart->countProducts() + (isset($this->session->data[\'vouchers\']) ? count($this->session->data[\'vouchers\']) : 0), $this->currency->format($total, $this->session->data[\'currency\']));\n      ]]></search>\n      <add position=\"after\"><![CDATA[\n				$json[\'total_new\'] = sprintf($this->language->get(\'coloring_text_items\'), $this->cart->countProducts() + (isset($this->session->data[\'vouchers\']) ? count($this->session->data[\'vouchers\']) : 0), $this->currency->format($total, $this->session->data[\'currency\']));\n      ]]></add>\n    </operation>\n		<operation>\n      <search><![CDATA[\n				public function remove() {\n      ]]></search>\n      <add position=\"before\"><![CDATA[\n				public function editPopup() {\n					$this->load->language(\'checkout/cart\');\n					$this->load->language(\'coloring/coloring\');\n					$this->load->model(\'tool/image\');\n\n					$json = array();\n\n					// Update\n					if (isset($this->request->post[\'quantity\']) && isset($this->request->post[\'key\'])) {\n	\n						$this->cart->update($this->request->post[\'key\'], $this->request->post[\'quantity\']);\n\n						unset($this->session->data[\'shipping_method\']);\n						unset($this->session->data[\'shipping_methods\']);\n						unset($this->session->data[\'payment_method\']);\n						unset($this->session->data[\'payment_methods\']);\n						unset($this->session->data[\'reward\']);\n\n						// Totals\n						$this->load->model(\'extension/extension\');\n\n						$totals = array();\n						$taxes = $this->cart->getTaxes();\n						$total = 0;\n				\n						// Because __call can not keep var references so we put them into an array. 			\n						$total_data = array(\n							\'totals\' => &$totals,\n							\'taxes\'  => &$taxes,\n							\'total\'  => &$total\n						);\n\n						// Display prices\n						if ($this->customer->isLogged() || !$this->config->get(\'config_customer_price\')) {\n							$sort_order = array();\n\n							$results = $this->model_extension_extension->getExtensions(\'total\');\n\n							foreach ($results as $key => $value) {\n								$sort_order[$key] = $this->config->get($value[\'code\'] . \'_sort_order\');\n							}\n\n							array_multisort($sort_order, SORT_ASC, $results);\n\n							foreach ($results as $result) {\n								if ($this->config->get($result[\'code\'] . \'_status\')) {\n									$this->load->model(\'extension/total/\' . $result[\'code\']);\n\n									$this->{\'model_extension_total_\' . $result[\'code\']}->getTotal($total_data);\n								}\n							}\n\n							$sort_order = array();\n\n							foreach ($totals as $key => $value) {\n								$sort_order[$key] = $value[\'sort_order\'];\n							}\n\n							array_multisort($sort_order, SORT_ASC, $totals);\n						}\n\n						$json[\'total_new\'] = sprintf($this->language->get(\'coloring_text_items\'), $this->cart->countProducts() + (isset($this->session->data[\'vouchers\']) ? count($this->session->data[\'vouchers\']) : 0), $this->currency->format($total, $this->session->data[\'currency\']));\n					}\n\n					$this->response->addHeader(\'Content-Type: application/json\');\n					$this->response->setOutput(json_encode($json));\n				}\n      ]]></add>\n    </operation>\n	</file>\n	\n</modification>', 1, '2018-11-22 17:50:45');
INSERT INTO `oc_modification` (`modification_id`, `name`, `code`, `author`, `version`, `link`, `xml`, `status`, `date_added`) VALUES
(3, 'Model No Require in Admin', 'Model-No-Require', 'd', '2.0', '', '<modification>\r\n    <name>Model No Require in Admin</name>\r\n    <code>Model-No-Require</code>\r\n    <version>2.0</version>\r\n    <author>d</author>\r\n    <link></link>	                      \r\n	<file path=\"admin/controller/catalog/product.php\">\r\n			<operation>\r\n				<search position=\"replace\"><![CDATA[\r\n				$this->error[\'model\'] = $this->language->get(\'error_model\');\r\n				]]></search>\r\n				<add><![CDATA[\r\n				 //$this->error[\'model\'] = $this->language->get(\'error_model\');\r\n				]]></add>\r\n			</operation>\r\n	</file>\r\n	<file path=\"admin/view/template/catalog/product_form.tpl\">\r\n			<operation>\r\n				<search position=\"replace\" index=\"2\"><![CDATA[\r\n				<div class=\"form-group required\">\r\n				]]></search>\r\n				<add><![CDATA[\r\n				 <div class=\"form-group\">\r\n				]]></add>\r\n			</operation>\r\n	</file>\r\n</modification>					   \r\n					   ', 1, '2018-11-23 12:28:17'),
(4, 'Simple One Page Checkout', 'Simple-One-Page-Checkout', 'opencart2x', '2', 'https://opencart2x.ru', '<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<modification>\n	<name>Simple One Page Checkout</name>\n	<code>Simple-One-Page-Checkout</code>\n	<version>2</version>\n	<author>opencart2x</author>\n	<link>https://opencart2x.ru</link>\n	\n    <file path=\"catalog/controller/checkout/checkout.php\">\n        <operation error=\"skip\">\n            <search ><![CDATA[if (file_exists(DIR_TEMPLATE . $this->config->get(\'config_template\') . \'/template/checkout/checkout.tpl\')) {]]></search>\n			<add position=\"replace\" offset=\"4\"><![CDATA[\n			// a_vqmod_d_quickcheckout.xml\n			if($this->config->get(\'d_quickcheckout_status\')){\n				$template = \'d_quickcheckout\';\n			}else{\n				$template = \'checkout\';\n			}\n			\n			if (file_exists(DIR_TEMPLATE . $this->config->get(\'config_template\') . \'/template/checkout/\'.$template.\'.tpl\')) {\n				$template = $this->config->get(\'config_template\') . \'/template/checkout/\'.$template.\'.tpl\';\n			} else {\n				$template = \'default/template/checkout/\'.$template.\'.tpl\';\n			}\n			$this->response->setOutput($this->load->view($template, $data));]]>\n			</add>\n        </operation>\n    </file>\n    <file path=\"catalog/controller/checkout/checkout.php\">\n        <operation error=\"skip\">\n			<search><![CDATA[$this->response->setOutput($this->load->view(\'checkout/checkout\', $data));]]></search>\n			<add position=\"replace\"><![CDATA[\n			// a_vqmod_d_quickcheckout.xml\n			if($this->config->get(\'d_quickcheckout_status\')){\n				$template = \'d_quickcheckout\';\n			}else{\n				$template = \'checkout\';\n			}\n			\n			$this->response->setOutput($this->load->view(\'checkout/\'.$template, $data));]]></add>\n		</operation>\n	</file>\n	<file path=\"catalog/controller/checkout/checkout.php\">\n		<operation>\n			<search ><![CDATA[$data[\'header\'] = $this->load->controller(\'common/header\');]]></search>\n			<add position=\"before\"><![CDATA[\n		if($this->config->get(\'d_quickcheckout_status\')){\n			$data[\'d_quickcheckout\'] = $this->load->controller(\'extension/module/d_quickcheckout\');\n		}\n		]]></add>\n		</operation>\n    </file>\n    <file path=\"system/library/cart/tax.php\">\n		<operation error=\"skip\">\n			<search ><![CDATA[final class Tax {]]></search>\n			<add position=\"after\"><![CDATA[\n	// a_vqmod_d_quickcheckout.xml\n	public function clearRates(){\n		$this->tax_rates = array();\n	}\n			]]></add>\n		</operation>\n	</file>	\n	<file path=\"system/library/tax.php\">\n		<operation error=\"skip\">\n			<search ><![CDATA[final class Tax {]]></search>\n			<add position=\"after\"><![CDATA[\n	// a_vqmod_d_quickcheckout.xml\n	public function clearRates(){\n		$this->tax_rates = array();\n	}\n			]]></add>\n		</operation>\n	</file>	\n</modification>', 1, '2018-11-23 13:04:42'),
(20, 'RozetkaApi', 'RozetkaApi', 'RozetkaApi', '1.3', 'RozetkaApi', '<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<modification>\n	<name>RozetkaApi</name>\n	<code>RozetkaApi</code>\n	<version>1.3</version>\n	<author>RozetkaApi</author>\n	<link>RozetkaApi</link>\n	<file path=\"admin/controller/catalog/category.php\">\n		<operation>\n			<search index=\"0\">\n				<![CDATA[$results = $this->model_catalog_category->getCategories($filter_data);]]>\n			</search>\n			<add position=\"after\">\n				<![CDATA[\n				$results_rozetka = $this->model_catalog_category->getCategoriesRozetka($filter_data);\n				foreach ($results_rozetka as $result_rozetka) \n				{\n				$data[\'categories_rozetka\'][] = array(\n				\'category_id\' => $result_rozetka[\'category_id\'],\n				\'name_rozetka\'        => $result_rozetka[\'name\'],\n				\n				);\n				}\n				]]>\n\n			</add>\n		</operation>\n\n		<operation>\n			<search index=\"0\">\n				<![CDATA[$data[\'entry_parent\'] = $this->language->get(\'entry_parent\');]]>\n			</search>\n			<add position=\"after\">\n				<![CDATA[$data[\'entry_category_rozetka\'] = $this->language->get(\'entry_category_rozetka\');]]>\n\n			</add>\n		</operation>\n\n		<operation>\n			<search index=\"0\">\n				<![CDATA[$categories = $this->model_catalog_category->getAllCategories();]]>\n			</search>\n			<add position=\"after\">\n				<![CDATA[\n				$categories_rozetka = $this->model_catalog_category->getAllCategoriesRozetka();\n				$data[\'categories_rozetka\'] = $this->getAllCategories($categories_rozetka);\n				if (isset($category_info)) {\n				unset($data[\'categories\'][$category_info[\'category_id\']]);\n				}\n\n				if (isset($this->request->post[\'category_rozetka\'])) {\n				$data[\'category_rozetka\'] = $this->request->post[\'category_rozetka\'];\n				} elseif (!empty($category_info)) {\n				$data[\'category_rozetka\'] = $category_info[\'category_rozetka\'];\n				} else {\n				$data[\'category_rozetka\'] = 0;\n				}\n\n				]]>\n\n			</add>\n		</operation>\n\n\n		<operation>\n			<search index=\"0\">\n				<![CDATA[private function getAllCategories($categories, $parent_id = 0, $parent_name = \'\')]]>\n			</search>\n			<add position=\"before\">\n				<![CDATA[\n				private function getAllCategoriesRozetka($categories_rozetka, $parent_id = 0, $parent_name = \'\') \n				{\n				$output = array();\n\n				if (array_key_exists($parent_id, $categories_rozetka)) \n				{\n				if ($parent_name != \'\') {\n				//$parent_name .= $this->language->get(\'text_separator\');\n				$parent_name .= \' &gt; \';\n				}\n\n				foreach ($categories[$parent_id] as $category) \n				{\n				$output[$category[\'category_id\']] = array(\n				\'category_id\' => $category[\'category_id\'],\n				\'name\'        => $parent_name . $category[\'name\']\n				);\n\n				$output += $this->getAllCategoriesRozetka($categories_rozetka, $category[\'category_id\'], $parent_name . $category[\'name\']);\n				}\n				}\n\n				uasort($output, array($this, \'sortByName\'));\n\n				return $output;\n				}\n				\n				]]>\n\n			</add>\n		</operation>\n	</file>\n\n	<file path=\"admin/model/catalog/category.php\">\n						<operation>\n			<search index=\"0\">\n				<![CDATA[public function getTotalCategoriesByLayoutId]]>\n			</search>\n			<add position=\"before\">\n				<![CDATA[\n				public function getAllCategoriesRozetka() \n				{\n				$query = $this->db->query(\"SELECT * FROM \" . DB_PREFIX . \"category_rozetka ORDER BY parent_id, name\");\n\n				$category_data = array();\n				foreach ($query->rows as $row) \n				{\n				$category_data[$row[\'parent_id\']][$row[\'category_id\']] = $row;\n				}\n\n				return $category_data;\n				}\n				]]>\n\n			</add>\n		</operation>\n				<operation>\n			<search index=\"0\">\n				<![CDATA[public function editCategory($category_id, $data) {]]>\n			</search>\n			<add position=\"before\">\n				<![CDATA[\n	private function catRozIsset($data){ return isset($data[\'category_rozetka\']) ? (int)$data[\'category_rozetka\'] : false; }\n				]]>\n			</add>\n		</operation>\n		<operation>\n			<search index=\"0\">\n				<![CDATA[$this->db->query(\"UPDATE \" . DB_PREFIX . \"category SET parent_id = \'\" . (int)$data[\'parent_id\'] . \"\',]]>\n			</search>\n			<add position=\"replace\">\n				<![CDATA[\n				$this->db->query(\"UPDATE \" . DB_PREFIX . \"category SET parent_id = \'\" . (int)$data[\'parent_id\'] . \"\', category_rozetka = \'\" . $this->catRozIsset($data) . \"\', \n				]]>\n\n			</add>\n		</operation>\n		\n		<operation>\n			<search index=\"0\">\n				<![CDATA[$this->db->query(\"INSERT INTO \" . DB_PREFIX . \"category SET parent_id = \'\" . (int)$data[\'parent_id\'] . \"\', ]]>\n			</search>\n			<add position=\"replace\">\n				<![CDATA[\n				$this->db->query(\"INSERT INTO \" . DB_PREFIX . \"category SET parent_id = \'\" . (int)$data[\'parent_id\'] . \"\', category_rozetka = \'\" . $this->catRozIsset($data) . \"\', \n\n				]]>\n\n			</add>\n		</operation>\n\n		<operation>\n			<search index=\"0\">\n				<![CDATA[public function getCategory($category_id) {]]>\n			</search>\n			<add position=\"before\">\n				<![CDATA[\n				public function getCategoryRozetka($category_id) {\n				$query = $this->db->query(\"SELECT DISTINCT *, (SELECT GROUP_CONCAT(cd1.name ORDER BY level SEPARATOR \'&nbsp;&nbsp;&gt;&nbsp;&nbsp;\') FROM \" . DB_PREFIX . \"category_path cp LEFT JOIN \" . DB_PREFIX . \"category_description cd1 ON (cp.path_id = cd1.category_id AND cp.category_id != cp.path_id) WHERE cp.category_id = c.category_id AND cd1.language_id = \'\" . (int)$this->config->get(\'config_language_id\') . \"\' GROUP BY cp.category_id) AS path, (SELECT DISTINCT keyword FROM \" . DB_PREFIX . \"url_alias WHERE query = \'category_id=\" . (int)$category_id . \"\') AS keyword FROM \" . DB_PREFIX . \"category c LEFT JOIN \" . DB_PREFIX . \"category_description cd2 ON (c.category_id = cd2.category_id) WHERE c.category_id = \'\" . (int)$category_id . \"\' AND cd2.language_id = \'\" . (int)$this->config->get(\'config_language_id\') . \"\'\");\n\n				return $query->row;\n				}\n				]]>\n\n			</add>\n		</operation>\n\n\n		<operation>\n			<search index=\"0\">\n				<![CDATA[$sql = \"SELECT cp.category_id AS category_id, ]]>\n			</search>\n			<add position=\"replace\">\n				<![CDATA[\n				$sql = \"SELECT cp.category_id AS category_id, c1.category_rozetka AS category_rozetka,\n				]]>\n\n			</add>\n		</operation>\n\n		<operation>\n			<search index=\"0\">\n				<![CDATA[public function getCategoryDescriptions($category_id) {]]>\n			</search>\n			<add position=\"before\">\n				<![CDATA[\n				public function getCategoriesRozetka($data = array()) {\n				$sql = \"SELECT cp.category_id AS category_id, GROUP_CONCAT(c1.name ORDER BY cp.level SEPARATOR \'&nbsp;&nbsp;&gt;&nbsp;&nbsp;\') AS name, c1.parent_id\n				FROM \" . DB_PREFIX . \"category_rozetka_path cp \n				LEFT JOIN \" . DB_PREFIX . \"category_rozetka c1 ON (cp.category_id = c1.category_id) \n				LEFT JOIN \" . DB_PREFIX . \"category_rozetka c2 ON (cp.path_id = c2.category_id)\";\n				$sql .= \" GROUP BY cp.category_id\";\n				$query = $this->db->query($sql);\n\n				return $query->rows;\n				}\n				]]>\n\n			</add>\n		</operation>\n\n\n\n	</file>\n\n\n\n	<file path=\"admin/view/template/catalog/category_form.tpl\">\n\n		<operation>\n			<search index=\"6\">\n				<![CDATA[<div class=\"form-group\">]]>\n			</search>\n			<add position=\"before\">\n				<![CDATA[\n				<div class=\"form-group\">\n					<label class=\"col-sm-2 control-label\" for=\"input-category_rozetka\"><?php echo $entry_category_rozetka; ?></label>\n					<div class=\"col-sm-10\">\n\n						<select name=\"category_rozetka\" class=\"form-control\">\n							<option value=\"0\" selected=\"selected\"><?php echo $text_none; ?></option>\n\n							<?php foreach ($categories_rozetka as $category) { ?>\n							<?php if ($category[\'category_id\'] == $category_rozetka) { ?>\n							<option value=\"<?php echo $category[\'category_id\']; ?>\" selected=\"selected\"><?php echo $category[\'name\']; ?></option>\n							<?php } else { ?>\n							<option value=\"<?php echo $category[\'category_id\']; ?>\"><?php echo $category[\'name\']; ?></option>\n							<?php } ?>\n							<?php } ?>\n						</select>\n					</div>\n				</div>\n				]]>\n\n			</add>\n		</operation>\n\n	</file>\n\n	<file path=\"admin/language/russian/catalog/category.php\">\n\n		<operation>\n			<search index=\"0\">\n				<![CDATA[$_[\'entry_name\']]]>\n			</search>\n			<add position=\"after\">\n				<![CDATA[\n				$_[\'entry_category_rozetka\']          			= \'Название категории rozetka:\';\n				]]>\n\n			</add>\n		</operation>\n\n	</file>\n	<file path=\"admin/language/ru-ru/catalog/category.php\">\n\n		<operation>\n			<search index=\"0\">\n				<![CDATA[$_[\'entry_name\']]]>\n			</search>\n			<add position=\"after\">\n				<![CDATA[\n				$_[\'entry_category_rozetka\']          			= \'Название категории rozetka:\';\n				]]>\n\n			</add>\n		</operation>\n\n	</file>\n\n\n\n\n	<file path=\"admin/controller/sale/order.php\">\n\n		<operation>\n			<search index=\"0\">\n				<![CDATA[\'shipping_code\' => $result[\'shipping_code\'],]]>\n			</search>\n			<add position=\"after\">\n				<![CDATA[\n				\'from_order\'        => $result[\'from_order\'],\n				\'order_status_rozetka\'        => $result[\'order_status_rozetka\'],\n				]]>\n\n			</add>\n		</operation>\n		\n\n	</file>\n\n	<file path=\"admin/model/sale/order.php\">\n		<operation>\n			<search index=\"0\">\n				<![CDATA[$sql = \"SELECT o.order_id,]]>\n			</search>\n			<add position=\"replace\">\n				<![CDATA[\n				$sql = \"SELECT o.order_id, o.from_order, o.order_status_rozetka as order_status_rozetka,\n				]]>\n\n			</add>\n		</operation>\n	</file>\n	<file path=\"admin/view/template/sale/order_list.tpl\">\n\n		<operation>\n			<search index=\"0\">\n				<![CDATA[<td class=\"text-left\"><?php echo $order[\'order_status\']; ?></td>]]>\n			</search>\n			<add position=\"after\">\n				<![CDATA[\n				<td class=\"text-left\"><?php echo $order[\'order_status_rozetka\']; ?></td>\n				]]>\n\n			</add>\n		</operation>\n		<operation>\n			<search index=\"0\">\n				<![CDATA[<td class=\"text-left\"><?php echo $order[\'date_modified\']; ?></td>]]>\n			</search>\n			<add position=\"after\">\n				<![CDATA[\n				<td class=\"text-left\"><?php echo $order[\'from_order\']; ?></td>\n				]]>\n\n			</add>\n		</operation>\n		<operation>\n			<search index=\"0\">\n				<![CDATA[<td class=\"text-right\"><?php if ($sort == \'o.total\') { ?>]]>\n			</search>\n			<add position=\"before\">\n				<![CDATA[\n				<td class=\"text-left\">Статус Rozetka</td>\n				]]>\n\n			</add>\n		</operation>\n		<operation>\n			<search index=\"0\">\n				<![CDATA[<td class=\"text-right\"><?php echo $column_action; ?></td>]]>\n			</search>\n			<add position=\"before\">\n				<![CDATA[\n				<td class=\"text-left\">Откуда заказ</td>\n				]]>\n\n			</add>\n		</operation>\n\n	</file>\n\n\n\n\n\n\n\n\n\n	<file path=\"admin/controller/catalog/product.php\">\n		<operation>\n			<search index=\"0\">\n				<![CDATA[\'quantity\'   => $result[\'quantity\'],]]>\n			</search>\n			<add position=\"after\">\n				<![CDATA[\n				\'status_rozetka\' => $result[\'status_rozetka\'],\n				\'sell_statuses_rozetka\'=> $result[\'sell_statuses_rozetka\'],\n				\'moderation_statuses_rozetka\'=> $result[\'moderation_statuses_rozetka\'],\n				]]>\n\n			</add>\n		</operation>\n		<operation>\n			<search index=\"0\">\n				<![CDATA[$data[\'entry_mpn\'] = $this->language->get(\'entry_mpn\');]]>\n			</search>\n			<add position=\"after\">\n				<![CDATA[\n				$data[\'entry_status_rozetka\'] = $this->language->get(\'entry_status_rozetka\');\n				$data[\'entry_sell_statuses_rozetka\'] = $this->language->get(\'entry_sell_statuses_rozetka\');\n				$data[\'entry_moderation_statuses_rozetka\'] = $this->language->get(\'entry_moderation_statuses_rozetka\');\n				]]>\n\n			</add>\n		</operation>\n		<operation>\n			<search index=\"0\">\n				<![CDATA[if (isset($this->request->post[\'model\'])) {]]>\n			</search>\n			<add position=\"before\">\n				<![CDATA[\n				if (isset($this->request->post[\'status_rozetka\'])) {\n				$data[\'status_rozetka\'] = $this->request->post[\'status_rozetka\'];\n				} elseif (!empty($product_info)) {\n				$data[\'status_rozetka\'] = $product_info[\'status_rozetka\'];\n				} else {\n				$data[\'status_rozetka\'] = \'\';\n				}\n\n				if (isset($this->request->post[\'sell_statuses_rozetka\'])) {\n				$data[\'sell_statuses_rozetka\'] = $this->request->post[\'sell_statuses_rozetka\'];\n				} elseif (!empty($product_info)) {\n				$data[\'sell_statuses_rozetka\'] = $product_info[\'sell_statuses_rozetka\'];\n				} else {\n				$data[\'sell_statuses_rozetka\'] = \'\';\n				}\n\n				if (isset($this->request->post[\'moderation_statuses_rozetka\'])) {\n				$data[\'moderation_statuses_rozetka\'] = $this->request->post[\'moderation_statuses_rozetka\'];\n				} elseif (!empty($product_info)) {\n				$data[\'moderation_statuses_rozetka\'] = $product_info[\'moderation_statuses_rozetka\'];\n				} else {\n				$data[\'moderation_statuses_rozetka\'] = \'\';\n				}\n				]]>\n\n			</add>\n		</operation>\n	</file>\n\n\n	<file path=\"admin/model/catalog/product.php\">\n		<operation>\n			<search index=\"0\">\n				<![CDATA[foreach ($product_attribute[\'product_attribute_description\'] as $language_id => $product_attribute_description) {]]>\n			</search>\n			<add position=\"after\">\n				<![CDATA[\n				if (strlen($product_attribute_description[\'text\'])==\"\")\n				continue;\n\n				]]>\n\n			</add>\n		</operation>\n		<operation>\n			<search index=\"1\">\n				<![CDATA[foreach ($product_attribute[\'product_attribute_description\'] as $language_id => $product_attribute_description) {]]>\n			</search>\n			<add position=\"after\">\n				<![CDATA[\n				if (strlen($product_attribute_description[\'text\'])==\"\")\n				continue;\n				]]>\n\n			</add>\n		</operation>\n	</file>\n\n\n	<file path=\"admin/view/template/catalog/product_form.tpl\">\n		<operation>\n			<search index=\"22\">\n				<![CDATA[<div class=\"form-group\">]]>\n			</search>\n			<add position=\"before\">\n				<![CDATA[\n				<div class=\"form-group\">\n					<label class=\"col-sm-2 control-label\" for=\"input-status_rozetka\"><?php echo $entry_status_rozetka; ?></label>\n					<div class=\"col-sm-10\">\n						<input type=\"text\" name=\"status_rozetka\"  disabled=\"disabled\" value=\"<?php echo $status_rozetka; ?>\" id=\"input-status_rozetka\" class=\"form-control\" />\n					</div>\n				</div>\n				<div class=\"form-group\">\n					<label class=\"col-sm-2 control-label\" for=\"input-sell_statuses_rozetka\"><?php echo $entry_sell_statuses_rozetka; ?></label>\n					<div class=\"col-sm-10\">\n						<input type=\"text\" disabled=\"disabled\" name=\"sell_statuses_rozetka\" value=\"<?php echo $sell_statuses_rozetka; ?>\"  id=\"input-sell_statuses_rozetka\" class=\"form-control\" />\n					</div>\n				</div>\n				<div class=\"form-group\">\n					<label class=\"col-sm-2 control-label\" for=\"input-moderation_statuses_rozetka;\"><?php echo $entry_moderation_statuses_rozetka; ?></label>\n					<div class=\"col-sm-10\">\n						<input type=\"text\" name=\"moderation_statuses_rozetka;\" disabled=\"disabled\" value=\"<?php echo $moderation_statuses_rozetka; ?>\" id=\"input-moderation_statuses_rozetka;\" class=\"form-control\" />\n					</div>\n				</div>\n				]]>\n\n			</add>\n		</operation>\n\n\n		<operation>\n			<search index=\"0\">\n				<![CDATA[<input type=\"checkbox\" name=\"product_category[]\"]]>\n			</search>\n			<add position=\"replace\">\n				<![CDATA[<input type=\"checkbox\" name=\"product_category[]\" data-rozetka =\"<?php echo $category[\'category_rozetka\']; ?>\"]]>\n			</add>\n		</operation>\n		<operation>\n			<search index=\"0\">\n				<![CDATA[<td class=\"text-left\"><?php echo $entry_text; ?></td>]]>\n			</search>\n			<add position=\"after\">\n				<![CDATA[<td><button type=\"button\" onclick=\"AddAttributeByCategory();\" data-toggle=\"tooltip\" title=\"\" class=\"btn btn-primary\" data-original-title=\"Добавить атрибут\"><i class=\"fa fa-plus-circle\"></i></button></td>]]>\n			</add>\n		</operation>\n\n		<operation>\n			<search index=\"1\">\n				<![CDATA[<input type=\"checkbox\" name=\"product_category[]\"]]>\n			</search>\n			<add position=\"replace\">\n				<![CDATA[<input type=\"checkbox\" name=\"product_category[]\" data-rozetka =\"<?php echo $category[\'category_rozetka\']; ?>\"]]>\n			</add>\n		</operation>\n\n\n		<operation>\n			<search index=\"0\">\n				<![CDATA[function attributeautocomplete(attribute_row)]]>\n			</search>\n			<add position=\"before\">\n				<![CDATA[\n				function AddAttributeByCategory() \n				{\n				document.getElementsByName(\"product_category[]\");\n				var buf = \"\";\n				for(i = 0; i < (document.getElementsByName(\"product_category[]\").length); i++)\n				{\n				if (document.getElementsByName(\"product_category[]\")[i].checked == true)\n				buf += document.getElementsByName(\"product_category[]\")[i].getAttribute(\"data-rozetka\")+\",\";\n				}\n				buf = buf.substr(0, buf.length-1);\n				exist = \"\";\n				var $eles = $(\":input[name^=\'product_attribute\']\");\n				for (i = 1; i < $eles.length; i = i+3)\n				exist += $eles[i].value + \",\";\n				$.ajax(\n				{\n\n				url: \'index.php?route=catalog/attribute/getattributesbycategory&token=<?php echo $token; ?>&filter_name=\'+buf,\n				dataType: \'json\',\n				success: function(response) \n				{\n\n				for (i = 0; i < response.length; i++)\n				{\n				console.log(response[i][\'attribute_id\']);\n				if (exist.indexOf(response[i][\'attribute_id\']) > -1)\n				continue;\n				html  = \'<tr id=\"attribute-row\' + attribute_row + \'\">\';\n				html += \'  <td class=\"text-left\" style=\"width: 20%;\"><input type=\"text\" name=\"product_attribute[\' + attribute_row + \'][name]\" value=\"\'+response[i][\'name\']+\'\" placeholder=\"<?php echo $entry_attribute; ?>\" class=\"form-control\" /><input type=\"hidden\" name=\"product_attribute[\' + attribute_row + \'][attribute_id]\" value=\"\'+response[i][\'attribute_id\']+\'\" /></td>\';\n\n				html += \'  <td class=\"text-left\">\';\n				<?php foreach ($languages as $language) { ?>\n				html += \'<div class=\"input-group\"><span class=\"input-group-addon\"><img src=\"view/image/flags/<?php echo $language[\'image\']; ?>\" title=\"<?php echo $language[\'name\']; ?>\" /></span><textarea name=\"product_attribute[\' + attribute_row + \'][product_attribute_description][<?php echo $language[\'language_id\']; ?>][text]\" rows=\"5\" placeholder=\"<?php echo $entry_text; ?>\" class=\"form-control\"></textarea></div>\';\n				<?php } ?>\n				html += \'  </td>\';\n				html += \'  <td class=\"text-left\"><button type=\"button\" onclick=\"$(\\\'#attribute-row\' + attribute_row + \'\\\').remove();\" data-toggle=\"tooltip\" title=\"<?php echo $button_remove; ?>\" class=\"btn btn-danger\"><i class=\"fa fa-minus-circle\"></i></button></td>\';\n				html += \'</tr>\';\n\n				$(\'#attribute tbody\').append(html);\n\n				attribute_row++;\n				}\n				},\n				error: function(xhr) \n				{\n				alert(\"Ошибка RozetkaAPI\");\n				}\n				});\n\n\n				}\n				]]>\n			</add>\n		</operation>\n\n	</file>\n\n	<file path=\"admin/controller/catalog/attribute.php\">\n		\n		<operation>\n			<search index=\"0\">\n				<![CDATA[public function autocomplete() {]]>\n			</search>\n			<add position=\"before\">\n				<![CDATA[\n				public function getattributesbycategory()\n				{\n				$json = array();\n\n				if (isset($this->request->get[\'filter_name\'])) {\n				$this->load->model(\'catalog/attribute\');\n\n				$filter_data = array(\n				\'filter_name\' => $this->request->get[\'filter_name\'],\n				\'start\'       => 0,\n				\'limit\'       => 5\n				);\n\n				$results = $this->model_catalog_attribute->getAttributesByCategory($filter_data);\n\n				foreach ($results as $result) {\n				$json[] = array(\n				\'attribute_id\'    => $result[\'attribute_id\'],\n				\'name\'            => strip_tags(html_entity_decode($result[\'name\'], ENT_QUOTES, \'UTF-8\')),\n				\'attribute_group\' => $result[\'attribute_group\']\n				);\n				}\n				}\n\n				$sort_order = array();\n\n				foreach ($json as $key => $value) {\n				$sort_order[$key] = $value[\'name\'];\n				}\n\n				array_multisort($sort_order, SORT_ASC, $json);\n\n				$this->response->addHeader(\'Content-Type: application/json\');\n				$this->response->setOutput(json_encode($json));\n				}\n\n\n				]]>\n\n			</add>\n		</operation>\n\n	</file>\n\n	<file path=\"admin/model/catalog/attribute.php\">\n\n		<operation>\n			<search index=\"0\">\n				<![CDATA[public function getAttributes($data = array()) {]]>\n			</search>\n			<add position=\"before\">\n				<![CDATA[\n				public function getAttributesByCategory($data = array())\n				{\n				$sql = \"SELECT *, (SELECT agd.name FROM \" . DB_PREFIX . \"attribute_group_description agd WHERE agd.attribute_group_id = a.attribute_group_id AND agd.language_id = \'\" . (int)$this->config->get(\'config_language_id\') . \"\') AS attribute_group FROM \" . DB_PREFIX . \"attribute a LEFT JOIN \" . DB_PREFIX . \"attribute_description ad ON (a.attribute_id = ad.attribute_id) WHERE ad.language_id = \'\" . (int)$this->config->get(\'config_language_id\') . \"\'\";\n\n				if (!empty($data[\'filter_name\'])) {\n				$sql .= \" AND a.attribute_group_id in (\" . $this->db->escape($data[\'filter_name\']) . \")\";\n				}\n				else\n				$sql .= \" AND a.attribute_group_id in (0)\";\n\n				$query = $this->db->query($sql);\n\n				return $query->rows;\n\n				}\n				]]>\n\n			</add>\n		</operation>\n	</file>\n</modification>', 1, '2020-03-25 15:02:13'),
(21, 'Import\\Export из Excel', 'import_export', 'author', '1.0', '', '<?xml version=\"1.0\" encoding=\"UTF-8\"?>\r\n<modification>\r\n	<id>Import\\Export из Excel</id>\r\n	<name>Import\\Export из Excel</name>\r\n	<code>import_export</code>\r\n	<version>1.0</version>\r\n	<vqmver>1.0</vqmver>\r\n	<author>author</author>\r\n  <link></link>\r\n  \r\n	<!--1.5-->\r\n	<file path=\"admin/view/template/common/header.tpl\" error=\"skip\">\r\n		<operation error=\"skip\">\r\n			<search position=\"after\"><![CDATA[<li><a href=\"<?php echo $feed; ?>\">]]></search>\r\n			<add position=\"after\"><![CDATA[\r\n			<?php $this->load->model(\'setting/extension\'); if(in_array(\'universal_import\', $this->model_setting_extension->getInstalled(\'module\'))){ ?>\r\n			<li><a href=\"<?php echo $this->url->link(\'module/universal_import\', \'token=\' . $this->session->data[\'token\'], \'SSL\'); ?>\">Import\\Export из Excel</a></li>\r\n			<?php }else{ ?>\r\n			<li><a href=\"<?php echo $this->url->link(\'extension/module/install\', \'extension=universal_import&token=\' . $this->session->data[\'token\'], \'SSL\'); ?>\"> Установить Import\\Export из Excel</a></li>\r\n			<?php } ?>\r\n			]]></add>\r\n		</operation>\r\n	</file>\r\n  \r\n	<!--2.0-->\r\n<!-- 	<file path=\"admin/controller/common/menu.php\" error=\"skip\">\r\n		<operation error=\"skip\">\r\n			<search position=\"after\"><![CDATA[$this->load->language(\'common/menu\');]]></search>\r\n			<add position=\"after\"><![CDATA[\r\n			$this->load->model(\'extension/extension\');\r\n			if (in_array(\'universal_import\', $this->model_extension_extension->getInstalled(\'module\'))) {\r\n				$data[\'text_univimportpro\'] = \'Import\\Export из Excel\';\r\n				$data[\'link_univimportpro\'] = $this->url->link(\'module/universal_import\', \'token=\' . $this->session->data[\'token\'], \'SSL\');\r\n			} else {\r\n				$data[\'text_univimportpro\'] = \'Установить Import\\Export из Excel\';\r\n				$data[\'link_univimportpro\'] = $this->url->link(\'extension/module/install\', \'extension=universal_import&token=\' . $this->session->data[\'token\'], \'SSL\');\r\n			}\r\n			]]></add>\r\n		</operation>\r\n	</file>\r\n  \r\n	<file path=\"admin/view/template/common/menu.tpl\" error=\"skip\">\r\n		<operation error=\"skip\">\r\n			<search position=\"after\"><![CDATA[<li><a href=\"<?php echo $feed; ?>\"><?php echo $text_feed; ?></a></li>]]></search>\r\n			<add position=\"after\"><![CDATA[\r\n			<li><a href=\"<?php echo $link_univimportpro; ?>\"> <?php echo $text_univimportpro; ?></a></li>\r\n			]]></add>\r\n		</operation>\r\n	</file> -->\r\n  \r\n  <file path=\"admin/model/customer/customer.php\" error=\"skip\">\r\n		<operation error=\"skip\">\r\n			<search position=\"replace\"><![CDATA[$this->db->query(\"INSERT INTO \" . DB_PREFIX . \"customer SET]]></search>\r\n			<add position=\"replace\"><![CDATA[\r\n      // handle item id for universal import\r\n      if (!empty($data[\'customer_id\']) && defined(\'GKD_UNIV_IMPORT\')) {\r\n        $univimp_item_id = \'customer_id = \"\' . (int) $data[\'customer_id\'] . \'\", \';\r\n      } else {\r\n        $univimp_item_id = \'\';\r\n      }\r\n      \r\n			$this->db->query(\"INSERT INTO \" . DB_PREFIX . \"customer SET \" . $univimp_item_id . \"]]></add>\r\n		</operation>\r\n	</file>\r\n  \r\n  <file path=\"admin/model/catalog/category.php\">\r\n		<operation error=\"skip\">\r\n			<search position=\"replace\"><![CDATA[$this->db->query(\"INSERT INTO \" . DB_PREFIX . \"category SET]]></search>\r\n			<add position=\"replace\"><![CDATA[\r\n      // handle item id for universal import\r\n      if (!empty($data[\'category_id\']) && defined(\'GKD_UNIV_IMPORT\')) {\r\n        $univimp_item_id = \'category_id = \"\' . (int) $data[\'category_id\'] . \'\", \';\r\n      } else {\r\n        $univimp_item_id = \'\';\r\n      }\r\n      \r\n			$this->db->query(\"INSERT INTO \" . DB_PREFIX . \"category SET \" . $univimp_item_id . \"]]></add>\r\n		</operation>\r\n	</file>\r\n  \r\n  <file path=\"admin/controller/catalog/product.php\">\r\n		<operation error=\"skip\">\r\n			<search position=\"after\"><![CDATA[protected function getList() {]]></search>\r\n			<add position=\"after\"><![CDATA[\r\n    // univ import filter by batch label\r\n    $importLabels = $this->db->query(\"SELECT import_batch FROM \" . DB_PREFIX . \"product WHERE import_batch <> \'\' GROUP BY import_batch\")->rows;\r\n    \r\n    $data[\'importLabels\'] = array();\r\n    \r\n    foreach ($importLabels as $importLabel) {\r\n      $data[\'importLabels\'][] = $importLabel[\'import_batch\'];\r\n    }\r\n    \r\n    if (isset($this->request->get[\'filter_import_batch\'])) {\r\n			$filter_import_batch = $this->request->get[\'filter_import_batch\'];\r\n		} else {\r\n			$filter_import_batch = null;\r\n		}\r\n    \r\n    $data[\'filter_import_batch\'] = $filter_import_batch;\r\n      ]]></add>\r\n		</operation>\r\n    \r\n    <operation error=\"skip\">\r\n			<search position=\"before\" offset=\"1\"><![CDATA[$url .= \'&filter_name=\']]></search>\r\n			<add position=\"before\" offset=\"1\"><![CDATA[\r\n    if (isset($this->request->get[\'filter_import_batch\'])) {\r\n      $url .= \'&filter_import_batch=\' . urlencode(html_entity_decode($this->request->get[\'filter_import_batch\'], ENT_QUOTES, \'UTF-8\'));\r\n    }\r\n      ]]></add>\r\n		</operation>\r\n    \r\n    <operation error=\"skip\">\r\n			<search position=\"after\"><![CDATA[\'filter_name\'	  => $filter_name,]]></search>\r\n			<add position=\"after\"><![CDATA[     \'filter_import_batch\'	  => $filter_import_batch,]]></add>\r\n		</operation>\r\n  </file>\r\n  <file path=\"admin/view/template/catalog/product_list.tpl\" error=\"skip\">\r\n		<operation error=\"skip\">\r\n			<search position=\"before\"><![CDATA[<button type=\"button\" id=\"button-filter\" class=\"btn btn-primary pull-right\"><i class=\"fa]]></search>\r\n			<add position=\"before\"><![CDATA[\r\n          <div class=\"form-group\">\r\n            <label class=\"control-label\" for=\"input-import-batch\"><?php echo \'Import\'; ?></label>\r\n            <select name=\"filter_import_batch\" id=\"input-import-batch\" class=\"form-control\">\r\n              <option value=\"*\"></option>\r\n              <?php foreach ($importLabels as $importLabel) { ?>\r\n              <option value=\"<?php echo $importLabel; ?>\" <?php if ($filter_import_batch == $importLabel) echo \'selected=\"selected\"\'; ?>><?php echo $importLabel; ?></option>\r\n              <?php } ?>\r\n            </select>\r\n          </div>\r\n      ]]></add>\r\n		</operation>\r\n    \r\n    <operation error=\"skip\">\r\n			<search position=\"before\"><![CDATA[var filter_name = $(\'input[name=\\\'filter_name\\\']\').val();]]></search>\r\n			<add position=\"before\"><![CDATA[ var filter_import_batch = $(\'select[name=\\\'filter_import_batch\\\']\').val();\r\n\r\n  if (filter_import_batch != \'*\') {\r\n		url += \'&filter_import_batch=\' + encodeURIComponent(filter_import_batch);\r\n	}\r\n      ]]></add>\r\n		</operation>\r\n  </file>\r\n  \r\n  <file path=\"admin/model/catalog/product.php\">\r\n		<operation error=\"skip\">\r\n			<search position=\"after\"><![CDATA[$this->db->query(\"INSERT INTO \" . DB_PREFIX . \"product_filter SET]]></search>\r\n			<add position=\"after\"><![CDATA[\r\n      // Universal Import/Export - apply filters to cateogories\r\n        if (!empty($data[\'uiep_filter_to_category\'])) {\r\n          if (!empty($data[\'product_filter\']) && !empty($data[\'product_category\'])) {\r\n            foreach ($data[\'product_category\'] as $category_id) {\r\n              foreach ($data[\'product_filter\'] as $filter_id) {\r\n                $this->db->query(\"INSERT IGNORE INTO \" . DB_PREFIX . \"category_filter SET category_id = \'\" . (int)$category_id . \"\', filter_id = \'\" . (int)$filter_id . \"\'\");\r\n              }\r\n            }\r\n          }\r\n  			}\r\n      ]]></add>\r\n		</operation>\r\n    \r\n    <operation error=\"skip\">\r\n			<search position=\"replace\"><![CDATA[$this->db->query(\"INSERT INTO \" . DB_PREFIX . \"product SET]]></search>\r\n			<add position=\"replace\"><![CDATA[\r\n      // handle item id and batch name for universal import\r\n      $univimp_extra = \'\';\r\n      \r\n      if (!empty($data[\'product_id\']) && defined(\'GKD_UNIV_IMPORT\')) {\r\n        $univimp_extra .= \'product_id = \"\' . (int) $data[\'product_id\'] . \'\", \';\r\n      }\r\n      \r\n      if (!empty($data[\'import_batch\']) && defined(\'GKD_UNIV_IMPORT\')) {\r\n        $univimp_extra .= \'import_batch = \"\' . $this->db->escape($data[\'import_batch\']) . \'\", \';\r\n      }\r\n      \r\n      if (!empty($data[\'gkd_extra_fields\']) && defined(\'GKD_UNIV_IMPORT\')) {\r\n        foreach ($data[\'gkd_extra_fields\'] as $extra_field) {\r\n          if (isset($data[$extra_field])) {\r\n            $univimp_extra .= \'`\' . $this->db->escape($extra_field) .\'` = \"\' . $this->db->escape($data[$extra_field]) . \'\", \';\r\n          }\r\n        }\r\n      }\r\n      \r\n			$this->db->query(\"INSERT INTO \" . DB_PREFIX . \"product SET \" . $univimp_extra . \"]]></add>\r\n		</operation>\r\n    \r\n    <operation error=\"skip\">\r\n			<search position=\"replace\"><![CDATA[$this->db->query(\"UPDATE \" . DB_PREFIX . \"product SET model = \'\" . $this->db->escape($data[\'model\']) . \"\',]]></search>\r\n			<add position=\"replace\"><![CDATA[\r\n      // handle item id and batch name for universal import\r\n      $univimp_extra = \'\';\r\n      \r\n      if (!empty($data[\'import_batch\']) && defined(\'GKD_UNIV_IMPORT\')) {\r\n        $univimp_extra .= \'import_batch = \"\' . $this->db->escape($data[\'import_batch\']) . \'\", \';\r\n      }\r\n      \r\n      if (!empty($data[\'gkd_extra_fields\']) && defined(\'GKD_UNIV_IMPORT\')) {\r\n        foreach ($data[\'gkd_extra_fields\'] as $extra_field) {\r\n          if (isset($data[$extra_field])) {\r\n            $univimp_extra .= \'`\' . $this->db->escape($extra_field) .\'` = \"\' . $this->db->escape($data[$extra_field]) . \'\", \';\r\n          }\r\n        }\r\n      }\r\n      \r\n			$this->db->query(\"UPDATE \" . DB_PREFIX . \"product SET model = \'\" . $this->db->escape($data[\'model\']) . \"\', \" . $univimp_extra . \"]]></add>\r\n		</operation>\r\n    \r\n    <operation error=\"skip\">\r\n			<search position=\"replace\"><![CDATA[$this->db->query(\"INSERT INTO \" . DB_PREFIX . \"product_description SET]]></search>\r\n			<add position=\"replace\"><![CDATA[\r\n      // handle item id and batch name for universal import\r\n      $univimp_extra_desc = \'\';\r\n\r\n      if (!empty($data[\'gkd_extra_desc_fields\']) && defined(\'GKD_UNIV_IMPORT\')) {\r\n        foreach ($data[\'gkd_extra_desc_fields\'] as $extra_field) {\r\n          if (isset($value[$extra_field])) {\r\n            $univimp_extra_desc .= \'`\' . $this->db->escape($extra_field) .\'` = \"\' . $this->db->escape($value[$extra_field]) . \'\", \';\r\n          }\r\n        }\r\n      }\r\n      \r\n			$this->db->query(\"INSERT INTO \" . DB_PREFIX . \"product_description SET \" . $univimp_extra_desc . \"]]></add>\r\n		</operation>\r\n    \r\n    <!--operation error=\"skip\">\r\n			<search position=\"before\"><![CDATA[$this->db->query(\"DELETE FROM \" . DB_PREFIX . \"product_description WHERE product_id = \'\" . (int)$product_id . \"\'\");]]></search>\r\n			<add position=\"before\"><![CDATA[\r\n      // handle batch name for universal import\r\n      if (!empty($data[\'import_batch\']) && defined(\'GKD_UNIV_IMPORT\')) {\r\n        $this->db->query(\"UPDATE \" . DB_PREFIX . \"product SET import_batch = \'\" . $this->db->escape($data[\'import_batch\']) . \"\' WHERE product_id = \'\" . (int)$product_id . \"\'\");\r\n      }\r\n      ]]></add>\r\n		</operation-->\r\n    \r\n    <operation error=\"skip\">\r\n			<search position=\"before\"><![CDATA[SET product_option_id = \'\" . (int)$product_option[\'product_option_id\'] . \"\',]]></search>\r\n			<add position=\"before\"><![CDATA[\r\n        $gkd_prod_opt_id = defined(\'GKD_UNIV_IMPORT\') && !empty($product_option[\'product_option_id\']) ? \"product_option_id = \'\" . (int) $product_option[\'product_option_id\'] . \"\',\" : \'\';\r\n        $gkd_prod_opt_val_id = defined(\'GKD_UNIV_IMPORT\') && !empty($product_option[\'product_option_value_id\']) ? \"product_option_value_id = \'\" . (int) $product_option[\'product_option_value_id\'] . \"\',\" : \'\';\r\n      ]]></add>\r\n		</operation>\r\n    \r\n    <operation error=\"skip\">\r\n			<search position=\"replace\"><![CDATA[product_option_id = \'\" . (int)$product_option[\'product_option_id\'] . \"\',]]></search>\r\n			<add position=\"replace\"><![CDATA[\".$gkd_prod_opt_id.\"]]></add>\r\n		</operation>\r\n    \r\n    <operation error=\"skip\">\r\n			<search position=\"replace\"><![CDATA[product_option_value_id = \'\" . (int)$product_option_value[\'product_option_value_id\'] . \"\',]]></search>\r\n			<add position=\"replace\"><![CDATA[\".$gkd_prod_opt_id.\"]]></add>\r\n		</operation>\r\n    \r\n    <operation error=\"skip\">\r\n			<search position=\"before\"><![CDATA[if (!empty($data[\'filter_name\'])) {]]></search>\r\n			<add position=\"before\"><![CDATA[\r\n    if (!empty($data[\'filter_import_batch\'])) {\r\n			$sql .= \" AND p.import_batch = \'\" . $this->db->escape($data[\'filter_import_batch\']) . \"\'\";\r\n		}\r\n      ]]></add>\r\n		</operation>\r\n    \r\n	</file>\r\n  \r\n  <file path=\"admin/model/customer/customer.php\" error=\"skip\">\r\n  \r\n    <operation error=\"skip\">\r\n			<search position=\"replace\"><![CDATA[$this->db->escape(sha1($salt . sha1($salt . sha1($data[\'password\']))))]]></search>\r\n			<add position=\"replace\"><![CDATA[((defined(\'GKD_UNIV_IMPORT\') && !empty($data[\'salt\'])) ? $this->db->escape($data[\'password\']) : $this->db->escape(sha1($salt . sha1($salt . sha1($data[\'password\'])))))]]></add>\r\n		</operation>\r\n    \r\n    <operation error=\"skip\" v=\"2.x\">\r\n			<search position=\"replace\"><![CDATA[$this->db->escape($salt = token(9))]]></search>\r\n			<add position=\"replace\"><![CDATA[((defined(\'GKD_UNIV_IMPORT\') && !empty($data[\'salt\'])) ? $this->db->escape($salt = $data[\'salt\']) : $this->db->escape($salt = token(9)))]]></add>\r\n		</operation>\r\n\r\n	</file>\r\n  \r\n  <!-- <file path=\"admin/model/sale/customer.php\" error=\"skip\">\r\n  \r\n    <operation error=\"skip\">\r\n			<search position=\"replace\"><![CDATA[$this->db->escape(sha1($salt . sha1($salt . sha1($data[\'password\']))))]]></search>\r\n			<add position=\"replace\"><![CDATA[((defined(\'GKD_UNIV_IMPORT\') && !empty($data[\'salt\'])) ? $this->db->escape($data[\'password\']) : $this->db->escape(sha1($salt . sha1($salt . sha1($data[\'password\'])))))]]></add>\r\n		</operation>\r\n    \r\n    <operation error=\"skip\" v=\"2.x\">\r\n			<search position=\"replace\"><![CDATA[$this->db->escape($salt = token(9))]]></search>\r\n			<add position=\"replace\"><![CDATA[((defined(\'GKD_UNIV_IMPORT\') && !empty($data[\'salt\'])) ? $this->db->escape($salt = $data[\'salt\']) : $this->db->escape($salt = token(9)))]]></add>\r\n		</operation>\r\n    \r\n		<operation error=\"skip\" v=\"1.5\">\r\n			<search position=\"replace\"><![CDATA[$this->db->escape($salt = substr(md5(uniqid(rand(), true)), 0, 9))]]></search>\r\n			<add position=\"replace\"><![CDATA[((defined(\'GKD_UNIV_IMPORT\') && !empty($data[\'salt\'])) ? $this->db->escape($salt = $data[\'salt\']) : $this->db->escape($salt = substr(md5(uniqid(rand(), true)), 0, 9)))]]></add>\r\n		</operation>\r\n    \r\n	</file> -->\r\n  <file path=\"admin/controller/common/column_left.php\" error=\"skip\" v=\"2.3\">\r\n  \r\n    <operation error=\"skip\">\r\n      <search position=\"before\"><![CDATA[if ($this->user->hasPermission(\'access\', \'extension/event\')) {]]></search>\r\n      <add position=\"before\"><![CDATA[\r\n      $this->load->model(\'extension/extension\');\r\n      \r\n      if (!in_array(\'universal_import\', $this->model_extension_extension->getInstalled(\'module\'))) {\r\n        $extension[] = array(\r\n					\'name\'	   => \' Установить Import\\Export из Excel\',\r\n					\'href\'     => $this->url->link(\'extension/extension/module/install\', \'extension=universal_import&redir=1&token=\' . $this->session->data[\'token\'], true),\r\n					\'children\' => array()		\r\n				);\r\n      } else if ($this->user->hasPermission(\'access\', \'module/universal_import\')) {\r\n				$extension[] = array(\r\n					\'name\'	   => \' Import\\Export из Excel\',\r\n					\'href\'     => $this->url->link(\'module/universal_import\', \'token=\' . $this->session->data[\'token\'], true),\r\n					\'children\' => array()		\r\n				);\r\n			}\r\n      ]]></add>\r\n    </operation>\r\n    \r\n  </file>\r\n  \r\n<!--   <file path=\"admin/controller/extension/extension/module.php\" error=\"skip\">\r\n  \r\n    <operation error=\"skip\">\r\n			<search position=\"after\"><![CDATA[$files = glob(DIR_APPLICATION . \'controller/extension/module/*.php\');]]></search>\r\n			<add position=\"after\"><![CDATA[\r\n    if (version_compare(VERSION, \'3\', \'>=\')) {\r\n      $files[] = \'universal_import\';\r\n    }\r\n			]]></add>\r\n		</operation>\r\n    \r\n  </file> -->\r\n  <file path=\"admin/controller/extension/extension/module.php\" i=\"fix 2.3 link\" error=\"skip\">\r\n  \r\n    <operation error=\"skip\">\r\n			<search position=\"before\" index=\"0\"><![CDATA[$data[\'extensions\'][] = array(]]></search>\r\n			<add position=\"before\" index=\"0\"><![CDATA[\r\n        if ($extension == \'universal_import\') {\r\n          ${\'data\'}[\'extensions\'][] = array(\r\n            \'name\'      => (version_compare(VERSION, \'3\', \'>=\') ? $this->language->get(\'extension\')->get(\'heading_title\') : $this->language->get(\'heading_title\')),\r\n            \'module\'    => $module_data,\r\n            \'install\'   => $this->url->link(\'extension/extension/module/install\', (isset($this->session->data[\'user_token\']) ? \'user_token=\'.$this->session->data[\'user_token\'] : \'token=\'.$this->session->data[\'token\']) . \'&extension=\' . $extension, true),\r\n            \'uninstall\' => $this->url->link(\'extension/extension/module/uninstall\', (isset($this->session->data[\'user_token\']) ? \'user_token=\'.$this->session->data[\'user_token\'] : \'token=\'.$this->session->data[\'token\']) . \'&extension=\' . $extension, true),\r\n            \'installed\' => in_array($extension, $extensions),\r\n            \'edit\'      => $this->url->link(\'module/\' . $extension, (isset($this->session->data[\'user_token\']) ? \'user_token=\'.$this->session->data[\'user_token\'] : \'token=\'.$this->session->data[\'token\']), true)\r\n          );\r\n          continue;\r\n        }\r\n			]]></add>\r\n		</operation>\r\n		\r\n	</file>\r\n  \r\n</modification>', 1, '2020-03-25 15:02:50'),
(16, 'SL Fixes', 'SLFixes', 'SL', '1.0', 'illiats@ex.ua', '<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<modification>\n	<name>SL Fixes</name>\n	<code>SLFixes</code>\n	<version>1.0</version>\n	<author>SL</author>\n	<link>illiats@ex.ua</link>\n	<file path=\"admin/controller/catalog/attribute.php\">\n		<operation>\n			<search index=\"1\">\n				<![CDATA[\'limit\'       => 5]]>\n			</search>\n			<add position=\"replace\">\n				<![CDATA[\'limit\'       => 50]]>\n			</add>\n		</operation>\n	</file>\n</modification>', 1, '2020-07-24 15:15:02');
INSERT INTO `oc_modification` (`modification_id`, `name`, `code`, `author`, `version`, `link`, `xml`, `status`, `date_added`) VALUES
(17, 'Admin Quick Edit PRO', 'admin_quick_edit', '<a href=\"https://opencart2x.ru\" target=\"_blank\">opencart2x.ru</a', '5.6.0', 'https://opencart2x.ru', '<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n<modification>\r\n	<name>Admin Quick Edit PRO</name>\r\n	<code>admin_quick_edit</code>\r\n	<version>5.6.0</version>\r\n	<author><![CDATA[<a href=\"https://opencart2x.ru\" target=\"_blank\">opencart2x.ru</a>]]></author>\r\n	<link><![CDATA[https://opencart2x.ru]]></link>\r\n\r\n	<file path=\"admin/controller/design/layout.php\">\r\n		<operation error=\"log\">\r\n			<search><![CDATA[foreach ($extensions as $code)]]></search>\r\n			<add position=\"after\"><![CDATA[\r\n			if ($code == \'admin_quick_edit\') continue;\r\n			]]></add>\r\n		</operation>\r\n		<operation error=\"skip\">\r\n			<ignoreif><![CDATA[[trim(strip_tags($this->language->get(\'heading_title\')))]]></ignoreif>\r\n			<search><![CDATA[$this->language->get(\'heading_title\')]]></search>\r\n			<add position=\"replace\"><![CDATA[trim(strip_tags($this->language->get(\'heading_title\')))]]></add>\r\n		</operation>\r\n	</file>\r\n\r\n	<file path=\"admin/controller/extension/extension/module.php\">\r\n		<operation>\r\n			<search><![CDATA[function index]]></search>\r\n			<add position=\"after\"><![CDATA[      if ($this->config->get(\'aqe_installed\')) { define(\"AQE_STATUS\", $this->config->get(\'aqe_status\')); }]]></add>\r\n		</operation>\r\n	</file>\r\n\r\n	<file path=\"admin/controller/extension/module/admin_quick_edit.php\">\r\n		<operation>\r\n			<search><![CDATA[<?php]]></search>\r\n			<add position=\"after\"><![CDATA[define(\'MOD_ACTIVE\',                true);]]></add>\r\n		</operation>\r\n	</file>\r\n\r\n<!-- MARKETING -> COUPONS -->\r\n	<file path=\"admin/controller/marketing/coupon.php\">\r\n		<operation error=\"log\">\r\n			<search><![CDATA[\r\n			public function index() {\r\n			]]></search>\r\n			<add position=\"after\"><![CDATA[\r\n		if ((int)$this->config->get(\'aqe_status\') && (int)$this->config->get(\'aqe_marketing_coupons_status\')) {\r\n			return $this->load->controller(\'marketing/aqe/coupon\');\r\n		}\r\n			]]></add>\r\n		</operation>\r\n		<operation error=\"log\">\r\n			<search><![CDATA[\r\n			public function delete() {\r\n			]]></search>\r\n			<add position=\"after\"><![CDATA[\r\n		if ((int)$this->config->get(\'aqe_status\') && (int)$this->config->get(\'aqe_marketing_coupons_status\')) {\r\n			return $this->load->controller(\'marketing/aqe/coupon/delete\');\r\n		}\r\n			]]></add>\r\n		</operation>\r\n		<operation error=\"log\">\r\n			<search><![CDATA[\r\n			ControllerMarketingCoupon extends Controller\r\n			]]></search>\r\n			<add position=\"after\"><![CDATA[\r\n	public function load_popup() {\r\n		if ((int)$this->config->get(\'aqe_status\') && (int)$this->config->get(\'aqe_marketing_coupons_status\')) {\r\n			return $this->load->controller(\'marketing/aqe/coupon/load_popup\');\r\n		} else {\r\n			$this->response->redirect($this->url->link(\'marketing/coupon\', \'token=\' . $this->session->data[\'token\'] . $url, true));\r\n		}\r\n	}\r\n\r\n	public function refresh_data() {\r\n		if ((int)$this->config->get(\'aqe_status\') && (int)$this->config->get(\'aqe_sales_returns_status\')) {\r\n			return $this->load->controller(\'marketing/aqe/coupon/refresh_data\');\r\n		} else {\r\n			$this->response->redirect($this->url->link(\'marketing/coupon\', \'token=\' . $this->session->data[\'token\'] . $url, true));\r\n		}\r\n	}\r\n\r\n	public function quick_update() {\r\n		if ((int)$this->config->get(\'aqe_status\') && (int)$this->config->get(\'aqe_marketing_coupons_status\')) {\r\n			return $this->load->controller(\'marketing/aqe/coupon/quick_update\');\r\n		} else {\r\n			$this->response->redirect($this->url->link(\'marketing/coupon\', \'token=\' . $this->session->data[\'token\'] . $url, true));\r\n		}\r\n	}\r\n			]]></add>\r\n		</operation>\r\n		<operation error=\"log\">\r\n			<search><![CDATA[\r\n			$url .= \'&sort=\' . $this->request->get[\'sort\'];\r\n			]]></search>\r\n			<add position=\"before\" offset=\"1\"><![CDATA[\r\n		if ($this->config->get(\'aqe_status\') && $this->config->get(\'aqe_marketing_coupons_status\')) {\r\n			foreach ($this->config->get(\'aqe_marketing_coupons\') as $column => $attr) {\r\n				if ($attr[\'filter\'][\'show\'] && isset($this->request->get[\'filter_\' . $column])) {\r\n					$url .= \'&filter_\' . $column . \'=\' . urlencode(html_entity_decode($this->request->get[\'filter_\' . $column], ENT_QUOTES, \'UTF-8\'));\r\n				}\r\n			}\r\n		}\r\n			]]></add>\r\n		</operation>\r\n	</file>\r\n	<file path=\"admin/controller/marketing/affiliate.php\">\r\n		<operation error=\"log\">\r\n			<search><![CDATA[\r\n			public function index() {\r\n			]]></search>\r\n			<add position=\"after\"><![CDATA[\r\n		if ((int)$this->config->get(\'aqe_status\') && (int)$this->config->get(\'aqe_marketing_affiliates_status\')) {\r\n			return $this->load->controller(\'marketing/aqe/affiliate\');\r\n		}\r\n			]]></add>\r\n		</operation>\r\n		<operation error=\"log\">\r\n			<search><![CDATA[\r\n			public function delete() {\r\n			]]></search>\r\n			<add position=\"after\"><![CDATA[\r\n		if ((int)$this->config->get(\'aqe_status\') && (int)$this->config->get(\'aqe_marketing_affiliates_status\')) {\r\n			return $this->load->controller(\'marketing/aqe/affiliate/delete\');\r\n		}\r\n			]]></add>\r\n		</operation>\r\n		<operation error=\"log\">\r\n			<search><![CDATA[\r\n			public function autocomplete() {\r\n			]]></search>\r\n			<add position=\"after\"><![CDATA[\r\n		if ((int)$this->config->get(\'aqe_status\') && (int)$this->config->get(\'aqe_marketing_affiliates_status\')) {\r\n			return $this->load->controller(\'marketing/aqe/affiliate/autocomplete\');\r\n		}\r\n			]]></add>\r\n		</operation>\r\n		<operation error=\"log\">\r\n			<search><![CDATA[\r\n			ControllerMarketingAffiliate extends Controller\r\n			]]></search>\r\n			<add position=\"after\"><![CDATA[\r\n	public function load_popup() {\r\n		if ((int)$this->config->get(\'aqe_status\') && (int)$this->config->get(\'aqe_marketing_affiliates_status\')) {\r\n			return $this->load->controller(\'marketing/aqe/affiliate/load_popup\');\r\n		} else {\r\n			$this->response->redirect($this->url->link(\'marketing/affiliate\', \'token=\' . $this->session->data[\'token\'] . $url, true));\r\n		}\r\n	}\r\n\r\n	public function load_zone() {\r\n		if ((int)$this->config->get(\'aqe_status\') && (int)$this->config->get(\'aqe_marketing_affiliates_status\')) {\r\n			return $this->load->controller(\'marketing/aqe/affiliate/load_zone\');\r\n		} else {\r\n			$this->response->redirect($this->url->link(\'marketing/affiliate\', \'token=\' . $this->session->data[\'token\'] . $url, true));\r\n		}\r\n	}\r\n\r\n	public function quick_update() {\r\n		if ((int)$this->config->get(\'aqe_status\') && (int)$this->config->get(\'aqe_marketing_affiliates_status\')) {\r\n			return $this->load->controller(\'marketing/aqe/affiliate/quick_update\');\r\n		} else {\r\n			$this->response->redirect($this->url->link(\'marketing/affiliate\', \'token=\' . $this->session->data[\'token\'] . $url, true));\r\n		}\r\n	}\r\n			]]></add>\r\n		</operation>\r\n		<operation error=\"log\">\r\n			<search><![CDATA[\r\n			$url .= \'&sort=\' . $this->request->get[\'sort\'];\r\n			]]></search>\r\n			<add position=\"before\" offset=\"1\"><![CDATA[\r\n		if ($this->config->get(\'aqe_status\') && $this->config->get(\'aqe_marketing_affiliates_status\')) {\r\n			foreach ($this->config->get(\'aqe_marketing_affiliates\') as $column => $attr) {\r\n				if ($attr[\'filter\'][\'show\'] && isset($this->request->get[\'filter_\' . $column])) {\r\n					$url .= \'&filter_\' . $column . \'=\' . urlencode(html_entity_decode($this->request->get[\'filter_\' . $column], ENT_QUOTES, \'UTF-8\'));\r\n				}\r\n			}\r\n		}\r\n			]]></add>\r\n		</operation>\r\n	</file>\r\n	<file path=\"admin/controller/marketing/marketing.php\">\r\n		<operation error=\"log\">\r\n			<search><![CDATA[\r\n			public function index() {\r\n			]]></search>\r\n			<add position=\"after\"><![CDATA[\r\n		if ((int)$this->config->get(\'aqe_status\') && (int)$this->config->get(\'aqe_marketing_campaigns_status\')) {\r\n			return $this->load->controller(\'marketing/aqe/marketing\');\r\n		}\r\n			]]></add>\r\n		</operation>\r\n		<operation error=\"log\">\r\n			<search><![CDATA[\r\n			public function delete() {\r\n			]]></search>\r\n			<add position=\"after\"><![CDATA[\r\n		if ((int)$this->config->get(\'aqe_status\') && (int)$this->config->get(\'aqe_marketing_campaigns_status\')) {\r\n			return $this->load->controller(\'marketing/aqe/marketing/delete\');\r\n		}\r\n			]]></add>\r\n		</operation>\r\n		<operation error=\"log\">\r\n			<search><![CDATA[\r\n			ControllerMarketingMarketing extends Controller\r\n			]]></search>\r\n			<add position=\"after\"><![CDATA[\r\n	public function quick_update() {\r\n		if ((int)$this->config->get(\'aqe_status\') && (int)$this->config->get(\'aqe_marketing_campaigns_status\')) {\r\n			return $this->load->controller(\'marketing/aqe/marketing/quick_update\');\r\n		} else {\r\n			$this->response->redirect($this->url->link(\'marketing/marketing\', \'token=\' . $this->session->data[\'token\'] . $url, true));\r\n		}\r\n	}\r\n			]]></add>\r\n		</operation>\r\n		<operation error=\"log\">\r\n			<search><![CDATA[\r\n			$url .= \'&sort=\' . $this->request->get[\'sort\'];\r\n			]]></search>\r\n			<add position=\"before\" offset=\"1\"><![CDATA[\r\n		if ($this->config->get(\'aqe_status\') && $this->config->get(\'aqe_marketing_campaigns_status\')) {\r\n			foreach ($this->config->get(\'aqe_marketing_campaigns\') as $column => $attr) {\r\n				if ($attr[\'filter\'][\'show\'] && isset($this->request->get[\'filter_\' . $column])) {\r\n					$url .= \'&filter_\' . $column . \'=\' . urlencode(html_entity_decode($this->request->get[\'filter_\' . $column], ENT_QUOTES, \'UTF-8\'));\r\n				}\r\n			}\r\n		}\r\n			]]></add>\r\n		</operation>\r\n	</file>\r\n	<file path=\"admin/controller/sale/voucher_theme.php\">\r\n		<operation error=\"log\">\r\n			<search><![CDATA[\r\n			public function index() {\r\n			]]></search>\r\n			<add position=\"after\"><![CDATA[\r\n		if ((int)$this->config->get(\'aqe_status\') && (int)$this->config->get(\'aqe_sales_voucher_themes_status\')) {\r\n			return $this->load->controller(\'sale/aqe/voucher_theme\');\r\n		}\r\n			]]></add>\r\n		</operation>\r\n		<operation error=\"log\">\r\n			<search><![CDATA[\r\n			public function delete() {\r\n			]]></search>\r\n			<add position=\"after\"><![CDATA[\r\n		if ((int)$this->config->get(\'aqe_status\') && (int)$this->config->get(\'aqe_sales_voucher_themes_status\')) {\r\n			return $this->load->controller(\'sale/aqe/voucher_theme/delete\');\r\n		}\r\n			]]></add>\r\n		</operation>\r\n		<operation error=\"log\">\r\n			<search><![CDATA[\r\n			ControllerSaleVoucherTheme extends Controller\r\n			]]></search>\r\n			<add position=\"after\"><![CDATA[\r\n	public function load_popup() {\r\n		if ((int)$this->config->get(\'aqe_status\') && (int)$this->config->get(\'aqe_sales_voucher_themes_status\')) {\r\n			return $this->load->controller(\'sale/aqe/voucher_theme/load_popup\');\r\n		} else {\r\n			$this->response->redirect($this->url->link(\'sale/voucher_theme\', \'token=\' . $this->session->data[\'token\'] . $url, true));\r\n		}\r\n	}\r\n\r\n	public function quick_update() {\r\n		if ((int)$this->config->get(\'aqe_status\') && (int)$this->config->get(\'aqe_sales_voucher_themes_status\')) {\r\n			return $this->load->controller(\'sale/aqe/voucher_theme/quick_update\');\r\n		} else {\r\n			$this->response->redirect($this->url->link(\'sale/voucher_theme\', \'token=\' . $this->session->data[\'token\'] . $url, true));\r\n		}\r\n	}\r\n			]]></add>\r\n		</operation>\r\n		<operation error=\"log\">\r\n			<search><![CDATA[\r\n			$url .= \'&sort=\' . $this->request->get[\'sort\'];\r\n			]]></search>\r\n			<add position=\"before\" offset=\"1\"><![CDATA[\r\n		if ($this->config->get(\'aqe_status\') && $this->config->get(\'aqe_sales_voucher_themes_status\')) {\r\n			foreach ($this->config->get(\'aqe_sales_voucher_themes\') as $column => $attr) {\r\n				if ($attr[\'filter\'][\'show\'] && isset($this->request->get[\'filter_\' . $column])) {\r\n					$url .= \'&filter_\' . $column . \'=\' . urlencode(html_entity_decode($this->request->get[\'filter_\' . $column], ENT_QUOTES, \'UTF-8\'));\r\n				}\r\n			}\r\n		}\r\n			]]></add>\r\n		</operation>\r\n	</file>\r\n	<file path=\"admin/controller/sale/voucher.php\">\r\n		<operation error=\"log\">\r\n			<search><![CDATA[\r\n			public function index() {\r\n			]]></search>\r\n			<add position=\"after\"><![CDATA[\r\n		if ((int)$this->config->get(\'aqe_status\') && (int)$this->config->get(\'aqe_sales_vouchers_status\')) {\r\n			return $this->load->controller(\'sale/aqe/voucher\');\r\n		}\r\n			]]></add>\r\n		</operation>\r\n		<operation error=\"log\">\r\n			<search><![CDATA[\r\n			public function delete() {\r\n			]]></search>\r\n			<add position=\"after\"><![CDATA[\r\n		if ((int)$this->config->get(\'aqe_status\') && (int)$this->config->get(\'aqe_sales_vouchers_status\')) {\r\n			return $this->load->controller(\'sale/aqe/voucher/delete\');\r\n		}\r\n			]]></add>\r\n		</operation>\r\n		<operation error=\"log\">\r\n			<search><![CDATA[\r\n			public function send() {\r\n			]]></search>\r\n			<add position=\"after\"><![CDATA[\r\n		if ((int)$this->config->get(\'aqe_status\') && (int)$this->config->get(\'aqe_sales_vouchers_status\')) {\r\n			return $this->load->controller(\'sale/aqe/voucher/send\');\r\n		}\r\n			]]></add>\r\n		</operation>\r\n\r\n		<operation error=\"log\">\r\n			<search><![CDATA[\r\n			ControllerSaleVoucher extends Controller\r\n			]]></search>\r\n			<add position=\"after\"><![CDATA[\r\n	public function quick_update() {\r\n		if ((int)$this->config->get(\'aqe_status\') && (int)$this->config->get(\'aqe_sales_vouchers_status\')) {\r\n			return $this->load->controller(\'sale/aqe/voucher/quick_update\');\r\n		} else {\r\n			$this->response->redirect($this->url->link(\'sale/voucher\', \'token=\' . $this->session->data[\'token\'] . $url, true));\r\n		}\r\n	}\r\n			]]></add>\r\n		</operation>\r\n		<operation error=\"log\">\r\n			<search><![CDATA[\r\n			$url .= \'&sort=\' . $this->request->get[\'sort\'];\r\n			]]></search>\r\n			<add position=\"before\" offset=\"1\"><![CDATA[\r\n		if ($this->config->get(\'aqe_status\') && $this->config->get(\'aqe_sales_vouchers_status\')) {\r\n			foreach ($this->config->get(\'aqe_sales_vouchers\') as $column => $attr) {\r\n				if ($attr[\'filter\'][\'show\'] && isset($this->request->get[\'filter_\' . $column])) {\r\n					$url .= \'&filter_\' . $column . \'=\' . urlencode(html_entity_decode($this->request->get[\'filter_\' . $column], ENT_QUOTES, \'UTF-8\'));\r\n				}\r\n			}\r\n		}\r\n			]]></add>\r\n		</operation>\r\n	</file>\r\n	<file path=\"admin/controller/sale/return.php\">\r\n		<operation error=\"log\">\r\n			<search><![CDATA[\r\n			public function index() {\r\n			]]></search>\r\n			<add position=\"after\"><![CDATA[\r\n		if ((int)$this->config->get(\'aqe_status\') && (int)$this->config->get(\'aqe_sales_returns_status\')) {\r\n			return $this->load->controller(\'sale/aqe/return\');\r\n		}\r\n			]]></add>\r\n		</operation>\r\n		<operation error=\"log\">\r\n			<search><![CDATA[\r\n			public function delete() {\r\n			]]></search>\r\n			<add position=\"after\"><![CDATA[\r\n		if ((int)$this->config->get(\'aqe_status\') && (int)$this->config->get(\'aqe_sales_returns_status\')) {\r\n			return $this->load->controller(\'sale/aqe/return/delete\');\r\n		}\r\n			]]></add>\r\n		</operation>\r\n		<operation error=\"log\">\r\n			<search><![CDATA[\r\n			ControllerSaleReturn extends Controller\r\n			]]></search>\r\n			<add position=\"after\"><![CDATA[\r\n	public function autocomplete() {\r\n		if ((int)$this->config->get(\'aqe_status\') && (int)$this->config->get(\'aqe_sales_returns_status\')) {\r\n			return $this->load->controller(\'sale/aqe/return/autocomplete\');\r\n		} else {\r\n			$this->response->redirect($this->url->link(\'sale/return\', \'token=\' . $this->session->data[\'token\'] . $url, true));\r\n		}\r\n	}\r\n\r\n	public function load_popup() {\r\n		if ((int)$this->config->get(\'aqe_status\') && (int)$this->config->get(\'aqe_sales_returns_status\')) {\r\n			return $this->load->controller(\'sale/aqe/return/load_popup\');\r\n		} else {\r\n			$this->response->redirect($this->url->link(\'sale/return\', \'token=\' . $this->session->data[\'token\'] . $url, true));\r\n		}\r\n	}\r\n\r\n	public function refresh_data() {\r\n		if ((int)$this->config->get(\'aqe_status\') && (int)$this->config->get(\'aqe_sales_returns_status\')) {\r\n			return $this->load->controller(\'sale/aqe/return/refresh_data\');\r\n		} else {\r\n			$this->response->redirect($this->url->link(\'sale/return\', \'token=\' . $this->session->data[\'token\'] . $url, true));\r\n		}\r\n	}\r\n\r\n	public function quick_update() {\r\n		if ((int)$this->config->get(\'aqe_status\') && (int)$this->config->get(\'aqe_sales_returns_status\')) {\r\n			return $this->load->controller(\'sale/aqe/return/quick_update\');\r\n		} else {\r\n			$this->response->redirect($this->url->link(\'sale/return\', \'token=\' . $this->session->data[\'token\'] . $url, true));\r\n		}\r\n	}\r\n			]]></add>\r\n		</operation>\r\n		<operation error=\"log\">\r\n			<search><![CDATA[\r\n			$url .= \'&sort=\' . $this->request->get[\'sort\'];\r\n			]]></search>\r\n			<add position=\"before\" offset=\"1\"><![CDATA[\r\n		if ($this->config->get(\'aqe_status\') && $this->config->get(\'aqe_sales_returns_status\')) {\r\n			foreach ($this->config->get(\'aqe_sales_returns\') as $column => $attr) {\r\n				if ($attr[\'filter\'][\'show\'] && isset($this->request->get[\'filter_\' . $column])) {\r\n					$url .= \'&filter_\' . $column . \'=\' . urlencode(html_entity_decode($this->request->get[\'filter_\' . $column], ENT_QUOTES, \'UTF-8\'));\r\n				}\r\n			}\r\n		}\r\n			]]></add>\r\n		</operation>\r\n	</file>\r\n	<file path=\"admin/controller/sale/order.php\">\r\n		<operation error=\"log\">\r\n			<search><![CDATA[\r\n			function getList() {\r\n			]]></search>\r\n			<add position=\"after\"><![CDATA[\r\n		if ((int)$this->config->get(\'aqe_status\') && (int)$this->config->get(\'aqe_sales_orders_status\')) {\r\n			$this->load->helper(\'aqe\');\r\n			$this->load->language(\'sale/aqe/general\');\r\n			$this->document->addScript(\'view/javascript/aqe/catalog.min.js\');\r\n			$this->document->addStyle(\'view/stylesheet/aqe/css/catalog.min.css\');\r\n\r\n			$actions = array();\r\n			$columns = $this->config->get(\'aqe_sales_orders\');\r\n			$columns = array_filter($columns, \'column_display\');\r\n			foreach ($columns as $column => $attr) {\r\n				$columns[$column][\'name\'] = $this->language->get(\'column_\' . $column);\r\n			}\r\n\r\n			$related_columns = array_merge(array_map(function($v) { return isset($v[\'rel\']) ? $v[\'rel\'] : \'\'; }, $columns), array_map(function($v) { return isset($v[\'rel\']) ? $v[\'rel\'] : \'\'; }, $actions));\r\n\r\n			$data[\'related\'] = $related_columns;\r\n			$data[\'column_info\'] = $columns;\r\n\r\n			$data[\'update_url\'] = html_entity_decode($this->url->link(\'sale/order/quick_update\', \'token=\' . $this->session->data[\'token\'], true));\r\n\r\n			$this->load->model(\'localisation/order_status\');\r\n			$order_statuses = $this->model_localisation_order_status->getOrderStatuses();\r\n			$status_select = array();\r\n			foreach ($order_statuses as $status) {\r\n				$status_select[$status[\'order_status_id\']] = $status[\'name\'];\r\n			}\r\n			$data[\'status_select\'] = addslashes(json_encode($status_select));\r\n\r\n			$data[\'text_saving\'] = $this->language->get(\'text_saving\');\r\n			$data[\'text_loading\'] = $this->language->get(\'text_loading\');\r\n			$data[\'text_batch_edit\'] = $this->language->get(\'text_batch_edit\');\r\n			$data[\'text_notify_customer\'] = $this->language->get(\'text_notify_customer\');\r\n\r\n			$data[\'notify_customer\'] = $this->config->get(\'aqe_sales_orders_notify_customer\');\r\n\r\n			$data[\'error_update\'] = $this->language->get(\'error_update\');\r\n			$data[\'error_ajax_request\'] = $this->language->get(\'error_ajax_request\');\r\n\r\n			$data[\'aqe_enabled\'] = true;\r\n			$data[\'aqe_tooltip\'] = ($this->config->get(\'aqe_quick_edit_on\') == \'dblclick\') ? $this->language->get(\'text_double_click_edit\') : $this->language->get(\'text_click_edit\');\r\n			$data[\'aqe_quick_edit_on\'] = $this->config->get(\'aqe_quick_edit_on\');\r\n			$data[\'batch_edit\'] = (int)$this->config->get(\'aqe_batch_edit\');\r\n		} else {\r\n			$data[\'aqe_enabled\'] = false;\r\n		}\r\n			]]></add>\r\n		</operation>\r\n		<operation error=\"log\">\r\n			<search><![CDATA[\r\n			ControllerSaleOrder extends Controller\r\n			]]></search>\r\n			<add position=\"after\"><![CDATA[\r\n	public function quick_update() {\r\n		$this->load->language(\'sale/order\');\r\n		$this->load->language(\'sale/aqe/order\');\r\n		$this->load->language(\'sale/aqe/general\');\r\n		$this->load->model(\'sale/order\');\r\n\r\n		$alert = array(\"error\" => array(), \"success\" => array());\r\n		$response = array();\r\n\r\n		if ($this->request->server[\'REQUEST_METHOD\'] == \'POST\' && $this->validateUpdateData($this->request->post)) {\r\n			list($column, $id) = explode(\"-\", $this->request->post[\'id\']);\r\n			$id = (array)$id;\r\n			$value = $this->request->post[\'new\'];\r\n\r\n			if (isset($this->request->post[\'ids\'])) {\r\n				$id = array_unique(array_merge((array)$id, (array)$this->request->post[\'ids\']));\r\n			}\r\n\r\n			$results = array(\'done\' => array(), \'failed\' => array());\r\n\r\n			if (isset($this->request->post[\'notify\'])) {\r\n				$notify = $this->request->post[\'notify\'];\r\n			} else {\r\n				$notify = $this->config->get(\'aqe_sales_orders_notify_customer\');\r\n			}\r\n\r\n			$post_data = array(\r\n				\'order_status_id\' => $value,\r\n				\'notify\' => $notify,\r\n				\'override\' => \"0\",\r\n				\'append\' => \"0\",\r\n				\'comment\' => \"\"\r\n			);\r\n\r\n			$store_url = HTTPS_CATALOG;\r\n\r\n			// API login\r\n			$this->load->model(\'user/api\');\r\n\r\n			$api_info = $this->model_user_api->getApi($this->config->get(\'config_api_id\'));\r\n\r\n			if ($api_info) {\r\n				$api_key = $api_info[\'key\'];\r\n			} else {\r\n				$api_key = \'\';\r\n			}\r\n\r\n			$curl = curl_init();\r\n\r\n			// Set SSL if required\r\n			if (substr($store_url, 0, 5) == \'https\') {\r\n				curl_setopt($curl, CURLOPT_PORT, 443);\r\n			}\r\n\r\n			$login_data = array(\r\n				\'key\' => $api_key\r\n			);\r\n\r\n			curl_setopt($curl, CURLOPT_HEADER, false);\r\n			curl_setopt($curl, CURLINFO_HEADER_OUT, true);\r\n			curl_setopt($curl, CURLOPT_USERAGENT, $this->request->server[\'HTTP_USER_AGENT\']);\r\n			curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);\r\n			curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);\r\n			curl_setopt($curl, CURLOPT_FORBID_REUSE, false);\r\n			curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);\r\n			curl_setopt($curl, CURLOPT_URL, $store_url . \'index.php?route=api/login\');\r\n			curl_setopt($curl, CURLOPT_TIMEOUT, 5);\r\n			curl_setopt($curl, CURLOPT_POST, true);\r\n			curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query($login_data));\r\n			curl_setopt($curl, CURLOPT_COOKIESESSION, true);\r\n			curl_setopt($curl, CURLOPT_COOKIEJAR, \'orderQuickEdit\');\r\n			curl_setopt($curl, CURLOPT_COOKIEFILE, \'orderQuickEdit\');\r\n\r\n			$json = json_decode(curl_exec($curl), true);\r\n			curl_close($curl);\r\n\r\n			if ($column == \"status\" && !empty($json[\'success\']) && !empty($json[\'token\'])) {\r\n				$api_token = $json[\'token\'];\r\n\r\n				foreach ((array)$id as $_id) {\r\n					$curl = curl_init();\r\n\r\n					// Set SSL if required\r\n					if (substr($store_url, 0, 5) == \'https\') {\r\n						curl_setopt($curl, CURLOPT_PORT, 443);\r\n					}\r\n\r\n					curl_setopt($curl, CURLOPT_HEADER, false);\r\n					curl_setopt($curl, CURLINFO_HEADER_OUT, true);\r\n					curl_setopt($curl, CURLOPT_USERAGENT, $this->request->server[\'HTTP_USER_AGENT\']);\r\n					curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);\r\n					curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);\r\n					curl_setopt($curl, CURLOPT_FORBID_REUSE, false);\r\n					curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);\r\n					curl_setopt($curl, CURLOPT_URL, $store_url . \'index.php?route=api/order/history&token=\' . $api_token . \'&order_id=\' . $_id);\r\n					curl_setopt($curl, CURLOPT_TIMEOUT, 10);\r\n					curl_setopt($curl, CURLOPT_POST, true);\r\n					curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query($post_data));\r\n					//curl_setopt($curl, CURLOPT_COOKIESESSION, true);\r\n					curl_setopt($curl, CURLOPT_COOKIEFILE, \'orderQuickEdit\');\r\n\r\n					$json = curl_exec($curl);\r\n\r\n					curl_close($curl);\r\n\r\n					if ($json) {\r\n						$json = json_decode($json, true);\r\n					}\r\n\r\n					$this->request->get[\'order_id\'] = $_id;\r\n					$this->request->get[\'status_id\'] = $value;\r\n					$this->load->controller(\'extension/openbay/addorderinfo\');\r\n\r\n					if (!empty($json[\'error\'])) {\r\n						$results[\'failed\'][] = $_id;\r\n					} else {\r\n						$results[\'done\'][] = $_id;\r\n					}\r\n				}\r\n			} else {\r\n				if (!empty($json[\'error\'])) {\r\n					$alert[\'error\'] = array_merge($alert[\'error\'], (array)$json[\'error\']);\r\n				} else if (empty($json[\'success\']) || empty($json[\'token\'])) {\r\n					$alert[\'error\'][\'api_login\'] = $this->language->get(\'error_login\');\r\n				}\r\n			}\r\n\r\n			$response[\'results\'] = $results;\r\n\r\n			if ($results[\'done\']) {\r\n				$alert[\'success\'][\'update\'] = sprintf($this->language->get(\'text_success_update\'), count($results[\'done\']));\r\n				if ($results[\'failed\']) {\r\n					$alert[\'error\'][\'update\'] = sprintf($this->language->get(\'error_failed_update\'), count($results[\'failed\']));\r\n				}\r\n				$response[\'success\'] = 1;\r\n				if (in_array($column, array(\'status\'))) {\r\n					$this->load->model(\'localisation/order_status\');\r\n					$status = $this->model_localisation_order_status->getOrderStatus($value);\r\n					$response[\'value\'] = $status[\'name\'];\r\n					$response[\'values\'][\'*\'] = $response[\'value\'];\r\n				} else {\r\n					$response[\'value\'] = $value;\r\n					$response[\'values\'][\'*\'] = $response[\'value\'];\r\n				}\r\n			} else {\r\n				$alert[\'error\'][\'result\'] = $this->language->get(\'error_update\');\r\n			}\r\n		} else {\r\n			$response[\'error\'] = $this->error[\'warning\'];\r\n		}\r\n\r\n		$response = array_merge($response, array(\"errors\" => $this->error), array(\"alerts\" => $alert));\r\n\r\n		$this->response->addHeader(\'Content-Type: application/json\');\r\n		$this->response->setOutput(json_encode($response));\r\n	}\r\n\r\n	protected function validateUpdateData(&$data) {\r\n		$this->checkPermission();\r\n\r\n		if (!isset($data[\'id\']) || strpos($data[\'id\'], \"-\") === false) {\r\n			$this->error[\'warning\'] = $this->language->get(\'error_update\');\r\n			return false;\r\n		}\r\n\r\n		list($column, $id) = explode(\"-\", $data[\'id\']);\r\n\r\n		if (!isset($data[\'old\'])) {\r\n			$this->error[\'warning\'] = $this->language->get(\'error_update\');\r\n		}\r\n\r\n		if (!isset($data[\'new\'])) {\r\n			$this->error[\'warning\'] = $this->language->get(\'error_update\');\r\n		}\r\n\r\n		if (!$this->error) {\r\n			return true;\r\n		} else {\r\n			return false;\r\n		}\r\n	}\r\n\r\n	protected function checkPermission() {\r\n		if (!$this->user->hasPermission(\'modify\', \'sale/order\')) {\r\n			$this->error[\'warning\'] = $this->language->get(\'error_permission\');\r\n		}\r\n	}\r\n			]]></add>\r\n		</operation>\r\n	</file>\r\n\r\n	<file path=\"admin/view/template/sale/order_list.tpl\">\r\n		<operation error=\"log\">\r\n			<search><![CDATA[\r\n			<div class=\"panel panel-default\">\r\n			]]></search>\r\n			<add position=\"before\"><![CDATA[\r\n		<?php if ($aqe_enabled) { ?>\r\n  <div class=\"alerts\">\r\n	<div class=\"container-fluid\" id=\"alerts\">\r\n	</div>\r\n  </div>\r\n		<?php } ?>\r\n			]]></add>\r\n		</operation>\r\n		<operation error=\"log\">\r\n			<search><![CDATA[\r\n			<button type=\"submit\" id=\"button-shipping\"\r\n			]]></search>\r\n			<add position=\"before\"><![CDATA[\r\n		<?php if ($aqe_enabled) { ?><label for=\"batch_edit\" class=\"hidden\" id=\"batch-edit-container\"><input type=\"checkbox\" id=\"batch-edit\"<?php echo ($batch_edit) ? \' checked\' : \'\'; ?>> <?php echo $text_batch_edit; ?></label><?php } ?>\r\n			]]></add>\r\n		</operation>\r\n		<operation error=\"log\">\r\n			<search regex=\"true\"><![CDATA[~<td class=\"text-left\"><\\?php echo \\$order\\[\'(.*)status\'\\]; \\?></td>~]]></search>\r\n			<add position=\"replace\"><![CDATA[\r\n		<?php if ($aqe_enabled) { ?>\r\n		<td class=\"<?php echo $column_info[\"status\"][\'align\']; ?><?php echo ($column_info[\"status\"][\'qe_status\']) ? \' \' . $column_info[\"status\"][\'type\'] : \'\'; ?>\" id=\"<?php echo \"status-\" . $order[\'order_id\']; ?>\"><?php echo $order[\"$1status\"]; ?></td>\r\n		<?php } else { ?>\r\n		<td class=\"text-left\"><?php echo $order[\'$1status\']; ?></td>\r\n		<?php } ?>\r\n			]]></add>\r\n		</operation>\r\n		<operation error=\"log\">\r\n			<search><![CDATA[\r\n			<?php echo $footer; ?>\r\n			]]></search>\r\n			<add position=\"before\"><![CDATA[\r\n		<?php if ($aqe_enabled) { ?>\r\n		<script type=\"text/javascript\"><!--\r\n		!function(t,e){t.batch_edit=parseInt(\"<?php echo (int)$batch_edit; ?>\"),t.texts=e.extend({},t.texts,{error_ajax_request:\"<?php echo addslashes($error_ajax_request); ?>\"}),e(function(){e(\".status_qe\").editable(function(i,o){var a=e(\"#notify\",this).is(\":checked\")?1:0,n={notify:a};return t.quick_update(this,i,o,\"<?php echo $update_url; ?>\",n).done(e.proxy(t.update_finished,{column:e(this).attr(\"id\").split(\"-\")[0]})).fail(e.proxy(t.update_failed,this)),o.indicator},{type:\"status_edit\",data:\"<?php echo trim($status_select); ?>\",indicator:\"<?php echo $text_saving; ?>\",tooltip:\"<?php echo $aqe_tooltip; ?>\",event:\"<?php echo $aqe_quick_edit_on; ?>\",onblur:\"cancel\",notify_customer_text:\"<?php echo $text_notify_customer; ?>\",notify_customer:parseInt(\"<?php echo (int)$notify_customer; ?>\")})})}(window.bull5i=window.bull5i||{},jQuery);\r\n		//--></script>\r\n		<?php } ?>\r\n			]]></add>\r\n		</operation>\r\n	</file>\r\n	<file path=\"admin/controller/customer/customer.php\">\r\n		<operation error=\"log\">\r\n			<search><![CDATA[\r\n			public function index() {\r\n			]]></search>\r\n			<add position=\"after\"><![CDATA[\r\n		if ((int)$this->config->get(\'aqe_status\') && (int)$this->config->get(\'aqe_customer_customers_status\')) {\r\n			return $this->load->controller(\'customer/aqe/customer\');\r\n		}\r\n			]]></add>\r\n		</operation>\r\n		<operation error=\"log\">\r\n			<search><![CDATA[\r\n			public function delete() {\r\n			]]></search>\r\n			<add position=\"after\"><![CDATA[\r\n		if ((int)$this->config->get(\'aqe_status\') && (int)$this->config->get(\'aqe_customer_customers_status\')) {\r\n			return $this->load->controller(\'customer/aqe/customer/delete\');\r\n		}\r\n			]]></add>\r\n		</operation>\r\n		<operation error=\"log\">\r\n			<search><![CDATA[\r\n			ControllerCustomerCustomer extends Controller\r\n			]]></search>\r\n			<add position=\"after\"><![CDATA[\r\n	public function autocomplete2() {\r\n		if ((int)$this->config->get(\'aqe_status\') && (int)$this->config->get(\'aqe_customer_customers_status\')) {\r\n			return $this->load->controller(\'customer/aqe/customer/autocomplete2\');\r\n		} else {\r\n			$this->response->redirect($this->url->link(\'customer/customer\', \'token=\' . $this->session->data[\'token\'] . $url, true));\r\n		}\r\n	}\r\n\r\n	public function load_popup() {\r\n		if ((int)$this->config->get(\'aqe_status\') && (int)$this->config->get(\'aqe_customer_customers_status\')) {\r\n			return $this->load->controller(\'customer/aqe/customer/load_popup\');\r\n		} else {\r\n			$this->response->redirect($this->url->link(\'customer/customer\', \'token=\' . $this->session->data[\'token\'] . $url, true));\r\n		}\r\n	}\r\n\r\n	public function quick_update() {\r\n		if ((int)$this->config->get(\'aqe_status\') && (int)$this->config->get(\'aqe_customer_customers_status\')) {\r\n			return $this->load->controller(\'customer/aqe/customer/quick_update\');\r\n		} else {\r\n			$this->response->redirect($this->url->link(\'customer/customer\', \'token=\' . $this->session->data[\'token\'] . $url, true));\r\n		}\r\n	}\r\n			]]></add>\r\n		</operation>\r\n		<operation error=\"log\">\r\n			<search><![CDATA[\r\n			$url .= \'&sort=\' . $this->request->get[\'sort\'];\r\n			]]></search>\r\n			<add position=\"before\" offset=\"1\"><![CDATA[\r\n		if ($this->config->get(\'aqe_status\') && $this->config->get(\'aqe_customer_customers_status\')) {\r\n			foreach ($this->config->get(\'aqe_customer_customers\') as $column => $attr) {\r\n				if ($attr[\'filter\'][\'show\'] && isset($this->request->get[\'filter_\' . $column])) {\r\n					$url .= \'&filter_\' . $column . \'=\' . urlencode(html_entity_decode($this->request->get[\'filter_\' . $column], ENT_QUOTES, \'UTF-8\'));\r\n				}\r\n			}\r\n		}\r\n			]]></add>\r\n		</operation>\r\n	</file>\r\n	<file path=\"admin/controller/catalog/information.php\">\r\n		<operation error=\"log\">\r\n			<search><![CDATA[\r\n			public function index() {\r\n			]]></search>\r\n			<add position=\"after\"><![CDATA[\r\n		if ((int)$this->config->get(\'aqe_status\') && (int)$this->config->get(\'aqe_catalog_information_status\')) {\r\n			return $this->load->controller(\'catalog/aqe/information\');\r\n		}\r\n			]]></add>\r\n		</operation>\r\n		<operation error=\"log\">\r\n			<search><![CDATA[\r\n			public function delete() {\r\n			]]></search>\r\n			<add position=\"after\"><![CDATA[\r\n		if ((int)$this->config->get(\'aqe_status\') && (int)$this->config->get(\'aqe_catalog_information_status\')) {\r\n			return $this->load->controller(\'catalog/aqe/information/delete\');\r\n		}\r\n			]]></add>\r\n		</operation>\r\n		<operation error=\"log\">\r\n			<search><![CDATA[\r\n			ControllerCatalogInformation extends Controller\r\n			]]></search>\r\n			<add position=\"after\"><![CDATA[\r\n	public function autocomplete() {\r\n		if ((int)$this->config->get(\'aqe_status\') && (int)$this->config->get(\'aqe_catalog_information_status\')) {\r\n			return $this->load->controller(\'catalog/aqe/information/autocomplete\');\r\n		} else {\r\n			$this->response->redirect($this->url->link(\'catalog/information\', \'token=\' . $this->session->data[\'token\'] . $url, true));\r\n		}\r\n	}\r\n\r\n	public function load_popup() {\r\n		if ((int)$this->config->get(\'aqe_status\') && (int)$this->config->get(\'aqe_catalog_information_status\')) {\r\n			return $this->load->controller(\'catalog/aqe/information/load_popup\');\r\n		} else {\r\n			$this->response->redirect($this->url->link(\'catalog/information\', \'token=\' . $this->session->data[\'token\'] . $url, true));\r\n		}\r\n	}\r\n\r\n	public function quick_update() {\r\n		if ((int)$this->config->get(\'aqe_status\') && (int)$this->config->get(\'aqe_catalog_information_status\')) {\r\n			return $this->load->controller(\'catalog/aqe/information/quick_update\');\r\n		} else {\r\n			$this->response->redirect($this->url->link(\'catalog/information\', \'token=\' . $this->session->data[\'token\'] . $url, true));\r\n		}\r\n	}\r\n			]]></add>\r\n		</operation>\r\n		<operation error=\"log\">\r\n			<search><![CDATA[\r\n			$url .= \'&sort=\' . $this->request->get[\'sort\'];\r\n			]]></search>\r\n			<add position=\"before\" offset=\"1\"><![CDATA[\r\n		if ($this->config->get(\'aqe_status\') && $this->config->get(\'aqe_catalog_information_status\')) {\r\n			foreach ($this->config->get(\'aqe_catalog_information\') as $column => $attr) {\r\n				if ($attr[\'filter\'][\'show\'] && isset($this->request->get[\'filter_\' . $column])) {\r\n					$url .= \'&filter_\' . $column . \'=\' . urlencode(html_entity_decode($this->request->get[\'filter_\' . $column], ENT_QUOTES, \'UTF-8\'));\r\n				}\r\n			}\r\n		}\r\n			]]></add>\r\n		</operation>\r\n	</file>\r\n	<file path=\"admin/controller/catalog/review.php\">\r\n		<operation error=\"log\">\r\n			<search><![CDATA[\r\n			public function index() {\r\n			]]></search>\r\n			<add position=\"after\"><![CDATA[\r\n		if ((int)$this->config->get(\'aqe_status\') && (int)$this->config->get(\'aqe_catalog_reviews_status\')) {\r\n			return $this->load->controller(\'catalog/aqe/review\');\r\n		}\r\n			]]></add>\r\n		</operation>\r\n		<operation error=\"log\">\r\n			<search><![CDATA[\r\n			public function delete() {\r\n			]]></search>\r\n			<add position=\"after\"><![CDATA[\r\n		if ((int)$this->config->get(\'aqe_status\') && (int)$this->config->get(\'aqe_catalog_reviews_status\')) {\r\n			return $this->load->controller(\'catalog/aqe/review/delete\');\r\n		}\r\n			]]></add>\r\n		</operation>\r\n		<operation error=\"log\">\r\n			<search><![CDATA[\r\n			ControllerCatalogReview extends Controller\r\n			]]></search>\r\n			<add position=\"after\"><![CDATA[\r\n	public function autocomplete() {\r\n		if ((int)$this->config->get(\'aqe_status\') && (int)$this->config->get(\'aqe_catalog_reviews_status\')) {\r\n			return $this->load->controller(\'catalog/aqe/review/autocomplete\');\r\n		} else {\r\n			$this->response->redirect($this->url->link(\'catalog/review\', \'token=\' . $this->session->data[\'token\'] . $url, true));\r\n		}\r\n	}\r\n\r\n	public function refresh_data() {\r\n		if ((int)$this->config->get(\'aqe_status\') && (int)$this->config->get(\'aqe_catalog_reviews_status\')) {\r\n			return $this->load->controller(\'catalog/aqe/review/refresh_data\');\r\n		} else {\r\n			$this->response->redirect($this->url->link(\'catalog/review\', \'token=\' . $this->session->data[\'token\'] . $url, true));\r\n		}\r\n	}\r\n\r\n	public function quick_update() {\r\n		if ((int)$this->config->get(\'aqe_status\') && (int)$this->config->get(\'aqe_catalog_reviews_status\')) {\r\n			return $this->load->controller(\'catalog/aqe/review/quick_update\');\r\n		} else {\r\n			$this->response->redirect($this->url->link(\'catalog/review\', \'token=\' . $this->session->data[\'token\'] . $url, true));\r\n		}\r\n	}\r\n			]]></add>\r\n		</operation>\r\n		<operation error=\"log\">\r\n			<search><![CDATA[\r\n			$url .= \'&sort=\' . $this->request->get[\'sort\'];\r\n			]]></search>\r\n			<add position=\"before\" offset=\"1\"><![CDATA[\r\n		if ($this->config->get(\'aqe_status\') && $this->config->get(\'aqe_catalog_reviews_status\')) {\r\n			foreach ($this->config->get(\'aqe_catalog_reviews\') as $column => $attr) {\r\n				if ($attr[\'filter\'][\'show\'] && isset($this->request->get[\'filter_\' . $column])) {\r\n					$url .= \'&filter_\' . $column . \'=\' . urlencode(html_entity_decode($this->request->get[\'filter_\' . $column], ENT_QUOTES, \'UTF-8\'));\r\n				}\r\n			}\r\n		}\r\n			]]></add>\r\n		</operation>\r\n	</file>\r\n	<file path=\"admin/controller/catalog/download.php\">\r\n		<operation error=\"log\">\r\n			<search><![CDATA[\r\n			public function index() {\r\n			]]></search>\r\n			<add position=\"after\"><![CDATA[\r\n		if ((int)$this->config->get(\'aqe_status\') && (int)$this->config->get(\'aqe_catalog_downloads_status\')) {\r\n			return $this->load->controller(\'catalog/aqe/download\');\r\n		}\r\n			]]></add>\r\n		</operation>\r\n		<operation error=\"log\">\r\n			<search><![CDATA[\r\n			public function delete() {\r\n			]]></search>\r\n			<add position=\"after\"><![CDATA[\r\n		if ((int)$this->config->get(\'aqe_status\') && (int)$this->config->get(\'aqe_catalog_downloads_status\')) {\r\n			return $this->load->controller(\'catalog/aqe/download/delete\');\r\n		}\r\n			]]></add>\r\n		</operation>\r\n		<operation error=\"log\">\r\n			<search><![CDATA[\r\n			public function autocomplete() {\r\n			]]></search>\r\n			<add position=\"after\"><![CDATA[\r\n		if ((int)$this->config->get(\'aqe_status\') && (int)$this->config->get(\'aqe_catalog_downloads_status\')) {\r\n			return $this->load->controller(\'catalog/aqe/download/autocomplete\');\r\n		}\r\n			]]></add>\r\n		</operation>\r\n		<operation error=\"log\">\r\n			<search><![CDATA[\r\n			ControllerCatalogDownload extends Controller\r\n			]]></search>\r\n			<add position=\"after\"><![CDATA[\r\n	public function load_popup() {\r\n		if ((int)$this->config->get(\'aqe_status\') && (int)$this->config->get(\'aqe_catalog_downloads_status\')) {\r\n			return $this->load->controller(\'catalog/aqe/download/load_popup\');\r\n		} else {\r\n			$this->response->redirect($this->url->link(\'catalog/download\', \'token=\' . $this->session->data[\'token\'] . $url, true));\r\n		}\r\n	}\r\n\r\n	public function quick_update() {\r\n		if ((int)$this->config->get(\'aqe_status\') && (int)$this->config->get(\'aqe_catalog_downloads_status\')) {\r\n			return $this->load->controller(\'catalog/aqe/download/quick_update\');\r\n		} else {\r\n			$this->response->redirect($this->url->link(\'catalog/download\', \'token=\' . $this->session->data[\'token\'] . $url, true));\r\n		}\r\n	}\r\n			]]></add>\r\n		</operation>\r\n		<operation error=\"log\">\r\n			<search><![CDATA[\r\n			$url .= \'&sort=\' . $this->request->get[\'sort\'];\r\n			]]></search>\r\n			<add position=\"before\" offset=\"1\"><![CDATA[\r\n		if ($this->config->get(\'aqe_status\') && $this->config->get(\'aqe_catalog_downloads_status\')) {\r\n			foreach ($this->config->get(\'aqe_catalog_downloads\') as $column => $attr) {\r\n				if ($attr[\'filter\'][\'show\'] && isset($this->request->get[\'filter_\' . $column])) {\r\n					$url .= \'&filter_\' . $column . \'=\' . urlencode(html_entity_decode($this->request->get[\'filter_\' . $column], ENT_QUOTES, \'UTF-8\'));\r\n				}\r\n			}\r\n		}\r\n			]]></add>\r\n		</operation>\r\n	</file>\r\n	<file path=\"admin/controller/catalog/manufacturer.php\">\r\n		<operation error=\"log\">\r\n			<search><![CDATA[\r\n			public function index() {\r\n			]]></search>\r\n			<add position=\"after\"><![CDATA[\r\n		if ((int)$this->config->get(\'aqe_status\') && (int)$this->config->get(\'aqe_catalog_manufacturers_status\')) {\r\n			return $this->load->controller(\'catalog/aqe/manufacturer\');\r\n		}\r\n			]]></add>\r\n		</operation>\r\n		<operation error=\"log\">\r\n			<search><![CDATA[\r\n			public function delete() {\r\n			]]></search>\r\n			<add position=\"after\"><![CDATA[\r\n		if ((int)$this->config->get(\'aqe_status\') && (int)$this->config->get(\'aqe_catalog_manufacturers_status\')) {\r\n			return $this->load->controller(\'catalog/aqe/manufacturer/delete\');\r\n		}\r\n			]]></add>\r\n		</operation>\r\n		<operation error=\"log\">\r\n			<search><![CDATA[\r\n			public function autocomplete() {\r\n			]]></search>\r\n			<add position=\"after\"><![CDATA[\r\n		if ((int)$this->config->get(\'aqe_status\') && (int)$this->config->get(\'aqe_catalog_manufacturers_status\')) {\r\n			return $this->load->controller(\'catalog/aqe/manufacturer/autocomplete\');\r\n		}\r\n			]]></add>\r\n		</operation>\r\n		<operation error=\"log\">\r\n			<search><![CDATA[\r\n			ControllerCatalogManufacturer extends Controller\r\n			]]></search>\r\n			<add position=\"after\"><![CDATA[\r\n	public function load_popup() {\r\n		if ((int)$this->config->get(\'aqe_status\') && (int)$this->config->get(\'aqe_catalog_manufacturers_status\')) {\r\n			return $this->load->controller(\'catalog/aqe/manufacturer/load_popup\');\r\n		} else {\r\n			$this->response->redirect($this->url->link(\'catalog/manufacturer\', \'token=\' . $this->session->data[\'token\'] . $url, true));\r\n		}\r\n	}\r\n\r\n	public function quick_update() {\r\n		if ((int)$this->config->get(\'aqe_status\') && (int)$this->config->get(\'aqe_catalog_manufacturers_status\')) {\r\n			return $this->load->controller(\'catalog/aqe/manufacturer/quick_update\');\r\n		} else {\r\n			$this->response->redirect($this->url->link(\'catalog/manufacturer\', \'token=\' . $this->session->data[\'token\'] . $url, true));\r\n		}\r\n	}\r\n			]]></add>\r\n		</operation>\r\n		<operation error=\"log\">\r\n			<search><![CDATA[\r\n			$url .= \'&sort=\' . $this->request->get[\'sort\'];\r\n			]]></search>\r\n			<add position=\"before\" offset=\"1\"><![CDATA[\r\n		if ($this->config->get(\'aqe_status\') && $this->config->get(\'aqe_catalog_manufacturers_status\')) {\r\n			foreach ($this->config->get(\'aqe_catalog_manufacturers\') as $column => $attr) {\r\n				if ($attr[\'filter\'][\'show\'] && isset($this->request->get[\'filter_\' . $column])) {\r\n					$url .= \'&filter_\' . $column . \'=\' . urlencode(html_entity_decode($this->request->get[\'filter_\' . $column], ENT_QUOTES, \'UTF-8\'));\r\n				}\r\n			}\r\n		}\r\n			]]></add>\r\n		</operation>\r\n	</file>\r\n	<file path=\"admin/controller/catalog/option.php\">\r\n		<operation error=\"log\">\r\n			<search><![CDATA[\r\n			public function index() {\r\n			]]></search>\r\n			<add position=\"after\"><![CDATA[\r\n		if ((int)$this->config->get(\'aqe_status\') && (int)$this->config->get(\'aqe_catalog_options_status\')) {\r\n			return $this->load->controller(\'catalog/aqe/option\');\r\n		}\r\n			]]></add>\r\n		</operation>\r\n		<operation error=\"log\">\r\n			<search><![CDATA[\r\n			public function delete() {\r\n			]]></search>\r\n			<add position=\"after\"><![CDATA[\r\n		if ((int)$this->config->get(\'aqe_status\') && (int)$this->config->get(\'aqe_catalog_options_status\')) {\r\n			return $this->load->controller(\'catalog/aqe/option/delete\');\r\n		}\r\n			]]></add>\r\n		</operation>\r\n		<operation error=\"log\">\r\n			<search><![CDATA[\r\n			ControllerCatalogOption extends Controller\r\n			]]></search>\r\n			<add position=\"after\"><![CDATA[\r\n	public function autocomplete2() {\r\n		if ((int)$this->config->get(\'aqe_status\') && (int)$this->config->get(\'aqe_catalog_options_status\')) {\r\n			return $this->load->controller(\'catalog/aqe/option/autocomplete2\');\r\n		} else {\r\n			$this->response->redirect($this->url->link(\'catalog/option\', \'token=\' . $this->session->data[\'token\'] . $url, true));\r\n		}\r\n	}\r\n\r\n	public function load_popup() {\r\n		if ((int)$this->config->get(\'aqe_status\') && (int)$this->config->get(\'aqe_catalog_options_status\')) {\r\n			return $this->load->controller(\'catalog/aqe/option/load_popup\');\r\n		} else {\r\n			$this->response->redirect($this->url->link(\'catalog/option\', \'token=\' . $this->session->data[\'token\'] . $url, true));\r\n		}\r\n	}\r\n\r\n	public function refresh_data() {\r\n		if ((int)$this->config->get(\'aqe_status\') && (int)$this->config->get(\'aqe_catalog_options_status\')) {\r\n			return $this->load->controller(\'catalog/aqe/option/refresh_data\');\r\n		} else {\r\n			$this->response->redirect($this->url->link(\'catalog/option\', \'token=\' . $this->session->data[\'token\'] . $url, true));\r\n		}\r\n	}\r\n\r\n	public function quick_update() {\r\n		if ((int)$this->config->get(\'aqe_status\') && (int)$this->config->get(\'aqe_catalog_options_status\')) {\r\n			return $this->load->controller(\'catalog/aqe/option/quick_update\');\r\n		} else {\r\n			$this->response->redirect($this->url->link(\'catalog/option\', \'token=\' . $this->session->data[\'token\'] . $url, true));\r\n		}\r\n	}\r\n			]]></add>\r\n		</operation>\r\n		<operation error=\"log\">\r\n			<search><![CDATA[\r\n			$url .= \'&sort=\' . $this->request->get[\'sort\'];\r\n			]]></search>\r\n			<add position=\"before\" offset=\"1\"><![CDATA[\r\n		if ($this->config->get(\'aqe_status\') && $this->config->get(\'aqe_catalog_options_status\')) {\r\n			foreach ($this->config->get(\'aqe_catalog_options\') as $column => $attr) {\r\n				if ($attr[\'filter\'][\'show\'] && isset($this->request->get[\'filter_\' . $column])) {\r\n					$url .= \'&filter_\' . $column . \'=\' . urlencode(html_entity_decode($this->request->get[\'filter_\' . $column], ENT_QUOTES, \'UTF-8\'));\r\n				}\r\n			}\r\n		}\r\n			]]></add>\r\n		</operation>\r\n	</file>\r\n	<file path=\"admin/controller/catalog/attribute_group.php\">\r\n		<operation error=\"log\">\r\n			<search><![CDATA[\r\n			public function index() {\r\n			]]></search>\r\n			<add position=\"after\"><![CDATA[\r\n		if ((int)$this->config->get(\'aqe_status\') && (int)$this->config->get(\'aqe_catalog_attribute_groups_status\')) {\r\n			return $this->load->controller(\'catalog/aqe/attribute_group\');\r\n		}\r\n			]]></add>\r\n		</operation>\r\n		<operation error=\"log\">\r\n			<search><![CDATA[\r\n			public function delete() {\r\n			]]></search>\r\n			<add position=\"after\"><![CDATA[\r\n		if ((int)$this->config->get(\'aqe_status\') && (int)$this->config->get(\'aqe_catalog_attribute_groups_status\')) {\r\n			return $this->load->controller(\'catalog/aqe/attribute_group/delete\');\r\n		}\r\n			]]></add>\r\n		</operation>\r\n		<operation error=\"log\">\r\n			<search><![CDATA[\r\n			ControllerCatalogAttributeGroup extends Controller\r\n			]]></search>\r\n			<add position=\"after\"><![CDATA[\r\n	public function autocomplete() {\r\n		if ((int)$this->config->get(\'aqe_status\') && (int)$this->config->get(\'aqe_catalog_attribute_groups_status\')) {\r\n			return $this->load->controller(\'catalog/aqe/attribute_group/autocomplete\');\r\n		} else {\r\n			$this->response->redirect($this->url->link(\'catalog/attribute_group\', \'token=\' . $this->session->data[\'token\'] . $url, true));\r\n		}\r\n	}\r\n\r\n	public function load_popup() {\r\n		if ((int)$this->config->get(\'aqe_status\') && (int)$this->config->get(\'aqe_catalog_attribute_groups_status\')) {\r\n			return $this->load->controller(\'catalog/aqe/attribute_group/load_popup\');\r\n		} else {\r\n			$this->response->redirect($this->url->link(\'catalog/attribute_group\', \'token=\' . $this->session->data[\'token\'] . $url, true));\r\n		}\r\n	}\r\n\r\n	public function quick_update() {\r\n		if ((int)$this->config->get(\'aqe_status\') && (int)$this->config->get(\'aqe_catalog_attribute_groups_status\')) {\r\n			return $this->load->controller(\'catalog/aqe/attribute_group/quick_update\');\r\n		} else {\r\n			$this->response->redirect($this->url->link(\'catalog/attribute_group\', \'token=\' . $this->session->data[\'token\'] . $url, true));\r\n		}\r\n	}\r\n			]]></add>\r\n		</operation>\r\n		<operation error=\"log\">\r\n			<search><![CDATA[\r\n			$url .= \'&sort=\' . $this->request->get[\'sort\'];\r\n			]]></search>\r\n			<add position=\"before\" offset=\"1\"><![CDATA[\r\n		if ($this->config->get(\'aqe_status\') && $this->config->get(\'aqe_catalog_attribute_groups_status\')) {\r\n			foreach ($this->config->get(\'aqe_catalog_attribute_groups\') as $column => $attr) {\r\n				if ($attr[\'filter\'][\'show\'] && isset($this->request->get[\'filter_\' . $column])) {\r\n					$url .= \'&filter_\' . $column . \'=\' . urlencode(html_entity_decode($this->request->get[\'filter_\' . $column], ENT_QUOTES, \'UTF-8\'));\r\n				}\r\n			}\r\n		}\r\n			]]></add>\r\n		</operation>\r\n	</file>\r\n	<file path=\"admin/controller/catalog/attribute.php\">\r\n		<operation error=\"log\">\r\n			<search><![CDATA[\r\n			public function index() {\r\n			]]></search>\r\n			<add position=\"after\"><![CDATA[\r\n		if ((int)$this->config->get(\'aqe_status\') && (int)$this->config->get(\'aqe_catalog_attributes_status\')) {\r\n			return $this->load->controller(\'catalog/aqe/attribute\');\r\n		}\r\n			]]></add>\r\n		</operation>\r\n		<operation error=\"log\">\r\n			<search><![CDATA[\r\n			public function delete() {\r\n			]]></search>\r\n			<add position=\"after\"><![CDATA[\r\n		if ((int)$this->config->get(\'aqe_status\') && (int)$this->config->get(\'aqe_catalog_attributes_status\')) {\r\n			return $this->load->controller(\'catalog/aqe/attribute/delete\');\r\n		}\r\n			]]></add>\r\n		</operation>\r\n		<operation error=\"log\">\r\n			<search><![CDATA[\r\n			public function autocomplete() {\r\n			]]></search>\r\n			<add position=\"after\"><![CDATA[\r\n		if ((int)$this->config->get(\'aqe_status\') && (int)$this->config->get(\'aqe_catalog_attributes_status\')) {\r\n			return $this->load->controller(\'catalog/aqe/attribute/autocomplete\');\r\n		}\r\n			]]></add>\r\n		</operation>\r\n		<operation error=\"log\">\r\n			<search><![CDATA[\r\n			ControllerCatalogAttribute extends Controller\r\n			]]></search>\r\n			<add position=\"after\"><![CDATA[\r\n	public function load_popup() {\r\n		if ((int)$this->config->get(\'aqe_status\') && (int)$this->config->get(\'aqe_catalog_attributes_status\')) {\r\n			return $this->load->controller(\'catalog/aqe/attribute/load_popup\');\r\n		} else {\r\n			$this->response->redirect($this->url->link(\'catalog/attribute\', \'token=\' . $this->session->data[\'token\'] . $url, true));\r\n		}\r\n	}\r\n\r\n	public function quick_update() {\r\n		if ((int)$this->config->get(\'aqe_status\') && (int)$this->config->get(\'aqe_catalog_attributes_status\')) {\r\n			return $this->load->controller(\'catalog/aqe/attribute/quick_update\');\r\n		} else {\r\n			$this->response->redirect($this->url->link(\'catalog/attribute\', \'token=\' . $this->session->data[\'token\'] . $url, true));\r\n		}\r\n	}\r\n			]]></add>\r\n		</operation>\r\n		<operation error=\"log\">\r\n			<search><![CDATA[\r\n			$url .= \'&sort=\' . $this->request->get[\'sort\'];\r\n			]]></search>\r\n			<add position=\"before\" offset=\"1\"><![CDATA[\r\n		if ($this->config->get(\'aqe_status\') && $this->config->get(\'aqe_catalog_attributes_status\')) {\r\n			foreach ($this->config->get(\'aqe_catalog_attributes\') as $column => $attr) {\r\n				if ($attr[\'filter\'][\'show\'] && isset($this->request->get[\'filter_\' . $column])) {\r\n					$url .= \'&filter_\' . $column . \'=\' . urlencode(html_entity_decode($this->request->get[\'filter_\' . $column], ENT_QUOTES, \'UTF-8\'));\r\n				}\r\n			}\r\n		}\r\n			]]></add>\r\n		</operation>\r\n	</file>\r\n\r\n	<file path=\"admin/controller/catalog/filter.php\">\r\n		<operation error=\"log\">\r\n			<search><![CDATA[\r\n			public function index() {\r\n			]]></search>\r\n			<add position=\"after\"><![CDATA[\r\n		if ((int)$this->config->get(\'aqe_status\') && (int)$this->config->get(\'aqe_catalog_filters_status\')) {\r\n			return $this->load->controller(\'catalog/aqe/filter\');\r\n		}\r\n			]]></add>\r\n		</operation>\r\n		<operation error=\"log\">\r\n			<search><![CDATA[\r\n			public function delete() {\r\n			]]></search>\r\n			<add position=\"after\"><![CDATA[\r\n		if ((int)$this->config->get(\'aqe_status\') && (int)$this->config->get(\'aqe_catalog_filters_status\')) {\r\n			return $this->load->controller(\'catalog/aqe/filter/delete\');\r\n		}\r\n			]]></add>\r\n		</operation>\r\n\r\n		<operation error=\"log\">\r\n			<search><![CDATA[\r\n			ControllerCatalogFilter extends Controller\r\n			]]></search>\r\n			<add position=\"after\"><![CDATA[\r\n	public function autocomplete2() {\r\n		if ((int)$this->config->get(\'aqe_status\') && (int)$this->config->get(\'aqe_catalog_filters_status\')) {\r\n			return $this->load->controller(\'catalog/aqe/filter/autocomplete2\');\r\n		} else {\r\n			$this->response->redirect($this->url->link(\'catalog/filter\', \'token=\' . $this->session->data[\'token\'] . $url, true));\r\n		}\r\n	}\r\n\r\n	public function load_popup() {\r\n		if ((int)$this->config->get(\'aqe_status\') && (int)$this->config->get(\'aqe_catalog_filters_status\')) {\r\n			return $this->load->controller(\'catalog/aqe/filter/load_popup\');\r\n		} else {\r\n			$this->response->redirect($this->url->link(\'catalog/filter\', \'token=\' . $this->session->data[\'token\'] . $url, true));\r\n		}\r\n	}\r\n\r\n	public function refresh_data() {\r\n		if ((int)$this->config->get(\'aqe_status\') && (int)$this->config->get(\'aqe_catalog_filters_status\')) {\r\n			return $this->load->controller(\'catalog/aqe/filter/refresh_data\');\r\n		} else {\r\n			$this->response->redirect($this->url->link(\'catalog/filter\', \'token=\' . $this->session->data[\'token\'] . $url, true));\r\n		}\r\n	}\r\n\r\n	public function quick_update() {\r\n		if ((int)$this->config->get(\'aqe_status\') && (int)$this->config->get(\'aqe_catalog_filters_status\')) {\r\n			return $this->load->controller(\'catalog/aqe/filter/quick_update\');\r\n		} else {\r\n			$this->response->redirect($this->url->link(\'catalog/filter\', \'token=\' . $this->session->data[\'token\'] . $url, true));\r\n		}\r\n	}\r\n			]]></add>\r\n		</operation>\r\n		<operation error=\"log\">\r\n			<search><![CDATA[\r\n			$url .= \'&sort=\' . $this->request->get[\'sort\'];\r\n			]]></search>\r\n			<add position=\"before\" offset=\"1\"><![CDATA[\r\n		if ($this->config->get(\'aqe_status\') && $this->config->get(\'aqe_catalog_filters_status\')) {\r\n			foreach ($this->config->get(\'aqe_catalog_filters\') as $column => $attr) {\r\n				if ($attr[\'filter\'][\'show\'] && isset($this->request->get[\'filter_\' . $column])) {\r\n					$url .= \'&filter_\' . $column . \'=\' . urlencode(html_entity_decode($this->request->get[\'filter_\' . $column], ENT_QUOTES, \'UTF-8\'));\r\n				}\r\n			}\r\n		}\r\n			]]></add>\r\n		</operation>\r\n	</file>\r\n\r\n	<file path=\"admin/controller/catalog/recurring.php\">\r\n		<operation error=\"log\">\r\n			<search><![CDATA[\r\n			public function index() {\r\n			]]></search>\r\n			<add position=\"after\"><![CDATA[\r\n		if ((int)$this->config->get(\'aqe_status\') && (int)$this->config->get(\'aqe_catalog_recurrings_status\')) {\r\n			return $this->load->controller(\'catalog/aqe/recurring\');\r\n		}\r\n			]]></add>\r\n		</operation>\r\n		<operation error=\"log\">\r\n			<search><![CDATA[\r\n			public function delete() {\r\n			]]></search>\r\n			<add position=\"after\"><![CDATA[\r\n		if ((int)$this->config->get(\'aqe_status\') && (int)$this->config->get(\'aqe_catalog_recurrings_status\')) {\r\n			return $this->load->controller(\'catalog/aqe/recurring/delete\');\r\n		}\r\n			]]></add>\r\n		</operation>\r\n		<operation error=\"log\">\r\n			<search><![CDATA[\r\n			public function copy() {\r\n			]]></search>\r\n			<add position=\"after\"><![CDATA[\r\n		if ((int)$this->config->get(\'aqe_status\') && (int)$this->config->get(\'aqe_catalog_recurrings_status\')) {\r\n			return $this->load->controller(\'catalog/aqe/recurring/copy\');\r\n		}\r\n			]]></add>\r\n		</operation>\r\n		<operation error=\"log\">\r\n			<search><![CDATA[\r\n			ControllerCatalogRecurring extends Controller\r\n			]]></search>\r\n			<add position=\"after\"><![CDATA[\r\n	public function load_popup() {\r\n		if ((int)$this->config->get(\'aqe_status\') && (int)$this->config->get(\'aqe_catalog_recurrings_status\')) {\r\n			return $this->load->controller(\'catalog/aqe/recurring/load_popup\');\r\n		} else {\r\n			$this->response->redirect($this->url->link(\'catalog/recurring\', \'token=\' . $this->session->data[\'token\'] . $url, true));\r\n		}\r\n	}\r\n\r\n	public function quick_update() {\r\n		if ((int)$this->config->get(\'aqe_status\') && (int)$this->config->get(\'aqe_catalog_recurrings_status\')) {\r\n			return $this->load->controller(\'catalog/aqe/recurring/quick_update\');\r\n		} else {\r\n			$this->response->redirect($this->url->link(\'catalog/recurring\', \'token=\' . $this->session->data[\'token\'] . $url, true));\r\n		}\r\n	}\r\n			]]></add>\r\n		</operation>\r\n		<operation error=\"log\">\r\n			<search><![CDATA[\r\n			$url .= \'&sort=\' . $this->request->get[\'sort\'];\r\n			]]></search>\r\n			<add position=\"before\" offset=\"1\"><![CDATA[\r\n		if ($this->config->get(\'aqe_status\') && $this->config->get(\'aqe_catalog_recurrings_status\')) {\r\n			foreach ($this->config->get(\'aqe_catalog_recurrings\') as $column => $attr) {\r\n				if ($attr[\'filter\'][\'show\'] && isset($this->request->get[\'filter_\' . $column])) {\r\n					$url .= \'&filter_\' . $column . \'=\' . urlencode(html_entity_decode($this->request->get[\'filter_\' . $column], ENT_QUOTES, \'UTF-8\'));\r\n				}\r\n			}\r\n		}\r\n			]]></add>\r\n		</operation>\r\n	</file>\r\n\r\n	<file path=\"admin/controller/catalog/category.php\">\r\n		<operation error=\"log\">\r\n			<search><![CDATA[\r\n			public function index() {\r\n			]]></search>\r\n			<add position=\"after\"><![CDATA[\r\n		if ((int)$this->config->get(\'aqe_status\') && (int)$this->config->get(\'aqe_catalog_categories_status\')) {\r\n			return $this->load->controller(\'catalog/aqe/category\');\r\n		}\r\n			]]></add>\r\n		</operation>\r\n		<operation error=\"log\">\r\n			<search><![CDATA[\r\n			public function delete() {\r\n			]]></search>\r\n			<add position=\"after\"><![CDATA[\r\n		if ((int)$this->config->get(\'aqe_status\') && (int)$this->config->get(\'aqe_catalog_categories_status\')) {\r\n			return $this->load->controller(\'catalog/aqe/category/delete\');\r\n		}\r\n			]]></add>\r\n		</operation>\r\n\r\n		<operation error=\"log\">\r\n			<search><![CDATA[\r\n			public function autocomplete() {\r\n			]]></search>\r\n			<add position=\"after\"><![CDATA[\r\n		if ((int)$this->config->get(\'aqe_status\') && (int)$this->config->get(\'aqe_catalog_categories_status\')) {\r\n			return $this->load->controller(\'catalog/aqe/category/autocomplete\');\r\n		}\r\n			]]></add>\r\n		</operation>\r\n		<operation error=\"log\">\r\n			<search><![CDATA[\r\n			ControllerCatalogCategory extends Controller\r\n			]]></search>\r\n			<add position=\"after\"><![CDATA[\r\n	public function filter() {\r\n		if ((int)$this->config->get(\'aqe_status\') && (int)$this->config->get(\'aqe_catalog_categories_status\')) {\r\n			return $this->load->controller(\'catalog/aqe/category/filter\');\r\n		} else {\r\n			$this->response->redirect($this->url->link(\'catalog/category\', \'token=\' . $this->session->data[\'token\'] . $url, true));\r\n		}\r\n	}\r\n\r\n	public function category() {\r\n		if ((int)$this->config->get(\'aqe_status\') && (int)$this->config->get(\'aqe_catalog_categories_status\')) {\r\n			return $this->load->controller(\'catalog/aqe/category/category\');\r\n		} else {\r\n			$this->response->redirect($this->url->link(\'catalog/category\', \'token=\' . $this->session->data[\'token\'] . $url, true));\r\n		}\r\n	}\r\n\r\n	public function load_popup() {\r\n		if ((int)$this->config->get(\'aqe_status\') && (int)$this->config->get(\'aqe_catalog_categories_status\')) {\r\n			return $this->load->controller(\'catalog/aqe/category/load_popup\');\r\n		} else {\r\n			$this->response->redirect($this->url->link(\'catalog/category\', \'token=\' . $this->session->data[\'token\'] . $url, true));\r\n		}\r\n	}\r\n\r\n	public function refresh_data() {\r\n		if ((int)$this->config->get(\'aqe_status\') && (int)$this->config->get(\'aqe_catalog_categories_status\')) {\r\n			return $this->load->controller(\'catalog/aqe/category/refresh_data\');\r\n		} else {\r\n			$this->response->redirect($this->url->link(\'catalog/category\', \'token=\' . $this->session->data[\'token\'] . $url, true));\r\n		}\r\n	}\r\n\r\n	public function quick_update() {\r\n		if ((int)$this->config->get(\'aqe_status\') && (int)$this->config->get(\'aqe_catalog_categories_status\')) {\r\n			return $this->load->controller(\'catalog/aqe/category/quick_update\');\r\n		} else {\r\n			$this->response->redirect($this->url->link(\'catalog/category\', \'token=\' . $this->session->data[\'token\'] . $url, true));\r\n		}\r\n	}\r\n			]]></add>\r\n		</operation>\r\n		<operation error=\"log\">\r\n			<search><![CDATA[\r\n			$url .= \'&sort=\' . $this->request->get[\'sort\'];\r\n			]]></search>\r\n			<add position=\"before\" offset=\"1\"><![CDATA[\r\n		if ($this->config->get(\'aqe_status\') && $this->config->get(\'aqe_catalog_categories_status\')) {\r\n			foreach ($this->config->get(\'aqe_catalog_categories\') as $column => $attr) {\r\n				if ($attr[\'filter\'][\'show\'] && isset($this->request->get[\'filter_\' . $column])) {\r\n					$url .= \'&filter_\' . $column . \'=\' . urlencode(html_entity_decode($this->request->get[\'filter_\' . $column], ENT_QUOTES, \'UTF-8\'));\r\n				}\r\n			}\r\n		}\r\n			]]></add>\r\n		</operation>\r\n	</file>\r\n\r\n	<file path=\"admin/controller/catalog/product.php\">\r\n		<operation error=\"log\">\r\n			<search><![CDATA[\r\n			public function index() {\r\n			]]></search>\r\n			<add position=\"after\"><![CDATA[\r\n		if ((int)$this->config->get(\'aqe_status\') && (int)$this->config->get(\'aqe_catalog_products_status\')) {\r\n			return $this->load->controller(\'catalog/aqe/product\');\r\n		}\r\n			]]></add>\r\n		</operation>\r\n		<operation error=\"log\">\r\n			<search><![CDATA[\r\n			public function delete() {\r\n			]]></search>\r\n			<add position=\"after\"><![CDATA[\r\n		if ((int)$this->config->get(\'aqe_status\') && (int)$this->config->get(\'aqe_catalog_products_status\')) {\r\n			return $this->load->controller(\'catalog/aqe/product/delete\');\r\n		}\r\n			]]></add>\r\n		</operation>\r\n		<operation error=\"log\">\r\n			<search><![CDATA[\r\n			public function copy() {\r\n			]]></search>\r\n			<add position=\"after\"><![CDATA[\r\n		if ((int)$this->config->get(\'aqe_status\') && (int)$this->config->get(\'aqe_catalog_products_status\')) {\r\n			return $this->load->controller(\'catalog/aqe/product/copy\');\r\n		}\r\n			]]></add>\r\n		</operation>\r\n		<operation error=\"log\">\r\n			<search><![CDATA[\r\n			public function autocomplete() {\r\n			]]></search>\r\n			<add position=\"after\"><![CDATA[\r\n		if ((int)$this->config->get(\'aqe_status\') && (int)$this->config->get(\'aqe_catalog_products_status\')) {\r\n			return $this->load->controller(\'catalog/aqe/product/autocomplete\');\r\n		}\r\n			]]></add>\r\n		</operation>\r\n		<operation error=\"log\">\r\n			<search><![CDATA[\r\n			ControllerCatalogProduct extends Controller\r\n			]]></search>\r\n			<add position=\"after\"><![CDATA[\r\n	public function filter() {\r\n		if ((int)$this->config->get(\'aqe_status\') && (int)$this->config->get(\'aqe_catalog_products_status\')) {\r\n			return $this->load->controller(\'catalog/aqe/product/filter\');\r\n		} else {\r\n			$this->response->redirect($this->url->link(\'catalog/product\', \'token=\' . $this->session->data[\'token\'] . $url, true));\r\n		}\r\n	}\r\n\r\n	public function category() {\r\n		if ((int)$this->config->get(\'aqe_status\') && (int)$this->config->get(\'aqe_catalog_products_status\')) {\r\n			return $this->load->controller(\'catalog/aqe/product/category\');\r\n		} else {\r\n			$this->response->redirect($this->url->link(\'catalog/product\', \'token=\' . $this->session->data[\'token\'] . $url, true));\r\n		}\r\n	}\r\n\r\n	public function load_popup() {\r\n		if ((int)$this->config->get(\'aqe_status\') && (int)$this->config->get(\'aqe_catalog_products_status\')) {\r\n			return $this->load->controller(\'catalog/aqe/product/load_popup\');\r\n		} else {\r\n			$this->response->redirect($this->url->link(\'catalog/product\', \'token=\' . $this->session->data[\'token\'] . $url, true));\r\n		}\r\n	}\r\n\r\n	public function refresh_data() {\r\n		if ((int)$this->config->get(\'aqe_status\') && (int)$this->config->get(\'aqe_catalog_products_status\')) {\r\n			return $this->load->controller(\'catalog/aqe/product/refresh_data\');\r\n		} else {\r\n			$this->response->redirect($this->url->link(\'catalog/product\', \'token=\' . $this->session->data[\'token\'] . $url, true));\r\n		}\r\n	}\r\n\r\n	public function quick_update() {\r\n		if ((int)$this->config->get(\'aqe_status\') && (int)$this->config->get(\'aqe_catalog_products_status\')) {\r\n			return $this->load->controller(\'catalog/aqe/product/quick_update\');\r\n		} else {\r\n			$this->response->redirect($this->url->link(\'catalog/product\', \'token=\' . $this->session->data[\'token\'] . $url, true));\r\n		}\r\n	}\r\n			]]></add>\r\n		</operation>\r\n		<operation error=\"log\">\r\n			<search><![CDATA[\r\n			$url .= \'&filter_name=\' . urlencode(html_entity_decode($this->request->get[\'filter_name\'], ENT_QUOTES, \'UTF-8\'));\r\n			]]></search>\r\n			<add position=\"before\" offset=\"1\"><![CDATA[\r\n		if ($this->config->get(\'aqe_status\') && $this->config->get(\'aqe_catalog_products_status\')) {\r\n			foreach ($this->config->get(\'aqe_catalog_products\') as $column => $attr) {\r\n				if ($attr[\'filter\'][\'show\'] && isset($this->request->get[\'filter_\' . $column])) {\r\n					$url .= \'&filter_\' . $column . \'=\' . urlencode(html_entity_decode($this->request->get[\'filter_\' . $column], ENT_QUOTES, \'UTF-8\'));\r\n				}\r\n			}\r\n			if (isset($this->request->get[\'filter_sub_category\'])) {\r\n				$url .= \'&filter_sub_category=\' . urlencode(html_entity_decode($this->request->get[\'filter_sub_category\'], ENT_QUOTES, \'UTF-8\'));\r\n			}\r\n		}\r\n			]]></add>\r\n		</operation>\r\n		<operation error=\"log\">\r\n			<search regex=\"true\"><![CDATA[~\\$url \\.= \'&(.*?)=\' \\. \\$this->request->get\\[\'(.*?)\'\\];~]]></search>\r\n			<add position=\"replace\"><![CDATA[$url .= \'&$1=\' . urlencode(html_entity_decode($this->request->get[\'$2\'], ENT_QUOTES, \'UTF-8\'));]]></add>\r\n		</operation>\r\n	</file>\r\n\r\n	<file path=\"admin/view/template/catalog/product_list.tpl\">\r\n		<operation error=\"log\">\r\n			<search regex=\"true\"><![CDATA[~if \\((.*?) != \'\\*\'\\) \\{~]]></search>\r\n			<add position=\"replace\"><![CDATA[\r\n	if ($1 && $1 != \'*\') {\r\n			]]></add>\r\n		</operation>\r\n		<operation error=\"log\">\r\n			<search regex=\"true\"><![CDATA[~url = \'index\\.php\\?route=(.*?)&token=<\\?php echo \\$token; \\?>\';~]]></search>\r\n			<add position=\"replace\"><![CDATA[url = \'index.php?route=$1&token=<?php echo $token; ?>&sort=<?php echo $sort; ?>&order=<?php echo $order; ?>\';]]></add>\r\n		</operation>\r\n	</file>\r\n\r\n	<file path=\"admin/view/template/{catalog,sale,customer}/*_list.tpl\">\r\n		<operation error=\"skip\">\r\n			<search><![CDATA[<input type=\"checkbox\" onclick=\"$(\'input[name*=\\\'selected\\\']\').prop(\'checked\', this.checked);\" />]]></search>\r\n			<add position=\"replace\"><![CDATA[<input type=\"checkbox\" onclick=\"$(\'input[name*=\\\'selected\\\']\').prop(\'checked\', this.checked).trigger(\'change\');\" />]]></add>\r\n		</operation>\r\n	</file>\r\n\r\n	<file path=\"admin/controller/common/filemanager.php\">\r\n		<operation error=\"skip\">\r\n			<ignoreif><![CDATA[public function image]]></ignoreif>\r\n			<search><![CDATA[public function index]]></search>\r\n			<add position=\"before\"><![CDATA[\r\n	public function image() {\r\n		$this->load->model(\'tool/image\');\r\n\r\n		if (isset($this->request->get[\'size\'])) {\r\n			$width = $height = (int)$this->request->get[\'size\'];\r\n		} else if (isset($this->request->get[\'width\']) && isset($this->request->get[\'height\'])) {\r\n			$width = (int)$this->request->get[\'width\'];\r\n			$height = (int)$this->request->get[\'height\'];\r\n		} else {\r\n			$width = $height = 100;\r\n		}\r\n\r\n		if (isset($this->request->get[\'image\'])) {\r\n			$this->response->setOutput($this->model_tool_image->resize(html_entity_decode($this->request->get[\'image\'], ENT_QUOTES, \'UTF-8\'), $width, $height));\r\n		}\r\n	}\r\n			]]></add>\r\n		</operation>\r\n	</file>\r\n\r\n	<file path=\"system/library/db/mysql.php\">\r\n		<operation error=\"skip\">\r\n			<ignoreif><![CDATA[SET SESSION group_concat_max_len]]></ignoreif>\r\n			<search><![CDATA[\r\n			SET SQL_MODE = \'\'\r\n			]]></search>\r\n			<add position=\"after\"><![CDATA[\r\n		if (property_exists($this, \'link\')) {\r\n			mysql_query(\"SET SESSION group_concat_max_len = 65535\", $this->link);\r\n		} else {\r\n			mysql_query(\"SET SESSION group_concat_max_len = 65535\", $this->connection);\r\n		}\r\n			]]></add>\r\n		</operation>\r\n	</file>\r\n\r\n	<file path=\"system/library/db/mysqli.php\">\r\n		<operation error=\"skip\">\r\n			<ignoreif><![CDATA[SET SESSION group_concat_max_len]]></ignoreif>\r\n			<search><![CDATA[\r\n			SET SQL_MODE = \'\'\r\n			]]></search>\r\n			<add position=\"after\"><![CDATA[\r\n		if (property_exists($this, \'link\')) {\r\n			$this->link->query(\"SET SESSION group_concat_max_len = 65535\");\r\n		} else {\r\n			$this->connection->query(\"SET SESSION group_concat_max_len = 65535\");\r\n		}\r\n			]]></add>\r\n		</operation>\r\n	</file>\r\n\r\n</modification>', 1, '2020-03-23 12:44:32');
INSERT INTO `oc_modification` (`modification_id`, `name`, `code`, `author`, `version`, `link`, `xml`, `status`, `date_added`) VALUES
(19, 'Testimonials Lite Back End', 'testimonials_lite_back_end', 'vanstudio.co.ua', '1.4.2', 'http://vanstudio.co.ua', '<?xml version=\"1.0\" encoding=\"UTF-8\"?>\r\n<modification>\r\n    <code>testimonials_lite_back_end</code>\r\n    <name>Testimonials Lite Back End</name>\r\n    <version>1.4.2</version>\r\n    <author>vanstudio.co.ua</author>\r\n    <link>http://vanstudio.co.ua</link>\r\n    <file path=\"admin/controller/common/column_left.php\">\r\n        <operation>\r\n            <search><![CDATA[if ($this->user->hasPermission(\'access\', \'catalog/information\')) {]]></search>\r\n            <add position=\"before\"><![CDATA[\r\n			// Testimonials\r\n			if ($this->user->hasPermission(\'access\', \'testimonial/testimonial\')) {\r\n				$catalog[] = array(\r\n					\'name\'	   => \'Отзывы на магазин\',\r\n					\'href\'     => $this->url->link(\'testimonial/testimonial\', \'token=\' . $this->session->data[\'token\'], true),\r\n					\'children\' => array()\r\n				);\r\n			}\r\n            ]]></add>\r\n        </operation>\r\n    </file>\r\n    <file path=\"admin/controller/setting/setting.php\">\r\n        <operation>\r\n            <search><![CDATA[$data[\'captcha_pages\'] = array();]]></search>\r\n            <add position=\"after\"><![CDATA[\r\n				$data[\'captcha_pages\'][] = array(\r\n			    \'text\'  => \'Testimonials\',\r\n			    \'value\' => \'testimonial\'\r\n		        );\r\n            ]]></add>\r\n        </operation>\r\n        <operation>\r\n            <search><![CDATA[$data[\'mail_alerts\'] = array();]]></search>\r\n            <add position=\"after\"><![CDATA[\r\n				$data[\'mail_alerts\'][] = array(\r\n			    \'text\'  => \'Отзывы на магазин\',\r\n			    \'value\' => \'testimonial\'\r\n		        );\r\n            ]]></add>\r\n        </operation>\r\n    </file>\r\n</modification>', 1, '2020-03-23 12:53:15'),
(30, 'Пользовательские поля в адресе', 'custom-fields', 'opencart2x.ru', '2.0', 'https://opencart2x.ru', '<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<modification>\n  <name>Пользовательские поля в адресе</name>\n  <code>custom-fields</code>\n  <version>2.0</version>\n  <author>opencart2x.ru</author>\n  <link>https://opencart2x.ru</link>\n  <file path=\"admin/view/template/customer/custom_field_list.tpl\">\n    <operation>\n      <search><![CDATA[<td class=\"text-right\"><?php if ($sort == \'cf.sort_order\') { ?>]]></search>\n      <add position=\"before\"><![CDATA[<td style=\"width: 1px;\" class=\"text-center\">Шорткод</td>]]></add>\n    </operation>\n    <operation>\n      <search><![CDATA[<td class=\"text-right\"><?php echo $custom_field[\'sort_order\']; ?></td>]]></search>\n      <add position=\"before\"><![CDATA[<td class=\"text-center\">{custom_field_<?php echo $custom_field[\'custom_field_id\']; ?>}</td>]]></add>\n    </operation>\n    <operation>\n      <search><![CDATA[<td class=\"text-center\" colspan=\"6\"><?php echo $text_no_results; ?></td>]]></search>\n      <add position=\"replace\"><![CDATA[<td class=\"text-center\" colspan=\"7\"><?php echo $text_no_results; ?></td>]]></add>\n    </operation>\n  </file>\n  <file path=\"admin/model/localisation/country.php\">\n    <operation>\n      <search><![CDATA[$this->db->query(\"UPDATE \" . DB_PREFIX . \"country SET name = \'\" . $this->db->escape($data[\'name\']) . \"\', iso_code_2 = \'\" . $this->db->escape($data[\'iso_code_2\']) . \"\', iso_code_3 = \'\" . $this->db->escape($data[\'iso_code_3\']) . \"\', address_format = \'\" . $this->db->escape($data[\'address_format\']) . \"\', postcode_required = \'\" . (int)$data[\'postcode_required\'] . \"\', status = \'\" . (int)$data[\'status\'] . \"\' WHERE country_id = \'\" . (int)$country_id . \"\'\");]]></search>\n      <add position=\"after\"><![CDATA[$this->db->query(\"UPDATE \" . DB_PREFIX . \"order SET shipping_address_format = \'\" . $this->db->escape($data[\'address_format\']) . \"\', payment_address_format = \'\" . $this->db->escape($data[\'address_format\']) . \"\'\");]]></add>\n    </operation>\n  </file>\n  <file path=\"admin/controller/sale/order.php\">\n    <operation>\n      <search><![CDATA[$data[\'payment_address\'] = str_replace(array(\"\r\n\", \"\r\", \"\n\"), \'<br />\', preg_replace(array(\"/\\s\\s+/\", \"/\r\r+/\", \"/\n\n+/\"), \'<br />\', trim(str_replace($find, $replace, $format))));]]></search>\n      <add position=\"after\"><![CDATA[$data[\'payment_address\'] = ($order_info[\'payment_firstname\']) ? $data[\'payment_address\'] : \'\';]]></add>\n    </operation>\n    <operation>\n      <search><![CDATA[$data[\'payment_address\'] = str_replace(array(\"\r\n\", \"\r\", \"\n\"), \'<br />\', preg_replace(array(\"/\\s\\s+/\", \"/\r\r+/\", \"/\n\n+/\"), \'<br />\', trim(str_replace($find, $replace, $format))));]]></search>\n      <add position=\"before\"><![CDATA[\n      $this->load->model(\'customer/custom_field\');\n      $custom_fields = $this->model_customer_custom_field->getCustomFields();\n\n      foreach ($custom_fields as $custom_field) {\n          if (isset($order_info[\'payment_custom_field\'][$custom_field[\'custom_field_id\']])) {\n              $payment_custom_field_value = $order_info[\'payment_custom_field\'][$custom_field[\'custom_field_id\']];\n          }\n\n          if (isset($order_info[\'custom_field\'][$custom_field[\'custom_field_id\']])) {\n              $payment_custom_field_value = $order_info[\'custom_field\'][$custom_field[\'custom_field_id\']];\n          }\n\n          if (isset($payment_custom_field_value)) {\n              if ($custom_field[\'type\'] == \'select\' || $custom_field[\'type\'] == \'radio\' || $custom_field[\'type\'] == \'checkbox\') {\n                  $custom_field_options = $this->model_customer_custom_field->getCustomFieldValues($custom_field[\'custom_field_id\']);\n\n                  foreach ($custom_field_options as $custom_field_option) {\n                      if ($custom_field_option[\'custom_field_value_id\'] == $payment_custom_field_value) {\n                          $payment_custom_field_value = $custom_field_option[\'name\'];\n                      }\n                  }\n              }\n\n              $format = str_replace(\'{custom_field_\' . $custom_field[\'custom_field_id\'] . \'}\', $payment_custom_field_value, $format);\n          }\n      }\n\n      $format = preg_replace(\'/(({custom_field(.*?)?}))/sim\', \'\', $format);\n      ]]></add>\n    </operation>\n    <operation>\n      <search><![CDATA[$data[\'shipping_address\'] = str_replace(array(\"\r\n\", \"\r\", \"\n\"), \'<br />\', preg_replace(array(\"/\\s\\s+/\", \"/\r\r+/\", \"/\n\n+/\"), \'<br />\', trim(str_replace($find, $replace, $format))));]]></search>\n      <add position=\"after\"><![CDATA[$data[\'shipping_address\'] = ($order_info[\'shipping_firstname\']) ? $data[\'shipping_address\'] : \'\';]]></add>\n    </operation>\n    <operation>\n      <search><![CDATA[$data[\'shipping_address\'] = str_replace(array(\"\r\n\", \"\r\", \"\n\"), \'<br />\', preg_replace(array(\"/\\s\\s+/\", \"/\r\r+/\", \"/\n\n+/\"), \'<br />\', trim(str_replace($find, $replace, $format))));]]></search>\n      <add position=\"before\"><![CDATA[\n      foreach ($custom_fields as $custom_field) {\n          if (isset($order_info[\'shipping_custom_field\'][$custom_field[\'custom_field_id\']])) {\n              $shipping_custom_field_value = $order_info[\'shipping_custom_field\'][$custom_field[\'custom_field_id\']];\n          }\n\n          if (isset($order_info[\'custom_field\'][$custom_field[\'custom_field_id\']])) {\n              $shipping_custom_field_value = $order_info[\'custom_field\'][$custom_field[\'custom_field_id\']];\n          }\n\n          if (isset($shipping_custom_field_value)) {\n              if ($custom_field[\'type\'] == \'select\' || $custom_field[\'type\'] == \'radio\' || $custom_field[\'type\'] == \'checkbox\') {\n                  $custom_field_options = $this->model_customer_custom_field->getCustomFieldValues($custom_field[\'custom_field_id\']);\n\n                  foreach ($custom_field_options as $custom_field_option) {\n                      if ($custom_field_option[\'custom_field_value_id\'] == $shipping_custom_field_value) {\n                          $shipping_custom_field_value = $custom_field_option[\'name\'];\n                      }\n                  }\n              }\n\n              $format = str_replace(\'{custom_field_\' . $custom_field[\'custom_field_id\'] . \'}\', $shipping_custom_field_value, $format);\n          }\n      }\n\n      $format = preg_replace(\'/(({custom_field(.*?)?}))/sim\', \'\', $format);\n      ]]></add>\n    </operation>\n    <operation>\n      <search><![CDATA[$custom_fields = $this->model_customer_custom_field->getCustomFields($filter_data);]]></search>\n      <add position=\"replace\"><![CDATA[$custom_fields = $this->model_customer_custom_field->getCustomFields(array(\'sort\' => \'cf.sort_order\'));]]></add>\n    </operation>\n    <operation>\n      <search><![CDATA[foreach ($orders as $order_id) {]]></search>\n      <add position=\"before\"><![CDATA[\n      $this->load->model(\'customer/custom_field\');\n      $custom_fields = $this->model_customer_custom_field->getCustomFields();\n      ]]></add>\n    </operation>\n    <operation>\n      <search><![CDATA[$payment_address = str_replace(array(\"\r\n\", \"\r\", \"\n\"), \'<br />\', preg_replace(array(\"/\\s\\s+/\", \"/\r\r+/\", \"/\n\n+/\"), \'<br />\', trim(str_replace($find, $replace, $format))));]]></search>\n      <add position=\"after\"><![CDATA[$payment_address = ($order_info[\'payment_firstname\']) ? $payment_address : \'\';]]></add>\n    </operation>\n    <operation>\n      <search><![CDATA[$payment_address = str_replace(array(\"\r\n\", \"\r\", \"\n\"), \'<br />\', preg_replace(array(\"/\\s\\s+/\", \"/\r\r+/\", \"/\n\n+/\"), \'<br />\', trim(str_replace($find, $replace, $format))));]]></search>\n      <add position=\"before\"><![CDATA[\n      foreach ($custom_fields as $custom_field) {\n          if (isset($order_info[\'payment_custom_field\'][$custom_field[\'custom_field_id\']])) {\n              $payment_custom_field_value = $order_info[\'payment_custom_field\'][$custom_field[\'custom_field_id\']];\n          }\n\n          if (isset($order_info[\'custom_field\'][$custom_field[\'custom_field_id\']])) {\n              $payment_custom_field_value = $order_info[\'custom_field\'][$custom_field[\'custom_field_id\']];\n          }\n\n          if (isset($payment_custom_field_value)) {\n              if ($custom_field[\'type\'] == \'select\' || $custom_field[\'type\'] == \'radio\' || $custom_field[\'type\'] == \'checkbox\') {\n                  $custom_field_options = $this->model_customer_custom_field->getCustomFieldValues($custom_field[\'custom_field_id\']);\n\n                  foreach ($custom_field_options as $custom_field_option) {\n                      if ($custom_field_option[\'custom_field_value_id\'] == $payment_custom_field_value) {\n                          $payment_custom_field_value = $custom_field_option[\'name\'];\n                      }\n                  }\n              }\n\n              $format = str_replace(\'{custom_field_\' . $custom_field[\'custom_field_id\'] . \'}\', $payment_custom_field_value, $format);\n          }\n      }\n\n      $format = preg_replace(\'/(({custom_field(.*?)?}))/sim\', \'\', $format);\n      ]]></add>\n    </operation>\n    <operation>\n      <search><![CDATA[$shipping_address = str_replace(array(\"\r\n\", \"\r\", \"\n\"), \'<br />\', preg_replace(array(\"/\\s\\s+/\", \"/\r\r+/\", \"/\n\n+/\"), \'<br />\', trim(str_replace($find, $replace, $format))));]]></search>\n      <add position=\"after\"><![CDATA[$shipping_address = ($order_info[\'shipping_firstname\']) ? $shipping_address : \'\';]]></add>\n    </operation>\n    <operation>\n      <search><![CDATA[$shipping_address = str_replace(array(\"\r\n\", \"\r\", \"\n\"), \'<br />\', preg_replace(array(\"/\\s\\s+/\", \"/\r\r+/\", \"/\n\n+/\"), \'<br />\', trim(str_replace($find, $replace, $format))));]]></search>\n      <add position=\"before\"><![CDATA[\n      foreach ($custom_fields as $custom_field) {\n          if (isset($order_info[\'shipping_custom_field\'][$custom_field[\'custom_field_id\']])) {\n              $shipping_custom_field_value = $order_info[\'shipping_custom_field\'][$custom_field[\'custom_field_id\']];\n          }\n\n          if (isset($order_info[\'custom_field\'][$custom_field[\'custom_field_id\']])) {\n              $shipping_custom_field_value = $order_info[\'custom_field\'][$custom_field[\'custom_field_id\']];\n          }\n\n          if (isset($shipping_custom_field_value)) {\n              if ($custom_field[\'type\'] == \'select\' || $custom_field[\'type\'] == \'radio\' || $custom_field[\'type\'] == \'checkbox\') {\n                  $custom_field_options = $this->model_customer_custom_field->getCustomFieldValues($custom_field[\'custom_field_id\']);\n\n                  foreach ($custom_field_options as $custom_field_option) {\n                      if ($custom_field_option[\'custom_field_value_id\'] == $shipping_custom_field_value) {\n                          $shipping_custom_field_value = $custom_field_option[\'name\'];\n                      }\n                  }\n              }\n\n              $format = str_replace(\'{custom_field_\' . $custom_field[\'custom_field_id\'] . \'}\', $shipping_custom_field_value, $format);\n          }\n      }\n\n      $format = preg_replace(\'/(({custom_field(.*?)?}))/sim\', \'\', $format);\n      ]]></add>\n    </operation>\n  </file>\n  <file path=\"catalog/model/account/order.php\">\n    <operation>\n      <search><![CDATA[\'payment_address_format\'  => $order_query->row[\'payment_address_format\'],]]></search>\n      <add position=\"after\"><![CDATA[\n      \'custom_field\' => json_decode($order_query->row[\'custom_field\'], true),\n      \'payment_custom_field\' => json_decode($order_query->row[\'payment_custom_field\'], true),\n      \'shipping_custom_field\' => json_decode($order_query->row[\'shipping_custom_field\'], true),\n      ]]></add>\n    </operation>\n  </file>\n  <file path=\"catalog/controller/account/address.php\">\n    <operation>\n      <search><![CDATA[foreach ($results as $result) {]]></search>\n      <add position=\"before\"><![CDATA[\n      $this->load->model(\'account/custom_field\');\n      $account_custom_fields = $this->model_account_custom_field->getCustomFields();\n      ]]></add>\n    </operation>\n    <operation>\n      <search><![CDATA[$find = array(]]></search>\n      <add position=\"before\"><![CDATA[\n      foreach ($result[\'custom_field\'] as $key => $custom_field) {\n          $account_custom_field_value = $custom_field;\n\n          if (isset($account_custom_fields[$key][\'type\'])) {\n              if ($account_custom_fields[$key][\'type\'] == \'select\' || $account_custom_fields[$key][\'type\'] == \'radio\' || $account_custom_fields[$key][\'type\'] == \'checkbox\') {\n                  foreach ($account_custom_fields[$key][\'custom_field_value\'] as $custom_field_option) {\n                      if ($custom_field_option[\'custom_field_value_id\'] == $account_custom_field_value) {\n                          $account_custom_field_value = $custom_field_option[\'name\'];\n                      }\n                  }\n              }\n          }\n\n          $format = str_replace(\'{custom_field_\' . $key . \'}\', $account_custom_field_value, $format);\n      }\n\n      $format = preg_replace(\'/(({custom_field(.*?)?}))/sim\', \'\', $format);\n      ]]></add>\n    </operation>\n  </file>\n  <file path=\"catalog/controller/account/order.php\">\n    <operation>\n      <search><![CDATA[if ($order_info[\'payment_address_format\']) {]]></search>\n      <add position=\"before\"><![CDATA[\n      $this->load->model(\'account/custom_field\');\n      $custom_fields = $this->model_account_custom_field->getCustomFields();\n      ]]></add>\n    </operation>\n    <operation>\n      <search><![CDATA[$data[\'payment_address\'] = str_replace(array(\"\r\n\", \"\r\", \"\n\"), \'<br />\', preg_replace(array(\"/\\s\\s+/\", \"/\r\r+/\", \"/\n\n+/\"), \'<br />\', trim(str_replace($find, $replace, $format))));]]></search>\n      <add position=\"before\"><![CDATA[\n      foreach ($custom_fields as $custom_field) {\n          if (isset($order_info[\'payment_custom_field\'][$custom_field[\'custom_field_id\']])) {\n              $payment_custom_field_value = $order_info[\'payment_custom_field\'][$custom_field[\'custom_field_id\']];\n          }\n\n          if (isset($order_info[\'custom_field\'][$custom_field[\'custom_field_id\']])) {\n              $payment_custom_field_value = $order_info[\'custom_field\'][$custom_field[\'custom_field_id\']];\n          }\n\n          if (isset($payment_custom_field_value)) {\n              if ($custom_field[\'type\'] == \'select\' || $custom_field[\'type\'] == \'radio\' || $custom_field[\'type\'] == \'checkbox\') {\n                  foreach ($custom_field[\'custom_field_value\'] as $custom_field_option) {\n                      if ($custom_field_option[\'custom_field_value_id\'] == $payment_custom_field_value) {\n                          $payment_custom_field_value = $custom_field_option[\'name\'];\n                      }\n                  }\n              }\n\n              $format = str_replace(\'{custom_field_\' . $custom_field[\'custom_field_id\'] . \'}\', $payment_custom_field_value, $format);\n          }\n      }\n\n      $format = preg_replace(\'/(({custom_field(.*?)?}))/sim\', \'\', $format);\n      ]]></add>\n    </operation>\n    <operation>\n      <search><![CDATA[$data[\'shipping_address\'] = str_replace(array(\"\r\n\", \"\r\", \"\n\"), \'<br />\', preg_replace(array(\"/\\s\\s+/\", \"/\r\r+/\", \"/\n\n+/\"), \'<br />\', trim(str_replace($find, $replace, $format))));]]></search>\n      <add position=\"before\"><![CDATA[\n      foreach ($custom_fields as $custom_field) {\n          if (isset($order_info[\'shipping_custom_field\'][$custom_field[\'custom_field_id\']])) {\n              $shipping_custom_field_value = $order_info[\'shipping_custom_field\'][$custom_field[\'custom_field_id\']];\n          }\n\n          if (isset($order_info[\'custom_field\'][$custom_field[\'custom_field_id\']])) {\n              $shipping_custom_field_value = $order_info[\'custom_field\'][$custom_field[\'custom_field_id\']];\n          }\n\n          if (isset($shipping_custom_field_value)) {\n              if ($custom_field[\'type\'] == \'select\' || $custom_field[\'type\'] == \'radio\' || $custom_field[\'type\'] == \'checkbox\') {\n                  foreach ($custom_field[\'custom_field_value\'] as $custom_field_option) {\n                      if ($custom_field_option[\'custom_field_value_id\'] == $shipping_custom_field_value) {\n                          $shipping_custom_field_value = $custom_field_option[\'name\'];\n                      }\n                  }\n              }\n\n              $format = str_replace(\'{custom_field_\' . $custom_field[\'custom_field_id\'] . \'}\', $shipping_custom_field_value, $format);\n          }\n      }\n\n      $format = preg_replace(\'/(({custom_field(.*?)?}))/sim\', \'\', $format);\n      ]]></add>\n    </operation>\n  </file>\n  <file path=\"catalog/model/checkout/order.php\">\n    <operation>\n      <search><![CDATA[if ($order_info) {]]></search>\n      <add position=\"after\"><![CDATA[\n      $this->load->model(\'account/custom_field\');\n      $custom_fields = $this->model_account_custom_field->getCustomFields();\n      ]]></add>\n    </operation>\n    <operation>\n      <search><![CDATA[$data[\'payment_address\'] = str_replace(array(\"\r\n\", \"\r\", \"\n\"), \'<br />\', preg_replace(array(\"/\\s\\s+/\", \"/\r\r+/\", \"/\n\n+/\"), \'<br />\', trim(str_replace($find, $replace, $format))));]]></search>\n      <add position=\"before\"><![CDATA[\n      foreach ($custom_fields as $custom_field) {\n          if (isset($order_info[\'payment_custom_field\'][$custom_field[\'custom_field_id\']])) {\n              $payment_custom_field_value = $order_info[\'payment_custom_field\'][$custom_field[\'custom_field_id\']];\n          }\n\n          if (isset($order_info[\'custom_field\'][$custom_field[\'custom_field_id\']])) {\n              $payment_custom_field_value = $order_info[\'custom_field\'][$custom_field[\'custom_field_id\']];\n          }\n\n          if (isset($payment_custom_field_value)) {\n              if ($custom_field[\'type\'] == \'select\' || $custom_field[\'type\'] == \'radio\' || $custom_field[\'type\'] == \'checkbox\') {\n                  foreach ($custom_field[\'custom_field_value\'] as $custom_field_option) {\n                      if ($custom_field_option[\'custom_field_value_id\'] == $payment_custom_field_value) {\n                          $payment_custom_field_value = $custom_field_option[\'name\'];\n                      }\n                  }\n              }\n\n              $format = str_replace(\'{custom_field_\' . $custom_field[\'custom_field_id\'] . \'}\', $payment_custom_field_value, $format);\n          }\n      }\n\n      $format = preg_replace(\'/(({custom_field(.*?)?}))/sim\', \'\', $format);\n      ]]></add>\n    </operation>\n    <operation>\n      <search><![CDATA[$data[\'shipping_address\'] = str_replace(array(\"\r\n\", \"\r\", \"\n\"), \'<br />\', preg_replace(array(\"/\\s\\s+/\", \"/\r\r+/\", \"/\n\n+/\"), \'<br />\', trim(str_replace($find, $replace, $format))));]]></search>\n      <add position=\"before\"><![CDATA[\n      foreach ($custom_fields as $custom_field) {\n          if (isset($order_info[\'shipping_custom_field\'][$custom_field[\'custom_field_id\']])) {\n              $shipping_custom_field_value = $order_info[\'shipping_custom_field\'][$custom_field[\'custom_field_id\']];\n          }\n\n          if (isset($order_info[\'custom_field\'][$custom_field[\'custom_field_id\']])) {\n              $shipping_custom_field_value = $order_info[\'custom_field\'][$custom_field[\'custom_field_id\']];\n          }\n\n          if (isset($shipping_custom_field_value)) {\n              if ($custom_field[\'type\'] == \'select\' || $custom_field[\'type\'] == \'radio\' || $custom_field[\'type\'] == \'checkbox\') {\n                  foreach ($custom_field[\'custom_field_value\'] as $custom_field_option) {\n                      if ($custom_field_option[\'custom_field_value_id\'] == $shipping_custom_field_value) {\n                          $shipping_custom_field_value = $custom_field_option[\'name\'];\n                      }\n                  }\n              }\n\n              $format = str_replace(\'{custom_field_\' . $custom_field[\'custom_field_id\'] . \'}\', $shipping_custom_field_value, $format);\n          }\n      }\n\n      $format = preg_replace(\'/(({custom_field(.*?)?}))/sim\', \'\', $format);\n      ]]></add>\n    </operation>\n  </file>\n</modification>', 1, '2021-12-01 18:13:36'),
(26, 'fix button showmap', 'slfbsh', 'sl', '1', '', '<?xml version=\"1.0\" encoding=\"UTF-8\"?>\r\n<modification>\r\n	<name>fix button showmap</name>\r\n	<version>1</version>\r\n	<author>sl</author>\r\n	<code>slfbsh</code>\r\n	<link></link>\r\n	<file path=\"catalog/controller/common/footer.php\">\r\n		<operation error=\"skip\">\r\n			<search><![CDATA[$data[\'text_account\'] = $this->language->get(\'text_account\');]]></search>\r\n			<add position=\"before\"><![CDATA[\r\n				$data[\'text_show_map\'] = $this->language->get(\'text_show_map\');\r\n				]]></add>\r\n		</operation>\r\n	</file>\r\n</modification>', 1, '2021-01-07 00:44:08'),
(24, 'OCDEV.pro - Multilanguage ocStore 2.3.x', 'ocdevpro_multilang_code', 'alexwaha', '1.3.4', 'https://ocdev.pro', '<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n<modification>\r\n    <name>OCDEV.pro - Multilanguage ocStore 2.3.x</name>\r\n    <code>ocdevpro_multilang_code</code>\r\n    <version>1.3.4</version>\r\n    <author>alexwaha</author>\r\n    <link>https://ocdev.pro</link>\r\n    <file path=\"catalog/controller/common/header.php\">\r\n        <operation>\r\n            <search><![CDATA[$data[\'language\'] = $this->load->controller(\'common/language\');]]></search>\r\n            <add position=\"before\"><![CDATA[$data[\'hreflang\'] = $this->load->controller(\'extension/module/ocd_multilang\');]]></add>\r\n        </operation>\r\n    </file>\r\n    <file path=\"catalog/view/theme/*/template/common/header.tpl\">\r\n        <operation>\r\n            <search><![CDATA[<?php foreach ($links as $link) { ?>]]></search>\r\n            <add position=\"before\"><![CDATA[<?php foreach($hreflang as $lang) { ?>\r\n            <link rel=\"<?php echo $lang[\'rel\']; ?>\" hreflang=\"<?php echo $lang[\'prefix\']; ?>\" href=\"<?php echo $lang[\'href\']; ?>\" />\r\n            <?php } ?>\r\n            ]]></add>\r\n        </operation>\r\n    </file>\r\n    <file path=\"admin/controller/localisation/language.php\">\r\n        <operation>\r\n            <search><![CDATA[$data[\'languages\'][] = array(]]></search>\r\n            <add position=\"after\"><![CDATA[\'url\' => $result[\'url\'],]]></add>\r\n        </operation>\r\n        <operation>\r\n            <search><![CDATA[$this->language->get(\'column_code\');]]></search>\r\n            <add position=\"before\"><![CDATA[\r\n            $data[\'column_url\'] = $this->language->get(\'column_url\');\r\n            ]]></add>\r\n        </operation>\r\n        <operation>\r\n            <search><![CDATA[$this->language->get(\'entry_code\');]]></search>\r\n            <add position=\"before\"><![CDATA[\r\n            $data[\'entry_url\'] = $this->language->get(\'entry_url\');\r\n            ]]></add>\r\n        </operation>\r\n        <operation>\r\n            <search><![CDATA[if (isset($this->error[\'locale\'])) {]]></search>\r\n            <add position=\"before\"><![CDATA[\r\n            if (isset($this->error[\'url\'])) {\r\n                $data[\'error_url\'] = $this->error[\'url\'];\r\n            } else {\r\n                $data[\'error_url\'] = \'\';\r\n            }\r\n            ]]></add>\r\n        </operation>\r\n        <operation>\r\n            <search><![CDATA[if (isset($this->request->post[\'code\'])) {]]></search>\r\n            <add position=\"before\"><![CDATA[\r\n            if (isset($this->request->post[\'url\'])) {\r\n                $data[\'url\'] = $this->request->post[\'url\'];\r\n            } elseif (!empty($language_info)) {\r\n                $data[\'url\'] = $language_info[\'url\'];\r\n            } else {\r\n                $data[\'url\'] = \'\';\r\n            }\r\n            ]]></add>\r\n        </operation>\r\n        <operation>\r\n            <search><![CDATA[if (!$this->request->post[\'locale\']) {]]></search>\r\n            <add position=\"before\"><![CDATA[\r\n            if (utf8_strlen($this->request->post[\'url\']) < 2 || (utf8_strlen($this->request->post[\'url\']) > 32)) {\r\n                $this->error[\'url\'] = $this->language->get(\'error_url\');\r\n            }\r\n            ]]></add>\r\n        </operation>\r\n        <operation>\r\n            <search><![CDATA[$data[\'sort_code\']]]></search>\r\n            <add position=\"before\"><![CDATA[\r\n            $data[\'sort_url\'] = $this->url->link(\'localisation/language\', \'token=\' . $this->session->data[\'token\'] . \'&sort=url\' . $url, true);\r\n            ]]></add>\r\n        </operation>\r\n    </file>\r\n    <file path=\"admin/language/*/localisation/language.php\">\r\n        <operation>\r\n            <search><![CDATA[$_[\'column_sort_order\']]]></search>\r\n            <add position=\"before\"><![CDATA[$_[\'column_url\'] = \'URL prefix\';]]></add>\r\n        </operation>\r\n        <operation>\r\n            <search><![CDATA[$_[\'entry_locale\']]]></search>\r\n            <add position=\"before\"><![CDATA[$_[\'entry_url\'] = \'URL prefix\';]]></add>\r\n        </operation>\r\n    </file>\r\n    <file path=\"admin/language/ru-ru/localisation/language.php\">\r\n        <operation>\r\n            <search><![CDATA[$_[\'error_locale\']]]></search>\r\n            <add position=\"before\"><![CDATA[$_[\'error_url\'] = \'Префикс языка должен быть от 2 до 32 символов!\';]]></add>\r\n        </operation>\r\n    </file>\r\n    <file path=\"admin/language/en-gb/localisation/language.php\">\r\n        <operation>\r\n            <search><![CDATA[$_[\'error_locale\']]]></search>\r\n            <add position=\"before\"><![CDATA[$_[\'error_url\'] = \'Url prefix must be between 2 and 32 characters!\';]]></add>\r\n        </operation>\r\n    </file>\r\n    <file path=\"admin/model/localisation/language.php\">\r\n        <operation>\r\n            <search><![CDATA[locale =]]></search>\r\n            <add position=\"replace\"><![CDATA[url = \'\" . $this->db->escape($data[\'url\']) . \"\', locale =]]></add>\r\n        </operation>\r\n        <operation>\r\n            <search><![CDATA[$sort_data = array(]]></search>\r\n            <add position=\"after\"><![CDATA[\'url\',]]></add>\r\n        </operation>\r\n    </file>\r\n    <file path=\"admin/view/template/localisation/language_list.tpl\">\r\n        <operation>\r\n            <search><![CDATA[<td class=\"text-right\"><?php if ($sort == \'sort_order\') { ?>]]></search>\r\n            <add position=\"before\"><![CDATA[\r\n              <td class=\"text-left\"><?php if ($sort == \'url\') { ?>\r\n                <a href=\"<?php echo $sort_url; ?>\" class=\"<?php echo strtolower($order); ?>\"><?php echo $column_url; ?></a>\r\n                <?php } else { ?>\r\n                <a href=\"<?php echo $sort_url; ?>\"><?php echo $column_url; ?></a>\r\n                <?php } ?></td>\r\n            ]]></add>\r\n        </operation>\r\n        <operation>\r\n            <search><![CDATA[<td class=\"text-left\"><?php echo $language[\'code\']; ?></td>]]></search>\r\n            <add position=\"after\"><![CDATA[<td class=\"text-left\"><?php echo $language[\'url\']; ?></td>]]></add>\r\n        </operation>\r\n    </file>\r\n    <file path=\"admin/view/template/localisation/language_form.tpl\">\r\n        <operation>\r\n            <search><![CDATA[<div class=\"text-danger\"><?php echo $error_code; ?></div>]]></search>\r\n            <add position=\"after\" offset=\"3\"><![CDATA[\r\n            <div class=\"form-group required\">\r\n                <label class=\"col-sm-2 control-label required\" for=\"input-url\"><?php echo $entry_url; ?></label>\r\n                <div class=\"col-sm-10\">\r\n                  <input type=\"text\" name=\"url\" value=\"<?php echo $url; ?>\" placeholder=\"<?php echo $entry_url; ?>\" id=\"input-url\" class=\"form-control\" />\r\n                  <?php if ($error_url) { ?>\r\n                  <div class=\"text-danger\"><?php echo $error_url; ?></div>\r\n                  <?php } ?>\r\n                </div>\r\n            </div>\r\n            ]]></add>\r\n        </operation>\r\n    </file>\r\n    <file path=\"catalog/controller/information/contact.php\">\r\n        <operation>\r\n            <search><![CDATA[$data[\'store\'] = $this->config->get(\'config_name\');]]></search>\r\n            <add position=\"after\"><![CDATA[\r\n            $language_id = $this->config->get(\'config_language_id\');\r\n\r\n            $ocd_multilang_data = $this->config->get(\'ocd_multilang_data\');\r\n\r\n            if (isset($ocd_multilang_data[$language_id])) {\r\n                $address = $ocd_multilang_data[$language_id][\'address\'];\r\n            }\r\n\r\n            $ocd_address = $address ? $address : $this->config->get(\'config_address\');\r\n            ]]></add>\r\n        </operation>\r\n        <operation>\r\n            <search><![CDATA[nl2br($this->config->get(\'config_address\'));]]></search>\r\n            <add position=\"replace\"><![CDATA[nl2br($ocd_address);]]></add>\r\n        </operation>\r\n    </file>\r\n    <file path=\"catalog/controller/common/home.php\">\r\n        <operation>\r\n            <search><![CDATA[if (isset($this->request->get[\'route\'])) {]]></search>\r\n            <add position=\"before\"><![CDATA[$this->document->addLink($this->getCanonical(), \'canonical\');]]></add>\r\n        </operation>\r\n        <operation>\r\n            <search><![CDATA[$this->document->addLink($this->config->get(\'config_url\'), \'canonical\');]]></search>\r\n            <add position=\"replace\"><![CDATA[//$this->document->addLink($this->config->get(\'config_url\'), \'canonical\');]]></add>\r\n        </operation>\r\n        <operation>\r\n            <search><![CDATA[public function index() {]]></search>\r\n            <add position=\"before\"><![CDATA[\r\n            protected function getCanonical() {\r\n                $url = HTTP_SERVER;\r\n                if( $this->config->get(\'config_seo_url\')\r\n                    && $this->config->get(\'config_seo_url_type\') == \'seo_pro\') {\r\n                    $url = $this->url->link(\'common/home\');\r\n                    $query = $this->db->query(\"SELECT value FROM \" . DB_PREFIX . \"setting WHERE store_id = \'\" . (int)$this->config->get(\'config_store_id\') . \"\' AND `key` =\'config_language\'\");\r\n\r\n                    $query_url = $this->db->query(\"SELECT `url` FROM `\" . DB_PREFIX . \"language` WHERE `code` = \'\" . $query->row[\'value\'] .\"\'\");\r\n\r\n                    $languageSlug = $this->session->data[\'language_url\'];\r\n\r\n                    // Do not show language url for home when default language is always shown\r\n                    if($languageSlug == $query_url->row[\'url\']) {\r\n                        $component = parse_url($url);\r\n                        if ($component[\'scheme\'] == \'https\') {\r\n                            $domain = $this->config->get(\'config_ssl\');\r\n                        } else {\r\n                            $domain = $this->config->get(\'config_url\');\r\n                        }\r\n\r\n                        $url = preg_replace(\'~(\'.$domain.\')(\'.$languageSlug.\'/)(.+)~i\', \'$1$3\',$url);\r\n                    }\r\n                }\r\n\r\n                return $url;\r\n            }\r\n            ]]></add>\r\n        </operation>\r\n        <operation>\r\n            <search><![CDATA[$this->config->get(\'config_meta_title\')]]></search>\r\n            <add position=\"replace\"><![CDATA[$ocd_meta_title]]></add>\r\n        </operation>\r\n        <operation>\r\n            <search><![CDATA[$this->config->get(\'config_meta_description\')]]></search>\r\n            <add position=\"replace\"><![CDATA[$ocd_meta_description]]></add>\r\n        </operation>\r\n        <operation>\r\n            <search><![CDATA[$this->config->get(\'config_meta_keyword\')]]></search>\r\n            <add position=\"replace\"><![CDATA[$ocd_meta_keyword]]></add>\r\n        </operation>\r\n        <operation>\r\n            <search><![CDATA[public function index() {]]></search>\r\n            <add position=\"after\"><![CDATA[\r\n            $language_id = $this->config->get(\'config_language_id\');\r\n\r\n            $ocd_multilang_data = $this->config->get(\'ocd_multilang_data\');\r\n\r\n            if (isset($ocd_multilang_data[$language_id])) {\r\n                $meta_title = $ocd_multilang_data[$language_id][\'meta_title\'];\r\n                $meta_description = $ocd_multilang_data[$language_id][\'meta_description\'];\r\n                $meta_keyword = $ocd_multilang_data[$language_id][\'meta_keyword\'];\r\n            }\r\n\r\n            $ocd_meta_title = $meta_title ? $meta_title : $this->config->get(\'config_meta_title\');\r\n            $ocd_meta_description = $meta_description ? $meta_description : $this->config->get(\'config_meta_description\');\r\n            $ocd_meta_keyword = $meta_keyword ? $meta_keyword : $this->config->get(\'config_meta_keyword\');\r\n            ]]></add>\r\n        </operation>\r\n    </file>\r\n    <file path=\"catalog/controller/common/language.php\">\r\n        <operation>\r\n            <search><![CDATA[public function index() {]]></search>\r\n            <add position=\"replace\"><![CDATA[\r\n            public function index() {\r\n                $this->load->language(\'common/language\');\r\n\r\n                $data[\'text_language\'] = $this->language->get(\'text_language\');\r\n\r\n                $data[\'code\'] = $this->session->data[\'language\'];\r\n\r\n                $data[\'languages\'] = [];\r\n\r\n                $results = $this->load->controller(\'extension/module/ocd_multilang\');\r\n\r\n                foreach ($results as $result) {\r\n                    $data[\'languages\'][] = [\r\n                        \'name\'      => $result[\'name\'],\r\n                        \'code\'      => $result[\'code\'],\r\n                        \'href\'      => $result[\'href\'],\r\n                        \'href_lang\' => $result[\'href_lang\'],\r\n                    ];\r\n                }\r\n\r\n                return $this->load->view(\'common/ocd_language\', $data);\r\n            }\r\n\r\n            public function index_old() {\r\n            ]]></add>\r\n        </operation>\r\n    </file>\r\n    <file path=\"catalog/model/localisation/language.php\">\r\n        <operation>\r\n            <search><![CDATA[$result[\'code\'],]]></search>\r\n            <add position=\"after\"><![CDATA[\'url\' => $result[\'url\'],]]></add>\r\n        </operation>\r\n        <operation>\r\n            <search><![CDATA[public function getLanguage($language_id) {]]></search>\r\n            <add position=\"before\"><![CDATA[\r\n			public function getLanguageUrl($language_id) {\r\n				$query = $this->db->query(\"SELECT url FROM \" . DB_PREFIX . \"language WHERE language_id = \'\" . (int)$language_id . \"\'\");\r\n\r\n				return $query->row[\'url\'];\r\n			}\r\n            ]]></add>\r\n        </operation>\r\n    </file>\r\n    <file path=\"catalog/controller/startup/seo_pro.php\">\r\n        <operation>\r\n            <search><![CDATA[private $cache_data = null;]]></search>\r\n            <add position=\"after\"><![CDATA[\r\n            private $languages = array();\r\n            private $config_language_id;\r\n            private $config_language;\r\n            private $config_language_url;\r\n            ]]></add>\r\n        </operation>\r\n        <operation>\r\n            <search><![CDATA[$this->cache->set(\'seo_pro\', $this->cache_data);]]></search>\r\n            <add position=\"after\" offset=\"1\"><![CDATA[\r\n            $this->config_language_id = $this->config->get(\'ocd_multilang_language\');\r\n            $this->config_language = $this->config->get(\'config_language\');\r\n\r\n            $language_data = $this->db->query(\"SELECT `url` FROM `\" . DB_PREFIX . \"language` WHERE `language_id` = \'\"\r\n                . $this->config_language_id . \"\'\");\r\n\r\n            $this->config_language_url = $language_data->row[\'url\'];\r\n\r\n            $query = $this->db->query(\"SELECT * FROM \" . DB_PREFIX . \"language WHERE status = \'1\'\");\r\n\r\n            foreach ($query->rows as $result) {\r\n                $this->languages[$result[\'url\']] = $result;\r\n            }\r\n            ]]></add>\r\n        </operation>\r\n        <operation>\r\n            <search><![CDATA[public function index() {]]></search>\r\n            <add position=\"after\"><![CDATA[\r\n            $languageSlug = null;\r\n\r\n            if (isset($this->request->cookie[\'language_url\'])) {\r\n                $this->session->data[\'language_url\'] = $this->request->cookie[\'language_url\'];\r\n            }\r\n\r\n            $languageSession = isset($this->session->data[\'language_url\']) ? $this->session->data[\'language_url\'] : false;\r\n\r\n            $code = null;\r\n            $_route_ = isset($this->request->get[\'_route_\']) ? $this->request->get[\'_route_\'] : false;\r\n\r\n            if ($_route_) {\r\n                $tokens = explode(\'/\', $_route_);\r\n\r\n                if (array_key_exists($tokens[0], $this->languages)) {\r\n                    $languageSlug = $tokens[0];\r\n                    $this->request->get[\'_route_\'] = substr($this->request->get[\'_route_\'], strlen($languageSlug) + 1);\r\n                }\r\n\r\n                if (!array_key_exists($tokens[0], $this->languages)) {\r\n                    $languageSlug = $this->config_language_url;\r\n                }\r\n\r\n                if (trim($this->request->get[\'_route_\']) == \'\' || trim($this->request->get[\'_route_\']) == \'index.php\') {\r\n                    unset($this->request->get[\'_route_\']);\r\n                }\r\n\r\n                if (!isset($this->request->cookie[\'language_url\']) || $this->request->cookie[\'language_url\'] !== $languageSlug) {\r\n                    setcookie(\'language_url\', $languageSlug, time() + 60 * 60 * 24 * 30, \'/\', $this->request->server[\'HTTP_HOST\']);\r\n                }\r\n            }\r\n\r\n            if (!$_route_ && $languageSession) {\r\n                $languageSlug = $this->session->data[\'language_url\'];\r\n            }\r\n\r\n            if (!$_route_ && !$languageSession) {\r\n                $languageSlug = $this->config_language_url;\r\n            }\r\n\r\n            if (!$languageSession && !isset($this->session->data[\'language\'])) {\r\n                $this->session->data[\'language_url\'] = $this->config_language_url;\r\n            }\r\n\r\n            if (!$languageSession || $this->session->data[\'language_url\'] != $languageSlug) {\r\n                $this->session->data[\'language_url\'] = $languageSlug;\r\n            }\r\n\r\n            if (!$code) {\r\n                $code = $this->config_language;\r\n            }\r\n\r\n            if ($code) {\r\n                $code = $this->languages[$languageSlug][\'code\'];\r\n            }\r\n\r\n            if (!isset($this->session->data[\'language\']) || $this->session->data[\'language\'] != $code) {\r\n                $this->session->data[\'language\'] = $code;\r\n            }\r\n\r\n            if (!isset($this->request->cookie[\'language\']) || $this->request->cookie[\'language\'] != $code) {\r\n                setcookie(\'language\', $code, time() + 60 * 60 * 24 * 30, \'/\', $this->request->server[\'HTTP_HOST\']);\r\n            }\r\n\r\n            $this->config->set(\'config_language_id\', $this->languages[$languageSlug][\'language_id\']);\r\n            $this->config->set(\'config_language\', $this->languages[$languageSlug][\'code\']);\r\n\r\n            $language = new Language($code);\r\n            $language->load($code);\r\n\r\n            $this->registry->set(\'language\', $language);\r\n            ]]></add>\r\n        </operation>\r\n        <operation>\r\n            <search><![CDATA[public function rewrite($link) {]]></search>\r\n            <add position=\"replace\"><![CDATA[\r\n            public function rewrite($link, $languageSlug = \'\') {\r\n                if (!$languageSlug) {\r\n                    $languageSlug = $this->session->data[\'language_url\'];\r\n                }\r\n\r\n                if ($languageSlug == $this->config_language_url) {\r\n                    $languageSlug = \'\';\r\n                } else {\r\n                    $languageSlug .= \'/\';\r\n                }\r\n            ]]></add>\r\n        </operation>\r\n        <operation>\r\n            <search><![CDATA[case \'product/product\':]]></search>\r\n            <add position=\"before\"><![CDATA[\r\n            case \'common/home\':\r\n                if ($component[\'scheme\'] == \'https\') {\r\n                    $link = $this->config->get(\'config_ssl\');\r\n                } else {\r\n                    $link = $this->config->get(\'config_url\');\r\n                }\r\n                if ($languageSlug != $this->config_language_url . \'/\') {\r\n                    $link .= $languageSlug;\r\n                }\r\n                if (isset($this->cache_data[\'queries\'][\'common/home\'])) {\r\n                    $link .= $this->cache_data[\'queries\'][\'common/home\'];\r\n                }\r\n\r\n                //Skip allowed get parameters on homepage\r\n                $seo_pro_utm = preg_replace(\'~\r?\n~\', \"\n\", $this->config->get(\'config_seo_pro_utm\'));\r\n\r\n                $allowed_parameters = explode(\"\n\", $seo_pro_utm);\r\n                $tmp = $data;\r\n                foreach ($allowed_parameters as $ap) {\r\n                    if (isset($data[trim($ap)])) {\r\n                        $link .= \'?\' . urldecode(http_build_query($data, \'\', \'&amp;\'));\r\n                    }\r\n                }\r\n\r\n                // Return clean shop link with any GET-parameters stripped off\r\n                return $link;\r\n                // (if you want to pass all parameters on homepage as is, comment the line above: `// return $link;`)\r\n                break;\r\n            ]]></add>\r\n        </operation>\r\n        <operation>\r\n            <search><![CDATA[$link .= \'index.php?route=\' . $route;]]></search>\r\n            <add position=\"replace\"><![CDATA[$link .= $languageSlug . \'index.php?route=\' . $route;]]></add>\r\n        </operation>\r\n        <operation>\r\n            <search><![CDATA[$seo_url = trim($seo_url, \'/\');]]></search>\r\n            <add position=\"replace\"><![CDATA[$seo_url = $languageSlug . trim($seo_url, \'/\');]]></add>\r\n        </operation>\r\n        <operation>\r\n            <search><![CDATA[private function validate() {]]></search>\r\n            <add position=\"after\"><![CDATA[\r\n            if (isset($this->request->get[\'route\']) && preg_match(\'~^api/~\',$this->request->get[\'route\'])) {\r\n                return;\r\n            }\r\n            ]]></add>\r\n        </operation>\r\n    </file>\r\n</modification>', 1, '2020-12-29 14:11:05'),
(25, 'Search and Lang for mobile ver', 'selafomove', 'illiats', '1.0', 'http://dev.automint.com.ua/', '<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n<modification>\r\n	<name>Search and Lang for mobile ver</name>\r\n	<code>selafomove</code>\r\n	<version>1.0</version>\r\n	<author>illiats</author>\r\n	<link>http://dev.automint.com.ua/</link>\r\n	<file path=\"catalog/view/theme/coloring/template/common/header.tpl\">\r\n		<operation>\r\n			<search index=\"0\">\r\n				<![CDATA[<div class=\"content-wrapper\">]]>\r\n			</search>\r\n			<add position=\"after\">\r\n				<![CDATA[<div class=\"container\" id=\"selafomove\">\r\n		<div class=\"row\">\r\n		<div class=\"col-xs-3 col-sm-3 hidden-md hidden-lg\">\r\n			<div class=\"curlang\">\r\n				<div class=\"inline-block\">\r\n					<?php echo $language; ?>\r\n				</div>\r\n				<div class=\"inline-block\">\r\n					<?php echo $currency; ?>\r\n				</div>\r\n			</div>\r\n		</div>\r\n		<div class=\"col-xs-9 col-sm-9 hidden-md hidden-lg search-box\"><?php echo $search; ?></div>\r\n		</div>\r\n	</div>]]>\r\n			</add>\r\n		</operation>\r\n	</file>\r\n	<file path=\"catalog/language/uk-ua/product/category.php\">\r\n		<operation>\r\n			<search index=\"0\">\r\n				<![CDATA[$_[\'text_limit\']        = \'На сторінці:\';]]>\r\n			</search>\r\n			<add position=\"after\">\r\n				<![CDATA[$_[\'text_available\']         = \'В наявності\';]]>\r\n			</add>\r\n		</operation>\r\n	</file>\r\n	<file path=\"catalog/language/ru-ru/product/category.php\">\r\n		<operation>\r\n			<search index=\"0\">\r\n				<![CDATA[$_[\'text_limit\']        = \'Показывать:\';]]>\r\n			</search>\r\n			<add position=\"after\">\r\n				<![CDATA[$_[\'text_available\']         = \'В наличии\';]]>\r\n			</add>\r\n		</operation>\r\n	</file>	\r\n	<file path=\"catalog/language/en-gb/product/category.php\">\r\n		<operation>\r\n			<search index=\"0\">\r\n				<![CDATA[$_[\'text_limit\']        = \'Show:\';]]>\r\n			</search>\r\n			<add position=\"after\">\r\n				<![CDATA[$_[\'text_available\']         = \'In Stock\';]]>\r\n			</add>\r\n		</operation>\r\n	</file>\r\n	<file path=\"catalog/controller/product/category.php\">\r\n		<operation>\r\n			<search index=\"0\">\r\n				<![CDATA[$data[\'text_limit\'] = $this->language->get(\'text_limit\');]]>\r\n			</search>\r\n			<add position=\"after\">\r\n				<![CDATA[$data[\'text_available\'] = $this->language->get(\'text_available\');]]>\r\n			</add>\r\n		</operation>\r\n	</file>\r\n</modification>', 1, '2021-01-07 00:38:53');
INSERT INTO `oc_modification` (`modification_id`, `name`, `code`, `author`, `version`, `link`, `xml`, `status`, `date_added`) VALUES
(27, '<i class=\"fa fa-eye-slash\"></i> Скрыть отключенные языки', 'hidedisabledlangs', 'Pavel Kravchenko', '1.0.0', 'https://opencartforum.com/profile/711752-paulkravchenko/', '<?xml version=\"1.0\" encoding=\"UTF-8\"?>\r\n<modification>\r\n	<name><![CDATA[<i class=\"fa fa-eye-slash\"></i> Скрыть отключенные языки]]></name>\r\n	<code>hidedisabledlangs</code>\r\n	<version>1.0.0</version>\r\n	<author>Pavel Kravchenko</author>\r\n	<link>https://opencartforum.com/profile/711752-paulkravchenko/</link>\r\n\r\n	<file path=\"admin/model/localisation/language.php\">\r\n		<operation>\r\n			<search>\r\n				<![CDATA[\r\n					public function getLanguages($data = array()) {\r\n				]]>\r\n			</search>\r\n			<add position=\"after\" trim=\"true\">\r\n				<![CDATA[\r\n		if( !empty( $this->request->get[\'route\'] ) && ( $this->request->get[\'route\'] == \'localisation/language\' ) ) {\r\n			$lang_status = \'\';\r\n		}else{\r\n			$lang_status = \' WHERE status = \\\'1\\\'\';\r\n		}\r\n		$this->cache->delete( \'language\' );\r\n				]]>\r\n			</add>\r\n		</operation>\r\n		<operation>\r\n			<search>\r\n				<![CDATA[\r\n					$sql = \"SELECT * FROM \" . DB_PREFIX . \"language\";\r\n				]]>\r\n			</search>\r\n			<add position=\"replace\" trim=\"true\">\r\n				<![CDATA[\r\n					$sql = \"SELECT * FROM \" . DB_PREFIX . \"language\" . $lang_status;\r\n				]]>\r\n			</add>\r\n		</operation>\r\n		<operation>\r\n			<search>\r\n				<![CDATA[\r\n					$query = $this->db->query(\"SELECT * FROM \" . DB_PREFIX . \"language ORDER BY sort_order, name\");\r\n				]]>\r\n			</search>\r\n			<add position=\"replace\">\r\n				<![CDATA[\r\n				if( !empty( $this->request->get[\'route\'] ) && ( $this->request->get[\'route\'] == \'localisation/language\' ) ) {\r\n					$lang_status = \'\';\r\n				}else{\r\n					$lang_status = \' status = \\\'1\\\'\';\r\n				}\r\n\r\n				$query = $this->db->query(\"SELECT * FROM \" . DB_PREFIX . \"language WHERE\" . $lang_status . \" ORDER BY sort_order, name\");\r\n				]]>\r\n			</add>\r\n		</operation>\r\n	</file>\r\n</modification>', 1, '2021-01-08 15:41:22'),
(28, '<i class=\"fa fa-arrows\"></i> Сортировка модулей в макетах', 'layoutmodulessort', 'Pavel Kravchenko', '2.0.0', 'https://opencartforum.com/profile/711752-paulkravchenko/', '<?xml version=\"1.0\" encoding=\"UTF-8\"?>\r\n<modification>\r\n	<name><![CDATA[<i class=\"fa fa-arrows\"></i> Сортировка модулей в макетах]]></name>\r\n	<code>layoutmodulessort</code>\r\n	<version>2.0.0</version>\r\n	<author>Pavel Kravchenko</author>\r\n	<link>https://opencartforum.com/profile/711752-paulkravchenko/</link>\r\n	<date>2019.10.13</date>\r\n	<file path=\"admin/view/template/design/layout_form.tpl\">\r\n		<operation error=\"skip\">\r\n			<search><![CDATA[<?php echo $footer; ?>]]></search>\r\n			<add position=\"before\"><![CDATA[\r\n<script type=\"text/javascript\" src=\"view/javascript/jquery/jquery-ui-custom.min.js\"></script>\r\n<script type=\"text/javascript\"><!--\r\n$(\'#module-column-left, #module-column-right, #module-content-top, #module-content-bottom\').prepend(\"<tr></tr>\").addClass( \"table-sort\" );\r\n$(\'.table-sort\').sortable({\r\n	items: \'tbody > tr\',\r\n    helper: fixWidthHelper,\r\n	placeholder: \"placeholder-sortable\",\r\n	connectWith: \".table-sort\",\r\n	dropOnEmpty: true,\r\n	receive: function( event, ui ){\r\n		$(this).find(\"tbody > tr\").append(ui.item);\r\n        $(this).find(\'input[name*=\\\'sort_order\\\']\').each(function(i){\r\n            $(this).val(i+1);\r\n        });\r\n		var id = $(this).attr(\"id\");\r\n		$(this).find(\'input[name*=\\\'position\\\']\').each(function(){\r\n            $(this).val(id.replace(\'module-\', \'\').replace(\'-\', \'_\'));\r\n        });\r\n    },\r\n	stop: function( event, ui ){\r\n        $(this).find(\'input[name*=\\\'sort_order\\\']\').each(function(i){\r\n            $(this).val(i+1);\r\n        });\r\n    }\r\n});\r\nfunction fixWidthHelper(e, ui) {\r\n    ui.children().each(function() {\r\n        $(this).width($(this).width());\r\n    });\r\n    return ui;\r\n}\r\n//--></script>\r\n<style>\r\n#module-content-bottom tbody tr td:first-child,\r\n#module-content-top tbody tr td:first-child,\r\n#module-column-left tbody tr td:first-child,\r\n#module-column-right tbody tr td:first-child {\r\n    cursor:move;\r\n    position:relative;\r\n    padding-left:20px;\r\n}\r\n\r\n#module-content-bottom tbody tr td:before,\r\n#module-content-top tbody tr td:before,\r\n#module-column-left tbody tr td:before,\r\n#module-column-right tbody tr td:before {\r\n    content: \"\\f0dc\";\r\n    font-family: FontAwesome;\r\n    left:5px;\r\n    top:15px;\r\n    position:absolute;\r\n}\r\n.ui-sortable-helper { border: 1px solid #aaa!important;}\r\n.placeholder-sortable { border: 2px dashed #bbb!important; height:40px!important; opacity: 0.1!important; }\r\n.arrow-icon-sortable {float: left;padding: 7px;}\r\ntfoot > tr > td > .arrow-icon-sortable{display:none;}\r\n</style>\r\n			]]></add>\r\n		</operation>\r\n	</file>\r\n\r\n	<file path=\"admin/view/template/design/layout_form.twig\">\r\n		<operation error=\"skip\">\r\n			<search><![CDATA[{{ footer }}]]></search>\r\n			<add position=\"before\"><![CDATA[\r\n<script type=\"text/javascript\" src=\"view/javascript/jquery/jquery-ui-custom.min.js\"></script>\r\n<script type=\"text/javascript\"><!--\r\n$(\'#module-column-left, #module-column-right, #module-content-top, #module-content-bottom\').prepend(\"<tr></tr>\").addClass( \"table-sort\" );\r\n$(\'.table-sort\').sortable({\r\n	items: \'tbody > tr\',\r\n    helper: fixWidthHelper,\r\n	placeholder: \"placeholder-sortable\",\r\n	connectWith: \".table-sort\",\r\n	dropOnEmpty: true,\r\n	receive: function( event, ui ){\r\n		$(this).find(\"tbody > tr\").append(ui.item);\r\n        $(this).find(\'input[name*=\\\'sort_order\\\']\').each(function(i){\r\n            $(this).val(i+1);\r\n        });\r\n		var id = $(this).attr(\"id\");\r\n		$(this).find(\'input[name*=\\\'position\\\']\').each(function(){\r\n            $(this).val(id.replace(\'module-\', \'\').replace(\'-\', \'_\'));\r\n        });\r\n    },\r\n	stop: function( event, ui ){\r\n        $(this).find(\'input[name*=\\\'sort_order\\\']\').each(function(i){\r\n            $(this).val(i+1);\r\n        });\r\n    }\r\n});\r\nfunction fixWidthHelper(e, ui) {\r\n    ui.children().each(function() {\r\n        $(this).width($(this).width());\r\n    });\r\n    return ui;\r\n}\r\n//--></script>\r\n<style>\r\n#module-content-bottom tbody tr td:first-child,\r\n#module-content-top tbody tr td:first-child,\r\n#module-column-left tbody tr td:first-child,\r\n#module-column-right tbody tr td:first-child {\r\n    cursor:move;\r\n    position:relative;\r\n    padding-left:20px;\r\n}\r\n\r\n#module-content-bottom tbody tr td:before,\r\n#module-content-top tbody tr td:before,\r\n#module-column-left tbody tr td:before,\r\n#module-column-right tbody tr td:before {\r\n    content: \"\\f0dc\";\r\n    font-family: FontAwesome;\r\n    left:5px;\r\n    top:15px;\r\n    position:absolute;\r\n}\r\n.ui-sortable-helper { border: 1px solid #aaa!important;}\r\n.placeholder-sortable { border: 2px dashed #bbb!important; height:40px!important; opacity: 0.1!important; }\r\n.arrow-icon-sortable {float: left;padding: 7px;}\r\ntfoot > tr > td > .arrow-icon-sortable{display:none;}\r\n</style>\r\n			]]></add>\r\n		</operation>\r\n	</file>\r\n\r\n</modification>', 1, '2021-11-28 01:25:10'),
(29, 'Google Merchant Feed SL', 'gmf_sl_ill', 'illiats', '4.0', 'https://dev.automint.com.ua', '<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<modification>\n    <name>Google Merchant Feed SL</name>\n    <code>gmf_sl_ill</code>\n    <version>4.0</version>\n    <author>illiats</author>\n    <link>https://dev.automint.com.ua</link>\n    <file path=\"admin/view/template/catalog/product_form.tpl\">\n        <operation error=\"skip\">\n        <search><![CDATA[<div class=\"tab-pane\" id=\"tab-design\">]]></search>\n        <add position=\"before\"><![CDATA[<div class=\"tab-pane\" id=\"tab-merchant\">\n              <div class=\"table-responsive\">\n\n                <!-- СТАТУС CЕЛЕКТ -->\n                <div class=\"form-group\">\n                  <label class=\"col-sm-2 control-label\" for=\"input-merchant-status\">Статус</label>\n                  <div class=\"col-sm-10\">\n                    <select name=\"merchant[enable]\" id=\"input-tax-class\" class=\"form-control\">\n                      <option value=\"1\"<?php if (!isset($merchant[\'enable\']) or empty($merchant[\'enable\']) or $merchant[\'enable\'] == 1) { ?> selected=\"selected\" <?php } ?>>Включено</option>\n                      <option value=\"0\"<?php if (isset($merchant[\'enable\']) and $merchant[\'enable\'] == \'0\') { ?> selected=\"selected\" <?php } ?>>Отключено</option>\n                    </select>\n                  </div>\n                </div>\n                <br/>\n\n                <div class=\"jumbotron jumbotron-fluid\">\n                  <div class=\"container\">\n                    <p><strong>Настройки для одежды/обуви</strong></p>\n\n                <!-- МАТЕРИАЛ ИНПУТ -->\n\n\n\n                <div class=\"form-group\">\n                  <label class=\"col-sm-2 control-label\" for=\"input-merchant-size\">Размер</label>\n                  <div class=\"col-sm-10\">\n                  <input type=\"text\" name=\"merchant[size_text]\" value=\"<?php if(isset($merchant[\'size_text\'])){ echo $merchant[\'size_text\']; } ?>\" placeholder=\"Размер\" id=\"input-merchant-size_text\" class=\"form-control\" />\n                  </div>\n                    </div>\n\n                <!-- ПОЛ CЕЛЕКТ -->\n                <div class=\"form-group\">\n                  <label class=\"col-sm-2 control-label\" for=\"input-merchant-sex\">Пол</label>\n                  <div class=\"col-sm-10\">\n                    <select name=\"merchant[sex]\" id=\"input-tax-class\" class=\"form-control\">\n                      <option value=\"0\"<?php if (!isset($merchant[\'sex\']) or $merchant[\'sex\'] == \'0\') { ?> selected=\"selected\" <?php } ?>><?php echo $text_none; ?></option>\n                      <option value=\"3\"<?php if (isset($merchant[\'sex\']) && $merchant[\'sex\'] == \'3\') { ?> selected=\"selected\" <?php } ?>>male [мужской]</option>\n                      <option value=\"1\"<?php if (isset($merchant[\'sex\']) && $merchant[\'sex\'] == \'1\') { ?> selected=\"selected\" <?php } ?>>female [женский]</option>\n                      <option value=\"2\"<?php if (isset($merchant[\'sex\']) && $merchant[\'sex\'] == \'2\') { ?> selected=\"selected\" <?php } ?>>unisex [унисекс]</option>\n                    </select>\n                  </div>\n                </div>\n\n               <!-- МАТЕРИАЛ ИНПУТ -->\n                <div class=\"form-group\">\n                  <label class=\"col-sm-2 control-label\" for=\"input-merchant-material\">Материал</label>\n                  <div class=\"col-sm-10\">\n                    <input type=\"text\" name=\"merchant[material]\" value=\"<?php if(isset($merchant[\'material\'])){ echo $merchant[\'material\']; } ?>\" placeholder=\"Материал\" id=\"input-merchant-material\" class=\"form-control\" />\n                  </div>\n                </div>\n\n                <!-- СОСТОЯНИЕ ИНПУТ -->\n                <div class=\"form-group\">\n                  <label class=\"col-sm-2 control-label\" for=\"input-merchant-material\">Состояние</label>\n                  <div class=\"col-sm-10\">\n                    <select name=\"merchant[state]\" id=\"input-tax-class\" class=\"form-control\">\n                    <option value=\"0\"<?php if (!isset($merchant[\'state\']) or $merchant[\'state\'] == \'0\') { ?> selected=\"selected\" <?php } ?>>new [новый]</option>\n                    <option value=\"1\"<?php if (isset($merchant[\'state\']) && $merchant[\'state\'] == \'1\') { ?> selected=\"selected\" <?php } ?>>refurbished [восстановленный]</option>\n                    <option value=\"2\"<?php if (isset($merchant[\'state\']) && $merchant[\'state\'] == \'2\') { ?> selected=\"selected\" <?php } ?>>used [б/у]</option>\n                    </select>\n                  </div>\n                </div>\n                  </div>\n                </div>\n                <div class=\"jumbotron jumbotron-fluid\">\n                  <div class=\"container\">\n                    <p><strong>Произвольные теги</strong></p>\n                    <div class=\"table-responsive\">\n                      <table id=\"merchant-tags\" class=\"table table-striped table-bordered table-hover\">\n                        <thead>\n                        <tr>\n                          <td class=\"text-left\" style=\"width: 40%;\">Название</td>\n                          <td class=\"text-left\" style=\"width: 50%;\">Значение</td>\n                          <td></td>\n                        </tr>\n                        </thead>\n                        <tbody>\n\n                        <?php $merchant_row = 0; ?>\n                        <?php foreach ($merchant_tags as $tag) { ?>\n                        <tr id=\"merchant-row<?php echo $merchant_row; ?>\">\n                          <td class=\"text-left\" style=\"width: 40%;\">\n                            <input type=\"text\" name=\"merchant_tags[<?php echo $merchant_row; ?>][name]\" value=\"<?php echo $tag[\'name\']; ?>\" placeholder=\"<?php echo $entry_attribute; ?>\" class=\"form-control\" />\n                          </td>\n                          <td class=\"text-left\" style=\"width: 50%;\">\n                            <textarea name=\"merchant_tags[<?php echo $merchant_row; ?>][value]\" rows=\"3\" placeholder=\"<?php echo $entry_text; ?>\" class=\"form-control\"><?php echo $tag[\'value\']; ?></textarea>\n                          </td>\n                          <td class=\"text-left\"><button type=\"button\" onclick=\"$(\'#merchant-row<?php echo $merchant_row; ?>\').remove();\" data-toggle=\"tooltip\" title=\"<?php echo $button_remove; ?>\" class=\"btn btn-danger\"><i class=\"fa fa-minus-circle\"></i></button></td>\n                        </tr>\n                        <?php $merchant_row++; ?>\n                        <?php } ?>\n                        </tbody>\n                        <tfoot>\n                        <tr>\n                          <td colspan=\"2\"></td>\n                          <td class=\"text-left\"><button type=\"button\" onclick=\"addMerchantTag();\" data-toggle=\"tooltip\" title=\"<?php echo $button_attribute_add; ?>\" class=\"btn btn-primary\"><i class=\"fa fa-plus-circle\"></i></button></td>\n                        </tr>\n                        </tfoot>\n                      </table>\n                    </div>\n                  </div>\n                </div>\n              </div>\n            </div>]]></add>\n          </operation>\n        <operation error=\"skip\">\n        <search><![CDATA[<li><a href=\"#tab-design\" data-toggle=\"tab\"><?php echo $tab_design; ?></a></li>]]></search>\n        <add position=\"after\"><![CDATA[<li><a href=\"#tab-merchant\" data-toggle=\"tab\">Google Merchant</a></li>]]></add>\n      </operation>\n      <operation error=\"skip\">\n        <search><![CDATA[var attribute_row = <?php echo $attribute_row; ?>;]]></search>\n        <add position=\"before\"><![CDATA[    var merchant_row = <?php echo $merchant_row; ?>;\n    function addMerchantTag() {\n    html  = \'<tr id=\"merchant-row\' + merchant_row + \'\">\';\n    html += \'<td class=\"text-left\" style=\"width: 40%;\"><input type=\"text\" name=\"merchant_tags[\' + merchant_row + \'][name]\" value=\"\" placeholder=\"Название тега\" class=\"form-control\"/></td>\';\n    html += \'<td class=\"text-left\" style=\"width: 50%;\">\';\n    html += \'<textarea name=\"merchant_tags[\' + merchant_row + \'][value]\" rows=\"3\" placeholder=\"Значение\" class=\"form-control\"></textarea>\';\n    html += \'  </td>\';\n    html += \'  <td class=\"text-left\"><button type=\"button\" onclick=\"$(\\\'#merchant-row\' + merchant_row + \'\\\').remove();\" data-toggle=\"tooltip\" title=\"<?php echo $button_remove; ?>\" class=\"btn btn-danger\"><i class=\"fa fa-minus-circle\"></i></button></td>\';\n    html += \'</tr>\';\n\n    $(\'#merchant-tags tbody\').append(html);\n\n    merchant_row++;\n    }]]></add>\n      </operation>\n  </file>\n    <file path=\"admin/model/catalog/product.php\">\n      <operation error=\"skip\">\n      <search><![CDATA[if (isset($data[\'product_attribute\'])) {]]></search>\n      <add position=\"before\"><![CDATA[// Merchant insert\n        $merch_count = 0;\n        foreach ($data[\'merchant\'] as $item){\n            if(!empty($item)){\n                $merch_count++;\n            }\n        }\n        if($data[\'merchant\'][\'enable\'] == 0 or $merch_count >= 1){\n            $sql =  \"INSERT INTO \" . DB_PREFIX . \"product_merchant SET product_id = \'\" . (int)$product_id . \"\', enable = \'\" . (int)$data[\'merchant\'][\'enable\'] . \"\', sex = \'\" . (int)$data[\'merchant\'][\'sex\'] . \"\', material = \'\" . $data[\'merchant\'][\'material\'] . \"\', state = \'\" . $data[\'merchant\'][\'state\'] . \"\'\";\n            if(isset($data[\'merchant\'][\'size_type\'])){\n                $sql .= \", size_type = \'\" . $data[\'merchant\'][\'size_type\'] . \"\'\";\n            }\n            if(isset($data[\'merchant\'][\'size_text\'])){\n                $sql .= \", size_text = \'\" . $data[\'merchant\'][\'size_text\'] . \"\'\";\n            }\n            if(isset($data[\'merchant\'][\'size_option_id\'])){\n                $sql .= \", size_option_id = \'\" . $data[\'merchant\'][\'option_id\'] . \"\'\";\n            }\n            $this->db->query($sql);\n        }]]></add> \n      </operation>     \n      <operation error=\"skip\">\n      <search><![CDATA[$this->cache->delete(\'product\');]]></search>\n      <add position=\"before\"><![CDATA[$this->db->query(\"DELETE FROM \" . DB_PREFIX . \"merchant_tags WHERE product_id = \'\" . (int)$product_id . \"\'\");]]></add>\n    </operation>\n\n    <operation error=\"skip\">\n      <search><![CDATA[if (!empty($data[\'product_attribute\'])) {]]></search>\n      <add position=\"before\"><![CDATA[\n                // Merchant update\n        $merch_count = 0;\n        foreach ($data[\'merchant\'] as $item){\n            if(!empty($item)){\n                $merch_count++;\n            }\n        }\n         if($data[\'merchant\'][\'enable\'] == 0 or $merch_count >= 1){\n            $this->db->query(\"DELETE FROM \" . DB_PREFIX . \"product_merchant WHERE product_id = \'\" . (int)$product_id . \"\'\");\n            $sql =  \"INSERT INTO \" . DB_PREFIX . \"product_merchant SET product_id = \'\" . (int)$product_id . \"\', enable = \'\" . (int)$data[\'merchant\'][\'enable\'] . \"\', sex = \'\" . (int)$data[\'merchant\'][\'sex\'] . \"\', material = \'\" . $data[\'merchant\'][\'material\'] . \"\', state = \'\" . $data[\'merchant\'][\'state\'] . \"\'\";\n            if(isset($data[\'merchant\'][\'size_type\'])){\n                $sql .= \", size_type = \'\" . $data[\'merchant\'][\'size_type\'] . \"\'\";\n            }\n            if(isset($data[\'merchant\'][\'size_text\'])){\n                $sql .= \", size_text = \'\" . $data[\'merchant\'][\'size_text\'] . \"\'\";\n            }\n            if(isset($data[\'merchant\'][\'size_option_id\'])){\n                $sql .= \", size_option_id = \'\" . $data[\'merchant\'][\'option_id\'] . \"\'\";\n            }\n            $this->db->query($sql);\n        }]]></add>\n      </operation>\n      <operation error=\"skip\">\n          <search><![CDATA[   $query = $this->db->query(\"SELECT DISTINCT *, (SELECT keyword FROM \" . DB_PREFIX . \"url_alias WHERE query = \'product_id=\" . (int)$product_id . \"\' LIMIT 1) AS keyword FROM \" . DB_PREFIX . \"product p LEFT JOIN \" . DB_PREFIX . \"product_description pd ON (p.product_id = pd.product_id) WHERE p.product_id = \'\" . (int)$product_id . \"\' AND pd.language_id = \'\" . (int)$this->config->get(\'config_language_id\') . \"\'\");\n]]></search>\n          <add position=\"replace\"><![CDATA[    $query = $this->db->query(\"SELECT DISTINCT *, (SELECT keyword FROM \" . DB_PREFIX . \"url_alias WHERE query = \'product_id=\" . (int)$product_id . \"\' LIMIT 1) AS keyword FROM \" . DB_PREFIX . \"product p LEFT JOIN \" . DB_PREFIX . \"product_description pd ON (p.product_id = pd.product_id) LEFT JOIN \" . DB_PREFIX . \"product_merchant pm ON (p.product_id = pm.product_id) WHERE p.product_id = \'\" . (int)$product_id . \"\' AND pd.language_id = \'\" . (int)$this->config->get(\'config_language_id\') . \"\'\");\n]]></add>\n        </operation>\n  </file>\n\n\n<file path=\"admin/controller/catalog/product.php\">\n    <operation error=\"skip\">\n      <search><![CDATA[$this->load->model(\'design/layout\');]]></search>\n      <add position=\"before\"><![CDATA[\n// Merchant\n        if(isset($this->request->post[\'merchant_tags\'])){\n            $data[\'merchant_tags\'] = $this->request->post[\'merchant_tags\'];\n        }elseif(isset($this->request->get[\'product_id\'])){\n            $this->load->model(\'extension/feed/google_base\');\n            $data[\'merchant_tags\'] = $this->model_extension_feed_google_base->getMerchantTagsByProductID($this->request->get[\'product_id\']);\n        }else{\n            $data[\'merchant_tags\'] = array();\n        }\n        if(isset($product_info[\'size_type\'])){\n            $data[\'merchant\'][\'size_type\'] = $product_info[\'size_type\'];\n        }elseif(isset($this->request->post[\'merchant\'][\'size_type\'])){\n            $data[\'merchant\'][\'size_type\'] = $this->request->post[\'merchant\'][\'size_type\'];\n        }\n        if(isset($product_info[\'size_text\'])) {\n            $data[\'merchant\'][\'size_text\'] = $product_info[\'size_text\'];\n        }elseif(isset($this->request->post[\'merchant\'][\'size_text\'])) {\n            $data[\'merchant\'][\'size_text\'] = $this->request->post[\'merchant\'][\'size_text\'];\n        }\n        if(isset($product_info[\'size_text\'])) {\n            $data[\'merchant\'][\'size_option_id\'] = $product_info[\'size_option_id\'];\n        }elseif(isset($this->request->post[\'merchant\'][\'size_option_id\'])) {\n            $data[\'merchant\'][\'size_option_id\'] = $this->request->post[\'merchant\'][\'size_option_id\'];\n        }\n        if(isset($product_info[\'sex\'])) {\n            $data[\'merchant\'][\'sex\'] = $product_info[\'sex\'];\n        }elseif(isset($this->request->post[\'merchant\'][\'sex\'])) {\n            $data[\'merchant\'][\'sex\'] = $this->request->post[\'merchant\'][\'sex\'];\n        }\n        if(isset($product_info[\'material\'])) {\n            $data[\'merchant\'][\'material\'] = $product_info[\'material\'];\n        }elseif(isset($this->request->post[\'merchant\'][\'sex\'])) {\n            $data[\'merchant\'][\'material\'] = $this->request->post[\'merchant\'][\'material\'];\n        }\n        if(isset($product_info[\'state\'])) {\n            $data[\'merchant\'][\'state\'] = $product_info[\'state\'];\n        }elseif(isset($this->request->post[\'merchant\'][\'state\'])) {\n            $data[\'merchant\'][\'state\'] = $this->request->post[\'merchant\'][\'state\'];\n        }\n        if(isset($product_info[\'enable\'])) {\n            $data[\'merchant\'][\'enable\'] = $product_info[\'enable\'];\n        }elseif(isset($this->request->post[\'merchant\'][\'enable\'])) {\n            $data[\'merchant\'][\'enable\'] = $this->request->post[\'merchant\'][\'enable\'];\n        }\n        ]]></add>\n    </operation>\n    <operation error=\"skip\">\n      <search><![CDATA[$this->model_catalog_product->addProduct($this->request->post);]]></search>\n      <add position=\"replace\"><![CDATA[$last_product_id = $this->model_catalog_product->addProduct($this->request->post);]]></add>\n    </operation>\n    <operation error=\"skip\">\n      <search><![CDATA[$this->model_catalog_product->editProduct($this->request->get[\'product_id\'], $this->request->post);]]></search>\n      <add position=\"after\"><![CDATA[//merchant3\n            $this->load->model(\'extension/feed/google_base\');\n            $this->model_extension_feed_google_base->deleteAllMerchantTags($this->request->get[\'product_id\']);\n            if(isset($this->request->post[\'merchant_tags\'])){\n                foreach ($this->request->post[\'merchant_tags\'] as $tag){\n                    $this->model_extension_feed_google_base->setMerchantTag($this->request->get[\'product_id\'], $tag);\n                }\n\n            }]]></add>\n    </operation>\n  <operation error=\"skip\">\n      <search><![CDATA[$this->model_catalog_product->addProduct($this->request->post);]]></search>\n      <add position=\"after\"><![CDATA[$this->load->model(\'extension/feed/google_base\');\n                if(isset($this->request->post[\'merchant_tags\'])){\n                    foreach ($this->request->post[\'merchant_tags\'] as $tag){\n                        $this->model_extension_feed_google_base->setMerchantTag($last_product_id, $tag);\n                    }\n                    }]]></add>\n    </operation>\n</file>\n</modification>', 1, '2021-12-01 18:11:01'),
(32, 'Filter Just 0.2', 'filter_just', 'John Doe', '1', '', '<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<modification>\n  <name>Filter Just 0.2</name>\n  <code>filter_just</code>\n  <version>1</version>\n  <author>John Doe</author>\n  <link></link>\n  <file path=\"catalog/controller/product/category.php\">\n  <operation>\n      <search>\n        <![CDATA[public function index() {]]>\n      </search>\n      <add position=\"after\">\n        <![CDATA[$this->document->addScript(\'catalog/view/javascript/bootstrap/js/bootstrap-slider.js\');\n    $this->document->addStyle(\'catalog/view/javascript/bootstrap/css/bootstrap-slider.css\');]]>\n      </add>\n    </operation>\n  </file>\n  <file path=\"catalog/model/catalog/category.php\">\n  <operation>\n      <search>\n        <![CDATA[getCategoryFilters($category_id)]]>\n      </search>\n      <add position=\"replace\">\n        <![CDATA[getCategoryFiltersNotUse($category_id)]]>\n      </add>\n    </operation>\n  <operation>\n      <search>\n        <![CDATA[public function getCategories]]>\n      </search>\n      <add position=\"before\">\n        <![CDATA[\n      public function getCategoryFilters($category_id) {\n              $query = $this->db->query(\"\n              SELECT pa.attribute_id, pa.text, ades.name, 0 as manf_id, 2 as fororder FROM \" . DB_PREFIX . \"product_attribute pa \n                  INNER JOIN \" . DB_PREFIX . \"product_to_category ptc ON (ptc.product_id = pa.product_id and ptc.category_id = \'\" . (int)$category_id . \"\') \n                  LEFT JOIN \" . DB_PREFIX . \"attribute_description ades ON (pa.attribute_id = ades.attribute_id AND ades.language_id = \'\" . (int)$this->config->get(\'config_language_id\') . \"\') \n                  INNER JOIN \" . DB_PREFIX . \"product p ON(pa.product_id = p.product_id)\n                  WHERE p.status = 1 AND pa.language_id = \'\" . (int)$this->config->get(\'config_language_id\') . \"\' \n              UNION SELECT \'manf\', manf.name, \'Производитель\', manf.manufacturer_id as manf_id, 1 FROM \" . DB_PREFIX . \"product_to_category ptc \n                  INNER JOIN \" . DB_PREFIX . \"product pr ON (pr.product_id = ptc.product_id AND ptc.category_id = \'\" . (int)$category_id . \"\') INNER JOIN \" . DB_PREFIX . \"manufacturer manf ON (pr.manufacturer_id = manf.manufacturer_id) \n              UNION SELECT \'price\', min(pr.price), \'Цена\', max(pr.price) as manf_id, 0 FROM \" . DB_PREFIX . \"product_to_category ptc \n                  INNER JOIN \" . DB_PREFIX . \"product pr ON (pr.product_id = ptc.product_id AND ptc.category_id = \'\" . (int)$category_id . \"\') ORDER BY fororder, attribute_id, text\");\n          $filter_group_data = array();\n          foreach ($query->rows as $result) {\n            $filter_group_data[$result[\'attribute_id\']][\'filter_group_id\'] = $result[\'attribute_id\'];\n            $filter_group_data[$result[\'attribute_id\']][\'name\'] = $result[\'name\'];\n            $filter_group_data[$result[\'attribute_id\']][\'filter\'][] = array(\'filter_id\' => $result[\'attribute_id\'] == \'price\' ? $result[\'manf_id\'] : ($result[\'attribute_id\'] . \'[\' . (($result[\'attribute_id\'] == \'manf\') ? $result[\'manf_id\'] : $result[\'text\']) . \']\'), \'name\' => $result[\'text\']);\n          }\n          return $filter_group_data;\n        }]]>\n      </add>\n    </operation>\n  </file>\n  <file path=\"catalog/model/catalog/product.php\">\n  <operation>\n      <search>\n        <![CDATA[$sql .= \" LEFT JOIN \" . DB_PREFIX . \"product_filter pf ON (p2c.product_id = pf.product_id) LEFT JOIN \" . DB_PREFIX . \"product p ON (pf.product_id = p.product_id)\";]]>\n      </search>\n      <add position=\"replace\">\n        <![CDATA[$filters = explode(\'],\', $data[\'filter_filter\']);\n        $where_arr = array();\n        foreach ($filters as $filter_id) {\n            if(end($filters) != $filter_id){$filter_id  .= \"]\";}\n          //$arr = preg_split(\'/[\\[,\\]]/\',$filter_id);\n          $arr = preg_split(\'/[\\[\\]]/\',$filter_id);\n          if (count($arr) > 1) {\n            $where_arr[$arr[0]][] = $arr[1];\n          }\n        }\n        $sql .= \" LEFT JOIN \" . DB_PREFIX . \"product p ON (p2c.product_id = p.product_id)\";\n        foreach ($where_arr as $key => $value) {\n          if ($key == \'manf\') {\n            \n\n          } elseif ($key == \'minprice\') {\n            \n\n          } elseif ($key == \'maxprice\') {\n            \n\n          }\n          else {\n            $sql .= \" LEFT JOIN \" . DB_PREFIX . \"product_attribute pa\" . $key . \" ON (p2c.product_id = pa\" . $key . \".product_id AND pa\" . $key . \".attribute_id = \" . $key . \")\";\n          }\n        }\n        \n        ]]>\n      </add>\n    </operation>\n  <operation>\n      <search>\n        <![CDATA[$sql .= \" AND pf.filter_id IN (\" . implode(\',\', $implode) . \")\";]]>\n      </search>\n      <add position=\"replace\">\n        <![CDATA[$where_arr = array();\n        foreach ($filters as $filter_id) {            \n        if(end($filters) != $filter_id){$filter_id  .= \"]\";}\n          $arr = preg_split(\'/[\\[\\]]/\',$filter_id);\n          if (count($arr) > 1) {\n            $where_arr[$arr[0]][] = $arr[1];\n          }\n        }\n        foreach ($where_arr as $key => $value) {\n          if ($key == \'manf\') {\n            $sql .= \" AND (0=1\";\n            foreach ($value as $wvalue) {\n              $sql .= \" OR p.manufacturer_id = \" . (int)$wvalue;\n            }\n            $sql .= \")\";\n          }\n          elseif ($key == \'minprice\') {\n            $sql .= \" AND p.price >= \" . (float)$value[0];\n          }\n          elseif ($key == \'maxprice\') {\n            $sql .= \" AND p.price <= \" . (float)$value[0];\n          }\n          else {\n            $sql .= \" AND (0=1\";\n            foreach ($value as $wvalue) {\n              $sql .= \" OR pa\" . $key . \".text = \'\" . addslashes($wvalue) . \"\'\";\n            }\n            $sql .= \")\";\n          }\n        }\n    ]]>\n      </add>\n    </operation>\n      <operation>\n      <search>\n        <![CDATA[$implode[] = (int)$filter_id;]]>\n      </search>\n      <add position=\"before\">\n        <![CDATA[if(end($filters) != $filter_id){$filter_id  .= \"]\";}]]>\n      </add>\n    </operation>  \n      <operation>\n      <search>\n        <![CDATA[$filters = explode(\',\', $data[\'filter_filter\']);]]>\n      </search>\n      <add position=\"replace\">\n        <![CDATA[$filters = explode(\'],\', $data[\'filter_filter\']);]]>\n      </add>\n    </operation>\n    <operation>\n      <search>\n        <![CDATA[public function getTotalProducts($data = array()) {]]>\n      </search>\n      <add position=\"before\">\n        <![CDATA[   \n        \n    private function KeyIsInt($array){\n        foreach ($array as $key => $item) {\n            if(is_int($key)){\n                return true;\n            }else{\n                return false;\n            }\n        }\n    }\n         public function getTotalProductsByFilter($data = array(), $filter_type = false)\n    {\n        $filters = explode(\'],\', $data[\'filter_filter\']);\n        $where_arr = array();\n        foreach ($filters as $filter_id) {\n            if (end($filters) != $filter_id) {\n                $filter_id .= \"]\";\n            }\n            //$arr = preg_split(\'/[\\[,\\]]/\',$filter_id);\n            $arr = preg_split(\'/[\\[\\]]/\', $filter_id);\n            if (count($arr) > 1) {\n                $where_arr[$arr[0]][] = $arr[1];\n            }\n        }\n\n\n        $sql = \"SELECT count(*) AS total FROM `oc_product_to_category` ptc\";\n\n        $sql .= \" LEFT JOIN `oc_product_attribute` pa ON(ptc.product_id = pa.product_id)\";\n\n        $sql .= \" LEFT JOIN `oc_product` p ON(ptc.product_id = p.product_id) WHERE\";\n\n        if ($filter_type != \'manf\' and isset($where_arr[\'manf\']) and (count($where_arr[\'manf\']) > 1)) {\n            for ($c = 0; $c < count($where_arr[\'manf\']); $c++){\n                if($where_arr[\'manf\'] > 0 and $c == 0){\n                    $sql .= \" (p.manufacturer_id = \'\" . intval($where_arr[\'manf\'][$c]) .\"\'\";\n                }\n                elseif(($c+1) == count($where_arr[\'manf\'])){\n                    $sql .= \" OR p.manufacturer_id = \'\" . intval($where_arr[\'manf\'][$c]) .\"\') AND\";\n                }\n                else{\n                    $sql .= \" OR p.manufacturer_id = \'\" . intval($where_arr[\'manf\'][$c]) .\"\'\";\n                }\n            }\n        }elseif(isset($where_arr[\'manf\'])){\n            $sql .= \" p.manufacturer_id = \'\" . intval(end($where_arr[\'manf\'])) .\"\' AND\";\n        }\n\n        $i = 0;\n        if ($this->KeyIsInt($where_arr)) {\n            //перебор атрибутов\n            foreach ($where_arr as $key => $value) {\n                //атрибут ли\n                if (is_int($key)) {\n                    if ($i == 0) {\n                        $sql .= \" ((pa.attribute_id = \'\" . $key . \"\' AND pa.text = \'\" . addslashes($value[0]) . \"\')\";\n                    }else{\n                        $sql .= \" OR (pa.attribute_id = \'\" . $key . \"\' AND pa.text = \'\" . addslashes($value[0]) . \"\') \";\n                    }\n                    $i++;\n                }\n            }\n            $sql .= \") AND\";\n        }\n        $sql .= \" ptc.category_id = \'\" . $data[\'filter_category_id\'] . \"\' AND pa.language_id = \'\". (int)$this->config->get(\'config_language_id\')  .\"\' AND p.status = 1\";\n        if($i > 1){\n            $sql .= \" GROUP BY p.product_id HAVING count(*) = \'\" . (int)$i . \"\'\";\n            $sql = \"SELECT count(*) as total FROM (\" . $sql . \") total\";\n        }elseif(isset($where_arr[\'manf\'])){\n            $sql .= \" GROUP BY p.product_id\";\n            $sql = \"SELECT count(*) as total FROM (\" . $sql . \") total\";\n        }\n\n        $query = $this->db->query($sql);\n        //print_r($sql . PHP_EOL);die();\n        //var_dump($query);die();\n        return $query->row[\'total\'];\n\n    }]]>\n      </add>\n    </operation>\n  </file>\n</modification>', 1, '2021-12-01 18:21:54'),
(33, 'UniXML 7.5', 'UniXML', 'prut.n.v@gmail.com', '7.5', 'https://unixml.pro', '<modification>\n	<name>UniXML 7.5</name>\n	<code>UniXML</code>\n	<version>7.5</version>\n	<author>prut.n.v@gmail.com</author>\n	<link><![CDATA[https://unixml.pro]]></link>\n\n	<file path=\"admin/view/template/common/header.{tpl,twig}\">\n    <operation error=\"skip\">\n        <search><![CDATA[<script src=\"https://ajax.googleapis.com/ajax/libs/jqueryui/1.11.4/jquery-ui.min.js\"></script>]]></search>\n				<add position=\"replace\"><![CDATA[]]></add>\n    </operation>\n    <operation error=\"skip\">\n        <search><![CDATA[<script type=\"text/javascript\" src=\"view/javascript/bootstrap/js/bootstrap.min.js\"></script>]]></search>\n				<add position=\"before\"><![CDATA[\n					<script src=\"https://ajax.googleapis.com/ajax/libs/jqueryui/1.11.4/jquery-ui.min.js\"></script>\n				]]></add>\n    </operation>\n	</file>\n\n</modification>\n', 1, '2025-06-25 15:51:55'),
(34, 'SL Auto-Translater', 'ATSL', 'illats', '1.0', 'https://nocturne.com.ua', '<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<modification>\n    <name>SL Auto-Translater</name>\n    <code>ATSL</code>\n    <version>1.0</version>\n    <author>illats</author>\n    <link>https://nocturne.com.ua</link>\n    <file path=\"catalog/view/theme/coloring/template/common/header.tpl\">\n        <operation>\n            <search><![CDATA[<?php foreach ($analytics as $analytic) { ?>]]></search>\n            <add position=\"before\"><![CDATA[\n                <script src=\"https://cdnjs.cloudflare.com/ajax/libs/jquery-cookie/1.4.1/jquery.cookie.min.js\"></script>\n            <script src=\"//translate.google.com/translate_a/element.js?cb=TranslateInit\"></script>]]></add>\n        </operation>\n    </file>\n        <file path=\"catalog/controller/common/language.php\">\n        <operation>\n            <search><![CDATA[return $this->load->view(\'common/language\', $data);]]></search>\n            <add position=\"before\"><![CDATA[$data[\'auto_translater\'][\'languages\'] =  $this->config->get(\'auto_translater_languages\');\n            $data[\'auto_translater\'][\'status\'] =   $this->config->get(\'auto_translater_status\');\n            if(isset($_COOKIE[\'googtrans\']) and $_COOKIE[\'googtrans\'] !== \"null\"){\n                $data[\'auto_translater\'][\'current_lang\'] = substr($_COOKIE[\'googtrans\'],-2);\n            }else{\n                $data[\'auto_translater\'][\'current_lang\'] = substr($this->config->get(\'config_language\'),0,2);\n            } // в модификатор\n            $data[\'auto_translater\'][\'default_lang\'] = substr($this->config->get(\'config_language\'),0,2);]]></add>\n        </operation>\n    </file>\n       \n        <file path=\"catalog/view/theme/coloring/template/common/language.tpl\">\n        <operation>\n            <search><![CDATA[<?php if (count($languages) > 1) { ?>]]></search>\n            <add position=\"replace\"><![CDATA[<?php if (count($languages) > 1 and $auto_translater[\'status\'] != 1) { ?>]]></add>\n        </operation>\n        <operation>\n            <search index=\"4\"><![CDATA[<?php } ?>]]></search>\n            <add position=\"replace\"><![CDATA[<?php } elseif(count($auto_translater[\'languages\']) > 1 and $auto_translater[\'status\'] == 1){ ?>\n<div class=\"pull-left\">\n<form action=\"<?php echo $action; ?>\" method=\"post\" enctype=\"multipart/form-data\" id=\"language\">\n  <div class=\"btn-group\">\n    <button class=\"btn dropdown-toggle\" data-toggle=\"dropdown\">\n       <span class=\"\"><strong><span class=\"fa fa fa-angle-down caretalt\"></span>&nbsp;&nbsp;<img src=\"/catalog/view/javascript/auto_translater/<?=$auto_translater[\'current_lang\']?>.jpg\"></strong></span>&nbsp;</button>\n    \n    <ul class=\"dropdown-menu\">\n      <?php foreach($auto_translater[\'languages\'] as $code => $name) { ?>\n        <li><a href=\"#\" alt=\"<?=$code?>\" data-google-lang=\"<?=$code?>\"><img src=\"/catalog/view/javascript/auto_translater/<?=$code?>.jpg\"></a></li>\n      <?php } ?>\n    </ul>\n  </div>\n  <input type=\"hidden\" name=\"code\" value=\"\" />\n  <input type=\"hidden\" name=\"redirect\" value=\"<?php echo $redirect; ?>\" />\n</form>\n</div>\n<style>\n  body{\n    top: 0px !important;\n  }\n  .skiptranslate {\n    display: none !important;\n}\n</style>\n<script>\n      if (typeof googleTranslateConfig == \'undefined\') {\n          var googleTranslateConfig = {\n            lang: \"<?=$auto_translater[\'default_lang\']?>\",\n        }\n    };\n\nfunction TranslateInit() {\n\n    let code = TranslateGetCode();\n    if (code == googleTranslateConfig.lang) {\n        // Если язык по умолчанию, совпадает с языком на который переводим\n        // То очищаем куки\n        TranslateClearCookie();\n    }\n\n    // Инициализируем виджет с языком по умолчанию\n    new google.translate.TranslateElement({\n        pageLanguage: googleTranslateConfig.lang,\n    });\n\n    // Вешаем событие клик на флаги\n    $(\'[data-google-lang]\').click(function () {\n        TranslateSetCookie($(this).attr(\"data-google-lang\"))\n\n        // Перезагружаем страницу\n        window.location.reload();\n    });\n}\n\nfunction TranslateGetCode() {\n    // Если куки нет, то передаем дефолтный язык\n    let lang = ($.cookie(\'googtrans\') != undefined && $.cookie(\'googtrans\') != \"null\") ? $.cookie(\'googtrans\') : googleTranslateConfig.lang;\n    return lang.substr(-2);\n}\n\nfunction TranslateClearCookie() {\n    $.cookie(\'googtrans\', null);\n    $.cookie(\"googtrans\", null, {\n        domain: \".\" + document.domain,\n    });\n}\n\nfunction TranslateSetCookie(code) {\n    // Записываем куки /язык_который_переводим/язык_на_который_переводим\n    $.cookie(\'googtrans\', \"/auto/\" + code);\n    $.cookie(\"googtrans\", \"/auto/\" + code, {\n        domain: \".\" + document.domain,\n    });\n}\n</script>\n<?php } ?>]]></add>\n        </operation>\n    </file>\n</modification>', 1, '2025-07-09 08:18:48'),
(35, 'Last \"Not available\"', 'not_available_last', 'opencart2x.ru', '1.1', 'https://opencart2x.ru', '<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n<modification>\r\n  <name>Last \"Not available\"</name>\r\n  <code>not_available_last</code>\r\n  <version>1.1</version>\r\n  <author>opencart2x.ru</author>\r\n  <link>https://opencart2x.ru</link>\r\n<file path=\"catalog/model/catalog/product.php\">\r\n        <operation>\r\n        <search><![CDATA[$sql .= \" ORDER BY p.sort_order\";]]></search>\r\n        <add position=\"replace\"><![CDATA[$sql .= \" ORDER BY p.quantity DESC, p.sort_order\";]]></add>\r\n        </operation>\r\n  </file>\r\n  <file path=\"catalog/controller/product/category.php\">\r\n    <operation>\r\n        <search><![CDATA[$sort = \'p.sort_order\';]]></search>\r\n        <add position=\"replace\"><![CDATA[$sort = \'p.quantity\';]]></add>\r\n        </operation>\r\n      <operation>\r\n        <search><![CDATA[$order = \'ASC\';]]></search>\r\n        <add position=\"replace\"><![CDATA[$order = \'DESC\';]]></add>\r\n        </operation>\r\n  </file>\r\n</modification>', 1, '2025-07-09 09:33:40'),
(36, 'Delete images All', 'delete_images_ocmod', 'https://ocmod.net', '2.x', 'https://ocmod.net', '<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n<modification>\r\n   <name>Delete images All</name>\r\n   <code>delete_images_ocmod</code>\r\n   <version>2.x</version>\r\n   <link>https://ocmod.net</link>\r\n   <author>https://ocmod.net</author>\r\n\r\n	<file path=\"admin/model/catalog/product.php\">\r\n		<operation error=\"skip\">\r\n			<search ><![CDATA[\r\n		public function deleteProduct($product_id) {\r\n		]]></search>\r\n			<add position=\"replace\"><![CDATA[\r\n	private function delete_image($path) {\r\n		if (isset($path)) {\r\n			$path = rtrim(DIR_IMAGE  . $path);\r\n\r\n			if (!file_exists($path)) {\r\n				$error= 1;\r\n			}\r\n\r\n			if ($path == rtrim(DIR_IMAGE . \'catalog/\', \'/\')) {\r\n				$error = 1;\r\n			}\r\n		} else {\r\n			$error = 1;\r\n		}\r\n\r\n		if (!$this->user->hasPermission(\'modify\', \'common/filemanager\')) {\r\n      		$error = 1;  \r\n    	}\r\n\r\n		if (!isset($error)) {\r\n			if (is_file($path)) {\r\n				unlink($path);\r\n			} elseif (is_dir($path)) {\r\n				//$this->recursiveDelete($path);\r\n			}\r\n\r\n		}				\r\n\r\n	}\r\n\r\n	public function deleteProduct($product_id) {\r\n		\r\n	$query = $this->db->query(\"SELECT p.image FROM \" . DB_PREFIX . \"product p WHERE p.product_id = \'\" . (int)$product_id . \"\'\");\r\n		\r\n		if($query->row){\r\n			$this->delete_image($query->row[\'image\']);\r\n\r\n			$results = $this->getProductImages($product_id);\r\n\r\n			foreach ($results as $result) {\r\n				$this->delete_image($result[\'image\']);\r\n			}\r\n		}\r\n	\r\n	]]></add>\r\n		</operation>\r\n	</file>	\r\n</modification>\r\n', 1, '2025-07-21 08:02:17');

-- --------------------------------------------------------

--
-- Структура таблиці `oc_module`
--

