Eccube\Service\ShoppingService::registerPreOrder PHP Method

registerPreOrder() public method

仮受注情報作成
public registerPreOrder ( Customer $Customer, $preOrderId ) : mixed
$Customer Eccube\Entity\Customer
$preOrderId
return mixed
    public function registerPreOrder(Customer $Customer, $preOrderId)
    {
        $this->em = $this->app['orm.em'];
        // 受注情報を作成
        $Order = $this->getNewOrder($Customer);
        $Order->setPreOrderId($preOrderId);
        $this->em->persist($Order);
        // 配送業者情報を取得
        $deliveries = $this->getDeliveriesCart();
        // お届け先情報を作成
        $Order = $this->getNewShipping($Order, $Customer, $deliveries);
        // 受注明細情報、配送商品情報を作成
        $Order = $this->getNewDetails($Order);
        // 小計
        $subTotal = $this->orderService->getSubTotal($Order);
        // 消費税のみの小計
        $tax = $this->orderService->getTotalTax($Order);
        // 配送料合計金額
        $Order->setDeliveryFeeTotal($this->getShippingDeliveryFeeTotal($Order->getShippings()));
        // 小計
        $Order->setSubTotal($subTotal);
        // 配送料無料条件(合計金額)
        $this->setDeliveryFreeAmount($Order);
        // 配送料無料条件(合計数量)
        $this->setDeliveryFreeQuantity($Order);
        // 初期選択の支払い方法をセット
        $payments = $this->app['eccube.repository.payment']->findAllowedPayments($deliveries);
        $payments = $this->getPayments($payments, $subTotal);
        if (count($payments) > 0) {
            $payment = $payments[0];
            $Order->setPayment($payment);
            $Order->setPaymentMethod($payment->getMethod());
            $Order->setCharge($payment->getCharge());
        } else {
            $Order->setCharge(0);
        }
        $Order->setTax($tax);
        // 合計金額の計算
        $this->calculatePrice($Order);
        $this->em->flush();
        return $Order;
    }