$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);