Tag

cfml

33 articles

cfml

Shopify API 2026-10 Changes

Shopify's 2026-10 API is stable. Breaking changes: address edits on unfulfilled orders now recalculate taxes, draft order PriceRule is gone, invalid metafield filters now error instead of being ignored, carrier services no longer auto-join the General profile, and FULFILLMENT_NOT_REQUIRED joins the status enum. ProductVariant.barcode gives way to barcodes. Additions include multi-tracking order imports, Shopify Payments fee details, and a new subscription calculation flow.

cfml

Shopify GraphQL: Order Ingestion & Updates

A reference for Shopify GraphQL order work in CFML. Covers GIDs, cost-based rate limits, and why HTTP 200 means nothing without checking userErrors. Ingestion: webhooks, paginated queries, bulk operations. Updates: orderUpdate, order edits, fulfillmentCreate, orderCreate for marketplace imports. Includes a CFC harness using script-based cfhttp, with one retry on THROTTLED. Notes the 2026-10 address-triggers-tax-recalc change.

boxlang

My blog joined the fediverse

This blog is now on the fediverse as @blog@kisdigital.com. Follow it from Mastodon and new posts, edits and deletions reach your timeline within minutes; replies come back here as comments, and likes and boosts are counted. It's all powered by bx-activitypub, a new BoxLang module on ForgeBox and GitHub: your app answers four questions about its data and the module handles WebFinger, HTTP Signatures and delivery. Here's how it works, what I learned, and what's next.

cfml

Stump the Programmer: The Recursive Shelf

Robert presents a ColdFusion/BoxLang coding challenge to build a recursive function that converts a flat array of hierarchical category data (using `id` and `parent_id` relationships) into a nested tree structure without using loops. The solution uses `arrayFilter()` to find children of each parent and `arrayMap()` to recursively build the `children` array for each node, with an optional bonus feature to alphabetically sort children at each nesting level using a `sortKey` parameter.

boxlang

Building a better spider

Robert evolved a web scraping service over several years to extract link metadata (Open Graph, Twitter Cards, oEmbed, JSON-LD) for social sharing features, progressively hardening it against bot detection, timeouts, and SSL errors. The latest version uses a multi-layered extraction strategy—rotating user-agents, disabling certificate validation, adding browser headers only for non-bot UAs to maximize successful extraction.