iDempiere 出荷パッケージの使い方|販売管理 操作マニュアル・技術仕様
This content is not available in your language yet.
📖 販売管理の全体像: 販売管理の全体図 も合わせてご覧ください。
出荷パッケージは、出荷伝票の中身をどの箱に何をいくつ詰めたかという「梱包単位」で管理し、運送会社のオンラインサービスと連携するための画面です。箱ごとの重量・寸法・追跡番号を保持し、送料照会・出荷登録・出荷取消・ラベル印刷を画面上のボタンから実行できます。
📌 ポイント: 「Box Count」(箱数)を保存すると、
MPackage.afterSave()が不足分の MPS 行(M_PackageMPS)を自動生成します。箱数を先に決めてから各箱の中身を登録するのが標準的な流れです。
出荷パッケージでできること
Section titled “出荷パッケージでできること”- 出荷伝票に対する梱包(パッケージ)の作成
- 箱数(Box Count)に応じた MPS 行の自動生成
- 箱ごとの重量・長さ・幅・高さ・追跡番号の管理
- 箱ごとの梱包明細(どの出荷明細を何個詰めたか)の登録
- 運送会社・出荷処理業者(Shipping Processor)・荷姿・ラベル種別の指定
- 保険・代金引換(COD)・土曜配達・危険物などの配送オプション設定
- 運送会社へのオンライン送料照会(Rate Inquiry)
- オンラインでの出荷登録(Process Shipment)と出荷取消(Void Shipment)
- 配送ラベルの印刷(Print Shipping Label)
出荷パッケージは、パッケージ → MPS 行 → 梱包明細の3階層構成です。
| タブ名 | テーブル | 階層 | 項目数 | 役割 |
|---|---|---|---|---|
| Package | M_Package | 0 | 約70項目 | 梱包のヘッダー(運送会社・オプション・オンライン処理) |
| MPS Lines | M_PackageMPS | 1 | 約17項目 | 箱(Multi Piece Shipment)1個分の情報 |
| Package Lines | M_PackageLine | 2 | 約8項目 | 箱に詰めた出荷明細と数量 |
graph TD
T1["📦 Package<br/>M_Package<br/>約70項目<br/>(運送会社・オプション・オンライン処理)"]
T2["📦 MPS Lines<br/>M_PackageMPS<br/>約17項目<br/>(箱ごとの重量・寸法・追跡番号)"]
T3[" └ Package Lines<br/> M_PackageLine<br/> 約8項目(品目・数量)"]
T1 --> T2
T2 --> T3
💡 ヒント: MPS は Multi Piece Shipment(複数個口出荷)の略です。1つの出荷を複数の箱に分けて送る場合、箱ごとに1つの MPS 行を作り、その配下に梱包明細を登録します。
基本操作手順
Section titled “基本操作手順”graph TD
A["🚀 メニューから開く<br/>販売管理 > 出荷納品管理 > Shipment Package"] --> B["➕ 新規でパッケージを作成<br/>(伝票番号・入出荷伝票)"]
B --> C["🚚 運送会社を選択<br/>→ 荷姿・ラベル・住所等が自動セット"]
C --> D["📦 Box Count(箱数)を入力"]
D --> E["💾 保存<br/>→ MPS行が自動生成"]
E --> F["⚖️ MPS Lines タブで<br/>箱ごとの重量・寸法を入力"]
F --> G["📋 Package Lines タブで<br/>詰めた出荷明細と数量を登録"]
G --> H{オンライン連携}
H -->|送料を知りたい| I["💰 Online Shipping Rate Inquiry"]
H -->|出荷確定| J["🚀 Process Shipment Online<br/>→ 追跡番号・送料を取得"]
J --> K["🏷 Print Shipping Label"]
J --> L["❌ 誤りがあれば<br/>Void Shipment Online"]
アクセス方法
Section titled “アクセス方法”メニューから「販売管理 > 出荷納品管理 > Shipment Package」を開きます。
💡 ヒント: 出荷伝票側の処理からパッケージを自動生成することもできます(
MPackage.create())。この場合、出荷明細が自動的に梱包明細へ展開され、箱数は 1 に設定されます。
新規登録(パッケージのヘッダー)
Section titled “新規登録(パッケージのヘッダー)”- ツールバーの「新規」ボタンをクリック
- 必須項目を入力:
- 伝票番号: パッケージの番号(30文字まで)
- 入出荷伝票: 対象の出荷伝票(
M_InOut)。更新不可 - 運送会社: 配送を依頼する運送会社
- 運送会社を選択すると、Callout により次の項目が自動セットされます:
- Shipper Packaging(荷姿)、Shipper Labels(ラベル種別)、Shipper Pickup Types(集荷種別)
- Shipper Account Number / Duties Shipper Account(運送会社口座)
- 取引先住所、追跡情報 URL、Residential、Saturday Delivery
- Box Count(箱数)を入力(既定値 1)
- 必要に応じて配送オプションを設定(次表)
- 「保存」をクリック
主な配送オプション
Section titled “主な配送オプション”| 分類 | 項目 | 内容 |
|---|---|---|
| 集荷・配達 | Latest Pickup Time / 出荷日 | 最終集荷時刻・出荷日 |
| 配達条件 | Saturday Delivery / Saturday Pickup / Future Day Shipment | 土曜配達・土曜集荷・先日付出荷 |
| 宅配 | Residential / Home Delivery Premium Type / Phone Number / プレミアム宅配日 | 個人宅配送とプレミアム宅配の指定 |
| 料金 | 運賃(FreightCharges)/ Frieght Terms(FOB)/ 手数料 / Added Handling | 運賃負担区分と手数料 |
| 保険・決済 | Insurance / Insured Amount / 代金引換 / 支払方法 | 保険と代金引換 |
| 通知 | 送信確認 / 配送確認タイプ / 口頭確認 / 通知タイプ / 通知メッセージ | 配送確認と通知 |
| 危険物 | Hazardous Materials / Dot Hazard Class or Division / Cargo Aircraft Only / Accessible / Dry Ice / Dry Ice Weight | 危険物・ドライアイス輸送 |
| 保留・通関 | Hold At Location / Hold Address / Dutiable / Ignore Zip State Not Match / Ignore Zip Not Found | 営業所止め・通関・住所検証の緩和 |
箱(MPS 行)と梱包明細の登録
Section titled “箱(MPS 行)と梱包明細の登録”- 「MPS Lines」タブへ移動。Box Count に応じて生成された行を選択します
- 箱ごとの情報を入力:
- シーケンスNo: 箱の連番(未入力なら自動採番)
- 重量 / 計量単位重量: 箱の重量と単位
- Length / Width / Height / 計量単位長さ: 寸法と単位
- Estimated Weight: 推定重量
- Master Tracking No / トラックNo: 追跡番号
- 「Package Lines」タブへ移動し、その箱に詰めた内容を登録:
- 入出荷明細: 対象の出荷明細行(必須)
- 数量: 詰めた数量(必須)
- 品目 / 説明: 参考情報
- 「既存伝票をもとに明細行を作成」(
CreateFrom)ボタンで、出荷明細から一括生成することもできます
⚠️ 注意: MPS 行の重量を空欄または 0 のまま保存すると、
MPackageMPS.beforeSave()が梱包明細の重量合計(ビューX_PackageLineWeight)から自動計算してセットします。手入力した重量を優先したい場合は、0 以外の値を明示的に入力してください。
オンライン処理(運送会社連携)
Section titled “オンライン処理(運送会社連携)”ヘッダータブの以下のボタンから、運送会社の Web サービスを呼び出します。
| ボタン | カラム | 動作 |
|---|---|---|
| Online Shipping Rate Inquiry | ShippingRateInquiry | 送料を照会し、料金問い合わせメッセージに結果を格納 |
| Process Shipment Online | OProcessing | 出荷を登録し、価格・追加料金・追跡番号を取得して「処理済み」に更新 |
| Void Shipment Online | VoidIt | 登録済み出荷を取り消す |
| Print Shipping Label | LabelPrint | 配送ラベルを印刷 |
⚠️ 注意: これらのボタンは運送会社に対応する Shipping Processor(出荷処理業者)の設定が前提です。処理結果は「応答メッセージ」(
ShippingRespMessage)に記録され、返却された添付ファイル(ラベル等)はパッケージの添付として保存されます。設定と実行の詳細は 配送トランザクション も参照してください。
項目リファレンス(Package タブ・主要項目)
Section titled “項目リファレンス(Package タブ・主要項目)”| 項目名 | 必須 | 型 | 説明 |
|---|---|---|---|
| 伝票番号 | 必須 | 文字列(30) | パッケージの番号。更新不可 |
| 入出荷伝票 | 必須 | 検索 | 対象の出荷伝票。更新不可 |
| 運送会社 | 必須 | 選択 | 配送を依頼する運送会社。Callout で既定値を展開 |
| Shipping Processor | - | 選択 | オンライン連携する出荷処理業者。更新不可 |
| Box Count | - | 整数 | 箱数。既定値 1。保存時に MPS 行を自動生成 |
| 重量 / 計量単位重量 | - | 数量 / 選択 | 総重量と単位 |
| Length / Width / Height | - | 数量 | 寸法 |
| 出荷日 | - | 日付 | 出荷日 |
| Latest Pickup Time | - | 時刻 | 最終集荷時刻 |
| 取引先住所 | - | 選択 | 配送先住所 |
| トラックNo | - | 文字列(255) | 追跡番号 |
| 追跡情報 | - | 文字列(255) | 追跡 URL 等 |
| 価格 / 追加料金 / Total Price | - | 価格 | オンライン処理で取得した送料 |
| 応答メッセージ | - | テキスト | 運送会社からの応答 |
| 料金問い合わせメッセージ | - | テキスト | 送料照会の結果 |
| 受入日付 / 受付情報 | - | 日付 / 文字列 | 荷受け確認 |
| 処理済み | 必須 | チェック | オンライン出荷登録の完了フラグ |
全項目(配送オプション約40項目を含む)は 画面リファレンス: 出荷パッケージ を参照してください。
よくある質問(FAQ)
Section titled “よくある質問(FAQ)”Q. Box Count を増やしたら MPS 行が勝手に増えました
Section titled “Q. Box Count を増やしたら MPS 行が勝手に増えました”仕様です。MPackage.afterSave() が現在の MPS 行数と Box Count を比較し、不足分の M_PackageMPS レコードを自動生成します。逆に Box Count を減らしても MPS 行は自動削除されないため、不要な行は手動で削除してください。
Q. 重量を入力しても保存すると別の値になります
Section titled “Q. 重量を入力しても保存すると別の値になります”重量が空欄または 0 の場合のみ、MPackage.beforeSave() / MPackageMPS.beforeSave() がビュー X_PackageLineWeight の合計(梱包明細から算出した重量)をセットします。0 以外の値を入力していれば上書きされません。
Q. パッケージを削除すると明細も消えますか?
Section titled “Q. パッケージを削除すると明細も消えますか?”消えます。MPackage.beforeDelete() が配下の M_PackageLine と M_PackageMPS を SQL で一括削除します。同様に MPackageMPS.beforeDelete() はその箱の M_PackageLine を削除します。削除は取り消せないため、実行前に内容を確認してください。
Q. 出荷伝票からパッケージを自動生成できますか?
Section titled “Q. 出荷伝票からパッケージを自動生成できますか?”MPackage.create(shipment, shipper, shipDate) が用意されており、出荷伝票の明細をもとにパッケージ・MPS 行・梱包明細を一括生成します。BOM 品目で「ピッキングリストに明細を印刷する」設定がある場合は、構成部品に展開して梱包明細が作られます。運賃品目(クライアント情報の M_ProductFreight_ID)は梱包明細から除外されます。
Q. 「入出荷伝票」を後から変更できますか?
Section titled “Q. 「入出荷伝票」を後から変更できますか?”できません。M_InOut_ID は IsUpdateable=N として定義されています。誤った出荷伝票に作成した場合は、パッケージを削除して作り直してください。
Q. オンライン処理が失敗したときの原因はどこで確認しますか?
Section titled “Q. オンライン処理が失敗したときの原因はどこで確認しますか?”「応答メッセージ」(ShippingRespMessage)と「料金問い合わせメッセージ」(RateInquiryMessage)に運送会社からの応答が格納されます。運送会社に対応する Shipping Processor が未設定の場合は処理自体が実行できません。
- 出荷伝票(Shipment)の使い方
- 配送トランザクションの使い方
- 運送会社(Shipper)の使い方
- 出荷処理業者(Shipping Processor)の使い方
- 商品出荷(Commodity Shipment)の使い方
- 画面リファレンス: 出荷パッケージ
🛠 技術仕様(開発者向け)
出荷パッケージは M_Package(テーブル名: Package、説明: Shipment Package、アクセスレベル 1 = Organization、削除可)を頂点に、M_PackageMPS(アクセスレベル 3)と M_PackageLine(アクセスレベル 1、説明: The detail content of the Package)で構成されます。
モデルクラスは MPackage(667行)、MPackageMPS(115行)、MPackageLine(102行)です。MPackage は Document 型ではありませんが(DocStatus / DocAction を持たない)、processOnline() により運送会社の Web サービスを呼び出し、MShippingTransaction を生成する点が特徴です。
アーキテクチャ概要
Section titled “アーキテクチャ概要”classDiagram
class MPackage {
+create(MInOut, MShipper, Timestamp)$ MPackage
+createPackage(MInOut, MShipper, Timestamp)$ MPackage
+beforeSave(boolean) boolean
+afterSave(boolean, boolean) boolean
+beforeDelete() boolean
+processOnline(String, boolean) boolean
+createShippingTransaction(...) MShippingTransaction
+setErrorMessage(String) void
+getErrorMessage() String
}
class MPackageMPS {
+beforeSave(boolean) boolean
+beforeDelete() boolean
}
class MPackageLine {
+setInOutLine(MInOutLine) void
}
class X_M_Package {
<<generated>>
}
class PO {
<<abstract>>
}
class MShippingTransaction {
+processOnline() boolean
}
MPackage --|> X_M_Package
X_M_Package --|> PO
MPackage --> MPackageMPS : has many
MPackageMPS --> MPackageLine : has many
MPackage --> MShippingTransaction : creates
MPackageLine --> MInOutLine : references
パッケージ: org.compiere.model
ソースファイル: org.adempiere.base/src/org/compiere/model/MPackage.java(667行)/ MPackageMPS.java(115行)/ MPackageLine.java(102行)
Callout: org.compiere.model.CalloutPackage.afterShipperSetDefaults / CalloutPackage.afterShipper(M_Shipper_ID 列)
関連DBテーブル
Section titled “関連DBテーブル”M_Package(パッケージ)主要カラム
Section titled “M_Package(パッケージ)主要カラム”| カラム名 | 型 | 必須 | 説明 | 備考 |
|---|---|---|---|---|
| M_Package_ID | ID | PK | パッケージID | 主キー |
| M_Package_UU | UUID(36) | N | UUID | |
| DocumentNo | String(30) | Y | 伝票番号 | 更新不可 |
| M_InOut_ID | Search | Y | 入出荷伝票 | 更新不可 |
| M_Shipper_ID | Table | Y | 運送会社 | Callout: CalloutPackage.afterShipperSetDefaults; CalloutPackage.afterShipper |
| M_ShippingProcessor_ID | Table | N | 出荷処理業者 | 更新不可 |
| BoxCount | Integer | N | 箱数 | 既定値 1。afterSave で MPS 生成 |
| Weight / Length / Width / Height | Quantity | N | 重量・寸法 | 重量は空/0 なら自動計算 |
| C_UOM_Weight_ID / C_UOM_Length_ID | Table | N | 重量・長さの単位 | |
| ShipDate | Date | N | 出荷日 | |
| LatestPickupTime | Time | N | 最終集荷時刻 | |
| C_BPartner_Location_ID | TableDirect | N | 取引先住所 | Callout で自動セット |
| C_BP_ShippingAcct_ID | TableDirect | N | 取引先配送口座 | |
| TrackingNo / TrackingInfo | String(255) | N | 追跡番号・追跡情報 | |
| Price / Surcharges / TotalPrice | Costs+Prices | N | 送料・追加料金・合計 | TotalPrice は更新不可 |
| RateInquiryMessage / ShippingRespMessage | Text(2000) | N | 照会・応答メッセージ | |
| ShippingRateInquiry / OProcessing / VoidIt / LabelPrint | Button | N | オンライン処理ボタン | |
| Processed | YesNo | Y | 処理済み | 既定値 N |
主要な配送オプション列(いずれも既定値 N、IsResidential のみ既定値 Y): IsSaturdayDelivery / IsSaturdayPickup / IsFutureDayShipment / IsResidential / IsHazMat / IsCargoAircraftOnly / IsAccessible / IsDryIce / IsHoldAtLocation / IsDutiable / IsAddedHandling / CashOnDelivery / DeliveryConfirmation / IsVerbalConfirmation / IsIgnoreZipStateNotMatch / IsIgnoreZipNotFound
M_PackageMPS(箱/MPS 行)
Section titled “M_PackageMPS(箱/MPS 行)”| カラム名 | 型 | 必須 | 説明 | 備考 |
|---|---|---|---|---|
| M_PackageMPS_ID | ID | PK | MPS行ID | 主キー |
| M_Package_ID | Search | Y | パッケージFK | 更新不可 |
| SeqNo | Integer | N | シーケンスNo | 既定値は MAX(SeqNo)+10 の SQL |
| Weight / Length / Width / Height | Quantity | N | 重量・寸法 | 重量は空/0 なら自動計算 |
| EstimatedWeight | Quantity | N | 推定重量 | 更新不可 |
| MasterTrackingNo / TrackingNo | String(255) | N | 追跡番号 | |
| Price | Costs+Prices | N | 価格 | |
| CreateFrom | Button | N | 既存伝票から明細作成 | |
| Processed | YesNo | Y | 処理済み | 既定値 N |
M_PackageLine(梱包明細)
Section titled “M_PackageLine(梱包明細)”| カラム名 | 型 | 必須 | 説明 | 備考 |
|---|---|---|---|---|
| M_PackageLine_ID | ID | PK | 梱包明細ID | 主キー |
| M_Package_ID | Search | Y | パッケージFK | 更新不可 |
| M_PackageMPS_ID | Search | N | MPS行FK | |
| M_InOutLine_ID | TableDirect | Y | 出荷明細FK | 更新不可 |
| Qty | Quantity | Y | 数量 | |
| M_Product_ID | Search | N | 品目 | |
| Description | String(255) | N | 説明 |
erDiagram
M_InOut ||--o{ M_Package : "packages"
M_Package ||--o{ M_PackageMPS : "boxes"
M_PackageMPS ||--o{ M_PackageLine : "contents"
M_Package ||--o{ M_PackageLine : "all contents"
M_PackageLine }o--|| M_InOutLine : "shipment line"
M_Package }o--|| M_Shipper : "shipper"
M_Package }o--o| M_ShippingProcessor : "online processor"
M_Package ||--o{ M_ShippingTransaction : "online transactions"
ビジネスロジック
Section titled “ビジネスロジック”MPackage.create()(出荷伝票からの自動生成)
Section titled “MPackage.create()(出荷伝票からの自動生成)”静的メソッド create(MInOut shipment, MShipper shipper, Timestamp shipDate) の処理:
createPackage()でパッケージを生成(BoxCount=0で保存)MPackageMPSを1件生成(SeqNo=10)- 出荷明細(
MInOutLine)を走査し、次の条件で梱包明細を生成- 品目が設定されており、かつクライアント情報の運賃品目(
M_ProductFreight_ID)でないこと - 品目が BOM かつ検証済みかつ
IsPickListPrintDetails=Yの場合は、既定 BOM の構成部品ごとに明細を作成し、数量はQtyEntered × QtyBOM - それ以外は出荷明細1行につき梱包明細1行(数量は
MPackageLine.setInOutLine()によりMovementQty)
- 品目が設定されており、かつクライアント情報の運賃品目(
BoxCount=1を設定して保存
MPackage.beforeSave()
Section titled “MPackage.beforeSave()”重量が null または 0 の場合、SELECT SUM(LineWeight) FROM X_PackageLineWeight plw WHERE plw.M_Package_ID=? の結果(null なら 0)を重量にセットします。
MPackage.afterSave()
Section titled “MPackage.afterSave()”M_PackageMPS の件数を数え、BoxCount - 現在の件数 > 0 の場合、その差分だけ MPackageMPS を新規生成します。箱数を増やすと MPS 行が自動的に補充される仕組みです(減らしても削除はされません)。
MPackage.beforeDelete()
Section titled “MPackage.beforeDelete()”配下データを SQL で直接削除します。
DELETE FROM M_PackageLine WHERE M_PackageMPS_ID IN (SELECT M_PackageMPS_ID FROM M_PackageMPS WHERE M_Package_ID = ?);DELETE FROM M_PackageMPS WHERE M_Package_ID = ?;MPackageMPS.beforeSave() / beforeDelete()
Section titled “MPackageMPS.beforeSave() / beforeDelete()”beforeSave():SeqNoが 0 の場合COALESCE(MAX(SeqNo),0)+10で自動採番。重量が null または 0 の場合、X_PackageLineWeightの該当 MPS 行の合計をセットbeforeDelete():DELETE FROM M_PackageLine WHERE M_PackageMPS_ID = ?を実行
MPackage.processOnline()
Section titled “MPackage.processOnline()”オンライン連携の中核メソッドです。
- エラーメッセージをクリアし、専用トランザクション(
spt-プレフィクス)を開始 createShippingTransaction(action, isPriviledgedRate, trxName)でMShippingTransactionを生成MShippingTransaction.processOnline()を実行し保存- アクションが
ACTION_ProcessShipmentの場合、応答メッセージを格納。成功時は価格・追加料金・追跡番号をパッケージへ反映しProcessed=trueに更新。運送会社から返却された添付(ラベル等)も取り込みます
CalloutPackage(運送会社選択時)
Section titled “CalloutPackage(運送会社選択時)”M_Shipper_ID 列に2つの Callout が設定されています。
afterShipperSetDefaults: Shipper Labels / Shipper Packaging / Shipper Pickup Types の既定値、取引先住所、追跡情報 URL、Residential、Saturday Delivery をセットafterShipper: Shipper Account Number / Duties Shipper Account をセット
拡張ポイント(カスタマイズ箇所)
Section titled “拡張ポイント(カスタマイズ箇所)”OSGi Model Validator(推奨)
Section titled “OSGi Model Validator(推奨)”public class CustomPackageValidator implements ModelValidator { @Override public int modelChange(PO po, int type) throws Exception { if (po instanceof MPackage && (type == TYPE_BEFORE_NEW || type == TYPE_BEFORE_CHANGE)) { MPackage pkg = (MPackage) po; // 例: 危険物指定時は Dot Hazard Class を必須にする if (pkg.isHazMat() && Util.isEmpty(pkg.getDotHazardClassOrDivision())) { throw new AdempiereException("危険物の場合は Dot Hazard Class を指定してください"); } } if (po instanceof MPackageLine && type == TYPE_BEFORE_NEW) { MPackageLine line = (MPackageLine) po; // 例: 梱包数量が出荷数量を超えないかチェック MInOutLine ioLine = new MInOutLine(line.getCtx(), line.getM_InOutLine_ID(), line.get_TrxName()); if (line.getQty().compareTo(ioLine.getMovementQty()) > 0) { throw new AdempiereException("梱包数量が出荷数量を超えています"); } } return null; }}運送会社連携(Shipping Processor)の追加
Section titled “運送会社連携(Shipping Processor)の追加”新しい運送会社に対応する場合は、MShippingTransaction が呼び出す出荷処理業者の実装を OSGi サービスとして追加します。MPackage.processOnline() 自体を書き換える必要はありません。
Callout の追加
Section titled “Callout の追加”M_Shipper_ID 列には既に2つの Callout がセミコロン区切りで登録されています。独自 Callout を追加する場合は、既存の記述を消さずに末尾へ追記してください。
重量自動計算のカスタマイズ
Section titled “重量自動計算のカスタマイズ”重量はビュー X_PackageLineWeight から集計されます。独自の重量計算(緩衝材込み等)が必要な場合は、Model Validator の TYPE_BEFORE_NEW / TYPE_BEFORE_CHANGE で重量を明示的にセットする(0 以外にする)ことで、コアの自動計算をバイパスできます。
関連プロセス
Section titled “関連プロセス”| ボタン/プロセス | カラム | 説明 |
|---|---|---|
| Online Shipping Rate Inquiry | ShippingRateInquiry | 運送会社へ送料を照会 |
| Process Shipment Online | OProcessing | 運送会社へ出荷を登録 |
| Void Shipment Online | VoidIt | 登録済み出荷を取消 |
| Print Shipping Label | LabelPrint | 配送ラベルを印刷 |
| 既存伝票をもとに明細行を作成 | CreateFrom(MPS Lines タブ) | 出荷明細から梱包明細を生成 |
関連ドキュメント
Section titled “関連ドキュメント”iDempiereカスタマイズのご相談
Section titled “iDempiereカスタマイズのご相談”運送会社ごとの API 仕様や梱包ルールは各社各様です。Shipping Processor の実装追加と Model Validator により、コア改変なしで自社の物流フローに合わせられます。
As-Link株式会社では、OSGiプラグインによる安全なカスタマイズを提供しています。