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

brest001

Користувачі
  
  • Публікації

    567
  • З нами

  • Відвідування

Повідомлення, опубліковані користувачем brest001

  1. В 09.08.2021 в 10:21, kamrik сказал:

    После обновления появилась ошибка: 

    2021-08-09 7:18:17 - PHP Notice:  Undefined index: user_group_id in /home/h/mysite/test/public_html/system/library/ompro/omproapi.php on line 2180

    Ошибка появляется иногда при включении быстрого редактирования для некоторых кастомных полей Simple.
    Сделал небольшой фикс в файле system\library\ompro\omproapi.php (файл прикрепил).

    Заменять сейчас этот файл есть смысл только если вы работаете с кастомными полями Simple и используете быстрое редактирование этих полей.

    omproapi.php

  2. 20 часов назад, kamrik сказал:

    На стандартном шаблоне  вывода данных то же самое(((

     

    19 часов назад, kamrik сказал:

    Чистая установка не дает результата. Та же ошибка.

    Давайте в личку доступы, будем разбираться.

  3. В 09.08.2021 в 10:21, kamrik сказал:

    После обновления появилась ошибка: 

    2021-08-09 7:18:17 - PHP Notice:  Undefined index: user_group_id in /home/h/mysite/test/public_html/system/library/ompro/omproapi.php on line 2180

    Когда появляется, где?

    Это данные пользователя, запрашиваются по user_id. Т.е. эти данные всегда есть, по идее.

    Как у вас получается, что нет этих данных, я пока не понимаю.

    Можно конечно подправить в omproapi метод userData, чтобы выводить например для user_group_id значение 0, если данные пользователя не найдены, но они должны быть, надо разобраться почему их нет у вас.

  4. @AlektroNik По скрытым копиям буду разбираться позже. Пока не знаю, когда возьмусь

    .

    1 час назад, AlektroNik сказал:

    Кажется, нашел баг. Хотел пачкой писать, но, чувствую, запутаюсь. Буду по чуть-чуть.

    В шаблоне письма в кладке "Настройки" в поле <div> при отправке письма меняет кавычки на &quot;

    Потому что там писать нужно стили, т.е. то что вставляется в атрибут style. Для body у вас на скрине видите как записано? - так и здесь нужно. А классы можно только в коде письма прописывать.

     

    В 09.08.2021 в 14:59, AlektroNik сказал:

    Еще вопрос. А в шаблон писем как правильно вставить стили общие (теги <style> )? Они должны поидее внутри тега <head> быть. Но кажется такой функционал не предусмотрен. Просто не очень хочется для каждого тега в отдельности стили прописывать.

    Как я заметил в письмах лучше прописывать стили для каждого элемента, иначе в ящике может вылезти все что угодно. Поэтому в шаблонах писем я и убрал настройки CSS хотя поначалу были. Так что, лучше делать все аккуратно для каждого элемента и проверять, что получается.

    • +1 1
  5. В 06.08.2021 в 09:44, AlektroNik сказал:

    Первый вариант, почему-то слал только кому-то одному. Жалко конечно, он компактнее.

    Я ошибся в спешке, так не работает.

    В 06.08.2021 в 09:44, AlektroNik сказал:

    Константин, а можно как-то сделать как скрытую копию отправку? Это было бы идеально. Просто так удобно отвечать на это письмо, ответ сразу формируется для покупателя и наглядно видно для кого было отправлено письмо.

    У меня уже добавлена публичная функция SetBcc, если это поможет. Но наверное тогда доработка не будет самодостаточной.

    Я еще со скрытыми копиями не работал, посмотрел пока поверхностно, надо изучить. Ну, и наверно понадобится какая-то настройка в настройках уведомлений, что-то типа "отправить скрытую копию" и поле с адресами, или адреса брать из настроек магазина. Как по вашему это должно выглядеть, чтобы было удобно? Я пока не очень представляю.

    • +1 1
  6. Приветствую!

     

    2 часа назад, AlektroNik сказал:

    Или все же единственный вариант править как минимум /catalog/controller/mail/order.php?

    Это точно нет, модуль этого файла никак не касается.

     

    Письма о новых заказах и об изменении статуса идут через API.

    Так как у вас третья версия магазина, нужен файл catalog\controller\api\ompro.php

    https://prnt.sc/1jghn90

    Для отправки копии письма об изменении статуса можно добавить в массив получателей $recipients например email магазина, что-то типа этого

    					$recipients[] = array(
    						'recipient_name' => '', 'email' => $this->config->get('config_email')
    					);

     

    Только это будет обычное письма, не скрытая копия. Пока вы туда не доберетесь, на будущее подумаю что можно сделать, но пока не обещаю.

    • +1 1
  7. 6 часов назад, kamrik сказал:

    Подскажите, можно ди в шаблоне письма скрывать поля адреса если выбран самовывоз?

    Простого пути нет.

    Но можно, например, доработать в \system\library\ompro\omproapicustom.php метод orderAddingData.

    Проверить условие, если "выбран самовывоз", то нужным полям адреса присвоить пустое значение, они и не будут отображаться.

  8. В 17.07.2021 в 16:47, CONTRAST230 сказал:

    Но честно говоря, я уже сейчас понимаю, что это космос, ибо там админка самописная по всей видимости... ну ладно хоть помечтаем возможно совместными усилиями с @mazein вы создадите что то интересное. 

    Не то чтобы космос, но админку модуля для этого нужно делать еще и для пользовательской части, просто много возни, а смысла пока не очень.

  9. 6 часов назад, CONTRAST230 сказал:

    Привет, 

     

    Крутой у вас вышел модуль, очень хотелось чтобы он был совместим с C2C B2C B2B Marketplace в том, числе и для магазинов.

     

    Есть такая возможность? ;)

     

    Здравствуйте.

    Не понятно, что значит совместим. Что с чем должно совмещаться? Конкретнее можете сформулировать?

    Я этот модуль первый раз вижу, описание мало о чем говорит на счет совместимости.

  10. В 13.07.2021 в 01:11, capkuc сказал:

    а как быть с раскраской? тоже нужно править?

    Сейчас только править, но скорей всего, добавлю настройку для групп, чтобы выбирать, какие списки использовать (с вариантами или без). Доработка сделана, тестирую.

    • +1 2
  11. В 01.07.2021 в 05:35, capkuc сказал:

    В общем мне не столь важно до двери или до ПВЗ, главное фильтровать по названию транспортной.

    Здравствуйте.

    Раньше вопрос так не стоял, в основном наоборот, нужен фильтр с вариантами доставок, поэтому и не делал.

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

    Нужно доработать файл system\library\ompro\omproapi.php

    1. готовим массив доставок без вариантов, например перед методом getShippings (строка 2894) добавляем метод

     

    	public function getShippingsInstalled() {
    		$values = array();
    
    		if ($this->ompro->ocversion >= 300) {
    			$this->load->model('setting/extension');
    			$results = $this->model_setting_extension->getInstalled('shipping');
    		} else {
    			$this->load->model('extension/extension');
    			$results = $this->model_extension_extension->getInstalled('shipping');
    		}
    
    		if ($results) {
    			foreach ($results as $code) {
    				if ($this->ompro->ocversion < 230) {
    					$this->load->language('shipping/'.$code);
    				} else {
    					$this->load->language('extension/shipping/'.$code);
    				}
    
    				$values[] = array(
    					'id'	=> $code,
    					'text'	=> $this->clearTags(trim($this->language->get('heading_title')))
    				);
    			}
    		}
    		$values[] = array( 'id'	=> '*', 'text'	=> '- не указан -' );
    		return $values;
    	}

     

    2. Чтобы при настройке фильтра можно было выбрать для списка значений значения полученные в добавленном методе, добавляем его в метод getFilterSelectorValuesApiMethodList() (строка 1089), например после getPayments, таким образом:

    			'getPayments' => 'Способы оплаты',
    			'getShippingsInstalled' => 'Способы доставки (без вариантов)',

     

    3. Можно изменить существующий фильтр filter_shipping_method или добавить новый и потом использовать его в таблицах заказов или в блоках фильтров.

    Изменить нужно примерно так

    Screenshot_5.thumb.png.e7f553b2ec6297fe56300877407c68c2.png

     

    PS: оставьте метод именно с названием getShippingsInstalled (в обновлении он будет такой же), чтобы потом не менять настройки фильтра.

     

    • +1 2
  12. 10 часов назад, AlektroNik сказал:
    16 часов назад, capkuc сказал:

    Здравствуйте!
    Помогите разобраться пожалуйста: 

    1. как добавить отдельно кнопку, "открыть в модальном окне"
    Цель: что бы был список, который можно бегло проскроллить и была возможность открыть окно и в нем работать.
    Сам разобраться не смог.
    как пример:
    image.png.416a058019ca5bbe1b64d58a2bbc0a1e.png

    2. Можно ли сделать, что бы при постановке статуса Передан на доставку ( с уведомлением по email ), клиенту сразу приходило письмо с трек-номером, вместо уведомления о смене статуса?

    3. Правильно ли я понимаю, блок "Заметки" только для внутреннего пользования, для админки т.е.,
    клиенту эти записи нигде не вылезут?

    Развернуть  

     

    1. Можете поизучать пример из Расширенного списка заказов.

     

    Евгений, спасибо!

    Пример из Расширенного списка подойдет, если есть заказы с большой разбежкой по количеству товаров. Например, если товаров немного, то хочется видеть сразу все товары и нужную информацию о товарах в ячейке, без открытия в модальном окне. А если товаров много, то подробная таблица с товарами может существенно влиять на скорость загрузки страницы. Тогда подойдет этот пример - т.е. при определенном количестве товаров заменять таблицу товаров на кнопку для просмотра товаров в модальном окне.

     

    Но здесь немного другое. Как я понял, нужно чтобы всегда отображался такой себе упрощенный список товаров (для проскроллить) и чтобы можно было по кнопке открыть таблицу товаров с более подробной информацией.

     

    15 часов назад, capkuc сказал:

    1. как добавить отдельно кнопку, "открыть в модальном окне"
    Цель: что бы был список, который можно бегло проскроллить и была возможность открыть окно и в нем работать.
    Сам разобраться не смог.
    как пример:
    image.png.416a058019ca5bbe1b64d58a2bbc0a1e.png

     

    Чтобы сделать такую кнопку, есть другое решение.

    Возьмем за пример эту кнопку в Простом списке, она открывает в модальном окне шаблон таблицы заказов.

    Screenshot_1.thumb.png.e98f9ab8b4cf8648a7a4a0195fa65bf4.png

     

    В данном случае это вот этот шаблон, для подробного просмотра заказа.

     

    Screenshot_2.thumb.png.4af892abf965ffac44a606f683383acf.png

     

    Но нам нужен шаблон попроще.

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

    Создаем шаблон Таблицы заказов что-то вроде этого

     

    Screenshot_3.thumb.png.a73307d313e5247fc3798617d1fc8790.png

     

    Берем код этого шаблона (я взял произвольный) и вставляем в код кнопки.

    Это html-код кнопки из Простого списка. 

    <a class="btn btn-info btn-xs" data-toggle="tooltip" title="Расширенный просмотр заказа PopUp (в стиле Opencart)" onclick="orderTplView([[{order_id}]], 'RZVE1619532838', 'modal', 1)"> &nbsp; <i class="fa fa-info"></i> &nbsp;</a>

     

    Замените код таблицы заказов (RZVE1619532838) на свой, в котором только таблица товаров, а сам код кнопки разместите в нужном месте.

    Все.

     

    Вот пример что у меня получилось, пока готовил ответ Та же кнопка, но выводит только товары.

    Screenshot_4.thumb.png.8f123b444307cac5c2aaa104b7e001da.png

     

    Надеюсь получилось объяснить.

     

    • +1 2
  13. В 08.06.2021 в 20:43, AlektroNik сказал:

    И еще одна хотелка, а нельзя к полю "Ваш комментарий" тоже прикрутить кнопку переключения в визуальный редактор?

    Мне кажется менеджерам это может пригодиться при уточнее заказа или типо того.

    image.png.c43128325e004dde9ac3a0136437131a.png

     

    Редактор будет сильно грузить страницу. 

  14. В 08.06.2021 в 18:18, AlektroNik сказал:

    Я надеялся Вы скажите, что нужно заполнить цену Закупочная цену (cost) в таблице product, а при оформлении заказа эта цена копируется в Закупочная цена (purchase) в таблице order_product (в заказах) и оттуда уже подгружается в OMPRO.
    Наверное это был бы идеальный вариант.

     

    В 08.06.2021 в 18:18, AlektroNik сказал:

    Понятно бы "куда надо", это куда? :) Я и думал решить этот вопрос силами OMPRO.

    Сюда "(purchase) в таблице order_product". Только OMPRO не имеет отношения к оформлению заказа и я пока не уверен нужно ли туда лезть. 

    В 08.06.2021 в 18:18, AlektroNik сказал:

    В 1С есть "Виды цен" (Учетные, Оптовые, Розничные и т. д.). Эти типы цен помещаются либо в "Акции", либо в "Скидки". Других вариантов я не видел ни в одном модуле импорта.

    Я имел ввиду 1С Управление торговлей, откуда обычно товары выгружают в интернет-магазин. И там, как я помню, есть понятие "партия товара" или что-то вроде этого. Хотя все это сейчас не имеет смысла, вряд ли в опенкарт будут это внедрять. Мне просто логика нравится - товар один, партии разные, а значит и закупочные цены разные, все четко.

    В 08.06.2021 в 18:18, AlektroNik сказал:

    А о какой статистике идет речь?

    О расчете прибыли.

  15. В 01.06.2021 в 15:31, AlektroNik сказал:

    @brest001 Хотелка.

    А можно попросить еще сделать возможность прикреплять к шаблонам уведомлений не только текст, но и файлик.
    Везде системы разные и текст в письмах почему-то бывает корёжиться.
    image.png.49ca2c6781264d7b24ecb47370b5bf6f.png

     

    Да, я в курсе, что можно сделать кнопку, отправить счет или реквизиты, но смысл делать лишние движения? Чем больше шагов, тем больше ошибок у менеджеров.
    А так выставил "Ожидает оплату" и реквизиты улетели.

    Вопрос в том, чтоб должно быть в файлике? 

    Файл формируется на основе заказа, т.е. какие-то данные берутся из заказа или это уже готовый файл, лежит например в загрузках.

    Если файл еще нужно сформировать по данным заказа, а потом прикрепить к письму, то в каком формате файл?

    От этого будет зависеть как решать эту задачу, пока у меня нет четкого понимания.

  16. В 04.06.2021 в 13:31, AlektroNik сказал:
    [[{order_cost_profit}]] Прибыль: учет закупки по каталогу Доп. поля заказа
    [[{order_purchase_profit}]] Прибыль: учет закупки по факту в заказе Доп. поля заказа

     

     

    Доп. данные заказа:

     

    order_cost_profit

    
    
    o.total - (SELECT SUM(p.cost * (SELECT SUM(op2.quantity) FROM {DB_PREFIX}order_product op2 WHERE op2.order_id = o.order_id AND op2.product_id = p.product_id)) FROM {DB_PREFIX}product p WHERE p.product_id IN (SELECT op.product_id FROM {DB_PREFIX}order_product op WHERE op.order_id = o.order_id)) + ((SELECT COALESCE(SUM(ot.value), 0) FROM {DB_PREFIX}order_total AS ot WHERE ot.order_id = o.order_id AND ot.code = 'shipping' LIMIT 1) - o.shipping_cost_fact) + (SELECT COALESCE(SUM(ot.value), 0) FROM {DB_PREFIX}order_total ot WHERE ot.order_id = o.order_id AND ot.code != 'total' AND ot.code != 'sub_total' AND ot.code != 'shipping' LIMIT 1) + o.order_discount - o.order_present_cost

     

    order_purchase_profit

    
    
    o.total - (SELECT SUM(op.purchase * op.quantity) FROM {DB_PREFIX}order_product op WHERE op.order_id = o.order_id) + ((SELECT COALESCE(SUM(ot.value), 0) FROM {DB_PREFIX}order_total AS ot WHERE ot.order_id = o.order_id AND ot.code = 'shipping' LIMIT 1) - o.shipping_cost_fact) + (SELECT COALESCE(SUM(ot.value), 0) FROM {DB_PREFIX}order_total ot WHERE ot.order_id = o.order_id AND ot.code != 'total' AND ot.code != 'sub_total' AND ot.code != 'shipping' LIMIT 1) + o.order_discount - o.order_present_cost

     

    Роем дальше.
    Столбик purchase  в таблице order_product создается при установке модуля OMPRO.

    
    
        if (!in_array('purchase', $order_product_fields)) {
            $this->db->query("ALTER TABLE `" . DB_PREFIX . "order_product` ADD `purchase` decimal(15,4) NOT NULL DEFAULT '0.0000' AFTER `quantity`");
        }

    image.thumb.png.eee012f2c1fe5b4df18e0a7d7f9a2f3b.png

     

    Так же заметил столбик cost в таблице product (создается при установке модуля OMPRO), но не увидел в самих товарах в админке возможности его заполнить.
    И как его заполнить при выгрузке с 1С все равно вопрос.

    
    
        if (!in_array('cost', $product_fields)) {
            $this->db->query("ALTER TABLE `" . DB_PREFIX . "product` ADD `cost` decimal(15,4) NOT NULL DEFAULT '0.0000' ");
        }

     

    @brest001 Константин, я подозреваю, возможно это вообще было сделано для примера.
    На сколько я понял логику столбик purchase можно заполнять только руками по факту заказа, что очень не удобно и муторно в любом случае. Сомневаюсь, что кто-то будет так заморачиваться.
    Причины моего вывода:

    1. Товары в таблицу order_product попадают только по факту заказа.

    2. Предугадать когда где и какой товар появится довольно муторное занятие для автоматизации.

     

    Хотя с другой стороны, вполне логично, чтобы расчет прибыли велся именно из таблицы order_product т. к. цена закупки будет меняться постоянно, а прибыль по старым заказам не должна зависеть от этого факта.

    Но, опять же, как закупочная цена попадет в Столбик purchase в таблице order_product? Для этого покупатель должен по этой цене купить по идее.

     

    По мне лучше будет данный функционал переделать.
    2 Варианта:

    1. Муторный , требует допил самого товара в каталоге опенкарта, плюс каким-то образом туда еще и цены себестоимости нужно будет загрузить. В случае с выгрузкой из 1С не очень тривиальная задачка и будет требовать как минимум вливаний баксиков .... )))

    2. Самый просто и вписывающийся в логику Опенкарта. Настроить получение закупочных цен из Вкладки товара "Скидки" указав конкретную группу покупателя или название группы из котороой нужно брать цену.

     

    В общем вот такие мысли в слух.
    Что думаете по этому поводу? Интересно послушать Ваше мнение, может этот момент уже продумал, а я тут время свое убиваю :)

     

    Извините за поэму 🤯

    Действительно, поэма.

    Ответ, надеюсь, будет покороче.

    Опять же всё индивидуально. Как кто работает я не знаю, оба варианта сделаны в принципе для примера.

    Поле cost добавлено в таблицу и не добавлено в админке в данных товара, потому что многие используют сторонние модули для закупочной цены, которые добавляют такое поле в админку (название поля может быть другое). И, естественно, никто не станет перестраивать схему работы и возможно переделывать другие модули (например, импорт/экспорт), или еще что. В этом случае в OMPRO нужно просто изменить запросы: вместо cost указать используемое для зак. цены поле.

     

    Если вы используете поле cost, то при его редактировании в одном заказе - это тоже самое, что вы редактируете данные товара в админке, т.к. это поле таблицы product. Т.е. его не нужно каждый раз редактировать, если цена не меняется

     

    Закупочная цена (cost) в таблице product это конечно же удобно, но для статистики не годится.

    Закупочная цена (purchase) в таблице order_product (в заказах) - приходится вбивать каждый раз вручную, неудобно, но для статистики гут.

    Поэтому какой вариант использовать, решать вам.

     

    Как по мне, закупочная цена должна быть в опенкарте и при оформлении заказа записывалась куда надо. В 1с что-то такое помнится, есть, вроде как партия товара и эти партии могут быть с разными ценами (товар один, а цены разные, что очень логично).

    Но имеем, что имеем и выкручиваемся каждый по-разному.

    То, что вы предлагаете, это опять для вас может подойти, другим - нет.

    Должна быть четкая универсальная схема работы с закупочной ценой, тогда можно и переделывать, если нужно. 

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

     

    PS. Надежда не оправдалась :) 

     

    • +1 1
×
×
  • Створити...

Important Information

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