/**
  * 非会員処理
  */
 public function nonmember(Application $app, Request $request)
 {
     $cartService = $app['eccube.service.cart'];
     // カートチェック
     if (!$cartService->isLocked()) {
         // カートが存在しない、カートがロックされていない時はエラー
         return $app->redirect($app->url('cart'));
     }
     // ログイン済みの場合は, 購入画面へリダイレクト.
     if ($app->isGranted('ROLE_USER')) {
         return $app->redirect($app->url('shopping'));
     }
     // カートチェック
     if (count($cartService->getCart()->getCartItems()) <= 0) {
         // カートが存在しない時はエラー
         return $app->redirect($app->url('cart'));
     }
     $form = $app['form.factory']->createBuilder('nonmember')->getForm();
     if ('POST' === $request->getMethod()) {
         $form->handleRequest($request);
         if ($form->isValid()) {
             $data = $form->getData();
             $Customer = new \Eccube\Entity\Customer();
             $Customer->setName01($data['name01'])->setName02($data['name02'])->setKana01($data['kana01'])->setKana02($data['kana02'])->setCompanyName($data['company_name'])->setEmail($data['email'])->setTel01($data['tel01'])->setTel02($data['tel02'])->setTel03($data['tel03'])->setZip01($data['zip01'])->setZip02($data['zip02'])->setZipCode($data['zip01'] . $data['zip02'])->setPref($data['pref'])->setAddr01($data['addr01'])->setAddr02($data['addr02']);
             // 受注関連情報を取得
             $preOrderId = $cartService->getPreOrderId();
             $Order = $app['eccube.repository.order']->findOneBy(array('pre_order_id' => $preOrderId, 'OrderStatus' => $app['config']['order_processing']));
             // 初回アクセス(受注データがない)の場合は, 受注データを作成
             if (is_null($Order)) {
                 // ランダムなpre_order_idを作成
                 $preOrderId = sha1(uniqid(mt_rand(), true));
                 // 受注情報、受注明細情報、お届け先情報、配送商品情報を作成
                 $app['eccube.service.order']->registerPreOrderFromCartItems($cartService->getCart()->getCartItems(), $Customer, $preOrderId);
                 $cartService->setPreOrderId($preOrderId);
                 $cartService->save();
             }
             // 非会員用セッションを作成
             $arr = array();
             $arr['customer'] = $Customer;
             $arr['pref'] = $Customer->getPref()->getId();
             $app['session']->set('eccube.front.shopping.nonmember', $arr);
             return $app->redirect($app->url('shopping'));
         }
     }
     return $app->render('Shopping/nonmember.twig', array('form' => $form->createView()));
 }
Example #2
0
 public function newCustomer()
 {
     $CustomerStatus = $this->app['orm.em']->getRepository('\\Eccube\\Entity\\Master\\CustomerStatus')->find(1);
     $Customer = new \Eccube\Entity\Customer();
     $Customer->setName01('last name')->setName02('first name')->setEmail('*****@*****.**')->setSecretKey('dummy' + uniqid())->setStatus($CustomerStatus)->setCreateDate(new \DateTime())->setUpdateDate(new \DateTime())->setDelFlg(1);
     return $Customer;
 }