EC-CUBE / EC-CUBE/coupon-plugin

EC-CUBE 4.4 対応: 削除される OrderItem::setTaxRuleId() の呼び出しを修正する

Open
#198 0 comments 0 reactions 2 assignees Claimed by @nanasess View on GitHub
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.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.