バージョン選択

フォーラム

メニュー

オンライン状況

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

サイト内検索

機能要望 > 管理機能 > 「カテゴリ登録CSV」時、カテゴリID昇順にしたい。

管理機能

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
ゲスト
投稿日時: 2009/7/29 17:27
対応状況: −−−
「カテゴリ登録CSV」時、カテゴリID昇順にしたい。
eccube-2.4.1に於いても「カテゴリ登録CSV」を行うと相変わらず
「■2行目でエラーが発生しました。
 ※既に同じ内容の登録が存在します。<br>」
を表示することから、eccube-comu...の
『LC_Page_Admin_Products_UploadCSVCategory.php』
が採用されていない、、、のはなぜなんだろう???

(みなさんはどうされているのでしょうか?
 本機能を使用したい場合は、小生同様↓を
 行われているのでしょうか?)

ということで、上記ファイルを置き換えて「カテゴリ登録CSV」が
出来る様にはしているのですが、「この内容で登録する」を
押した後、「カテゴリ管理」でカテゴリを表示すると、
「カテゴリID」の「降順」なカテゴリ(フォルダ)表示となります。

「カテゴリID」と「カテゴリ名」をcsvファイルで管理して
「カテゴリ登録CSV」の機能で簡単にカテゴリ階層を
設定する機能が、csvファイル内容とeccubeでの表示が
逆転することになり、なんとなく、「う〜ん...」な感じ。

処理的なしばりから、この様な状況なのでしょうか?

「カテゴリID」「カテゴリ名」
 1       食器
 2       食品
を読ますと
 2       食品
 1       食器
となる。これを、eccubeでも
 1       食器
 2       食品
となってほしいのですが。。。
seasoft
投稿日時: 2009/7/29 23:34
対応状況: −−−
登録日: 2008/6/4
居住地:
投稿: 7369
Re: 「カテゴリ登録CSV」時、カテゴリID昇順にしたい。

「カテゴリID」と「カテゴリ名」をcsvファイルで管理して
「カテゴリ登録CSV」の機能で簡単にカテゴリ階層を
設定する機能が、csvファイル内容とeccubeでの表示が
逆転することになり、なんとなく、「う〜ん...」な感じ。

処理的なしばりから、この様な状況なのでしょうか?

「カテゴリID」「カテゴリ名」
 1       食器
 2       食品
を読ますと
 2       食品
 1       食器
となる。これを、eccubeでも
 1       食器
 2       食品
となってほしいのですが。。。

私も少々気になっていた点なのですが、たしか rank (表示順位) を設定するロジックの関係だったと思います。

個人的には、その機能を運用では利用しておらず、影響を受けていないのですが、他にも不満に感じている方がいらっしゃるようでしたら、情報をいただければ幸いです。改善に向けて動いてみますよ。(EC-CUBEコミュニティ(eccube-comu) での実装か、正式版へのチケット登録など)


----------------
Seasoft
こちらでの投稿は、アイディア程度に留めさせていただいております。
個別案件の作業は有償で承っております。お気軽にご相談ください。

ゲスト
投稿日時: 2009/7/30 13:08
対応状況: −−−
Re: 「カテゴリ登録CSV」時、カテゴリID昇順にしたい。
引用:

わたしは書きました:
「カテゴリID」「カテゴリ名」
 1       食器
 2       食品
を読ますと
 2       食品
 1       食器
となる。

ですが、思いっきり勘違いしていました。
・小生の勘違い:
 読込み直後は「カテゴリID」の「数字」の降順に表示される。
 (その後は「カテゴリ管理」の「移動」で表示順を変更できる。)

・「カテゴリ登録CSV」の処理(試行錯誤による推定):
 CSVファイルの読込こんだ順にrank値を採番し
 「カテゴリ表示」時にrank値の降順で表示する。
 (後述のrank値の採番結果を見ると、階層構造対応のため
  単純に「読み込んだ順」では無い様ですが。)

引用:

seasoftさんは書きました:
私も少々気になっていた点なのですが、たしか rank (表示順位) を設定するロジックの関係だったと思います。


とういことで、調べてみました。
csvデータ 142行を読み込ませての(親カテゴリ 29、子カテゴリ 113)
DBテーブル「dtb_category」のフィールド「rank」の値は、
「親カテゴリ←子カテゴリ」をバッファリングしながら採番しているもよう。。。

そして
『LC_Page_Admin_Products_UploadCSVCategory.php』
(eccube-comu-r18241.tar.gz)を見てみると、
の229行目「*カテゴリ登録を行う.」からの
綺麗なコードをいじることになる。

それは、もったいないので(私見)、自己完結として:
『「カテゴリ登録CSV」処理と「csvファイル情報」の関係が分ったので、
 「csvファイル情報」にて、「カテゴリID昇順」になる様にする。』
とします。

追記! '09.08.20
次スレッドを必ず参照してください。
<フィールドの型:serialに関して>
ゲスト
投稿日時: 2009/8/20 16:40
対応状況: −−−
Re: 「カテゴリ登録CSV」時、カテゴリID昇順にしたい。
テーブルdtb_categoryなどの中で

category_id serial
classcategory_id serial

の様にフィールドの型が「serial」と定義されています。

従って、
引用:

『「カテゴリ登録CSV」処理と「csvファイル情報」の関係が分ったので、
 「csvファイル情報」にて、「カテゴリID昇順」になる様にする。』

で、「カテゴリ登録CSV」の「カテゴリID」を明示的に指定した場合は、
多分、管理画面での「カテゴリ管理」で、手動で「カテゴリ」を
追加すると、前述の「明示的に指定」した番号と重なった時点で
エラーが発生することが、予想されます。


SeeDa
投稿日時: 2009/8/26 12:18
対応状況: −−−
半人前
登録日: 2009/8/26
居住地: 名古屋市
投稿: 22
Re: 「カテゴリ登録CSV」時、カテゴリID昇順にしたい。
初めて投稿させていただきます。
最初のEC-CUBE案件なのに、5階層1000カテゴリー越えなんてものを抱えて、このスレッドを参考にさせていただきました。

引用:
Ringoさんは書きました:
多分、管理画面での「カテゴリ管理」で、手動で「カテゴリ」を
追加すると、前述の「明示的に指定」した番号と重なった時点で
エラーが発生することが、予想されます。


結果的に「id」が重複してしました

1つのカテゴリーに50くらいのサブカテゴリーが入るため手入力は非効率的で、商品登録もCSVで行うため自動的に振られるIDも使い勝手が悪いです。

「IDを商品コードみたいに利用したいんです。」
そこで、まず商品マスタのように「全カテゴリ一括削除」機能を追加しました。
単に関連テーブル群のレコードを削除するだけで、serialはそのままです。

加えて
オリジナルの「カテゴリIDが振られていれば上書き」と判断しているところを「指定IDにレコードが無ければ挿入」とするように改造して、「カテゴリIDが変わることなく」いつでも全削除→全登録ができるようにしました。

また
このスレッドの主題である昇順についてですが、CSVファイルを上の行から読み込んでrankをインクリメントするため降順になってしまうのを、fgetcsvする前のアップロードファイルをreverseしておくことで回避しました。

これで“管理画面から追加さえしなければ”任意のIDで昇順に表示することができそうです。
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ


 



ログイン


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

統計情報

総メンバー数は90,344名です
総投稿数は110,365件です

投稿数ランキング

1
seasoft
7369
2
468
3217
3
AMUAMU
2712
4
nanasess
2314
5
umebius
2085
6
yuh
1819
7
h_tanaka
1693
8
red
1571
9
mcontact
1360
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.