EC-CUBE / EC-CUBE/coupon-plugin
EC-CUBE 4.4 対応: 削除される OrderItem::setTaxRuleId() の呼び出しを修正する
- Dominant language
- PHP
- Stars
- 10
- Forks
- 39
- PR merge metrics
- No merged PRs in 30d
Description
## 概要
EC-CUBE 本体 4.4 で、非推奨だった public API を撤去する PR が進行中です。
- EC-CUBE/ec-cube#6937
このうち `Eccube\Entity\OrderItem::setTaxRuleId()` を本プラグインが使用しているため、4.4 対応時に修正が必要です。
## 該当箇所
default ブランチ `4.2`(112ab3ebc461cf77e2d63af3f59f33273251d392)時点
| ファイル | 行 |
|---|---|
| `Service/PurchaseFlow/Processor/CouponProcessor.php` | 298 |
| `Tests/Service/CouponServiceTest.php` | 124, 318, 371, 431 |
| `Tests/Repository/CouponCouponOrderRepositoryTest.php` | 145 |
本体コードだけでなくテストにも呼び出しがあるため、あわせて修正しないとプラグインのテストが落ちます。
## 本体側の状況
`OrderItem::setTaxRuleId()` / `getTaxRuleId()` はいずれも 4.4 で削除されます。
非推奨コメントに記載されていた理由は「税率設定は受注作成時に決定するため廃止予定」です。
`tax_rule_id` カラム自体は `OrderItem` の private プロパティとして残るため既存データは失われませんが、
public なアクセサが無くなるので、プラグインから読み書きする手段はなくなります。
## この値は本体側で使われていない
代替メソッドは用意されていませんが、そもそも本体がこの値を利用していないため、置き換え先を探す必要はありません。
- 本体 4.4 の `src/` `app/` に `getTaxRuleId()` / `setTaxRuleId()` の呼び出しはありません
(`TaxRuleController` と `tax_rule.twig` に `tax_rule_id` の文字列はありますが、
リクエストパラメータ名と input の name 属性で `OrderItem` とは無関係です)
- 受注CSV・配送CSVの `dtb_csv` に `Eccube\Entity\OrderItem` / `tax_rule`(税率ルール(ID))の定義がありますが、
`CsvExportService::getData()` は `AbstractEntity::offsetExists()` でアクセサを探す実装で、
`tax_rule` は `getTaxRule()` を探しにいきます。`OrderItem` に `getTaxRule()` は無いため、
**この CSV 項目は現状でも空欄で出力されています**(削除しても出力は変わりません)
本プラグイン内でも `setTaxRuleId()` による書き込みのみで、`getTaxRuleId()` で読み出している箇所は見当たりません。
書き込んだ値の読み手が本体にもプラグインにも存在しないため、**呼び出しを削除するだけで済む見込み**です。
## 対応
4.4 対応ブランチで上記6箇所を修正する。本体 PR での削除より前に対応が必要です。
Contributor guide
No contributing guide indexed for this repository
Assessment
This issue has not been assessed yet.