nosu のすべての投稿

間違えて消してしまった顧客名簿と商品データ

嗚呼、困った・・・一番大事な顧客名簿を間違えて消してしまった・・・

そう思って諦めるのはまだ早い。

データベースは消えてなかったのです。

私の使っているエックスサーバーは管理パネルのphpmyadminからデータベースを弄れるようになっています。
こういうのがあるかないかで、本当に違いますね。エックスサーバーさんにお願いしてホントうに良かった。

さて、具体的に。

0

左はエックスサーバー管理ページであるサーバーパネルです。
データベーの
phpmyadmin(MySQL5.0)
からログイン。

データベース名ではなく、アクセスユーザーとパスワードでログインするのでお間違い無く。

 

 

 

1

 

 

該当のデータベースの中から

 

 

2

 

 

顧客名簿であれば「dtb_customer」を探しだし、

 

 

3

 

 

この表示では何が何だか分からないので、左上の「表示」というタブを押しますと・・・

 

 

4

 

 

じゃん。分かりやすいリスト形式で表示されます。

ので

 

 

5

 
該当する人を鉛筆マークで編集モードに

 

 

 

6

 

下の方のdel_flg を1から0に直します。

これでお客様が復活しました。
ありがとう神様。

 

さて、では商品のほうですが。

7

今度は「dtb_products」を弄るわけですが・・

商品の復活はプロダクトを復活させるだけではだめで、価格も別に復活させないとだめなのだそうです。

こんなこと自力じゃわかりませんが、こちらのページを参考にさせていただきました。
http://ec-cube.nakweb.com/blog/1522.html
ありがとう、本当にありがとう、作者さん。

 

8で、数が多くて面倒なので

上記のページで詳しく教えて下さっているとおり、

update dtb_products set del_flg = 0 where product_id = x;
update dtb_products_class set del_flg = 0 where product_id = x;

この二行をSQLで実行してあげ、ちょっとラクに入力出来ました。
×には商品IDを入れます。(*ワイルドカードのアスタリスクで一気に・・とおもったけど、そういう雑な自分がこんな悲劇を招いたので、チャレンジはやめました)。

リストから、対象の商品のIDをメモに書き写して、この二行の×の部分にまとめて番号をいれていきます。

こんな感じで。テキストに書いてからコピペ。

update dtb_products set del_flg = 0 where product_id = 5;
update dtb_products_class set del_flg = 0 where product_id = 5;
update dtb_products set del_flg = 0 where product_id = 6;
update dtb_products_class set del_flg = 0 where product_id = 6;
update dtb_products set del_flg = 0 where product_id = 9;
update dtb_products_class set del_flg = 0 where product_id = 9;
update dtb_products set del_flg = 0 where product_id = 10;
update dtb_products_class set del_flg = 0 where product_id = 10;
update dtb_products set del_flg = 0 where product_id = 11;
update dtb_products_class set del_flg = 0 where product_id = 11;
update dtb_products set del_flg = 0 where product_id = 12;
update dtb_products_class set del_flg = 0 where product_id = 12;
update dtb_products set del_flg = 0 where product_id = 13;
update dtb_products_class set del_flg = 0 where product_id = 13;
update dtb_products set del_flg = 0 where product_id = 14;
update dtb_products_class set del_flg = 0 where product_id = 14;
update dtb_products set del_flg = 0 where product_id = 15;
update dtb_products_class set del_flg = 0 where product_id = 15;
update dtb_products set del_flg = 0 where product_id = 16;
update dtb_products_class set del_flg = 0 where product_id = 16;
update dtb_products set del_flg = 0 where product_id = 17;
update dtb_products_class set del_flg = 0 where product_id = 17;
update dtb_products set del_flg = 0 where product_id = 18;
update dtb_products_class set del_flg = 0 where product_id = 18;
update dtb_products set del_flg = 0 where product_id = 19;
update dtb_products_class set del_flg = 0 where product_id = 19;
update dtb_products set del_flg = 0 where product_id = 20;
update dtb_products_class set del_flg = 0 where product_id = 20;
update dtb_products set del_flg = 0 where product_id = 21;
update dtb_products_class set del_flg = 0 where product_id = 21;
update dtb_products set del_flg = 0 where product_id = 22;
update dtb_products_class set del_flg = 0 where product_id = 22;
update dtb_products set del_flg = 0 where product_id = 23;
update dtb_products_class set del_flg = 0 where product_id = 23;
update dtb_products set del_flg = 0 where product_id = 24;
update dtb_products_class set del_flg = 0 where product_id = 24;
update dtb_products set del_flg = 0 where product_id = 25;
update dtb_products_class set del_flg = 0 where product_id = 25;
update dtb_products set del_flg = 0 where product_id = 26;
update dtb_products_class set del_flg = 0 where product_id = 26;
update dtb_products set del_flg = 0 where product_id = 27;
update dtb_products_class set del_flg = 0 where product_id = 27;
update dtb_products set del_flg = 0 where product_id = 28;
update dtb_products_class set del_flg = 0 where product_id = 28;
update dtb_products set del_flg = 0 where product_id = 29;
update dtb_products_class set del_flg = 0 where product_id = 29;
・・・以下割愛。

我ながら大変だった。

 

でもこれだとカテゴリが復活できないんですよね。

しかしそんな我が儘はもういいません。

っこれだけ復活出来ただけでも奇跡の感謝。
あとはコツコツカテゴリを復活させて商品事に登録してゆくことにしました。

買い物かごに戻るボタンをつける

会員登録後に買い物かごに戻るボタンがないのはちょっと不便という声がちらほら見える。

だので、トップページに戻るボタンの前に付けてあげる。

デザイン管理>PC>ページ詳細設定>会員登録(完了ページ)
本会員登録完了のページで青い部分を挿入して下さい。

 

<div id=”undercolumn”>
<div id=”undercolumn_entry”>
<h2 class=”title”><!–{$tpl_title|h}–></h2>
<div id=”complete_area”>
<p class=”message”>登録が完了いたしました。<br />
<p>今後ともご愛顧賜りますよう、宜しくお願い申し上げます。</p>

<div class=”shop_information”>
<p class=”name”><!–{$arrSiteInfo.company_name|h}–></p>

E-mall:<a href=”mailto:<!–{$arrSiteInfo.email02|escape:’hex’}–>”><!–{$arrSiteInfo.email02|escape:’hexentity’}–></a></p>
</div>
<br>

<div class=”btn_area”>

<!–{if !$tpl_cart_empty}–>
<a href=”<!–{$smarty.const.CART_URLPATH}–>” onmouseover=”chgImg(‘<!–{$TPL_URLPATH}–>img/button/btn_buystep_on.jpg’,'button_cart’);” onmouseout=”chgImg(‘<!–{$TPL_URLPATH}–>img/button/btn_buystep.jpg’,'button_cart’);”><img src=”<!–{$TPL_URLPATH}–>img/button/btn_buystep.jpg” alt=”カートへ戻る” border=”0″ name=”button_cart” /></a>
<!–{/if}–>

<li>
<a href=”<!–{$smarty.const.TOP_URLPATH}–>”><img class=”hover_change_image” src=”<!–{$TPL_URLPATH}–>img/button/btn_toppage.jpg” alt=”トップページへ” /></a>
</li>
</div>
</div>
</div>
</div>

ピクチャ 1

↑これから↓これへ

ピクチャ 2

会員登録をした人のみ購入可能なサイトにしたい

これはちょっと考えたら簡単で、お買い物するときにすすむログインのページの「会員登録しないで買い物をする」という部分を削除してしまえば良いだけでした。

 

携帯は事実上登録しないと買い物できないので、直すのはPCとスマートフォンの設定のみです。

デザイン管理>PC>ページ詳細設定>商品購入/ログイン

デザイン管理>スマートフォン>ページ詳細設定>商品購入/ログイン

 

いずれも文末の部分を削除あるいはコメントアウトします。

<h4>会員登録をせずに購入手続きへ進む</h4>
<p class=”inputtext”>会員登録をせずに購入手続きをされたい方は、下記よりお進みください。</p>
<form name=”member_form2″ id=”member_form2″ method=”post” action=”?”>
<input type=”hidden” name=”<!–{$smarty.const.TRANSACTION_ID_NAME}–>” value=”<!–{$transactionid}–>” />
<input type=”hidden” name=”mode” value=”nonmember” />
<div class=”inputbox”>
<div class=”btn_area”>
<ul>
<li>
<input type=”image” class=”hover_change_image” src=”<!–{$TPL_URLPATH}–>img/button/btn_buystep.jpg” alt=”購入手続きへ” name=”buystep” id=”buystep” />
</li>
</ul>
</div>
</div>
</form>
</div>
</div>
</div>

さらに、”会員登録をする”ほうの説明文言も変えないといけませんね。

「当サイトは会員限定です。<br />

お買い物の際には簡単な会員登録をお願い致します。」

など、としたほうがいいですね。

性別などの必須項目を削除したい

  1. 必須項目の指定を外す。

たとえば必須項目である性別をフォームから外したい場合、フォームをウェブ上から消すだけでは、実際に登録しようとしたときエラーが出てしまい先に進めなくなります。

そこで、この必須項目の指定を外してやらないと行けません。

eccube/data/class/helper/SC_Helper_Customer.php

EXIST_CHECKがついている項目が必須項目なので、EXIST_CHECKを外す(削除)だけでOKです。

例えば、性別の必須がいらなかったので性別必須を外すには

 

412行目付近

$objFormParam->addParam(‘性別’, ‘sex’, INT_LEN, ‘n’, array(‘EXIST_CHECK‘,’NUM_CHECK’, ‘MAX_LENGTH_CHECK’));

$objFormParam->addParam(‘性別’, ‘sex’, INT_LEN, ‘n’, array(‘NUM_CHECK’, ‘MAX_LENGTH_CHECK’));

にしてやればいいわけです。また、 メールマガジンは417行目

 $objFormParam->addParam(‘メールマガジン’, ‘mailmaga_flg’, INT_LEN, ‘n’, array(‘EXIST_CHECK’, ‘NUM_CHECK’, ‘MAX_LENGTH_CHECK’));

$objFormParam->addParam(‘メールマガジン’, ‘mailmaga_flg’, INT_LEN, ‘n’, array(‘NUM_CHECK’, ‘MAX_LENGTH_CHECK’));

に変更。

追記
以前は会員と非会員、別々に必須の項目を解除しなくてはいけなかったのですが、2.12〜では

eccube/data/class/helper/SC_Helper_Customer.php

だけ変更すれば両方とも解除できるようです。
よかった。

 

+++++++++++

2、必須を外した項目をフォームから消します。

PC

こちらはデザイン管理からではなく、直接HTMLを書き直して変更します。

■会員登録
data>Smarty>template>default>frontparts>form_personal_input

確認ページ
data>Smarty>template>default>frontpart>form_personal_confirm.tpl

■会員登録完了・・・文言修正
data>Smarty>template>default>regist>complete.tpl

 

デザイン管理>PC>ページ詳細設定
■MYページ/会員登録内容変更(完了ページ)・・必要があれば文章修正

 

スマホ

スマホ会員登録ページ
data>Smarty>template>sphone>frontparts>form_personal_input.tpl

スマホ会員登録確認ページ
data>Smarty>template>sphone>frontparts>form_personal_confirm.tpl

スマホ会員登録完了ページ
data>Smarty>template>sphone>regist>complete.tpl

デザイン管理>スマホ>ページ詳細設定
■MYページ/会員登録内容変更(完了ページ)・・文章修正

 

モバイル

デザイン管理>モバイル>ページ詳細設定
会員登録(入力ページ)

MYページ/会員登録内容変更(入力ページ)
MYページ/会員登録内容変更(完了ページ) 文言修正

会員登録内容の確認ページ
data>Smarty>template>mobile>entry>confirm.tpl

会員登録(完了ページ) 文言修正
data>Smarty>template>mobile>regist>complete.tpl

”通常価格” ”販売価格” など、サイト上で表示される名称の変更方法

通常価格 や 販売価格 といったワードはあいまいですので変更した。

システム設定>パラメーター設定>で

 

通常価格 NORMAL_PRICE_TITLE →  定価

販売価格 SALE_PRICE_TITLE  →セール価格 や 弊社特別価格

 

に書き換えてあげると実際のサイト上での表示が変わります。

本体価格の表示


2.13.1は税率の変化に備えて強化バージョンだと思うのですが、基本情報管理で税率を設定してしまうと、HP上で表示されるのは「通常価格」も「販売価格も」税込み価格表示になってしまいます。

 

そこでどうしても両方表示したいばあい。

 

まず

通常価格は  price01

販売価格は  price02  どちらの本体価格も表示できます。

<!–{$arrProduct.price02_min|number_format}–>円(本体価格)

これは販売価格の本体価格です。

100-2

こんなふうに税抜き価格、あるいは定価●●円(本体価格)など、お好きに表示できますね。

100-1写真 2014-04-08 14 56 17

100-4

モバイルの一覧表示に画像を表示したい

どういうわけか、2.11以降は変更が必要だったはずなのに、2.12.6まででは古い記述でも動作してました。

ですが、2.13.1であたらしくサイトを作ったときにようやく動作しないことが分かったのですが、モバイルのリスト表示で画像が表示できなくなっていました。

 

そこで新しい記述方法です。

 

2.13.1ではもはや変更はほとんど、管理ページのデザイン管理からやるのがいいようです。

デザイン管理画面>モバイル>ページ詳細設定>商品一覧ページ
赤い部分を書き足します。

 

 

<!– ▼商品 ここから –>

 <img src=”<!–{$smarty.const.ROOT_URLPATH}–>resize_image.php?image=<!–{$arrProduct.main_list_image|sfNoImageMainList|h}–>&width=50&height=50″ alt=”<!–{$arrProduct.name|h}–>” />

<!– 商品名 –><!–{$arrProduct.name|h}–><br>

 

以上

ポイント制 廃止

やっとシステム設定>パラメータ設定で設定すれば、停止できるようになりましたね。

 

システム設定>パラメータ設定>USE_POINT

デフォルトではtureになっていますので、falseに書き直します。

これで出来上がり・・

 

簡単すぎて今までの苦労はいったい・・

コメントアウト

EC-CUBEでテンプレートタグのところをコメントアウトしたい場合、
以下のように「if false」で囲むことでコメントアウトすることが可能です。


消したい要素

こうすると「消したい要素」という言葉が、ウェブの画面上から消えて見えなくなります。
覚え書きなどにも利用出来ますね