ワンクリックで献立を自動生成
献立サイト「即決一汁二菜」
「スタート」を押すといろいろ入れ込んだ献立をランダムに表示します。
AIとかそういったものはないので幅広くトンチンカンな献立ができるのがポイントです。
すぐ忘れるので備忘録
ワンクリックで献立を自動生成
献立サイト「即決一汁二菜」
「スタート」を押すといろいろ入れ込んだ献立をランダムに表示します。
AIとかそういったものはないので幅広くトンチンカンな献立ができるのがポイントです。
EC-CUBE3の注文メール、お問い合わせのメールはお客様に送る内容と同じものをBCCで管理人に送っているので、マスター情報に入れてある管理人メールアドレスに届いたメールに返信をしても自分のところに戻ってきてしまいます。
これを返信したときにお客様へのメールにすぐできるようにする方法です。
\src\Eccube\Service\MailService.php
開いてみるとわかる通りお客様宛メールはここで一括管理しています。
適当にいじれば何とかなります。
この3件のメールを修正します。
・お問い合わせ受付メール送信開始
・受注メール送信開始
・受注管理通知メール送信開始
どれも、管理人に送られてきたメールの宛先をお客様のメアドにするので、管理人がメールを開いて返信をすることで簡単にお客様にメールを送ることができます。
上記3つ以外のところでもカスタマイズしたい場合はこちらを参考に
①各部分で
->setBcc($this->BaseInfo->getEma~~~
をコメントアウト
②直近の
$count = $this->app->mail($message);
の下に、直上の$messageをコピペして
->setFrom(array($this->BaseInfo->getEmail01() => $this->BaseInfo->getShopName()))
->setTo(array($Order->getEmail()))
->setBcc($this->BaseInfo->getEmail01())
->setReplyTo($this->BaseInfo->getEmail03())
Bcc項目を削除
③次の項目の内容を入れ替えます
->setFrom()
->setTo()
->setReplyTo(
->setReturnPath()
④その下に1行追加
$count = $this->app->mail($message);
log_info(‘お問い合わせ受付メール送信開始’);
の場所を探します
次のように書き換えます
// 問い合わせ者にメール送信 $event = new EventArgs( $count = $this->app->mail($message); //ここが追加部分————— $count = $this->app->mail($message); log_info(‘お問い合わせ受付メール送信完了’, array(‘count’ => $count)); |
お客様から注文が入ったときに管理人あてにくるメールです
$message = \Swift_Message::newInstance() $event = new EventArgs( $count = $this->app->mail($message); //ここが追加部分————— $count = $this->app->mail($message); log_info(‘受注メール送信完了’, array(‘count’ => $count)); |
ここは管理画面からお客様へ「発送しましたよ」とか「注文を受付しましたよ」的なメールを送る際に使用する場所です。
$message = \Swift_Message::newInstance() $event = new EventArgs( $count = $this->app->mail($message); //追加するところ————— $count = $this->app->mail($message); //—————– log_info(‘受注管理通知メール送信完了’, array(‘count’ => $count)); |
ここで修正する全部のところに共通しますが
->setBcc(
をコメントアウトすることを忘れないように。
コメントアウトしないと、管理人までメールが来てしまいます。
会員登録関係でとっても便利な機能を持っているEC-CUBE3
でも、会員登録の認証メールとかも管理人に通知が来るのでとても邪魔です。会員登録は勝手にこっそりやってほしい場合のカスタマイズです。あと、お客様に送った通知メールも管理人に来てややこしくなるのでSTOPさせます。
\src\Eccube\Service\MailService.php
ここでBCCで管理人にメールを送っているので修正すればOK
全体でメールのタイトルや、Bccを他に追加したいときもここをいじるとOKです。
この4つが該当します。
・仮会員登録メール
・会員登録完了メール
・退会手続き完了メール
・仮会員登録再送メール
\src\Eccube\Service\MailService.php
ここでログを履きさす部分に上記の4項目が書いてあるので検索してその場所を特定します。
その付近にある
->setBcc($this->BaseInfo->getEmail01())
をコメントアウト
エディタは「Terapad」を使用しています。
デフォルトでこんな感じに色がつくからわかりやすくて便利です
このソースは「ファイルの中の文字を探すツールの作り方」の内容です
ソースコードはこちらになります
private void listBox1_DragDrop(object sender, DragEventArgs e) { if (e.Data.GetDataPresent(DataFormats.FileDrop)) { foreach (string fileName in (string[])e.Data.GetData(DataFormats.FileDrop)) { listBox1.Items.Add(fileName); } } } private void listBox1_KeyDown(object sender, KeyEventArgs e) { if (e.KeyCode == Keys.Delete) { for (int i = 0; i <= listBox1.SelectedItems.Count; i++) { listBox1.Items.Remove(listBox1.SelectedItem); } } }
private void button3_Click(object sender, EventArgs e) { listBox1.Items.Clear(); }
private void button3_Click(object sender, EventArgs e) { textBox1.Text = ""; }
private void button1_Click(object sender, EventArgs e) { string path; string src_utf; string src_sift; int datacnt = 0; System.IO.StreamReader reader; string key_old = textBox2.Text; bool ChangeFlg; for (int i = 0; i < listBox1.Items.Count; i++) { path = listBox1.Items[i].ToString(); string[] files = { path }; if (System.IO.File.Exists(path)) { // ファイルだ! } else { //ディレクトリだ! files = System.IO.Directory.GetFiles(path, "*", System.IO.SearchOption.AllDirectories); } foreach (string searchfile in files) { label1.Text = searchfile; System.Windows.Forms.Application.DoEvents(); reader = new System.IO.StreamReader(searchfile, System.Text.Encoding.GetEncoding("utf-8")); src_utf = reader.ReadToEnd(); reader.Close(); reader = new System.IO.StreamReader(searchfile, System.Text.Encoding.GetEncoding("shift_jis")); src_sift = reader.ReadToEnd(); reader.Close(); if (src_utf.IndexOf(key_old) != -1) { textBox1.Text = textBox1.Text + searchfile + "\r\n"; datacnt++; }else if(src_sift.IndexOf(key_old) != -1){ textBox1.Text = textBox1.Text + searchfile + "\r\n"; datacnt++; } } } label1.Text = "FIX=" + datacnt.ToString() ; MessageBox.Show("OK"); }
いきなり本番のURLで作りこむ猛者はいないと思います。
とりあえずどこか適当なURLで作ってから、本番へ移行ということが多いので、
その時の引っ越しのポイントです。
普通だと
という感じだけ動くのですが、
それでもなぜか動かない場合の方法の一例です。
app/config/eccube/path.yml
を修正するときに、上の方の「tpl」下の方の「admin_urlpath」あたりが、下書きサイトが第二階層で引越しサイトが第一階層だと、文字の変換でうまくいかないので手作業で確認と修正が注意が必要です。
とくにCSSがうまく読み込めていないなどはココが影響します。
良くわからない場合は、一度EC-CUBEをインストして、自動生成されたpath.ymlを参考にしてください。
もし本番サイトがhttpsサイトの場合には
下書きサイト自体でhttps環境で作り
システム設定 > セキュリティ管理 > サイトセキュリティ設定で
□SSLを強制にチェックを入れて作っておく。
次項目で「3.本番環境に自動インストール」の後にログインして
同じように□SSLを強制にしておくとスムーズに以降できます。
(ロリポップだと無料で独自ドメインをsslにできるので便利!)
phpバージョンやCGI版・モジュール版などは同じものにしておいた方が良いです。
というよりも私だったら「絶対に同じにしておく!」
同じような環境が準備できない場合には本番サイト下層もしくはマルチドメインで同じサーバーに作ると安心です。
下書きサイトのデータをFTPですべてダウンロード
【このページは時短ページ】要点は緑色の太文字だけ読めばわかると思います
今までは外国向けECサイトをhtmlでやっていた老舗の会社から
「ショッピングカートと会員登録とメルマガが機能がほしい」
と言われてEC系のCMSを導入することになりました。
そこで候補として挙がったのが
「外国産で外国では超有名な安心のMagento2」
と
「国産で日本では有名だけど外国は微妙なEC-CUBE3」
実際に導入する際の比較検討です。
もし悩んでいる方がいましたら参考にしてください。
EC-CUBE3を選びました。
理由はレンタルサーバーを使用しているので、Magento2を使えるほどのスペックがなかったからです。
サーバーのスペックが許されればmagento2を使いたかったです。
サーバーの機能不足でMagento2は使えない
「Magento2をインストールする際に最低でも512MB欲しい」
一時だけPHPのメモリを増やしたいんですが…って問い合わせたら
大変丁寧に「ダメ」って言われました^^;
それと「imagemagick」を使用しているので、このあたりもチェックポイントになります。
この3つのサーバーってナウでヤングなので好きです。
新しい機能とかガンガン取り入れるからいいですよ。
古いところだとPHPもMySQLも古いし、機能少ないし、問い合わせてもトンチンカンな返事が来たりとか多いので…
実際、高スペックなVPSで動かすならMagento2のが良いと思います。
Magento2の容量がすさまじいので断念しましたが、Magento1ならレンタルサーバーでも十分動きます。
でもphp5.5までの環境でしか動かないので、新しくサイトを作る場合にphp5.5で使わせてくれるサーバーなんてないのでダメでした。
一応php5.6で動くとは言われていますが、Magento1は2016年以降プラグイン系が一切動かないので使えないと断言できます。
Magento2の場合は英語→日本語に
EC-CUBE3の場合日本語→英語に
どちらも同じような手作業で翻訳する必要があります。
実際、どっちが楽かというと「英語→日本語」の方が楽です。
片言の英語が読めたり、Google翻訳を使えばニュアンスがわかるのでネイティヴな日本語で翻訳することができます!
あと、デザインや操作なども世界向けなのでMagento2のが安心です。
特に電話番号や郵便番号はEC-CUBE3では国内向けガチガチなので、結構カスタマイズしないと使えません。
電話番号が+の国番号から始またったり、名前にスペースが入ったり、住所の長さや書き方などは世界標準に合っている方が便利です。
それに「英語→日本語」だと、ちょっとくらい英語が残ってても大丈夫。逆にカッコいいじゃん?
フォーラムや改造テクで日本語が多いのがEC-CUBE3。
でも世界的にみると使用している人数が少ないので、Magento2の方が情報は沢山あります!しかし全部英語です!
でもカタコトの英語ができればなんとかなるレベルです。
日本公式さんも頑張って欲しいところです…
根性入れればなんとかなります。
一応軽くですが越境EC-CUBE3変更した点をまとめましたのでご参考に。
あと、「ファイルの中を探すツールの作り方」も公開しているので、これを使えばどこのファイルを修正すればいいかわかるので作っておいた方がいいと思います。
C#でつくる簡単プログラム
ファイルを開いて中の文字を検索して、検索文字が入っていたファイルをリストアップします。
EC-CUBEやMagentoなどオープンソースの便利なシステムがたくさんあります。
でも「この部分を変更したい」というときに
「”この部分”がどこにあるのか探したい」というときに便利です。
例によってツールはVisualstudioのC#を使用しています。
「VisualstudioのC#」はMicrosoftが提供している無料の開発ツールです。
C#の使い方はここでは割愛させていただきます。
まずフォームに「listbox1」「textbox1」「textbox2」「button1」「button2」「button3」「label1」を置きます
きちんとイベントに結び付けてから記述してください
ソースコードはコチラです
↓
「ファイルの中の文字を探すツールの作り方2(ソースコード)」
CuctomEntoryの中に入っているファイルすべての中で「電話」と書いてあるファイルを表示します。
なんかエラー出た。まぁいいやwごめん。
昔作ったツールの焼き直しだから、使っていない変数とかあったw
あと細かくは適当に直してください。
越境ECサイト…日本以外の外国向けの通販サイトを検討していて、EC-CUBE3を使用する場合に、最低限変更をしたポイントです。
お金がたくさんあるのならプロに頼みましょう!
こちらは自力で頑張る人向けのゴリゴリ系カスタマイズです。
言語設定/src/Eccube/Resource/template/default/default_frame.twig
郵便番号は使わないし、カナも使いません。
電話番号も名前の入力も変えないとです。
都道府県はどうしても消すことができない項目なので2通りの方法があります。
1つは、送料計算で使用しているので、発送する場所すべての国や地域を都道府県ではなく国やエリア名にする方法
もう1つは使用しない方法…送料無料にし空文字を入れて実質無効化する方法。
私の場合は、どの国から来るのかわからないので後者を使用しています。
mdb_prefを削除したり適当にやったら送料計算のところで動かなくなっちゃいました。
奥の方まで直すのも面倒なので、一番最初の項目を” “(半角スペース)にして住所の確認などの画面や自動メールで表示させないようにします。
さらにユーザーが入力するフォームでは「都道府県」項目を非表示にしつつ、Javascriptで強制的に最初の” ”を選択しておきます。
世界を相手にするには送料は自動計算できないくらいの情報量になるので送料無料または固定にするのがベストです。
①「自作プラグイン」もしくは「src\Eccube\Form\Type\**.php」の部分で必須を外す
・ファイルを直す場合 src\Eccube\Form\Type\**.php ->add(‘zip’, ‘zip’, array(
|
プラグイン初心者(EC-CUBE3初心者)でもできたのでオススメです! 3ファイルを作成したらフォルダ情報を含まずtar.gzで圧縮し管理画面の「オーナーズストア」「プラグイン」「プラグイン一覧」からアップロードして「有効」で使えるようになります。
|
②マスターデータ管理「mtb_pref」でID1のNameを半角スペースに(半角スペースがダメならDBを直接編集)
③全ての表示を行っているページでcssを使って非表示****部分は各ページごとに違うので注意
<style type=”text/css”>
<!–
#****__quantity { display:none !important; }
–>
</style>
④javaでprefの1を強制選択&非表示
<script>
document.getElementById(“pref”).value = “1”;
document.getElementById(“pref”).style.display = “none”;
</script>
〒の場合③と同様にCSSで非表示
<style type=”text/css”>
<!–
#*****__kana { display:none !important; }
–>
</style>
内容の日本語部分をすべて英語にする・会社案内関係などもすべて翻訳
特に重要だったき気づきにくい点はこちらです。
「ページ名」「ブロック名」を変えないとサイトのソースを見たときに日本語が残っちゃうのと、ページの対突が日本語になるので忘れないように。
基本的にはファイル名と同じで大丈夫です。
管理画面で変更できるのはほんの一部分なので、特に「~確認」ページやメッセージアFTPでファイルを直接いじります。
【重要なポイント】twigファイルは基本的に「app/template」以降のファイルを修正もし「app/template」以降に無かったら「src/Eccube/Resource/template/」にあるので修正
※「公式メールマガジンプラグイン(無料)」を導入済みで運営しています。
app/Plugin/MailMagazine/Resource/template/entry_add_mailmaga.twig
app/Plugin/MailMagazine/Form/Extension/EntryMailMagazineTypeExtension.php
app/Plugin/MailMagazine/Form/Extension/CustomerMailMagazineTypeExtension.php
名前で一番長いのは30文字と言われていますが、ほかのサイトでもそんなに長いものは対応していないと思うので20文字くらい。
住所は1行あたり40文字くらい。
電話は1項目あたり10文字。[10文字]-[10文字]-[10文字]
で良いかと思います、国によって適時対応してください。
src/Eccube/Resource/config/constant.yml.dist
電話の国番号に+の文字が入るのと、中間にスペースや-、()を入れる人がいるため
src/Eccube/Form/Type/TelType.php’numeric’を’string’にする
Jr. とか書いちゃう人やスペースが入る人もいたりするので記号OKにしておく
src/Eccube/Form/Type/NameType.php
‘pattern’周辺の
new~あたりの設定を全て削除
(4行くらい? name01とname02の両方対応)
現在のままだと入力する場所のサイズが小さいので大きく。
html/template/default/css/style.css
.input_tel{
のmax-width:5emを値を大きく
会員登録などで何も入力しないで、いきなり次へボタンを押すとでる小さなメッセージはブラウザなので勝手に現地の言葉になるので対応しなくてOK
確認したい場合は使用しているブラウザの言語設定を変更してメッセージの確認ができます。
元々は「Country」でいくつかのドロップダウンリストの項目があるのですが
「発送においてはも手入力をしてもらった方が確実」と、クライアントからの要望がきましたので、参考までに…
なので住所にCountryの項目を作ります。
コチラを参考にして入れ込んでください。
【サイトのコンセプト】
当サイトへお越しいただきまして誠にありがとうございます。
自分がアプリ嫌いなので、いかにしてアプリを入れずに、会員登録をしないで、気軽に使える、今だけ使えるというような都合のいいツールを紹介しようと思っています。
お気軽に使っていただけましたら幸いです。
今はまだ新設であわただしいですが、落ち着いたら「こういうのがほしい」という言葉を集めて作ってみようと思っていますので、よろしくお願いします。
【掲載内容】
気楽に使える無料・アプリ不要・登録不要で使えるツールを掲載。
合わせてその制作におけるノウハウも紹介します。
仕事や生活などに役立てたら幸いです。特に私も学校PTAや町内役員をやっているので、そういった場でも使えるようなものを公開していきたいな…と考えています。
あとはFXのノウハウも併せてUPしていきます。
【自己紹介】
フリーランスのプログラマです。もともと務めていたのですが片親育児で常勤できなくなったことや、体調不良で通勤が困難になったのでフリーになりました。
一時は日本株のデイトレーダーもやっていましたが、日中は育児であわただしかったので今では投資はFXひと筋です。そのうちFXのノウハウもUPしようと思っています。
猫を飼っていますが鳥マニアです。
のしを簡単に作れる無料サービス
のし紙印刷無料「eのし」
宛名と名目を入力するだけで、簡単に熨斗紙が作れます。
パソコンがなくてもプリンタで印刷をすることができればスマートフォンからでも作ることができます。
紙のサイズは自由。複数テンプレートあり。Word等のソフトは不要です。