[Помогите] Калькулятор ПЭК

Тема в разделе "OpenCart", создана пользователем moroz59, 7 апр 2016.

  1. moroz59

    moroz59

    Регистрация:
    17 июл 2013
    Сообщения:
    41
    Симпатии:
    0
    Хочу поставить информер для расчета доставки, как сделать что бы скрипт брал размеры из карточки товара?
    Ваш код для сайта


    <!--НАЧАЛО Информера ПЭК-->
    <script>
    var pec_goods = [],
    pec_informer_size = "horizontal", // тип информера
    pec_from = "-483", // город отправки
    pec_to = "auto", // город доставки
    pec_insurance = "", // сумма для страхования
    pec_packing = ""; // тип упаковки
    pec_goods[0] = "1/1/1/1/1"; // габариты, объем, вес
    </script>
    <script src="http://pecom.ru/business/developers/js_informer/get_informer.js" charset="utf-8"></script>
    <!--КОНЕЦ Информера ПЭК-->

    Внимание

    Не забудьте, что для расчётов в информер нужно передавать вес, объём и/или габариты товаров из базы данных интернет-магазина. Без этого информер не будет работать!

    Как передать параметры груза/грузов описано ниже.

    Здесь указываются параметры груза. Вместо «Ширина/Длина/Высота/Объем/Вес» нужно подставлять цифровые параметры в таком же формате.



    Для тех, кто разбирается в коде
    Переменная Обязательна Что означает
    pec_informer_size да Задаёт размер и тип информера. Доступные значения: "horizontal", "vertical", "mini".
    pec_from да Город отправителя. Задаётся через ID города. Получить ID нужного города можно через API или через конструктор на этой странице.
    pec_to нет Задаёт город получателя. Если поле пустое или содержит "auto", то город получателя определяется автоматически. Также возможно задать город через ID. Получить ID нужного города можно через API или через конструктор на этой странице.
    pec_goods[0] да Задаёт параметры груза. Указывается в формате «Ширина/Длина/Высота/Объем/Вес». При этом вес указывается в кг; объём в куб. метрах; габариты в метрах. Пример: 23/0.6/1.2/0.5/1. Допускается указание только веса и объёма без габаритов.
    Есть возможность добавлять дополнительные грузы и рассчитывать доставку сразу для нескольких грузов, вводя новые переменные pek_goods[2]; pek_goods[3] и так далее.
    pec_insurance нет Стоимость груза для расчёта суммы страхования. Если страховка не нужна, то поле можно оставить пустым.
    pec_packing нет Тип упаковки. Hard — жёсткая упаковка. Если дополнительная упаковка не нужна, то поле можно оставить пустым.
    --- Добавлено, 7 апр 2016 ---
    Готов заплатить специалисту за помощь
     
  2. alex_storm

    alex_storm webdev

    Регистрация:
    11 дек 2012
    Сообщения:
    1.151
    Симпатии:
    667
    В файле catalog/controller/product/product.php
    ищем
    PHP:
    $this->data['points'] = $product_info['points'];
    После нее добавляем
    PHP:
    $this->data['weight'] = $this->weight->format($product_info['weight'], $product_info['weight_class_id']);
    $this->data['length'] = $this->length->format($product_info['length'], $product_info['length_class_id']);
    $this->data['width']  = $this->length->format($product_info['width'], $product_info['length_class_id']);
    $this->data['height'] = $this->length->format($product_info['height'], $product_info['length_class_id']);
    Далее в файле catalog/view/theme/default/template/product/product.tpl уже укажем так:

    HTML:
    <script>
    var pec_goods = [],
    pec_informer_size = "horizontal", // тип информера
    pec_from = "-483", // город отправки
    pec_to = "auto", // город доставки
    pec_insurance = "", // сумма для страхования
    pec_packing = ""; // тип упаковки
    pec_goods[0] = "<?php if(!empty($length)){echo " x ";}else{echo $length}?>/<?php if(!empty($width)){echo " x ";}else{echo $width}?>/<?php if(!empty($height)){echo " x ";}else{echo $height}?><?php if ($weight > 0) { ?>/<?php echo $weight;} ?>"; // габариты, объем, вес
    </script>
     
  3. moroz59

    moroz59

    Регистрация:
    17 июл 2013
    Сообщения:
    41
    Симпатии:
    0
    Если я этот код в product.tpl добавляю, страница вообще не отображается, может ошибка где?
     
  4. alex_storm

    alex_storm webdev

    Регистрация:
    11 дек 2012
    Сообщения:
    1.151
    Симпатии:
    667
    Все может быть, нужно включить отображение ошибок.
     
    moroz59 нравится это.
  5. alex.st

    alex.st

    Регистрация:
    24 фев 2017
    Сообщения:
    1
    Симпатии:
    0
    Добавил виджет этим способом, с небольшими правками. Расписал как здесь.