Exemplo n.º 1
0
$order_id = $payqrOrder->checkInvoice($inv_id);
if (!empty($order_id)) {
    //заказ с заданнными параметрами уже создавался
    //производим обновление состояния заказа
    if ($payqrOrder->updateShopkeeper3Order($order_id)) {
        payqr_logs::log("Успешно произведено обновление товаров");
    } else {
        payqr_logs::log("Не смогли произвести обновление товаров в заказе");
    }
} else {
    //создаем заказ на основе актуализированным данных
    $order_id = $payqrOrder->createShopkeeper3Order($user_id);
    $payqrOrder->setInvoice($order_id, $inv_id);
}
//Получаем стоимость товара с доставкой
$amount = $payqrOrder->getTotal(true);
if (empty($amount)) {
    payqr_logs::log('Не смогли получить amount у заказа!');
    return false;
}
payqr_logs::log('Итоговая стоимость amount у заказа : ' . $amount);
$Payqr->objectOrder->setAmount($amount);
if (!$order_id) {
    payqr_logs::log('Не смогли получить orderId у заказа!');
    return false;
}
payqr_logs::log('Устанавливаем orderId: ' . $order_id);
$Payqr->objectOrder->setOrderId($order_id);
//Корзину необходимо очищать
$userdata = array("cart_id" => isset($config['cart_id']) ? (int) $config['cart_id'] : null, "user_id" => $user_id, "session_id" => "session", "order_id" => $order_id, "amount" => $amount, "message" => isset($config['user_message_text']) ? $config['user_message_text'] : "", "messageImageURL" => isset($config['user_message_imageurl']) ? $config['user_message_imageurl'] : "", "messageURL" => isset($config['user_message_url']) ? $config['user_message_url'] : "");
$Payqr->objectOrder->setUserData(json_encode($userdata));
<?php

//получаем способы доставки товара
$delivery_cases = array();
$deliveryObj = new payqr_deliverycase($modx);
$deliveries = $deliveryObj->getDeliveryCases();
$i = 1;
$payqrOrder = new payqr_order($modx, $Payqr);
$order_amount = $payqrOrder->getTotal();
foreach ($deliveries as $delivery) {
    $_delivery = array();
    $_delivery['article'] = $delivery['id'];
    $_delivery['number'] = $i++;
    $_delivery['name'] = $delivery['label'];
    $_delivery['description'] = $delivery['label'];
    $_delivery['amountFrom'] = $_delivery['amountTo'] = $order_amount >= $delivery['free_start'] ? 0 : $delivery['free_start'];
    $delivery_cases[] = $_delivery;
}
$Payqr->objectOrder->setDeliveryCases($delivery_cases);