Skip to content

Commit 96ec3cf

Browse files
committed
Update PR description to include latest commit context
1 parent b1ced38 commit 96ec3cf

File tree

1 file changed

+47
-0
lines changed

1 file changed

+47
-0
lines changed

pull/25

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
## Description
2+
3+
This PR implements support for dumping Shopify Metaobject definitions and references in the schema files, enabling schema portability across different Shopify stores.
4+
5+
### Key Enhancements
6+
7+
- **Metaobject Definitions Dump**
8+
- Adds `fetch_metaobject_definitions()` to retrieve metaobject schemas.
9+
- Includes `create_metaobject_definition` calls in the schema dump output.
10+
- Orders metaobjects before metafields in the dump for clarity.
11+
- Handles metaobject field definitions, access controls, and capabilities.
12+
- Skips default values for cleaner output.
13+
14+
- **Portable References**
15+
- Converts store-specific metaobject definition IDs (`metaobject_definition_id`) to portable metaobject types (`metaobject_definition_type`) in schema dumps.
16+
- Updates validations to use types instead of GIDs, making schema files cross-store compatible.
17+
- Enhances metafield creation and update logic to resolve types back to GIDs when needed.
18+
- Supports both single and array values for `list.metaobject_reference` fields.
19+
- Adds precise validation matching for metaobject reference fields.
20+
21+
### Latest Commits Context
22+
23+
- Added portable metaobject references in schema dumps: metaobject definition IDs are now converted to types for portability.
24+
- Metaobject definitions are included in schema dumps before metafields, supporting cross-store references and capabilities.
25+
- Parsing logic for metaobjects and metafields is separated for clearer schema structure.
26+
- Common metaobject methods were extracted to a shared module for code reuse.
27+
- Metaobject reference fields are now correctly handled during creation and updates.
28+
- Schema dump now supports multiple metaobject_definition_ids for enhanced flexibility.
29+
- Migrator now includes metaobject statements for full portability.
30+
- Error handling was improved for failed metafield creation, providing better context.
31+
- Field validation for metaobjects is now deferred, preventing failures when referencing not-yet-created definitions; admin access management was updated to skip settings not supported via API.
32+
33+
### Example Before
34+
35+
```ruby
36+
create_metafield :products, :color, :metaobject_reference,
37+
validations: [{name: "metaobject_definition_id", value: "gid://shopify/MetaobjectDefinition/123"}]
38+
```
39+
40+
### Example After
41+
42+
```ruby
43+
create_metafield :products, :color, :metaobject_reference,
44+
validations: [{name: "metaobject_definition_type", value: "color_pattern"}]
45+
```
46+
47+
With this update, schema files can be shared between stores without manual ID changes, as long as the relevant metaobject types exist.

0 commit comments

Comments
 (0)