質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

90.53%

  • PHP

    23495questions

    PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

  • SQL

    2942questions

    SQL(Structured Query Language)は、リレーショナルデータベース管理システム (RDBMS)のデータベース言語です。大きく分けて、データ定義言語(DDL)、データ操作言語(DML)、データ制御言語(DCL)の3つで構成されており、プログラム上でSQL文を生成して、RDBMSに命令を出し、RDBに必要なデータを格納できます。また、格納したデータを引き出すことも可能です。

  • phpMyAdmin

    785questions

    phpMyAdminはオープンソースで、PHPで書かれたウェブベースのMySQL管理ツールのことです。

  • EC-CUBE

    310questions

    EC-CUBEは、主に日本国内で開発されているECコンテンツ管理システムです。ロックオン社のECKitを元にしてオープンソース化され、商品管理・受注管理・顧客管理・売上集計などECに特化した様々な機能を備えています。

EC-CUBEの商品マスタを消しても、検索結果の数だけ0にならない。

解決済

回答 4

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 985

141kanae

score 20

前提・実現したいこと

商品マスタの全件削除

発生している問題・エラーメッセージ

管理画面内で全て削除したので、商品の一覧部分にはなにも表示されませんが、
検索結果一覧の「■件 が該当しました。」の部分だけ、件数がそのまま残ってしまいました。

イメージ説明

試したこと

dtb_product系のテーブルで、決まった商品を1つだけ手動で削除してみたのですが、
件数に変化はありませんでした。

商品削除は、普通に削除ボタンで行いました。

「DELETE FROM ●(店舗名)_b2beccube.dtb_products WHERE dtb_products.product_id = ●(product_ID)を本当に実行しますか?」というポップアップが出たのでOKを押した感じです。

イメージ説明

補足情報(言語/FW/ツール等のバージョンなど)

CSVをダウンロードしても中身が空で、表示件数分のデータは見当たりません。

EC-CUBE B2Bバージョン    1.0.2
EC-CUBEバージョン    2.13.3
PHPバージョン    PHP 5.6.24
DBバージョン    MySQL 5.7.17

バージョンは上記の通りです。
BtoBを使用しています。


EC-CUBEも初めてで、店舗の製作をまかせた業者にも技術者がいないようで、
直し方が分からなく困っています。

phpMyAdminで色々できるところまでは調べて辿りついたのですが、
どのテーブルでなにをどう編集したら直るのかわからず手をつけられない状態です。

おわかりの方がいらっしゃれば、知恵を貸して頂ければと思います。
よろしくお願いします。

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 4

+2

店舗の製作をまかせた業者にも技術者がいない

というのであれば、

  • 認定制作会社に製作を依頼されなかったのでしょうか?
  • 株式会社スピリット・オブか株式会社アイディーエスから購入してVeiwの製作会社に任されたということでしょうか?
  • ●(店舗名)_b2beccube.dtb_products他に関係する処理に手を加えた形跡・依頼はありますか?

管理画面内で全て削除したので、商品の一覧部分にはなにも表示されませんが、
検索結果一覧の「■件 が該当しました。」の部分だけ、件数がそのまま残ってしまいました。

もし、Veiwの製作だけでの納品で、上記現象となれば、EC-CUBE B2Bのバグっぽいので、
購入契約が分からないので何ですが「有償」なのですから、
購入先の「株式会社スピリット・オブか株式会社アイディーエス」に問合せるのが一番かと。

以下は個人的興味です。
状況が、今一つ理解・想像が出来ないので、もしよろしかったら、教えてください。

EC-CUBE B2Bバージョン    1.0.2
EC-CUBEバージョン    2.13.3

と、B2Bと(無償)EC-CUBEの2つのEC-CUBEのバージョンを提示されている理由を教えてください。

  • EC-CUBE B2Bは 「1.0.2」(無償)EC-CUBEのバージョンが2.13.3をラップしているのでしょうか?
  • EC-CUBEバージョン    2.13.3は「練習用」に別途稼動させている、、、ということでしょうか?

DELETE FROM `●(店舗名)_b2beccube...

から推測するに「(無償)EC-CUBEをラップ」では無いと推測してます。 なぜなら、DBのテーブル名、フィールド名が(無償)EC-CUBE 2.12.3とは異なるため、このDBでは(無償)EC-CUBE 2.12.3は(大幅に手を加えないと)動かないはずなので。 この「大幅に手を加えたもの」が「EC-CUBE B2B」というのならば、理解できます。

商品削除は、普通に削除ボタンで行いました。

これは、EC-CUBE B2Bの管理画面内にも「商品管理」タグがあって、そこでの商品削除では

DELETE FROM ●(店舗名)_b2beccube.dtb_products WHERE dtb_products.product_id = ●(product_ID)を本当に実行しますか?

が表示されるという理解でよろしいでしょうか?

それとも、

phpMyAdminで色々できるところまでは調べて辿りついたのですが、 どのテーブルでなにをどう編集したら直るのかわからず手をつけられない状態です。

ということから、phpMyAdminで削除した時の表示でしょうか?

●(店舗名)_b2beccube.dtb_productsのフィールドに「del_flg」が有るかどうか教えてください。 多分、del_flgは有ると思います。 dbのデータを直接操作するには、phpプログラムでの「リレーション」を完璧に理解した上で、 del_flgに「1」を立てたり、レコード削除をする必要があります。

追伸:
もしも、phpコードに手を加える様な事になった場合には、
「株式会社スピリット・オブ」の「よくある質問」内の
【ライセンス上の制約】
修正禁止部分は修正しない。
【アップデートを考慮した実装ルール】
class_extendsに記述・オーバーライド
とし、対バージョンアップ性を保ってください。

上記の多々質問の回答次第ですが、

EC-CUBEも初めてで、店舗の製作をまかせた業者にも技術者がいないようで、
直し方が分からなく困っています。

  • DBのバックアップがあれば、リストで戻ると思います。
  • DBのバックアップがなければ、E2B再設置後、商品再登録となると思います。

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2017/03/09 10:53

    ご丁寧な回答を頂きありがとうございます。

    >>認定制作会社に製作を依頼されなかったのでしょうか?
    >>株式会社スピリット・オブか株式会社アイディーエスから購入してVeiwの製作会社に任されたということでしょうか?
    後者です!
    ライセンスだけスピリット・オブから購入し、弊社とおつきあいがあるWEB制作会社さんに依頼いたしました。
    商品登録だけこちらでやっています!

    >>●(店舗名)_b2beccube.dtb_products他に関係する処理に手を加えた形跡・依頼はありますか?
    特に依頼はしていないかと思います。
    こちらも初心者ですし、業者さんもEC-CUBEでの事例はあまりない(B2Bは初めてと言っていたような)そうなので、特別難しい処理をしていることは無いと思います。

    >>B2Bと(無償)EC-CUBEの2つのEC-CUBEのバージョンを提示されている理由を教えてください。
    >>EC-CUBE B2Bは 「1.0.2」(無償)EC-CUBEのバージョンが2.13.3をラップしているのでしょうか?
    >>EC-CUBEバージョン 2.13.3は「練習用」に別途稼動させている、、、ということでしょうか?
    それは、私が管理画面の「システム情報」の部分に記載されていた項目をまるまるコピペしたからで、特別な意味はありません…!
    混乱させてしまっていたら申し訳ありません…!
    ラップしているかどうかは、業者さんにおまかせしたっきりなので把握できていない状態です…。
    テーブル名などがB2Bなのは、元々企業向けの商材を扱うのでB2Bで製作を依頼しているからだと思っております。

    >>商品削除は、EC-CUBE B2Bの管理画面内にも「商品管理」タグがあって、
    >>そこでの商品削除では「DELETE FROM ●(店舗名)_b2beccube.dtb_products WHERE dtb_products.product_id = ●(product_ID)を本当に実行しますか?」が表示されるという理解でよろしいでしょうか?
    >>それとも、phpMyAdminで削除した時の表示でしょうか?
    後者の、phpMyAdminからです。
    フィールド内に出ている「削除」の部分から消しました。
    (質問時に添付している画像の黄色くなっている部分を使いました。)

    >>●(店舗名)_b2beccube.dtb_productsのフィールドに「del_flg」が有るかどうか教えてください。
    フィールドの右の方にあります。
    数値は1になってます。
    「リレーション」については、理解が及ぶ前に作業してしまっていたと思います…。


    E2B再設置については、上司と相談してみます!
    ご指摘頂いた通りもう少し様子をみて、スピリット・オブさんにも問い合わせてみようかとおもいます。

    キャンセル

  • 2017/03/09 11:13 編集

    「スピリット・オブ」の「B2B」版のページを見てみました。
    まず、問い合わせについては、直接対応はしておらず、「近くのパートナー会社を紹介します」とのことです。

    EC-CUBE B2Bは  1.0.2
    EC-CUBEバージョン 2.13.3
    の関係は
    >「システム情報」の部分に記載されていた項目をまるまるコピペ
    と、「スピリット・オブ」の「B2B」版のページの内容で理解出来ました。

    B2B 1.0.2 は EC-CUBE2.13.3に「B2B」機能を追加した様です。
    DB構造も変更が掛かっているとのことでした。

    「有償」ですから、「スピリット・オブから直接の支援は得られない」にしても「交渉して、ちゃんとした対応を得てください。」

    正当な『不誠実さ』を感じましたら、また、投稿してください。「開発コミュニティ」経由で、川口さんに聞いてみますので。

    キャンセル

checkベストアンサー

+1

有償ライセンスでソースの公開禁止なので、間違っても、B2Bのコードを公開しない様、注意願います。

個人的興味 + B2Bライセンスを持っていないことから、もし、よかったら、以下の事を試してみて貰えませんか?

E2B再設置については、上司と相談してみます!

B2Bは「cart」urlライセンスなので、素のB2Bをurlに再設置する事は問題ないはず。
素で、管理画面から商品を全削除(論理削除:del_flg=1)して、検索して、0件になるかどうか?

もし、0件にならないなら、B2Bのバグ。
もし、0件になったのなら、Web制作会社が何がしか、間違いを施してしまった。

に、切り分けられると思います。

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

+1

LC_Page_Admin_Products.phpの366行目から以下のコードがあり、そこでtpl_linemaxの値を決めています。

    /**
     * 検索結果の行数を取得する.
     *
     * @param  string  $where     検索条件の WHERE 句
     * @param  array   $arrValues 検索条件のパラメーター
     * @return integer 検索結果の行数
     */
    public function getNumberOfLines($where, $arrValues)
    {
        $objQuery =& SC_Query_Ex::getSingletonInstance();

        return $objQuery->count('dtb_products', $where, $arrValues);
    }

特にキャッシュをしているような処理もないようですし、きちんとデータベースからデータが消えてるかは確認されましたでしょうか?
データが正しく削除されてない可能性があります。

また商品の一括削除を行いたい場合は

備忘録:EC CUBE の商品を全削除して商品IDをリセットする方法
http://crushpow.com/archives/1993.html

こちらのサイトを参考にされるとよいかと思います。

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2017/03/08 16:23

    ご回答ありがとうございます。

    データベース=phpMyAdminと解釈しているのですが、それであっていれば、質問本文にアップロードしている画像の「おなべ」の上に表示されていた商品を削除したので、成功しているかと思います。

    オススメ頂いたURLの方法ですが、このトラブルがあった当初に見つけた記事でした!
    PHPなどに触れるのが今回はじめてなので、全ての作業において自信がなく、ずっと試すのを保留にしておりました…><

    改めて見ると商品情報関係のテーブルだけしか命令文が書いてないの、手動の削除で件数が減らなかったのが不安要素ではありますが、思い切って試してみようかと思います…!

    キャンセル

  • 2017/03/08 16:48

    リンク先のSQL文を実行する前に一度データベースのバックアップはとっておいた方がよいと思います。
    phpMyAdminにてデータベースのバックアップを行う方法ですが、下記のサイトをご参考ください。

    https://www.dbonline.jp/phpmyadmin/export-import/index1.html

    キャンセル

0

ちょっとEC-CUBEのソースコードを詳細に見たわけではないので
原因が特定できませんが、

該当する表示件数は、
\data\class\pages\admin\products\LC_Page_Admin_Products_ProductSelect.phpの
lfGetProducts関数の中でカウントしていると思われます。

1件削除してみた商品がphpmyadminからdelete文で消去したのであれば、また違う謎になりますが・・・

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2017/03/08 14:40

    ご回答ありがとうございます…!!

    商品削除は、dtb_productsという所を押すと出て来る画面で、普通に削除ボタンで消してしまいました。

    「DELETE FROM `●(店舗名)_b2beccube`.`dtb_products` WHERE `dtb_products`.`product_id` = ●(product_ID)を本当に実行しますか?」というポップアップが出たのですが、これがdelete文で間違いなければ、謎になります…><

    キャンセル

  • 2017/03/08 15:10

    EC-CUBEがカスタマイズされている場合、なんとも言えないのですが、
    tplファイルに$tpl_linemaxという変数で渡しているはずです。
    その$tpl_linemaxを取得している部分がどうなっているのかを見ることができれば、そこにヒントがあるはずです。

    ないとは思いますが、もしかするとカテゴリ別商品数テーブルを計算して取ってきている可能性もあります。

    キャンセル

同じタグがついた質問を見る

  • PHP

    23495questions

    PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

  • SQL

    2942questions

    SQL(Structured Query Language)は、リレーショナルデータベース管理システム (RDBMS)のデータベース言語です。大きく分けて、データ定義言語(DDL)、データ操作言語(DML)、データ制御言語(DCL)の3つで構成されており、プログラム上でSQL文を生成して、RDBMSに命令を出し、RDBに必要なデータを格納できます。また、格納したデータを引き出すことも可能です。

  • phpMyAdmin

    785questions

    phpMyAdminはオープンソースで、PHPで書かれたウェブベースのMySQL管理ツールのことです。

  • EC-CUBE

    310questions

    EC-CUBEは、主に日本国内で開発されているECコンテンツ管理システムです。ロックオン社のECKitを元にしてオープンソース化され、商品管理・受注管理・顧客管理・売上集計などECに特化した様々な機能を備えています。