Последние темы


Изменить стоимость доставки из "Нового" сниппета

  • Здравствуйте гуру modx! Подскажите пожалуйста...Как можно изменить стоимость доставки из сниппета? У меня есть форма оформления товара. В ней при выборе способа доставки подгружаются поля дополнительные (область и город) у городов есть ценовая зона доставки (например 1М или Москва) каждая зона доставки имеет свою цену. Так вот при изменении поля ГОРОД я изменяю php_session $_SESSION['shk_delivery']['price'] на свою цену, но когда заказ оправляется "В АДМИНКУ" то всё равно цена берётся из настроек shopkeeper : ((( От сюда вопрос как мне изменить цену на свою из моего сниппета???

  • Надо видеть вашу страницу оформления заказа. Возможно вы где-то вызываете

    SHK.selectDelivery(...)
    

    А если доставка задается в каком-то отдельном сниппете, то этого делать не нужно.

  • Участник @Andchir написал в Изменить стоимость доставки из "Нового" сниппета:

    SHK.selectDelivery

    Вот страница (http://eliterie.ru/oformlenie-zakaza/)... Эту строчку я убрал из скрипта... Но почему то всё равно в админку попадает цена доставки из настроек шопкипера, а не из сессии 😞

  • Я ещё нашёл место где сохранаяет непосредственно заказ shk_fihook
    Там я тоже поменял переменные... Поставил $_SESSION['shk_delivery']['price']
    Вот кусочек кода от туда:

    //Сохраняем данные заказа
        $order = $modx->newObject('shk_order');
        $insert_data = array(
            'contacts' => $contacts,
            'options' => '',
            'price' => Shopkeeper::$price_total,
            'currency' => $shopCart->config['currency'],
            'date' => strftime('%Y-%m-%d %H:%M:%S'),
            'sentdate' => strftime('%Y-%m-%d %H:%M:%S'),
            'note' => '',
            'email' => isset( $allFormFields[$emailField] ) ? $allFormFields[$emailField] : '',
            //'delivery' => $delivery_name,
           //'delivery_price' => $delivery_price,
            'delivery' => $_SESSION['shk_delivery']['label'],
            'delivery_price' => $_SESSION['shk_delivery']['price'],
            'payment' => isset( $allFormFields[$paymentField] ) ? $allFormFields[$paymentField] : '',
            'tracking_num' => '',
            'phone' => isset( $allFormFields[$phoneField] ) ? $allFormFields[$phoneField] : '',
            'status' => $modx->getOption( 'shk3.first_status', null, '1' )
        );
        if( $userId ){
            $insert_data['userid'] = $userId;
        }
        $order->fromArray($insert_data);
        $saved = $order->save();
    

    Но ксожалению это тоже не дало результата:(

  • Покажите как ставите цену доставки. Похоже вы что-то нагородили слишком много.
    Значения доставки в SHK.data какие-то странные
    0_1574081485898_Выделение_001.png
    Есть стандартный функционал изменения доставки:

    SHK.selectDelivery('Доставка транспортной компанией');
    

    Вам нужно создать в настройках доставку с таким названием (пример) и поставить нулевую цену. Цену нужно менять в плагине на событие "OnSHKgetDeliveryPrice".

    Плагин должен возвращать цену

    $modx->event->output( $price_delivery );
    
  • @Andchir Да про плагин я знаю, но к сожалению он мне не подходит... Он реагирует на событие изменения способа доставки, а у меня цена формируется при изменении города... В этом то и проблема в принципе... В любом случае спасибо большое за ответы... Буду дальше ковыряться...

  • Он реагирует на событие изменения способа доставки, а у меня цена формируется при изменении города...

    Вы может сделать так: Выбираете город, ставите сессию свою внутреннюю, не связанную с Шопкипером. Потом вызываете JS-функцию:

    SHK.selectDelivery('Доставка транспортной компанией');
    

    которая сделает запрос, где вызовется плагин. В этом плагине вы можете прочитать вашу сессию или куку, которую установили при выборе города. Далее достаете цену и возвращаете значение плагина. В коде Шопкипера ничего менять не нужно.

  • @Andchir Спасибо попробую...☺

  • @Andchir Спасибо огромное... Сделал как Вы сказали всё получилось... Рабаотает :))) +100500 Вам к карме)))

 

Последние комментарии

  • 0_1575831062911_shk-logo-small-blue.png
    Что нового в версии 4.1.3:

    Добавлен компонент "Отзывы и рейтинги" (есть интерфейс для администратора). Обновлены версии всех сторонних пакетов.

    Демо-сайт обновлен. https://shk4-demo.modx-shopkeeper.ru/
    Логин: admin
    Пароль: admin

    0_1575830694586_ru_screenshot001.png

    0_1575830705492_ru_screenshot002.png

    0_1575830710901_ru_screenshot003.png

    Читать далее
  • C

    Если вдруг кто-то озадачится.
    В файле updateorderstatus.class.php

    //Формируем письмо $orderOutputData = $shopCart->getOrderData( $order_id ); $chunkArr = array( 'orderID' => $order_data['id'], 'orderDate' => $order_data['date'], 'statusName' => $status_data['label'], 'orderCurrency' => $shopCart->config['currency'], 'orderOutputData' => $orderOutputData, //добавляем строку 'status' => $status_data['color'], );

    Читать далее
  • Участник @Vladislava написал в Проблема с giftCards:

    @Andchir Спасибо большое! А не скажете ещё, где можно скачать Compare? Тоже не могу найти.

    Сравнение товаров
    https://e-store.shopkerx.net/katalog/modx_extras/compare

    Читать далее
  • V

    @Andchir Спасибо большое! А не скажете ещё, где можно скачать Compare? Тоже не могу найти.

    Читать далее