/** * 非会員処理 */ 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())); }
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; }