app/Customize/EventListener/EntryCompleteOutputCSVListener.php line 29

Open in your IDE?
  1. <?php
  2. namespace Customize\EventListener;
  3. use Customize\Util;
  4. use Doctrine\ORM\EntityManagerInterface;
  5. use Eccube\Entity\Customer;
  6. use Eccube\Entity\Order;
  7. use Eccube\Entity\OrderItem;
  8. use Eccube\Entity\Shipping;
  9. use Eccube\Event\EccubeEvents;
  10. use Eccube\Event\EventArgs;
  11. use Symfony\Component\EventDispatcher\EventSubscriberInterface;
  12. class EntryCompleteOutputCSVListener implements EventSubscriberInterface
  13. {
  14.     public static function getSubscribedEvents()
  15.     {
  16.         return [
  17.             EccubeEvents::FRONT_ENTRY_INDEX_COMPLETE => 'entryCompleteOutputCSV'
  18.         ];
  19.     }
  20.     /**
  21.      * ユーザ登録が完了したらCSVを出力する
  22.      * @param EventArgs $event
  23.      * @return void
  24.      */
  25.     public function entryCompleteOutputCSV(EventArgs $event)
  26.     {
  27.         /** @var  $Customer Customer */
  28.         $Customer $event->getArgument("Customer");
  29.         $header = [
  30.             // 顧客情報
  31.             'id',
  32.             'sex_id',
  33.             'job_id',
  34.             'pref_id',
  35.             'name01',
  36.             'name02',
  37.             'kana01',
  38.             'kana02',
  39.             'company_name',
  40.             'postal_code',
  41.             'addr01',
  42.             'addr02',
  43.             'email',
  44.             'phone_number',
  45.             'birth',
  46.             '',   // 身長データ
  47.             '',   // 足の大きさデータ
  48.             'create_date',
  49.             'update_date'
  50.         ];
  51.         $customerRow = [
  52.             // 顧客情報
  53.             $Customer->getId()??''// 'id',
  54.             $Customer->getSex()??''//'sex_id',
  55.             ' ',  //'job_id',
  56.             ' '//'pref_id',
  57.             $Customer->getName01()??''//'name01',
  58.             $Customer->getName02()??''//'name02',
  59.             $Customer->getKana01()??''//'kana01',
  60.             $Customer->getKana02()??''//'kana02',
  61.             $Customer->getCompanyName()??''//'company_name',
  62.             $Customer->getPostalCode()??''//'postal_code',
  63.             $Customer->getAddr01()??''//'addr01',
  64.             $Customer->getAddr02()??''//'addr02',
  65.             $Customer->getEmail()??''//'email',
  66.             $Customer->getPhoneNumber()??''//'phone_number',
  67.             ''//$Customer->getBirth()->format('Y-m-d H:i:s')??'', //'birth',
  68.             $Customer->getCreateDate()->format('Y-m-d H:i:s')??''//'create_date',
  69.             $Customer->getUpdateDate()->format('Y-m-d H:i:s')??''//'update_date'
  70.         ];
  71.         $fp fopen('var/customerfile.csv''w');
  72.         fputcsv($fp$header);
  73.         $json \GuzzleHttp\json_encode($customerRow);
  74.         log_info($json);
  75.         fputcsv($fp$customerRow);
  76.         fclose($fp);
  77.         $output_json = [
  78.             // 顧客情報
  79.             'customer_id' => $Customer->getId()??'',   //id
  80.             //'sex_id' => $Customer->getSex()??'',   //sex_id
  81.             //'job_id'x3 => $Customer->getJob()->getId()??'',   //job_id
  82.             'pref_id' => $Customer->getPref()->getId()??'',   //pref_id
  83.             'name01' => $Customer->getName01()??'',   //name01
  84.             'name02' => $Customer->getName02()??'',   //name02
  85.             'kana01' => $Customer->getKana01()??''//'kana01',
  86.             'kana02' => $Customer->getKana02()??''//'kana02',
  87.             //'company_name' => $Customer->getCompanyName()??'', //'company_name'
  88.             'postal_code' =>  $Customer->getPostalCode()??''//'postal_code'
  89.             'addr01' => $Customer->getAddr01()??''//'addr01'
  90.             'addr02' => $Customer->getAddr02()??''//'addr02'
  91.             'email' => $Customer->getEmail()??''//'email',
  92.             'phone_number' => $Customer->getPhoneNumber()??''//'phone_number'
  93.             //'birth' => $Customer->getBirth()->format('Y-m-d')??'',
  94.             //$Customer->getBirth()->format('Y-m-d H:i:s')??'',
  95.             //$Customer->getHeight(),   // 身長データ
  96.             //$Customer->getLegSize(),   // 足の大きさデータ
  97.             //'create_date' => $Customer->getCreateDate()->format('Y-m-d H:i:s')??'',
  98.             //'update_date' => $Customer->getUpdateDate()->format('Y-m-d H:i:s')??'',
  99.         ];
  100.         // FileMakerにデータを送信する
  101.         $token Util::getFMToken();
  102.         $postdata = [
  103.             'fieldData' => $output_json
  104.         ];
  105.         Util::postFM($postdata$token);
  106.         log_info(json_encode($postdataJSON_UNESCAPED_UNICODE));
  107.     }
  108. }