メインコンテンツにスキップ
商品詳細は英語で表示されます。翻訳は近日公開予定です。
Website Page Migration — A build-to-order Odoo module that imports website pages, blog posts, and product records — with embe — 1/1イメージプレビュー

A build-to-order Odoo module that imports website pages, blog posts, and product records

— with embedded images, per-language translations, and SEO metadata preserved — into your Odoo site.

ECOSIRE scopes, builds, installs, and supports it for you.

Website Page Migrationとは?

A build-to-order Odoo module that imports website pages, blog posts, and product records — with embedded images, per-language translations, and SEO metadata preserved — into your Odoo site. ECOSIRE scopes, builds, installs, and supports it for you. Built to order by ECOSIRE for Odoo 17, 18, 19 — indicative price from $999.00 USD; request a quote for a scoped proposal.

主な機能

Reads source content from CSV, JSON, XML, or WXR exports, or via a direct read from the legacy CMS API, into a normalized staging layer before load
Maps static pages onto `website.page` with backing `ir.ui.view` QWeb arch, preserving URL path, publish state, and menu placement
Migrates articles into `blog.post`/`blog.blog` with author, publish date, cover image, tags, and teaser preserved
Optional catalog import into `product.template`/`product.public.category` with descriptions, variants, and category tree
Rich-text image rehydration: parses embedded `<img>` tags, downloads and checksum-deduplicates binaries into `ir.attachment`, rewrites to stable `/web/image/` URLs with alt text intact
Per-language translation load: resolves source locales to active `res.lang` and writes values through Odoo's field-translation layer so the language switcher and hreflang work
SEO metadata mapping for meta title, meta description, `website_meta_keywords`, and canonical hints on each migrated record
Auto-generates `website.rewrite` 301 redirects from every legacy URL to its new Odoo path so inbound links and index equity survive cutover
Idempotent loads via deterministic external IDs in `ir.model.data` — re-running updates records instead of creating duplicates, enabling staged migration waves
TransientModel wizard for source selection, field mapping, dry-run validation, and a pre-import preview/exception report
Queued or `ir.cron` automated-action processing for large batches so 10k–20k-record jobs avoid worker/request timeouts
Access controlled by `ir.model.access.csv` plus record rules restricting the migration wizard to administrators, with a full run/audit log
Configurable transforms for slug normalization, HTML sanitization, and character-encoding fixes to clean legacy markup on the way in
Built and tested against Odoo 17.0, 18.0, and 19.0, with Community vs Enterprise differences accounted for in the build

受注生産、すべておまかせ

自分での設定は不要 — ECOSIRE が構築・インストール・サポートする実働アプリです。

  1. 1

    ご注文

    一回限りの構築料金から始めます。キックオフで一緒に範囲を決めます。

  2. 2

    構築とインストール

    ECOSIRE がお客様の Odoo 上で構築・設定・インストールします。

  3. 3

    本番稼働 + サポート

    約1週間(営業日ベース)で稼働し、本番稼働後2週間のサポートが付きます。納品したコードの不具合は無償で修正します。

技術仕様

Odoo互換性
Odoo 17, Odoo 18, Odoo 19
エディション
Enterprise&Community
ライセンス
ライセンスの確認が必要です
Python要件
Python 3.10+
データベース
PostgreSQL 12+

この製品について

Migrating a website into Odoo usually stalls on the parts nobody budgeted for: hundreds of website.page records, years of blog content, product descriptions, and — the real killers — the images embedded in rich text, the per-language translations, and the SEO metadata (meta titles, descriptions, canonical URLs, redirects) that protect your search rankings. Odoo native gives you a generic import interface for standard models, but it treats a page as a flat row of data. It does not rehydrate <img> sources into ir.attachment records, it does not map your source CMS's language codes onto res.lang and Odoo's field-translation layer, and it has no concept of preserving old URLs so inbound links and Google's index don't break on cutover day. Teams end up copy-pasting page by page, losing alt text and hreflang along the way, and then watching organic traffic dip after launch.

Website Page Migration is a made-to-order Odoo module that ECOSIRE builds around your specific source system and content shape. At its core is a configurable import engine that reads your exported content (CSV, JSON, XML, WXR, or a direct read from your old CMS over its API) and maps it onto Odoo's real models: website.page and its backing ir.ui.view (QWeb arch) for static pages, blog.post/blog.blog for articles, and product.template/product.public.category for the e-commerce catalog. Rich-text bodies are parsed so that every embedded image is downloaded, deduplicated by checksum, stored as an ir.attachment, and re-referenced with a stable /web/image/... URL — alt text and captions carried across. A staged, transactional loader (with idempotent external IDs in ir.model.data) means a re-run updates rather than duplicates, so you can migrate in waves and re-import safely.

Technically, the module is a proper addon with a versioned __manifest__.py depending on website, website_blog, and (when catalog is in scope) website_sale. Translations are handled by resolving each source locale to an active res.lang, then writing the translated values through Odoo's translation API so the front-end language switcher and hreflang tags work correctly. SEO is first-class: we map source meta titles/descriptions and website_meta_keywords, set canonical hints, and generate website.rewrite (301) records from every old path to its new Odoo URL so link equity and bookmarks survive. Access is governed by ir.model.access.csv plus record rules so the migration wizard is limited to administrators, and the whole run is logged for audit. A wizard (TransientModel) drives mapping, dry-run validation, and a preview report; larger jobs run through queued/automated actions so a 20,000-record import doesn't tie up a worker or hit request timeouts. It targets Odoo 17.0, 18.0, and 19.0, and we note Community vs Enterprise differences up front — e.g. multi-website routing and certain website tools differ, and we build to whichever edition you run.

Because this is build-to-order, nothing ships until we've scoped it with you. A short scoping call establishes your source platform, content volume, languages, and catalog complexity; we then confirm a fixed quote and a field mapping, build the module against a copy of your source data, and validate it on a staging database before touching production. Typical delivery is one working week from confirmed scope, depending on source-data cleanliness and volume. Pricing starts from $999 (indicative, single-company base scope); large data-migration volume, additional source platforms, deep multi-language depth, and multi-company or multi-website routing increase the quoted scope. You receive the installable source, so you are never locked to us.

得られるもの

  • Installable, version-pinned module source code (`__manifest__.py`, models, views, security, wizard) for your Odoo edition and version
  • Installation and configuration on your staging environment, including source-to-Odoo field mapping setup
  • Technical documentation: data model, mapping reference, redirect logic, and re-run/rollback notes
  • End-user guide plus a live training session for your team on running and re-running migrations
  • UAT on a staging copy with a dry-run validation report, then a controlled production cutover with a documented rollback plan
  • Post-go-live support window for defect fixes and mapping adjustments
  • Git repository handover with full commit history and tagged release
  • Migration run log and reconciliation report (record counts, redirects created, exceptions) for sign-off

これは誰のためのものですか

Agency or implementation partner replatforming a client

Needs a repeatable, idempotent import that maps a client's legacy CMS pages, blog, and catalog into Odoo without hand-copying — and wants a redirect map generated automatically so the client's SEO survives the move.

In-house Odoo administrator consolidating sites

Runs Odoo already and is folding a separate marketing site or old CMS into the Odoo website. Wants images, translations, and meta preserved, plus the ability to migrate in waves and re-run safely against staging.

Marketing / SEO lead protecting organic traffic

Cares most that meta titles, descriptions, canonicals, hreflang, and 301 redirects come across intact so rankings and inbound links don't break at launch — and wants a reconciliation report to prove nothing was dropped.

Multi-language / multi-company operator

Manages content across several languages and legal entities and needs per-locale translations mapped to `res.lang` and content scoped correctly across companies or websites.

Website Page Migration の比較方法

基準エコシエールカスタムビルド競合他社Odoo 標準機能
Nature of solutionModule built to order around your source and content shapeBespoke scripts written from scratch in-houseGeneric off-the-shelf importer with fixed field mappingBuilt-in generic import for standard models
Embedded image handlingDownloads, dedupes, stores as `ir.attachment`, rewrites URLs with alt textPossible but must be coded and tested yourselfUsually leaves external image URLs or drops themNot handled — images stay as raw source links
TranslationsLocales mapped to `res.lang` via Odoo translation layer, hreflang intactDoable but complex to implement correctlyOften single-language onlyNo per-language mapping on import
SEO metadata & redirectsMeta, canonical, and 301 `website.rewrite` map generated automaticallyMust build redirect logic and meta mapping by handRarely generates redirectsNo redirect generation; meta not mapped on import
Re-runs / idempotencyDeterministic external IDs — safe re-runs, staged wavesDepends entirely on how you build itOften creates duplicates on re-importRe-import risks duplicate records
Large-volume jobsQueued/`ir.cron` batch processing avoids timeoutsYou handle batching and worker loadMay time out on big datasetsUI import strains on very large files
Support & ownershipScoped quote, support window, full source + git handoverYou own and maintain everythingVendor support, limited customizationNo migration-specific support
Odoo version coverageBuilt and tested for 17.0 / 18.0 / 19.0, Community or EnterpriseWhatever you target and testVersion support varies by listingShips with your Odoo version only

Website Page Migration に関するよくある質問

Is this a ready-made app I can download and install right now?

No. Website Page Migration is build-to-order. We scope it against your specific source platform and content, build the module around your data, validate it on staging, then install it. You are not buying an existing apps.odoo.com download — you are commissioning a module tailored to your migration.

How long does delivery take?

Typical delivery is one working week from confirmed scope. The exact timeline depends on how clean your source data is, the content volume, the number of languages, and whether the e-commerce catalog is included. We confirm a schedule during scoping before any build starts.

How does pricing and scoping work?

Pricing starts from $999 as an indicative figure for a single-company, base-scope migration. After a short scoping call we send a fixed quote. Large data volumes, additional source platforms, deep multi-language work, and multi-company or multi-website routing increase the scope and the quote. The from-price is a starting point, not a firm final price.

What about support and updates after go-live?

Every build includes a post-go-live support window for defect fixes and mapping adjustments. Because you receive the full source and git repo, your team can maintain it, and we offer ongoing support or version-upgrade work (e.g. moving the module to a newer Odoo release) as a follow-on engagement.

Will my SEO rankings and old URLs survive the migration?

Yes — that is a core design goal. We map meta titles, descriptions, keywords, and canonical hints, carry per-language translations so hreflang stays correct, and auto-generate `website.rewrite` 301 redirects from every legacy URL to its new Odoo path so inbound links, bookmarks, and index equity are preserved at cutover.

Which Odoo versions and editions do you support?

We build for Odoo 17.0, 18.0, and 19.0, on either Community or Enterprise. Some website features (multi-website routing and certain tools) differ between editions, so we confirm your edition during scoping and build accordingly.

Can I re-run the migration or do it in stages?

Yes. The loader uses deterministic external IDs in `ir.model.data`, so a re-run updates existing records instead of creating duplicates. That lets you migrate in waves, validate on staging with a dry run, and re-import safely after fixing source-data issues.

見積もりを依頼

Website Page Migration

A build-to-order Odoo module that imports website pages, blog posts, and product records — with embedded images, per-language translations, and SEO metadata preserved — into your Odoo site. ECOSIRE scopes, builds, installs, and supports it for you.

  • Reads source content from CSV, JSON, XML, or WXR exports, or via a direct read from the legacy CMS API, into a normalized staging layer before load
  • Maps static pages onto `website.page` with backing `ir.ui.view` QWeb arch, preserving URL path, publish state, and menu placement
  • Migrates articles into `blog.post`/`blog.blog` with author, publish date, cover image, tags, and teaser preserved
  • Optional catalog import into `product.template`/`product.public.category` with descriptions, variants, and category tree

見積もりを依頼

Website Page Migration のご要望をお知らせください。価格、ライセンスの選択肢、貴社に合わせたご提案を、通常1営業日以内にお送りします。

今すぐのお支払いはありません。これはチームへの見積もり依頼を送信します。価格と次のステップをメールでご案内します。