Saved configurations

Let customers save a custom rug and return later

Keep the product, option choices, and shopper's own name for a design together in a customer metafield that the configurator can reopen later.

“A critical function that we needed was for customers to be able to design rugs and save them to their account.”
Trevor Brown Technology and Website Manager, Fibreworks and Solidago
Why they built it

A required saved-design workflow

Fibreworks and Solidago built custom rugs for customers who needed to see a design before they could buy. The team needed a way to keep those designs in customer accounts.

They created a JSON customer metafield and connected the rug builder to it, keeping the product and merchant-defined choices together for a future visit.

Customers can save rug designs and favorite products to their accounts. The theme owns the designer and the hook that reopens a saved configuration later.

The result

The customer metafield became the saved-design backend.

28,000+
Saved-design submissions processed

FieldsRaven processing rows from the storefront rug builder, not a claim that each save was a distinct design.

125,000+
Saved-recipe records processed

A second unnamed implementation used the same customer-owned pattern for related saved records.

28,000+ saved-design submissions processed, alongside 125,000+ saved-recipe records processed in another implementation. Neither result counts distinct designs. The customer can pause and reopen merchant-defined options later, while the theme decides how to continue the design.

Copy the starter code

A JSON metafield and one call.

snippets/saved-rug-designs.liquid
const cfg = window.FR_CUSTOM__CUSTOMER_SAVED_CONFIGURATIONS;
const payload = [{
  id: "design-1042",
  name: "Living room rug",
  product_handle: "custom-wool-rug",
  options: { size: "8x10", border: "linen" }
}];

await fetch("/apps/raven/create_metafield", {
  method: "PUT",
  headers: { "Content-Type": "application/json" },
  body: JSON.stringify({
    raven: {
      raven_id: cfg.ravenId,
      resource_id: cfg.resourceId,
      raven_mac: cfg.ravenMac,
      value: JSON.stringify(payload)
    }
  })
});

Call this after a validated create, update, or delete action. Defining the starter does not write the example design on page load.

A JSON save replaces the full metafield value. Read the current saved configurations, apply the change, and send the complete updated list.

Get Code supplies the configuration and inline HMAC. The complete recipe covers stable IDs plus create, update, reopen, and remove behavior.

Common questions

Before you wire it up.

Does FieldsRaven build the configurator?
No. The merchant theme or product-builder code controls the design interface; FieldsRaven accepts the resulting customer value.
What can the JSON contain?
Use the values needed to rebuild the design, such as product, size, material, color, border, quantity, and a stable design ID.
Can a customer keep several designs?
Yes. Store a list of design objects and update that complete list when the customer saves or deletes one.
Will the design follow the customer to another device?
Yes, after the value is saved to the Shopify customer and the shopper signs in on the other device.

Let the customer continue the design later

Start with the JSON shape and connect it to your existing builder. Then save the first design on the demo store.