Добро пожаловать в наше сообщество!
skripters.net - небольшой форум для вэб-мастеров на котором вам предоставляется широкий выбор скриптов, плагинов, стилей и много чего еще для запуска собственного проекта: интернет-магазина, форума, корпоративного сайта, продающего лендинга. Здесь вы найдете много решений по заработку в интернет. Сможете продать или купить нужное вам решение для старта своего веб-проекта. Опытные пользователи проконсультируют вас если вы вначале пути, подскажут как лучше, помогут в установке и настройке.
1. Для регистрации доступна только одна почтовая служба - GMAIL
2. Если после регистрации вы не получили письмо - проверьте папку СПАМ

Помощь Электронные товары

Koppinger

Network engineer
Premium+
Регист
3 Апр 2018
Сообщения
107
Реакции
89
Всем привет! Друзья помогите пожалуйста, я не программист, а посему, прошу, сильно не бейте. Интернет-магазин продаёт различные товары, в том числе и электронные. А шаблоны могуты как многим известно не разделяют товары на типы и следовательно отображают выбор доставки и в электронных товарах. Хотя по логике она там не нужна.

Задача: Отключить выбор способа доставки при оформлении заказа только лишь с электронными товарами. В остальных случаях, а именно при смешанном содержимом или при отсутствии электронных товаров выводить способы доставки в штатном режиме.

Насколько я понимаю, можно добавить всю электронную продукцию в отдельную категорию, а затем читая $data['productPositions'] менять вывод доставки. Может я ошибаюсь, поправьте. Но я не совсем догоняю как это реализовать в коде. Было бы здорово навешивать различные способы доставки на категории товаров или вовсе их выключать. Если есть умельцы способные сделать подобное, то готов обсудить плату.
 

wice222

Пользователь
Регист
22 Мар 2026
Сообщения
0
Реакции
0
Подход правильный. В Moguta массив $data['productPositions'] содержит позиции корзины с полями каждого товара, включая категорию.
В контроллере заказа (или через хук order_process) перебираете позиции и проверяете, все ли товары электронные:
Код:
$allElectronic = true;
foreach ($data['productPositions'] as $item) {
    // YOUR_ELECTRONIC_CAT_ID — ID категории "Электронные товары"
    if ((int)$item['cat_id'] !== YOUR_ELECTRONIC_CAT_ID) {
        $allElectronic = false;
        break;
    }
}
$data['allElectronic'] = $allElectronic;
В шаблоне order.tpl оборачиваете блок доставки в условие:
Код:
{if !$allElectronic}
    <!-- весь блок выбора доставки -->
{/if}
Если не хочется трогать PHP, есть более быстрый вариант: в JS на странице оформления заказа проверяете атрибуты товаров в корзине и скрываете блок доставки через display:none когда все товары электронные. Но это менее надёжно, так как тип товара нужно отдельно передавать на клиент.
Задача несложная, на 1-2 часа работы. Если нужен исполнитель, можно разместить в разделе фриланса.
 
Сверху