3

こんにちは、

私は NopCommerce の初心者です。Nop.Core、Nop.Data、および Nop.Services に変更があります。Nop.webのコントローラ、モデル、ビューも一部変更しました。

nopcommerce のバージョンを 2.8 から 3.10 にアップグレードしたい場合、どちらの方法が簡単で最適ですか。

1) ファイルをバックアップして更新します。更新が完了したら、更新した部分と元のコードと異なる部分だけを置き換えてもよろしいですか? 元のコードではなく、バックアップ ファイルにある新しいメソッドを追加できますか?

2) または、新しいプラグインを作成するか、他の方法で作成する必要があります。

[例: 商品テーブルを変更し、サイズ、年齢、色などの新しいフィールドを追加しました。]

貴重なご意見をお聞かせください。

ありがとう

4

2 に答える 2

5

正解も不正解もありません。私が取ったアプローチについて提案しています。ベースnop 2.80の上にコードの変更とデータベースの変更があると仮定します。

地上工事

詳細な変更リストを書き留めます。(2.80 の上に追加した追加機能。)

3.10 で変更がサポートされているかどうかを確認してください。

私の変更回数は 250 でした (見積もりまで非常に詳細です)。

アプローチ

  1. 2.80 db を 3.10 db にアップグレードします。
  2. 2.80 の新機能をサポートするように 3.10 コードを変更します。

DB アップグレード

  1. 優れたデータベース差分ツールを見つけてください。例: SQL 比較。
  2. 実稼働 (2.80) DB を開発用 PC に復元し、nop 3.10 db も開発用 PC にインストールします。
  3. 両方の DB テーブルをテーブルごとに比較します。基本的に、3.10 スキーマを比較して、2.80 db を 3.10 db にアップグレードします。
  4. 3.10 と比較して、2.80 で新しい列を変更/削除/追加します。
  5. 店舗情報(店舗テーブル)を作成します。これは 3.10 の新機能であり、StoreID は他のほとんどのテーブルに必要です。
  6. 3.10 スキーマに一致するように顧客データを更新します。
  7. 製品情報を更新します。ProductVariant テーブルが Product テーブルとマージされました。したがって、製品テーブルを更新する必要があります。
  8. 注文の詳細を更新します。OrderVariant は OrderItem になりました。というわけでデータ移動。
  9. 他のテーブルを移動します。

以前は単一の SQL スクリプトを作成していましたが、

  1. バックアップ ファイルから本番 DB を復元します。
  2. 各テーブルをアップグレードしてデータを入力する、各テーブルのスクリプト ブロック。

これにより、スクリプトを実行して実行し、エラーが発生した場合にスクリプトを再実行する柔軟性が得られます。これは、スクリプト作成中にも役立ちます。

なお、2店舗以上を1店舗に統合する場合は、

  1. ステップ 5 ですべてのストア情報を追加します。
  2. この時点から、ストアごとに個別のスクリプトを作成します。
  3. OrderId と Customer ID の異なるシーケンス番号を見つける必要があります。同じにはなりません。
  4. 2 店舗目以降を追加する場合は、既存の顧客を確認してから追加してください。

チェック01

新しい 3.10 コード ベースを使用して、移行したデータベースに対して実行します。移行を適切に行っていれば、すべてうまくいくはずです。

コードのアップグレード

ProductVariant テーブルがないため、単純なコードに大幅な変更を加える必要があります。そのため、すべてのカスタム ロジックを書き直す必要があります。

主な問題は、請求書です。店舗が複数ある場合、店舗ごとのメール設定はありません。したがって、それもカスタム変更する必要があります。

良いアプローチは、

  1. すべての顧客側の e コマース フィストを実行します。
  2. 次に、管理側を行います。
  3. 顧客と管理者が同じ機能を使用している場合は、一緒に行います。たとえば、発注ワークフローのカスタム変更。
  4. プラグインに必要な大きな変更はありません。

チェック02

更新された 3.10 コード ベースを使用して、移行された DB を実行します。すべてが機能するはずです。

大事な日に

  1. プロダクション DB とプロダクション コード ベースをバックアップします。
  2. アップグレード スクリプトを実行し、新しいコード ベースを置き換えます。
  3. これまでにすべてのハードワークを行ったので、3 番目のステップはありません。
  4. わかりました、失敗したらロールバックします。

注意事項

私はこれらをテストで学びました。神に感謝します。実際の移行前にそれらを見つけました。

nop コマース側で完全なマルチストア ソリューションをセットアップする方法について、移行を行っていた時点では詳細な手順はありません。実稼働サーバーで nop コマースをセットアップする方法については、こちらの手順を参照してください。しかし、私はすべての側面をカバーしているわけではありません。

VPS サーバーを使用してプラットフォームをホストしていました。VPS を使用している場合、マルチストアを適切にセットアップすると、 SNIを使用する必要があることに注意してください。IIS 8 以降のみが SNI をサポートします。つまり、Windows 2012 Server が必要です。SNI の詳細については、こちらこちらを参照してください

Pleask を使用してサーバーを管理していました。したがって、マスター ドメインをプライマリとして設定し、他のすべてのストアをエイリアスとして設定します。IIS側ではVPSにRDPインし、IIS8のSNI機能を利用してドメインごとにSSLを設定

SNI の欠点として、すべての古いブラウザーでサポートされているわけではありません。ここを参照してください。

制限事項

Pleask を使用している場合、メールはうまく機能しません。メール ボックスはマスター ドメインに対してのみ作成され、他のすべてのエイリアスは同じメール アカウントを共有するためです。そのため、エイリアス メールから返信を送信できます。残念ながら、それはノップコマース開発の範囲外です。

私はこれに対する解決策を見つけていません。これに取り組んでいます。

于 2013-10-01T05:37:27.827 に答える
0

データベースを段階的に実行することをお勧めします。アップグレード ガイドによると、アップグレード スクリプトを一度に 1 つずつ適用する必要があります。ガイドをよく読んで実行してください。

于 2013-10-25T03:45:47.703 に答える