-
Публікації
83 -
З нами
Відвідувачі профілю
Блок відвідувачів профілю відключений і не буде доступний широкому іншим користувачам
maaby's Achievements
-
Добрый день. На версии php 8.2 не работает автокомплит при редактировании и добавлении товара на вкладке "Итоги" (в полях название и модель). Ваш модуль может работать на версии php 8.2. Но для этого нужно в контроллере admin/controller/sale/OrderManager.php поправить в строке 1151 порядок передачи параметров $results = $this->model_sale_OrderManager->getProducts($language_id, $filter_data); По тому, что в модели admin/model/sale/OrderManager.php порядок следующий (для версий php 8 это важно, параметры должны идти от обязательных к необязательным.): public function getProducts($language_id, $data = array()) {
-
Добрый вечер. В админке, на странице редактирования товара в "Доп. вкладках" если ввести название вкладки с тем же названием, которое уже существует, вылетит ошибка mysql "dublicate entry" из-за того, что поле должно быть уникально. У себя поправил, вот ocmode. <?xml version="1.0" encoding="utf-8"?> <modification> <name>Product Tab NS Duplicate Check</name> <code>product_tab_ns_duplicate_check</code> <version>1.1.0</version> <author></author> <file path="admin/controller/catalog/product.php"> <operation> <search><![CDATA[if ($this->error && !isset($this->error['warning'])) {]]></search> <add position="before"><![CDATA[ // OCMod: product_tab_ns duplicate check if (isset($this->request->post['product_tab_ns']) && is_array($this->request->post['product_tab_ns'])) { $___seen = array(); foreach ($this->request->post['product_tab_ns'] as $___row) { $___id = isset($___row['tabs_ns_id']) ? (int)$___row['tabs_ns_id'] : 0; $___title = isset($___row['title']) ? $___row['title'] : ''; if ($___id) { if (isset($___seen[$___id])) { $this->error['product_tab_ns'] = sprintf($this->language->get('error_product_tab_ns'), $___title); break; } $___seen[$___id] = true; } } } ]]></add> </operation> <operation> <search><![CDATA[if (isset($this->error['name'])) {]]></search> <add position="before"><![CDATA[ if (!isset($data['error_product_tab_ns'])) { $data['error_product_tab_ns'] = isset($this->error['product_tab_ns']) ? $this->error['product_tab_ns'] : ''; } ]]></add> </operation> </file> <file path="admin/language/ru-ru/catalog/product.php"> <operation> <search><![CDATA[$_['error_model']]]></search> <add position="before"><![CDATA[ $_['error_product_tab_ns'] = 'Вкладка «%s» уже добавлена.'; ]]></add> </operation> </file> <file path="admin/language/en-gb/catalog/product.php"> <operation> <search><![CDATA[$_['error_model']]]></search> <add position="before"><![CDATA[ $_['error_product_tab_ns'] = 'Tab "%s" is already added.'; ]]></add> </operation> </file> </modification> Плюс небольшое изменение в вашем ocmode: <li> <input type="text" name="extra_tabs" value="" placeholder="{{ entry_product_tab }}" id="input-extra_tabs" class="form-control" /> /* Start show error */ {% if error_product_tab_ns %} <div class="text-danger" style="margin-top:5px;">{{ error_product_tab_ns }}</div> {% endif %} /* End show error */ </li>
-
Сайт у меня на локалке, но я понял о чем вы. Действительно, у меня есть минимальная стоимость заказа, когда ее убираю, все работает. Должен признать, что это не самая логичная штука оказалась Также я не до конца понял функционал "Корзины" в модуле "Упрощенное оформление заказа" (см. скрин). Что дает добавление товаров сюда? И хочел бы внести предложение (у себя уже реализовал, костыльно, в коде), думаю многим будет интересен такой вариант: Тут есть функционал - изменение доставок в зависимости от страны. Это здорово, но чаще возникает ситуация, когда нужно управлять доставками для разных городов. Например, маленький магазин находится в Киеве и владелец сам развозит заказы, или у него есть курьер или есть возможность самовывоза из магазина. В остальные города он отправляет почтой. Думаю, это очень популярная ситуация. Самый красивый способ реализации (чтобы не добавлять лишние поля типа "регион" - сделать поле "Город" где-нибудь сверху, а не в блоке "адрес доставки" (выше вариантов доставок, чтобы клиент заполняя поля по очереди, сначала выбрал ключевое поле), повесить на него автокомлит (список горовод). Т.е. у нас только одно поле - город (нет избыточных полей - страна и регион). В админке в модуле "Простые способы доставки" там где Гео-зоны, делаем "Условия". Самое сложное - интерпретировать потом эти условия в коде. По этому, как правило там будут предустановки и ограниченные варианты из выпадающих списков. Но это дает нам гибкость, которой сейчас не хватает. Например: Доставка Курьером по Киеву. Условие: отображать если (выпадающий список: Город \ Гео-зона \ Страна ) ( равно \ не равно) (в зависмости от первого поля, тут будут либо список стран, либо городов, либо гео-зон). Т.к. городов много, надо предусмотреть вариант "Для всех". Над реализацией конечно надо будет поковыряться, но, доставки становятся очень гибкие. Легко сделать условия: Отображать если город не равен (Город 1 и Город 2). Отображать если город равен (город 3). Отобаражать если страна не равна (страна 1 и страна 2) Отображать если область равна (область 1 и область 5). И т.д. Бизнес-логику накидал буквально за 15 минут, возможны недоработки, но мне кажется, основная идея понятна. А на фронтэнде вообще менять ничего не надо будет, там у вас отлично сделано, функция shippingUpdate аякс на url: 'index.php?route=checkout/onepcheckout/shipping_method', город \ страна \ регион уже будут в сессии лежать, надо будет только вернуть нужные варианты в зависимости от условий.
-
@29aleksey Добрый день. Подскажите. Это только у меня в админке в модуле "Упрощенное оформление заказа" не работают доставки из модуля "Простые способы доставки"? У вас просто выключен на тестовом. Создаю варианты доставки в модуле "Простые способы доставки", в корзине они отображаются нормально, а вот в модуле "Упрощенное оформление заказа" в админке только один вариант доставки отображается (сейчас для примера 2 оставил, но даже если их будет больше, все равно только первый будет в списке).
-
После обновления с 1.5 (php 7.3) на 1.6 (php 8.3), opencart 3.0.4 В корзине index.php?route=checkout/onepcheckout Ошибка Fatal error: Uncaught TypeError: Unsupported operand types: string - float in storage\modification\catalog\controller\checkout\onepcheckout.php:2759 В $opc_setting_shipping_methods лежит array(1) { ["default"]=> array(3) { ["title"]=> string(23) "По умолчанию" ["free_shipping_status"]=> string(1) "1" ["free_shipping_price"]=> string(0) "" } } А позже в строке 2759 мы выполняем мат. действия $free_shipping_from - $order_sum. $data['text_free_shipping_left'] = sprintf($this->language->get('text_free_shipping_left'), $this->currency->format($free_shipping_from - $order_sum, $this->session->data['currency'])); Я пока просто добавил приведение типов (float)$free_shipping_from, потестирую, может еще что выскочит, напишу.
-
Подскажите, в шаблоне есть частичное заполнение звезд (рейтинг товара)? По Html там есть такая возможность, но по коду вижу округление до целых. Возможно у меня из-за отличий opencart и ocStore что-то не сработало, а в Вашем тестовом шаблоне (https://upstore.waterfilter.in.ua/) этого не видно. Если нет, подскажите, планируется ли этот функционал в следующем обновлении и когда оно будет (просто если долго ждать, сам сделаю).
-
Спасибо, мне не нужно поправлять, я только для вас скинул информацию. Я кстати не подумал, что в ocstore встроен не только перевод, но и модуль статей. А в оригинальном модуле seo_pro https://github.com/eniarku/seo_pro статей нет и этого кода соответственно тоже. Скачаю ocstore, сам гляну. Спасибо за наводку.