ec-cube / mail-magazine-plugin Goto Github PK
View Code? Open in Web Editor NEWメルマガ管理
License: GNU Lesser General Public License v2.1
メルマガ管理
License: GNU Lesser General Public License v2.1
Entityのtypeが、datetimetzではなくdatetimeになっています。
EC-CUBE本体に合わせて datetimetz
にしておくほうが良い。
EC-CUBE本体で、DBに保存するときにはUTCへの変換を行っており、実害はないかもしれません。
https://github.com/EC-CUBE/mail-magazine-plugin/blob/4.0/Entity/MailMagazineSendHistory.php#L88
https://github.com/EC-CUBE/mail-magazine-plugin/blob/4.0/Entity/MailMagazineSendHistory.php#L95
他にもあるかも。
メルマガ配信画面でUncaught ReferenceError: formPropStateSubscriber is not definedのjavascriptのエラーが出る
エラーが発生しないように
メルマガ管理>配信 から配信画面を表示します
配信ファイル/結果ファイルが app/mail_magazine
に保存されるようになっています。
開発ドキュメントではその他の設定ファイルは app/PluginData
へ保存するのが推奨されています。
https://doc4.ec-cube.net/plugin_spec#%E3%81%9D%E3%81%AE%E4%BB%96%E3%81%AE%E8%A8%AD%E5%AE%9A%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB
app/PluginData/MailMagazine4
配下に保存するのが適切かと思います。
配信履歴のページを開き、表示件数を50件以外に変更すると会員一覧に遷移するため
表示件数に応じて履歴が表示されるよう修正が必要。
URL直打ちでpage_noを入力した場合は問題なく表示される。
メルマガ対象者が会員退会を行なった後、メルマガを送信されると送信対象となっている。
開発コミュニティより
誕生月で検索をかけた場合、「1月」を選択した場合のみ全件表示となってしまう。(他の月を選択した場合は正常に稼働している)
以下の箇所で、emptyで判定しているが、「1月」を選択した場合、「0」がPOSTされるため処理を通らない。
https://github.com/EC-CUBE/mail-magazine-plugin/blob/master/Repository/MailMagazineCustomerRepository.php#L108
Google および Yahoo のメール送信ガイドライン変更にともない、以下のようなガイドラインが追加されているため、機能追加が必要
マーケティング目的のメールと配信登録されたメールは、ワンクリックでの登録解除に対応し、メッセージ本文に登録解除のリンクをわかりやすく表示する必要があります。
https://support.google.com/a/answer/81126?hl=ja#requirements-5k&zippy=%2C%E6%97%A5%E3%81%82%E3%81%9F%E3%82%8A-%E4%BB%B6%E4%BB%A5%E4%B8%8A%E3%81%AE%E3%83%A1%E3%83%BC%E3%83%AB%E3%82%92%E9%80%81%E4%BF%A1%E3%81%99%E3%82%8B%E5%A0%B4%E5%90%88%E3%81%AE%E8%A6%81%E4%BB%B6
管理画面>会員登録で、メルマガ送付に必須マークが表示されていない
eccubeでプラグインやカスタマイズディレクトリで機能を拡張していると、
テンプレート設定画面で、メール本文用のHTMLテンプレートを空で登録した場合にシステムエラーとなる場合があります。(Symfony event利用時)
フォームバリデーションで必須チェックはなく、DBにNullで保存しようとしてしまうのが原因の様です。
おそらく仕様的には、HTML本文は空白で登録可能かと思いますので、
/**
* @ORM\Column(name="html_body", type="text", nullable=true)
*/
private $html_body
に変更するのが良いと考えられます。
confirm.twigの55行目です。
ec-cube 3.0.12
プラグイン:MailMagazine 0.0.3
問題:YamlのEntity設定ファイルの中にテーブル名が間違えてます
ファイル:app/Plugin/MailMagazine/Resource/doctrine/Plugin.MailMagazine.Entity.MailMagazineCustomer.dcm.yml
行目:3
table: dtb_customer
■事象
・会員管理で会員を新規登録するとシステムエラーになる。
・会員管理で既存顧客情報を編集すると、当該顧客でログインできなくなる。
既に会員登録されている状態で、後からメルマガプラグインが導入された場合、
会員情報変更をするとシステムエラーが発生する。
会員登録
↓
メルマガプラグイン導入
↓
プラグイン導入前に会員登録した人が会員情報変更(この時にメルマガに何もチェックされていない)
↓
メルマガを選択せずに変更する
↓
システムエラー
メルマガにチェックされていない場合、
どちらからにチェックしておく必要があります。
メルマガプラグインバージョンは0.0.3です。
mail-magazine-plugin/Resource/template/entry_add_mailmaga.twig
Lines 32 to 42 in 1dae04d
エラーで入力画面に戻ってきた時の考慮がされていない
EC-CUBE4.1はphp7.3以上だが、テストがphp7.1で実行されているため失敗する
https://github.com/EC-CUBE/mail-magazine-plugin/runs/4837249189?check_suite_focus=true
会員種別などの詳細な検索条件を指定するときは「+」をクリックして検索フォームを開いて検索するが、検索結果が表示されたときには検索フォームが閉じたままになっている。
商品マスタや会員マスタなどの検索と同様に、詳細な検索条件を指定して検索した場合は、検索フォームを開いたままにしておいたほうが良い。
会員管理などでメルマガ配信対象者のCSVダウンロード機能がないため、
メルマガ管理から配信対象者のCSVダウンロード機能を用意する。
開発コミュニティより
誕生月を11月と選択して配信すると配信履歴には12と入る。実際に配信される対象者は11月だったので配信履歴の表示が1ずれる。
#49 にも関連
1.0.0では以下の対応を行う予定です。
2016/12/26週を予定
1.0.0
のIssueをご確認下さい。旧プラグインからのバージョンアップが可能です。
UnitTest で timezone の設定ができておらず、日本時間9時以前に実行するとテストが落ちてしまいます。
There were 3 failures:
1) Plugin\MailMagazine4\Tests\Web\Admin\MailMagazineControllerTest::testMailMagazineSearchWithBirthmonthLowOctorber
Failed asserting that '検索結果:0件が該当しました' contains "検索結果:1件が該当しました".
/home/travis/build/EC-CUBE/mail-magazine-plugin/ec-cube/app/Plugin/MailMagazine4/Tests/Web/Admin/MailMagazineControllerTest.php:45
2) Plugin\MailMagazine4\Tests\Web\Admin\MailMagazineControllerTest::testMailMagazineSearchWithBirthmonthHightOctorber
Failed asserting that '検索結果:0件が該当しました' contains "検索結果:1件が該当しました".
/home/travis/build/EC-CUBE/mail-magazine-plugin/ec-cube/app/Plugin/MailMagazine4/Tests/Web/Admin/MailMagazineControllerTest.php:63
3) Plugin\MailMagazine4\Tests\Web\Admin\MailMagazineControllerTest::testMailMagazineSearchWithBirthmonthNull
Failed asserting that '検索結果:0件が該当しました' contains "検索結果:1件が該当しました".
/home/travis/build/EC-CUBE/mail-magazine-plugin/ec-cube/app/Plugin/MailMagazine4/Tests/Web/Admin/MailMagazineControllerTest.php:75
FAILURES!
Tests: 69, Assertions: 62, Failures: 3, Skipped: 17.
timezoneを適切に設定する必要があります。
件数変更ドロップダウンを操作しても50件表示から変更できない
mail_magazine_dir
に書き込みできない場合のエラーハンドリングが必要
mail-magazine-plugin/Service/MailMagazineService.php
Lines 400 to 406 in 2d168d6
コミュニティより(おそらくこのissueの問題だと思われる)
https://xoops.ec-cube.net/modules/newbb/viewtopic.php?topic_id=24760&forum=1&post_id=100320#forumpost100320
概要
"購入商品名"で会員を検索してメルマガ配信すると同一会員に対して該当するOrderItemの明細の数だけメールを送信してしまう。
環境
EC-CUBE4.0.5
メールマガジンプラグイン 4.0.2
再現手順
メルマガ配信画面、テンプレート設定画面、配信履歴画面で存在しないjavascriptへの参照があり、エラーが発生しています
参照をなくしていいように思います
メルマガ管理から、メルマガ配信画面、テンプレート設定画面、配信履歴画面を表示します
app/mail_magazine
に履歴ファイルを保存しているが、 app/PluginData
に保存するのを推奨されている
会員管理/会員登録・編集で、会員登録時にバリデーションが通らない場合に下記のような現象となります
システムエラーとなります
バリデーションが通らない際にも、誤った値のまま会員情報が保存され、メールマガジン送付についての選択状態も強制的に保存されます。
メルマガ配信後、app/mail_magazine/
ディレクトリ直下に出力結果が
出力結果 | 会員ID | メールアドレス
としてテキストファイルに保存されている。
セキュリティ上好ましくないためDBに保存するか、
テキストファイルとするならメールアドレスにマスクをかけるなどして対応した方が良い。
本体の修正に従って、purifyフィルタを適用したい
EC-CUBE/ec-cube#5372
管理画面から会員情報を更新すると、会員パスワードが変わってしまい、ユーザーがログインできなくなります。
会員情報にメルマガの受け取る・受け取らないが必要
環境
再現
1.Mail Magazineをインストールして、有効する。
2.メールマガジンを受け取りないと選択する。
3.[会社名]に"!@#$%^&*()_+[}"を入力する。
4.フォームサミットする。成功メッセージを表示する。
5.もう一度、フォームサミットしてエラーになります。
原因
- Entity decode?
\Plugin\MailMagazine\MailMagazine::getHtml
結果
- eccube.CRITICAL: Doctrine\DBAL\Exception\NotNullConstraintViolationException: An exception occurred while executing 'INSERT INTO plg_mailmaga_customer (customer_id, mailmaga_flg, del_flg, create_date, update_date) VALUES (?, ?, ?, ?, ?)' with params [244, null, 0, "2016-09-22 12:18:55", "2016-09-22 12:18:55"]:
SQLSTATE[23000]: Integrity constraint violation: 1048 Column 'mailmaga_flg' cannot be null (uncaught exception) at E:\Software\xampp\htdocs\ec-cube\vendor\doctrine\dbal\lib\Doctrine\DBAL\Driver\AbstractMySQLDriver.php line 112 {"exception":"object: SQLSTATE[23000]: Integrity constraint violation: 1048 Column 'mailmaga_flg' cannot be null at E:\Software\xampp\htdocs\ec-cube\vendor\doctrine\dbal\lib\Doctrine\DBAL\Driver\PDOStatement.php:93, PDOException(code: 23000): SQLSTATE[23000]: Integrity constraint violation: 1048 Column 'mailmaga_flg' cannot be null at E:\Software\xampp\htdocs\ec-cube\vendor\doctrine\dbal\lib\Doctrine\DBAL\Driver\PDOStatement.php:91)"} []
要望結果
- No error.
開発コミュニティより
4.0系の配信履歴ページにて、ページネーションをクリック、および表示件数のセレクトボックスにて件数変更すると会員一覧ページに遷移してしまう。
https://xoops.ec-cube.net/modules/newbb/viewtopic.php?topic_id=22215&forum=1
v.1.0.0、配信結果のページング不具合。
配信画面の一覧表示についてページネーションの不具合があるようです。
具体的には1ページ目に表示されているデータが2ページ目にも表示されるなどおそらく想定外と思われる動作になっております。
現在は登録したメルマガテンプレートのプレビューを表示すると
「本文 (HTML形式)」も「本文 (テキスト形式)」同様に内容がテキスト表示されているが
プレビューの機能を果たしていないのでhtml形式で表示したい。
開発コミュニティより。
配信→詳細検索→会員種別 で仮会員のチェックをはずしたのに送信すると仮会員にも送信される。
要再現確認
現状、app/mail_magazine/
以下に保存される。
app/PluginData/MailMagazine
以下に保持するように修正する。
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.