webfoo / html-to-shopify-rich-text
A PHP library to convert HTML to Shopify's Rich Text format
Installs: 110
Dependents: 0
Suggesters: 0
Security: 0
Stars: 4
Watchers: 1
Forks: 1
Open Issues: 1
pkg:composer/webfoo/html-to-shopify-rich-text
Requires
- php: ^8.3
- ext-dom: *
- ext-json: *
- ext-mbstring: *
- ezyang/htmlpurifier: ^4.16
- symfony/css-selector: ^7.2
- symfony/dom-crawler: ^7.2
Requires (Dev)
- phpunit/phpunit: ^10.0
This package is auto-updated.
Last update: 2025-12-05 15:50:07 UTC
README
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.
Features
- 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
Installation
You can install the package via Composer:
composer require webfoo/html-to-shopify-rich-text
Usage
use 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
Supported HTML Elements
- Headings:
<h1>through<h6> - Paragraphs:
<p> - Lists:
<ul>,<ol>,<li> - Links:
<a href="..."> - Bold:
<strong>,<b> - Italic:
<em>,<i>
Error Handling
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 }
Requirements
- PHP 8.1 or higher
- Composer
- Required dependencies:
symfony/dom-crawlerezyang/htmlpurifier
License
This package is open-sourced software licensed under the MIT license.
Contributing
Contributions are welcome! Please feel free to submit a Pull Request.