A PHP package that converts HTML content to Shopify's Rich Text format. This package provides a simple and reliable way to transform HTML content into the JSON structure that Shopify's Rich Text editor expects.
- Converts common HTML elements to Shopify Rich Text format
- Supports headings (h1-h6)
- Handles paragraphs, lists (ordered and unordered)
- Processes inline elements (bold, italic, links)
- Sanitizes HTML input
- Validates HTML structure
- Handles whitespace normalization
- Provides detailed error handling
You can install the package via Composer:
composer require webfoo/html-to-shopify-rich-textuse Webfoo\HtmlToShopifyRichText\HtmlToShopifyRichText;
$html = '<h1>Hello World</h1><p>This is a <strong>test</strong> paragraph.</p>';
$richText = HtmlToShopifyRichText::convert($html);
// $richText will contain the JSON representation of the Shopify Rich Text- Headings:
<h1>through<h6> - Paragraphs:
<p> - Lists:
<ul>,<ol>,<li> - Links:
<a href="..."> - Bold:
<strong>,<b> - Italic:
<em>,<i>
The package throws specific exceptions for different error scenarios:
InvalidHtmlException: Thrown when the HTML is invalid or cannot be parsedConversionException: Thrown when the conversion process failsJsonEncodingException: Thrown when the JSON encoding fails
Example error handling:
try {
$richText = HtmlToShopifyRichText::convert($html);
} catch (InvalidHtmlException $e) {
// Handle invalid HTML
} catch (ConversionException $e) {
// Handle conversion errors
} catch (JsonEncodingException $e) {
// Handle JSON encoding errors
}- PHP 8.1 or higher
- Composer
- Required dependencies:
symfony/dom-crawlerezyang/htmlpurifier
This package is open-sourced software licensed under the MIT license.
Contributions are welcome! Please feel free to submit a Pull Request.