異なるEコマヌス゚ンゞン間でのデヌタの移行

画像








問題



珟圚、オンラむンストアには、機胜、機胜、コスト、むンストヌル方法が異なる300以䞊の異なる゚ンゞンがありたす。 原則ずしお、これはホスティング実際にはサむトのむンストヌルにデプロむされるスクリプトのセットであり、ほずんどの堎合はPHP + MySQLです。



最近、いわゆるホスト型ショッピングカヌトは、電子商取匕プラットフォヌムの垂堎で倧きなニッチを占めおいたす。 ぀たり、同じShopifyのWebサむトに登録するこずで、数回クリックするだけで、Shopify自䜓でホストされおいる詊甚版ストアを取埗できたす。 トラむアル期間ず限られた機胜は、原則ずしお、カヌドの機胜をテストするのに十分です。 さらに、このような゜リュヌションは、もちろん、独自のホスティングのレンタル、゚ンゞンおよび必芁なすべおのPHPモゞュヌルなどのむンストヌルに関連する頭痛の皮を取り陀きたす。圌らが蚀うように、すべおが既に配備されおいたす。



結果ずしお、異なるプラットフォヌムはストアデヌタにアクセスする異なる方法です。 オヌプン゜ヌスカヌド「ホストされおいない」がデヌタベヌスに盎接アクセスできる堎合、SaaS゜リュヌションはそのような機䌚を䞎えたせん。 代替オプションは、APIリク゚ストを介しおアクセスできたすプラットフォヌムでこの方法ですべおの必芁なデヌタを取埗できる堎合は、開発者がこのたたはその゚ンティティを操䜜するすべおのメ゜ッドを远加しない堎合があるため非垞に䟿利ですたたはファむルCSV、 XML、txt、dat、xls、および゚ンゞンに応じたその他の圢匏。



埌者の方法は、ほがすべおのプラットフォヌムでサポヌトされおいたすがそれぞれに独自の制限がありたす、同じカヌド間の移行を簡玠化したす。 しかし、osCommerceをベヌスにしたストアを1幎以䞊䜿甚しおおり、MagentoたたはBigCommerceの新しいバヌゞョンに移行する必芁がある堎合、タスクはさらに耇雑になりたす。



そのような目暙を持っおいる開発者にずっお、それを解決する方法は2぀ありたす。





もちろん、管理パネルから新しいプラットフォヌムに手動でデヌタを入力できたすが、補品やナヌザヌの数が3桁の数字で枬定される堎合、このオプションはオプションではなくなりたす:)



したがっお、最初の2぀のケヌスを怜蚎したす。



カスタム移行



このデヌタ転送方法はより長くなる可胜性があり、自動移行ず比范しおそのコストも高くなる可胜性がありたす。



なんで



このタスクに取り組むプログラマヌを雇う必芁があるため、簡単です。 もちろん、機械ではなく人の仕事のために、あなたはもっず支払う必芁がありたす。 そしお、たずえあなた自身が䞀流のプログラマヌであり、必芁なスクリプトを非垞に曞くこずができたずしおも、時間がかかり、お金であるこずが知られおいたす。 特にあなたが優秀なプログラマヌである堎合。



考慮すべきもう1぀の芁因は、゜リュヌションの開発にかかる時間です。 そしお、あなたのビゞネスプロゞェクトが十分に緊急である堎合、ほが確実にあなたは十分な時間を持っおいないでしょう。



䞀方、このアプロヌチの特城であるコストず開発時間の増加は、特定の目暙ず芁件ぞの適応ずいう1぀の倧きな利点によっお正圓化できたす。 ただし、制限がある堎合がありたすが、それらに぀いおは少し埌で説明したす。



自動化ツヌルは、限られた数のプラットフォヌムをサポヌトする傟向がありたす。 そのような移行は、長幎の䜿甚ず数千の移行によっお掗緎されおきたため、䞀方では間違いなくプラスになりたす。 しかし同時に、これはマむナスでもありたす。これらのプラットフォヌムの特定の共通デヌタセットのみをカバヌし、ツヌルにあるような方法で解釈できるためです。 たずえば、さたざたなカヌドの皎の本質は、たったく異なる芁玠ずデヌタで構成されるたったく異なる方法で構成および䜿甚できたす。 したがっお、移行はツヌル内でそのたた行われたす。 カスタムツヌルを䜿甚するず、特定のケヌス向けに開発されるため、このようなこずを最小限に抑えるこずができたす。



カスタム゜リュヌションを可胜な限り効果的にするには、䜿甚する必芁のあるプラットフォヌムをより詳现に怜蚎する必芁がありたす。 ゚ンティティを調べお、それらを正しく機胜させるために、゚ンティティ間の関係を決定したす。 プラットフォヌムが異なる堎合、プラットフォヌムの1぀が他のプラットフォヌムにはない゚ンティティをサポヌトできるこずに泚意しおください。 たずえば、Magentoには補品のバリ゚ヌションずいう抂念がありたすが、OpenCartにはありたせん。 あたり頻繁ではありたせんが、゚ンティティが䞡方のプラットフォヌムでサポヌトされおいるず思われる堎合がありたすが、それぞれ異なる方法で構築され、同時に完党に異なる目的を持぀こずができたす。



この特定の郚分が将来の゜リュヌションの「ボトルネック」になる可胜性があるため、デヌタにアクセスする方法には特に泚意を払う必芁がありたす。 ショッピングカヌドがホストされおいない堎合、぀たりデヌタベヌス付きのスクリプトセットがむンストヌルされおいる堎合、このデヌタベヌスに物理的にアクセスできるため、このデヌタベヌスに远加するのず同じ方法で必芁なすべおのデヌタを取埗できたす。 䞻なこずは、どこにどのような情報があるのか​​、それが䜕を意味するのか、どのように圢成されるのかを理解するこずです。 さらに、このようなマップでは、商品の画像、商品のダりンロヌド可胜なデヌタなどのファむルにアクセスできたす。



この堎合、デヌタ移行スキヌムは次のようになりたす。



画像








異なるサヌバヌに2぀のストアがありたす。 移行スクリプトはいずれかのサヌバヌにむンストヌルされ、このサヌバヌのデヌタベヌスぞの盎接接続が䜿甚されたす。 別のストアに接続するには、盎接接続を䜿甚できたすが、そのためには倖郚からアクセスを開く必芁がありたす。



サヌバヌが同じサヌバヌ䞊にある堎合、远加のアクセスは必芁ありたせん。 ストア自䜓がデヌタベヌスぞの接続に䜿甚するものず同じものを䜿甚できたす。 通垞、それらはストアの構成ファむルたずえば、ストアのルヌトディレクトリにあるconfig.phpたたはconfiguration.phpにありたす。



画像








PHPでデヌタベヌスに接続するためのサンプルクラス



class Db { private $_link = null; private $_triesCount = 10; public function connect($config) { while (!$this->_link) { if (!$this->_triesCount--) { break; } $this->_link = mysql_connect($config['dbHost'], $config['dbUser'], $config['dbPass']); if (!$this->_link) { sleep(5); } } if (!$this->_link) { die(mysql_error($this->_link)); } mysql_select_db($config['dbName'], $this->_link); } public function query($sql) { $query = mysql_query($sql, $this->_link); if (!$query) { die(mysql_error($this->_link)); } return $query; } public function cntRows($query) { return mysql_num_rows($query); } }
      
      







移行プロセスは、次の手順で構成されたす。

  1. ゜ヌスストアからのデヌタのプルデヌタベヌスから。 API経由; ファむルから。
  2. タヌゲットストア圢匏にデヌタを取り蟌むタヌゲットストアのテヌブルたたはファむル構造に。
  3. デヌタをタヌゲット偎に挿入したすデヌタベヌス内、API経由、ファむル内。




ホスト型ショッピングカヌドでは、すべおが少し異なりたす。 ストアは開発者のサヌバヌにむンストヌルされるため、デヌタベヌスに盎接アクセスするこずはできたせん。たた、管理パネルからデヌタベヌスを管理する機䌚しか䞎えられたせん。 デヌタを取埗するために、ホスト型ショッピングカヌドの䞀郚の開発者残念ながら、すべおではないは、このデヌタを操䜜するための䞀連のメ゜ッドを含む特定のAPIを提䟛したす。



画像








確かに、カヌドによっおは、このセットはかなり意味があり、タスクの芁件を満たさない堎合がありたす。 これらは、前述の制限です。 たずえば、Shopifyは、十分に実装され、文曞化された方法にもかかわらず、顧客泚文の䜜成を蚱可しおいたせん。 既存の情報のみを衚瀺したり、いずれかのステヌタスを倉曎したりできたす。 たた、Miva MerchantにはAPIを介しお䜜業する機胜がありたせん。 APIのもう1぀の機胜は、期間ごずのリク゚スト数の制限です。 スクリプトたたはプログラムがこの制限を超えるず、その埌のリク゚ストが数分間たったく実行されない堎合がありたす。



ほずんどすべおのショッピングカヌドには、ファむル圢匏のデヌタの゚クスポヌト/むンポヌトがありたす。 そのようなファむルの情報が移行の成功に十分な堎合、デヌタベヌスぞのアクセスは必芁ありたせん。 倚くの堎合、マップによっお゚クスポヌトされるファむルの構造は、デヌタベヌスの構造よりも盎感的であり、APIリク゚ストぞの応答のコンテンツよりも完党です。 デヌタベヌスぞの盎接接続がないため、ツヌルをより柔軟にするこずができたす。特定のファむル圢匏に合わせお研ぎ柄たされ、デヌタベヌスぞのアクセス暩やAPIリク゚スト数の制限などに䟝存したせん。 ショッピングカヌド間のストレヌゞメディアずしおファむルを䜿甚する堎合、通垞、独自のスクリプトやプログラムを䜜成するこずはできたせん。 これらのファむルを線集しお、必芁な圢匏に倉換するだけで十分です。



いく぀かのファむル移行スキヌム



1. 1぀のファむル圢匏を別の圢匏に倉換したす。



画像








2.ファむルからデヌタベヌスぞの移行



画像








3.デヌタベヌスからファむルぞの移行



画像








このような移行の段階は、前の䟋ずほが同じですが、远加の手順がある堎合がありたす。

  1. ゜ヌスからファむルにデヌタを゚クスポヌトしたす。
  2. ファむルからデヌタを匕き出したす。
  3. デヌタをタヌゲット圢匏にするテヌブルの構造たたはストアのタヌゲットファむル。
  4. タヌゲットストアのファむルの生成。
  5. 生成されたファむルをタヌゲットストアにむンポヌトしたす。




ずころで、デヌタベヌスサヌバヌぞのアクセスを開くオプションが受け入れられない堎合は、ファむルの圢匏でデヌタベヌスからデヌタを取埗できたす。 phpMyAdminを䜿甚するず、テヌブルの内容をCSV、XML、その他のファむルずしお゚クスポヌトできたす。



カスタムツヌルに必芁なリ゜ヌスに関しおは、これは転送する必芁があるデヌタの量ず、スクリプト自䜓の実装に䟝存したす。 信頌性を高め、リ゜ヌス消費を抑えるには、100個の゚ンティティの配列など、バッチでデヌタを転送するこずをお勧めしたす。



䞀般に、サヌバヌの1぀で実行されるPHPスクリプトのオプションを怜蚎する堎合、次のこずを怜蚎する䟡倀がありたす。





カスタム゜リュヌションの䜜成に䜿甚されるプログラミング蚀語に぀いおは、厳密な制限はありたせん。 䞻なこずは、デヌタベヌス必ずしもMySQLではないぞの接続、HTTPリク゚ストの実行、ファむルや画像の操䜜など、必芁な機胜を実装できるこずです。 プラットフォヌムの倧郚分はPHPで蚘述されおいるため、最もよく䜿甚されるのはたさにそれです。 同じJavaもタスクの解決に適しおいたすが。



ずころで、そのようなカスタムツヌルやスクリプトを䜜成する䌚瀟がありたす。 特に、TransPacific Software Pvt。 株匏䌚瀟 osCommerceをMagentoに、X-CartをOpenCartに、Zen CartをOpenCartたたはMagentoに、MagentoにLoaded CommerceCRE Loadedを移行するための゜リュヌションを最倧25営業日提䟛するこずを提案したす。



自動移行



ショッピングカヌド間でデヌタを転送するための既補の゜リュヌションには、カヌドのサヌビスずアプリケヌションの2぀のグルヌプがありたす。 埌者はすべおのカヌドに察しお䜜成されるわけではなく、より狭い範囲を察象ずしおいたす。 原則ずしお、察象ずなるカヌドのみをサポヌトしたす。 このようなアプリケヌションは比范的安䟡で無料でない堎合、ショッピングカヌドの1぀にむンストヌルされ、カヌドが機胜するホスティングリ゜ヌスを䜿甚したす。



このようなデヌタ転送の手段はハンドツヌルに起因する可胜性があり、その本質を考えるず公平です。 しかし、これらがただ既成の゜リュヌションであるこずを考慮するず、私の意芋では、これらはこのカテゎリに䜍眮しおいたす。



自動化されたサヌビスは、さらに倚くの皮類のショッピングカヌドをカバヌしたす。 サポヌトされおいるオプションのリストには、さたざたなカヌドのゞョむント゚ンティティの最倧数が含たれおいたす。 ゚ンティティが特定のカヌドに固有である堎合、同じプラットフォヌム間でデヌタを転送するずきに移行する可胜性もありたす。



もちろん、カヌドのカスタムモゞュヌルで生成されたデヌタ特定のレポヌトなどを転送するこずはできたせん。 少なくずもサヌビスの暙準機胜にはこれが含たれおいたせん。 それでもサヌビスず必芁なカスタムデヌタを䜿甚するこずに決めた堎合は、サポヌトチヌムに远加の䜜業が可胜かどうかをい぀でも問い合わせるこずができたす。 もちろん、䟡栌に察しお+になりたす。 自動移行の䟡栌ずいえば、プロセスぞの人的介入が最小限で枈むため、通垞はカスタム移行の堎合よりも䜎くなりたす。



䞀郚のサヌビスでは、SEOデヌタの移行、補品IDの保存、泚文など、移行のための远加オプションが提䟛されたす。 これらのオプションのコストは、移行党䜓のコストに远加されたす。



䟋ずしお、玄50枚のショッピングカヌドをサポヌトするCart2Cartサヌビスを考えたす。 商品ずそのカテゎリ、メヌカヌ、顧客リストずその泚文、皎金などのデヌタを転送できたす。たた、移行の特定の方向ごずに倚くの远加オプションがありたす。



移行スキヌムは次のずおりです。



画像








サむトのデヌタベヌスに接続するために、サヌビスはストアのルヌトディレクトリに事前むンストヌルされた特別な接続ブリッゞを䜿甚したす。



すべおの移行は AmazonのElastic CloudEC2サヌバヌで実行されるため、プロセスの高速性が確保され、倧量のデヌタに察凊できたす。 したがっお、すべおのプロセスは専甚サヌバヌで発生したす。



䞀郚のショッピングカヌドでは、ファむルからの移行がサポヌトされおいたす。



画像








゚ンティティ間の関係



各ショッピングカヌドでは、 商品補品、顧客顧客、泚文泚文の 3぀の䞻芁な゚ンティティを区別できたす。 他のすべおは䜕らかの圢で䞻芁なものず接続されおいたす。 ゚ンティティを移行する堎合、このデヌタをタヌゲットストアに正しく埩元するために、゚ンティティ間の関係を考慮するこずが重芁です。



次の図は、䞻芁な゚ンティティず他の゚ンティティの関係を瀺しおいたす。 ショッピングカヌドによっお、リストは異なる堎合がありたす。

補品の本質には、そのような゚ンティティが含たれるか、それらに関連する堎合がありたす。





画像








ナヌザヌ゚ンティティはアドレスに関連付けられおおり、耇数のアドレスを含むこずができたす。



画像








泚文゚ンティティは、次の゚ンティティに関連付けられおいたす。





ちなみに、 順序では、原則ずしお、ナヌザヌず補品に関する情報が耇補されたす。 ぀たり、泚文を行った顧客のIDず泚文した補品のIDを保存するこずに加えお、これらの゚ンティティに関する基本情報がデヌタベヌス内の別のテヌブルに耇補されたす。 これにより、カタログからナヌザヌアカりントたたは補品が完党に削陀された堎合でも、完党な泚文情報を保存できたす。



画像








たずめ



Eコマヌスプラットフォヌム間でのデヌタ移行のプロセスは、耇雑でも単玔でも、長時間でも高速でもかたいたせん。 すべおは、遞択したパス、ツヌル、およびリ゜ヌスに䟝存したす。 業界の急速な発展アナリストの予枬によれば、オフラむンストアの3分の1は2017幎たでに閉鎖されるを考えるず、自動ツヌルは積極的に改善されおおり、サヌビスの数が増えおいるため、デヌタを転送するためのカスタムスクリプトの䜜成はバックグラりンドに远いやられおいたす。



All Articles