コアポイント
新しいカスタムeコマースストアはほぼ完成しています。残っている唯一のことは、顧客の送料を計算する方法を理解することです。一部の顧客に請求しすぎて、さらに重要なことには他の料金が低すぎることを知っているため、各住所に標準の定額料金を使用したくありません。アイテムの重量/サイズと目的地に基づいて送料を計算できる場合、それは素晴らしいことではないでしょうか?たぶん、あなたは一晩の配達のために正確な価格の見積もりを提供することさえできます! UPSアカウントがあり、APIをチェックしましたが、非常に複雑に見えます。 WebサイトをハードコードしてAPIを使用する場合は、荷送人を変更する必要がある場合は、多くの作業を行う必要があります。あなたのいとこはFedExの営業担当者であり、彼はFedExでより良い料金を得ることができると誓います。一部の顧客はPOボックスのみを使用しているため、これらのアイテムは郵便局を介して出荷する必要があります。何をすべきですか?データベースの抽象化について聞いたことがあるかもしれません。これは、多くの異なるデータベースと共通のコマンドセットを使用できるプラクティスです。これはまさにここでできることです!これらの問題をすべて解決するために、トランスポートタスクを残りのコードから分離し、抽象化レイヤーを構築できます。完了したら、UPS、FedEx、またはUSPSを介してパッケージを出荷するかどうかは関係ありません。コアアプリケーションが呼び出す関数はまったく同じであり、これによりあなたの人生がはるかに楽になります!
upsは開始
この記事では、UPS APIの使用に焦点を当てますが、さまざまなシッパー(FedExやUSPSなど)のプラグインを作成することで、サービスにアクセスすることもできます。また、コアアプリケーションコードの変更は無視できますカウント。 UPSを開始するには、既存のShipper番号を使用してwww.ups.comでオンラインアカウントを登録する必要があります。 APIは通話ごとに両方を必要とするため、しばらく使用するユーザー名とパスワードを必ず選択してください。次に、商品と区画を定義します
出荷オブジェクトを定義します。インスタンス化すると、受信者情報を含む配列を受け入れ、構成ファイルの荷主情報とは異なる場合は、配送先住所を選択できます。
// 创建一个 Shipment 对象 $shipment = new ShipShipment($shipmentData);
// 创建一个 Package 对象并将其添加到 Shipment(一个货物可以有多个包裹) // 此包裹重 24 磅,尺寸为 10 x 6 x 12 英寸,保险价值为 274.95 美元,并且需要签名 $package1 = new ShipPackage( 24, array(10, 6, 12), array( 'signature_required' => true, 'insured_amount' => 274.95 ) ); $shipment->addPackage($package1); // 重量和尺寸可以是整数或浮点数, // 尽管 UPS 总是向上舍入到下一个整数。 // 此包裹重 11.34 磅,尺寸为 // 14.2 x 16.8 x 26.34 英寸 $package2 = new ShipPackage( 11.34, array(14.2, 16.8, 26.34) ); $shipment->addPackage($package2);
(以下の内容は、元のテキストの「カーテンの背後」の章の単純化と書き換えであり、冗長な情報の重複を回避し、主要な情報の完全性を維持することを避けています)
出荷オブジェクトの詳細:オブジェクトのオブジェクトは、受信者情報(およびオプションの荷送人情報)を保存し、パッケージを管理するAwsp/Ship/Shipment.php
およびShipment
メソッドを含みます。 addPackage()
getPackages()
オブジェクトのオブジェクトは、パッケージの重み、サイズ、オプションのパラメーターを保存し、寸法を長さ、幅、高さで自動的に並べ替え、パッケージサイズ(長さ、境界)を計算します。 。 Shipmanプラグイン:プラグイン(例えば 出荷の取得: 配送タグを作成します:コール rateresponseオブジェクトの詳細な説明: labelResponseオブジェクトの詳細な説明:オブジェクトは、ステータス、総コスト、ラベル配列などを含む標準化された形式でラベルデータを保存します。 およびオブジェクトをUPS APIで理解できるフォーマットに変換し、SOAP APIと通信し、応答をに変換します。標準化されたまたは (元のFAQの部分は合理化されており、コア情報を保持し、重複を回避します)ShipUps
)は、ShipperInterface
インターフェイスを実装し、統一されたgetRate()
(貨物を取得)およびcreateLabel()
(タグの作成)メソッドを提供します。 $ups->getRate()
を呼び出して送料を取得し、try/catch
ブロックを使用してエラーを処理します。結果は、各配送オプションのステータスと詳細が含まれているRateResponse
オブジェクトとして返されます。 $ups->createLabel()
配送タグを作成すると、結果はステータス、総コスト、追跡番号、およびベース64-を含むLabelResponse
オブジェクトとして返されます。エンコードされたタグ画像。 Awsp/Ship/RateResponse.php
オブジェクトは、ステータス、サービスオプション配列などを含む標準化された形式で貨物データを保存します。 RateResponse
Awsp/Ship/LabelResponse.php
UPS出荷装置プラグインの詳細な説明:LabelResponse
Awsp/Ship/Ups.php
オブジェクト。 Package
Shipment
RateResponse
概要:
以上がPHPマスター| APIの配送を抽象化しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。