Admin APIにおけるSVGのMediaImageとしての扱い

2023年4月以降、ShopifyのAdmin APIではSVGがMediaImageとして扱われるようになりました。これにより、オンラインストアフロントでのSVGの利用が大幅に容易になります。

技術的課題:SVGの取り扱い困難

これまで、ShopifyのAdmin APIではSVGが専用のフォーマットとして扱われており、その結果、SVGの取り扱いに一定の難しさがありました。特に、オンラインストアフロントにSVGを適用する際には、ソリューションの開発や視覚的な調整が必要で、これが開発者にとっての手間となっていました。

技術的ソリューション:SVGのMediaImage化

この問題を解決するため、ShopifyのAdmin APIでは2023年4月以降、SVGをMediaImageとして扱うようになりました。これにより、SVGは他の画像フォーマットと同様に簡単に取り扱うことができ、オンラインストアフロントへの適用も容易になります。

実装手順とコード例

この新しい機能を利用するには、Admin APIを通じてSVGをMediaImageとしてアップロードするだけです。以下に、SVGをアップロードするためのコードの例を示します。


// SVGファイルのアップロード
const svgFile = new File(['SVG data'], 'image.svg', {type: 'image/svg+xml'});
const media = await client.product.createMedia(12345678, {
  media: {
    originalSource: URL.createObjectURL(svgFile),
    mediaContentType: 'image',
  },
});

パフォーマンス・コスト分析

この変更により、SVGの取り扱いが大幅に簡単になり、開発者の作業時間を削減することができます。また、SVGは他の画像フォーマットと比べてファイルサイズが小さく、サイトのロード速度を向上させることが期待できます。

実装時の注意点・ベストプラクティス

SVGのMediaImage化に伴い、SVGの取り扱いが他の画像フォーマットと同様になりましたが、SVG固有の特性に注意が必要です。特に、SVGはスケーラブルなベクター画像であるため、その解像度は無限であり、画像サイズの調整には注意が必要です。

次のステップ・発展案

今後は、この新しい機能を活用し、オンラインストアフロントでのSVGの活用を進めることが期待されます。特に、SVGを活用することで、より高品質な画像を提供しつつ、サイトのパフォーマンスを維持することが可能となります。

参考記事: SVGs returned as MediaImage in Admin API