Coder Social home page Coder Social logo

mail-magazine-plugin's People

Contributors

3tiles avatar chihiro-adachi avatar dk-umebius avatar dotani1111 avatar goh-hib avatar hiro-t59 avatar hoand-vn avatar junpeko5 avatar k-yamamura avatar kazumiiiiiiiiiii avatar kazuyoshikakihara avatar kiy0taka avatar lammn avatar lqdung-lockon avatar matsuoshi avatar nanasess avatar ndquocphong avatar nobuhiko avatar okazy avatar ryo-endo avatar sai-ken-tanaka avatar shhirose avatar sw-satoshi-nakano avatar t-nagahashi avatar takeuji avatar yangsin avatar

Stargazers

 avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

mail-magazine-plugin's Issues

Entityのtypeが、datetimetzではなくdatetimeになっている

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のエラーが出る

概要(Overview)

メルマガ配信画面でUncaught ReferenceError: formPropStateSubscriber is not definedのjavascriptのエラーが出る

期待する内容(Expect) or 要望 (Requirement)

エラーが発生しないように

再現手順(Procedure)

メルマガ管理>配信 から配信画面を表示します

環境 (environment)

  • EC-CUBE: 4.0.x
  • PHP: 7.x.x
  • DB:
    • PostgreSQL x.x.x
    • MySQL x.x.x

関連情報 (Ref)

配信ファイル/結果ファイルの保存先を `app/PluginData/MailMagazine4` へ変更

配信ファイル/結果ファイルが app/mail_magazine に保存されるようになっています。

mail_magazine_dir: '%kernel.project_dir%/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月」の検索が機能しない

開発コミュニティより

誕生月で検索をかけた場合、「1月」を選択した場合のみ全件表示となってしまう。(他の月を選択した場合は正常に稼働している)

http://xoops.ec-cube.net/modules/newbb/viewtopic.php?topic_id=18584&forum=9&post_id=80024#forumpost80024

以下の箇所で、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

HTML本文のカラムにNotNull制約がついてしまっている

eccubeでプラグインやカスタマイズディレクトリで機能を拡張していると、
テンプレート設定画面で、メール本文用のHTMLテンプレートを空で登録した場合にシステムエラーとなる場合があります。(Symfony event利用時)

フォームバリデーションで必須チェックはなく、DBにNullで保存しようとしてしまうのが原因の様です。

おそらく仕様的には、HTML本文は空白で登録可能かと思いますので、

    /**
     * @ORM\Column(name="html_body", type="text", nullable=true)
     */
    private $html_body

に変更するのが良いと考えられます。

会員登録/編集時に発生する問題

■事象
・会員管理で会員を新規登録するとシステムエラーになる。
・会員管理で既存顧客情報を編集すると、当該顧客でログインできなくなる。

会員情報変更時にシステムエラーが発生

既に会員登録されている状態で、後からメルマガプラグインが導入された場合、
会員情報変更をするとシステムエラーが発生する。

会員登録

メルマガプラグイン導入

プラグイン導入前に会員登録した人が会員情報変更(この時にメルマガに何もチェックされていない)

メルマガを選択せずに変更する

システムエラー

メルマガにチェックされていない場合、
どちらからにチェックしておく必要があります。

メルマガプラグインバージョンは0.0.3です。

会員登録の入力画面で入力エラーになると、ラジオボタンが消える

会員登録(入力ページ)

{% if (app.request.get('mode') == 'confirm') %}
{% for choice in form.vars.choices %}
{% if choice.data == form.vars.data %}
{{- choice.label|trans -}}
{% endif %}
{% endfor %}
{{- form_widget(form, {type : 'hidden'}) -}}
{% else %}
{{- form_widget(form) -}}
{{- form_errors(form) -}}
{% endif %}

エラーで入力画面に戻ってきた時の考慮がされていない

会員種別など詳細な検索条件を指定して検索したときに検索フォームが閉じたまま

会員種別などの詳細な検索条件を指定するときは「+」をクリックして検索フォームを開いて検索するが、検索結果が表示されたときには検索フォームが閉じたままになっている。

商品マスタや会員マスタなどの検索と同様に、詳細な検索条件を指定して検索した場合は、検索フォームを開いたままにしておいたほうが良い。

メルマガ管理プラグイン v1.0.0計画

1.0.0では以下の対応を行う予定です。

リリース時期

2016/12/26週を予定

主要な対応内容

機能追加

  • multipart/alternative形式のメルマガ配信 #13
  • 失敗メールの再送機能
  • 配信結果の閲覧機能
  • テストメール送信機能

その他、機能改修

互換性について

旧プラグインからのバージョンアップが可能です。

配信履歴を削除する際、モーダルのラベルが正しく表示されていない

概要(Overview)

配信履歴画面の削除リンクを押下時、削除確認のモーダルが開くが、その際表示されるモーダルの削除ボタン、キャンセルボタンの表示が正しく表示されない。

2019-09-02_15h41_30

期待する内容(Expect) or 要望 (Requirement)

ボタンのラベル表示が正しく表示されること

再現手順(Procedure)

配信履歴画面で削除リンクを押下する

環境 (environment)

  • EC-CUBE: 4.0.2
  • PHP: 7.x.x
  • DB:
    • PostgreSQL x.x.x
    • MySQL x.x.x

4.0.2、4.0.3環境ともに同じ挙動となりました。

UnitTest で timezone の設定ができておらず、実行タイミング次第でテストが落ちる

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を適切に設定する必要があります。

購入商品名で絞り込んで配信すると同一会員に複数回メール送信してしまう

コミュニティより(おそらくこの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

再現手順

  1. 同一会員が同一Productを複数回購入する
  2. 配信メニューから1の商品名を購入商品名で検索してリストを作成(この時点では複数回購入していても同一会員が複数回表示されるわけではないため気づきにくい)
  3. 配信手順を進める
  4. 配信を実行すると同一会員に複数回メール送信される(該当するOrderItemの明細の数だけ)

スクリーンショット 0032-10-15 21 53 13
スクリーンショット 0032-10-15 21 53 43
スクリーンショット 0032-10-15 21 54 00

存在しないjavascriptの参照でエラーが発生している

概要(Overview)

メルマガ配信画面、テンプレート設定画面、配信履歴画面で存在しないjavascriptへの参照があり、エラーが発生しています

期待する内容(Expect) or 要望 (Requirement)

参照をなくしていいように思います

再現手順(Procedure)

メルマガ管理から、メルマガ配信画面、テンプレート設定画面、配信履歴画面を表示します

環境 (environment)

  • EC-CUBE: 4.2.β
  • PHP: 7.x.x
  • DB:
    • PostgreSQL x.x.x
    • MySQL x.x.x

関連情報 (Ref)

会員管理/会員登録・編集で、バリデーションが通らない場合にシステムエラーなど

会員管理/会員登録・編集で、会員登録時にバリデーションが通らない場合に下記のような現象となります

新規会員の場合

システムエラーとなります

既存会員の場合

バリデーションが通らない際にも、誤った値のまま会員情報が保存され、メールマガジン送付についての選択状態も強制的に保存されます。

メルマガ配信結果がテキストファイルに保存されている

メルマガ配信後、app/mail_magazine/ ディレクトリ直下に出力結果が

出力結果 | 会員ID | メールアドレス

としてテキストファイルに保存されている。

セキュリティ上好ましくないためDBに保存するか、
テキストファイルとするならメールアドレスにマスクをかけるなどして対応した方が良い。

会員を編集するとき、特別文字列を入力すると、エラーになります

環境

  1. PHP
  2. Mysql
  3. Mail Magazine 0.0.3

再現
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.

配信結果ページのページング不具合

v.1.0.0、配信結果のページング不具合。

  1. 配信結果の表示件数を10件→100件にする。
  2. 画面下部のページを変更する。
  3. 次のページに移るが、表示件数が10件にリセットされている。(NG)

プラグイン削除時に配信履歴データが残ってしまう

app/mail_magazine/ に配信ファイル・結果ファイルを保存しているが、プラグイン削除時に削除されない。
本プラグイン削除後に、本プラグインをもう一度インストールすると配信時にうまく配信されず、表示もおかしくなる。

スクリーンショット 2020-04-28 14 39 06

image

アンインストール時に関連ファイルは削除してしまうのが良いかと思います。

関連

#62
#53

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.