バージョン選択

フォーラム

メニュー

オンライン状況

42 人のユーザが現在オンラインです。 (31 人のユーザが フォーラム を参照しています。)
登録ユーザ: 0
ゲスト: 42
もっと...

サイト内検索

質問 > 管理機能 > カテゴリーCSV(category.csv)の登録について

管理機能

新規スレッドを追加する

フラット表示 前のトピック | 次のトピック
投稿者 スレッド
yamasan
投稿日時: 2018/10/9 13:13
対応状況: −−−
常連
登録日: 2017/9/7
居住地:
投稿: 52
Re: カテゴリーCSV(category.csv)の登録について
>「キャッシュバグ修正済み」はtwigのバージョンアップ(差替え)ですか?

  「キャッシュバグ修正済み」はtwigのバージョンアップを差替えたものです。 

>CsvImportController.phpはカスタマイズされてますか?

 いえ、一切いじっておりません。


https://itoben.com/blog/2384.html
こちらのEC-CUBE3.のカスタマイズ版をインストールした状態のままです。

>「ec-cube-3.0.15.zip」が、既に、手元にない場合は
https://github.com/EC-CUBE/ec-cube/tree/3.0.15
>の「右端」「Clone or download」内「Download ZIP」で、ダウンロードしてください。

https://itoben.com/blog/2384.htmlのカスタマイズ版のインストール前の
「CsvImportController.php」の中身は下記のとおりです。

442行目の * カテゴリ登録CSVアップロードから564行目まで↓

     * カテゴリ登録CSVアップロード
     */
    public function csvCategory(Application $app, Request $request)
    {

        $form = $app['form.factory']->createBuilder('admin_csv_import')->getForm();

        $headers = $this->getCategoryCsvHeader();

        if ('POST' === $request->getMethod()) {

            $form->handleRequest($request);

            if ($form->isValid()) {

                $formFile = $form['import_file']->getData();

                if (!empty($formFile)) {

                    log_info('カテゴリCSV登録開始');

                    $data = $this->getImportData($app, $formFile);
                    if ($data === false) {
                        $this->addErrors('CSVのフォーマットが一致しません。');
                        return $this->render($app, $form, $headers, $this->categoryTwig);
                    }

                    $keys = array_keys($headers);
                    $columnHeaders = $data->getColumnHeaders();
                    if ($keys !== $columnHeaders) {
                        $this->addErrors('CSVのフォーマットが一致しません。');
                        return $this->render($app, $form, $headers, $this->categoryTwig);
                    }

                    $size = count($data);
                    if ($size < 1) {
                        $this->addErrors('CSVデータが存在しません。');
                        return $this->render($app, $form, $headers, $this->categoryTwig);
                    }

                    $headerSize = count($keys);

                    $this->em = $app['orm.em'];
                    $this->em->getConfiguration()->setSQLLogger(null);

                    $this->em->getConnection()->beginTransaction();

                    // CSVファイルの登録処理
                    foreach ($data as $row) {

                        if ($headerSize != count($row)) {
                            $this->addErrors(($data->key() + 1) . '行目のCSVフォーマットが一致しません。');
                            return $this->render($app, $form, $headers, $this->categoryTwig);
                        }

                        if ($row['カテゴリID'] == '') {
                            $Category = new Category();
                        } else {
                            if (!preg_match('/^\d+$/', $row['カテゴリID'])) {
                                $this->addErrors(($data->key() + 1) . '行目のカテゴリIDが存在しません。');
                                return $this->render($app, $form, $headers, $this->categoryTwig);
                            }
                            $Category = $app['eccube.repository.category']->find($row['カテゴリID']);
                            if (!$Category) {
                                $this->addErrors(($data->key() + 1) . '行目のカテゴリIDが存在しません。');
                                return $this->render($app, $form, $headers, $this->categoryTwig);
                            }
                            if ($row['カテゴリID'] == $row['親カテゴリID']) {
                                $this->addErrors(($data->key() + 1) . '行目のカテゴリIDと親カテゴリIDが同じです。');
                                return $this->render($app, $form, $headers, $this->categoryTwig);
                            }

                        }

                        if (Str::isBlank($row['カテゴリ名'])) {
                            $this->addErrors(($data->key() + 1) . '行目のカテゴリ名が設定されていません。');
                            return $this->render($app, $form, $headers, $this->categoryTwig);
                        } else {
                            $Category->setName(Str::trimAll($row['カテゴリ名']));
                        }

                        if ($row['親カテゴリID'] != '') {

                            if (!preg_match('/^\d+$/', $row['親カテゴリID'])) {
                                $this->addErrors(($data->key() + 1) . '行目の親カテゴリIDが存在しません。');
                                return $this->render($app, $form, $headers, $this->categoryTwig);
                            }

                            $ParentCategory = $app['eccube.repository.category']->find($row['親カテゴリID']);
                            if (!$ParentCategory) {
                                $this->addErrors(($data->key() + 1) . '行目の親カテゴリIDが存在しません。');
                                return $this->render($app, $form, $headers, $this->categoryTwig);
                            }

                        } else {
                            $ParentCategory = null;
                        }

                        if (Str::isNotBlank($row['カテゴリー説明'])) {
                            $Category->setCategoryDescription(Str::trimAll($row['カテゴリー説明']));
                        } else {
                            $Category->setCategoryDescription(null);
                        }

                        $Category->setParent($ParentCategory);
                        if ($ParentCategory) {
                            $Category->setLevel($ParentCategory->getLevel() + 1);
                        } else {
                            $Category->setLevel(1);
                        }

                        if ($app['config']['category_nest_level'] < $Category->getLevel()) {
                            $this->addErrors(($data->key() + 1) . '行目のカテゴリが最大レベルを超えているため設定できません。');
                            return $this->render($app, $form, $headers, $this->categoryTwig);
                        }

                        $status = $app['eccube.repository.category']->save($Category);

                        if (!$status) {
                            $this->addErrors(($data->key() + 1) . '行目のカテゴリが設定できません。');
                        }

                        if ($this->hasErrors()) {
                            return $this->render($app, $form, $headers, $this->categoryTwig);
                        }

                        $this->em->persist($Category);

                    }

                    $this->em->flush();
                    $this->em->getConnection()->commit();

                    log_info('カテゴリCSV登録完了');

                    $app->addSuccess('admin.category.csv_import.save.complete', 'admin');
                }

            }
        }

        return $this->render($app, $form, $headers, $this->categoryTwig);
    }


>$this->addErrors('CSVのフォーマットが一致しません。getImportData');
>$this->addErrors('CSVのフォーマットが一致しません。columnHeaders');
>での、動作確認は出来ませんか?

すみません、こちらはどのようにしたら宜しいでしょうか。
フラット表示 前のトピック | 次のトピック


題名 投稿者 日時
   カテゴリーCSV(category.csv)の登録について yamasan 2018/9/26 8:53
     Re: カテゴリーCSV(category.csv)の登録について 468 2018/9/27 0:39
       Re: カテゴリーCSV(category.csv)の登録について yamasan 2018/9/27 10:09
         Re: カテゴリーCSV(category.csv)の登録について Ringo 2018/9/27 15:26
           Re: カテゴリーCSV(category.csv)の登録について 468 2018/9/28 0:18
     Re: カテゴリーCSV(category.csv)の登録について yamasan 2018/9/28 22:33
       Re: カテゴリーCSV(category.csv)の登録について 468 2018/10/2 11:38
         Re: カテゴリーCSV(category.csv)の登録について yamasan 2018/10/4 10:05
           Re: カテゴリーCSV(category.csv)の登録について Ringo 2018/10/4 13:01
             Re: カテゴリーCSV(category.csv)の登録について Ringo 2018/10/5 7:52
               Re: カテゴリーCSV(category.csv)の登録について yamasan 2018/10/6 7:47
               Re: カテゴリーCSV(category.csv)の登録について yamasan 2018/10/8 13:54
                 Re: カテゴリーCSV(category.csv)の登録について Ringo 2018/10/9 12:33
                 » Re: カテゴリーCSV(category.csv)の登録について yamasan 2018/10/9 13:13
                     Re: カテゴリーCSV(category.csv)の登録について Ringo 2018/10/9 19:58
                       Re: カテゴリーCSV(category.csv)の登録について Ringo 2018/10/11 11:45
                     Re: カテゴリーCSV(category.csv)の登録について Ringo 2018/10/11 11:13
                     Re: カテゴリーCSV(category.csv)の登録について Ringo 2018/10/11 12:53
                       Re: カテゴリーCSV(category.csv)の登録について yamasan 2018/10/11 13:21
                         Re: カテゴリーCSV(category.csv)の登録について yamasan 2018/10/19 16:43
                           Re: カテゴリーCSV(category.csv)の登録について Ringo 2018/10/20 18:49
                             Re: カテゴリーCSV(category.csv)の登録について 468 2018/10/21 8:36

 



ログイン


EC-CUBE公式 Amazon Payプラグイン

統計情報

総メンバー数は88,954名です
総投稿数は110,019件です

投稿数ランキング

1
seasoft
7367
2
468
3217
3
AMUAMU
2712
4
nanasess
2314
5
umebius
2085
6
yuh
1819
7
h_tanaka
1646
8
red
1570
9
mcontact
1296
10
tsuji
958
11
fukap
907
12
shutta
835
13
tao_s
799
14 ramrun 789
15 karin 689
16 sumida 641
17
homan
633
18 DELIGHT 572
19
patapata
502
20
flealog
485


ネットショップの壺

EC-CUBEインテグレートパートナー

Copyright© EC-CUBE CO.,LTD. All Rights Reserved.