diff --git a/data-transformations/order-segmentation/order-type.mdx b/data-transformations/order-segmentation/order-type.mdx index 8a9795c..21bc116 100644 --- a/data-transformations/order-segmentation/order-type.mdx +++ b/data-transformations/order-segmentation/order-type.mdx @@ -23,13 +23,39 @@ Order type classification uses a multi-signal approach evaluated at the **line i | Priority | Signal | Result | |----------|--------|--------| -| 1 | Amazon Subscribe & Save line item match | `Subscription` | -| 2 | `prepaid` + subscription tag in order tags | `Subscription - Prepaid` | -| 3 | Subscription platform line item type (ReCharge, Retextion) | Per platform classification | -| 4 | Shopify Subscription Contract app ID | `Subscription` | -| 5 | Order tags matching subscription patterns | `Subscription` | -| 6 | Line item `is_from_subscription` flag | `Subscription` | -| 7 | **Default** | `One-time` | +| 1 | Shopify explicit one-time line signal | `One-time` | +| 2 | Shopify explicit subscription line signal | `Subscription` | +| 3 | Amazon Subscribe & Save line item match | `Subscription` | +| 4 | Subscription platform line item type (ReCharge, Retextion) | Per platform classification | +| 5 | Legacy tag/order-source fallback logic | `Subscription` / `One-time` | +| 6 | **Default** | `One-time` | + +## Shopify Metadata Update (February 20, 2026) + +For Shopify, order-line classification now uses a broader set of line-item metadata keys from `stg_stitch__shopify__order_line_properties`. + +### What changed + +- Added more subscription-indicator keys (e.g., selling plan, prepaid, bundle, and app-emitted subscription metadata keys). +- Added explicit one-time keys used by common subscription apps. +- Added guardrail for placeholder values: + - `subscription_id = '1'` by itself is treated as a placeholder and **does not** create a subscription signal. +- Added Shopify app-id fallback coverage for single-line orders: + - Includes ReCharge app id `294517` in the post-cutover order-source fallback list. + +### Signal precedence (Shopify) + +1. Explicit one-time signal wins. +2. Explicit subscription signal is used when explicit one-time is absent. +3. Exact/fuzzy subscription platform line-item matches are used next. +4. Legacy/tag-based fallback logic applies. +5. Otherwise classify as one-time. + +### What existing users should expect + +- Some Shopify lines/orders may move from `One-time` to `Subscription` where subscription metadata was previously under-detected. +- A smaller set of Shopify lines/orders may move from `Subscription` to `One-time` when the only signal was placeholder `subscription_id = '1'`. +- No schema change: field names like `sm_order_type`, `is_subscription_order`, and `subscription_order_sequence` are unchanged. ### Subscription Tag Patterns diff --git a/help-center/core-concepts/data-definitions/subscription-flags.mdx b/help-center/core-concepts/data-definitions/subscription-flags.mdx index 59f50f0..50aa681 100644 --- a/help-center/core-concepts/data-definitions/subscription-flags.mdx +++ b/help-center/core-concepts/data-definitions/subscription-flags.mdx @@ -21,6 +21,20 @@ Common subscription-related fields in `your_project.sm_transformed_v2.obt_orders These fields are most reliable when you have a direct subscription-platform integration (or consistent subscription tagging in Shopify). +## Shopify behavior update (February 20, 2026) + +For Shopify order lines, SourceMedium now uses expanded line-item metadata signals when setting subscription flags. + +What this means in practice: +- More Shopify subscription metadata keys are recognized (including common selling-plan/prepaid/app-emitted keys). +- Explicit one-time line signals take precedence over explicit subscription line signals. +- Placeholder-only `subscription_id = '1'` no longer counts as a subscription signal by itself. +- Post-cutover, single-line order-source fallback includes ReCharge app id `294517`. + +Expected impact for existing users: +- You may see some historical Shopify orders reclassified between one-time and subscription after refresh/backfill cycles. +- Field definitions and column names do not change. + ## Recommended query pattern ```sql @@ -41,4 +55,3 @@ ORDER BY month_start DESC, subscription_order_sequence; - [Order Type (sm_order_type)](/data-transformations/order-segmentation/order-type) - [`obt_orders` column docs](/data-activation/data-tables/sm_transformed_v2/obt_orders) - diff --git a/help-center/faq/data-faqs/data-faqs-home.mdx b/help-center/faq/data-faqs/data-faqs-home.mdx index 57a28ca..949ee69 100644 --- a/help-center/faq/data-faqs/data-faqs-home.mdx +++ b/help-center/faq/data-faqs/data-faqs-home.mdx @@ -17,6 +17,7 @@ Use this section when you’re comparing SourceMedium to another system (Shopify - [Why would external reports not match the SourceMedium dashboard?](/help-center/faq/data-faqs/why-would-external-reports-not-match-the-sourcemedium-dashboard) - [Why don't the Executive Summary and Shopify's Sales Report match?](/help-center/faq/data-faqs/why-dont-the-executive-summary-and-shopifys-sales-report-match) - [Why doesn't ReCharge subscription data match SourceMedium reports?](/help-center/faq/data-faqs/why-doesnt-recharge-match-sourcemedium) + - Includes notes on the February 20, 2026 Shopify subscription signal update. - [What impact does Global-E have in SourceMedium?](/help-center/faq/account-management-faqs/what-impact-does-global-e-have-in-source-medium) - [What attribution windows does SourceMedium report on for marketing platforms?](/help-center/faq/data-faqs/what-attribution-windows-does-sourcemedium-report-on-for-marketing-platforms) - [How does Stripe metadata work?](/help-center/faq/data-faqs/how-does-stripe-metadata-work) diff --git a/help-center/faq/data-faqs/why-doesnt-recharge-match-sourcemedium.mdx b/help-center/faq/data-faqs/why-doesnt-recharge-match-sourcemedium.mdx index e77977f..c774a54 100644 --- a/help-center/faq/data-faqs/why-doesnt-recharge-match-sourcemedium.mdx +++ b/help-center/faq/data-faqs/why-doesnt-recharge-match-sourcemedium.mdx @@ -7,6 +7,10 @@ icon: "question-mark" It’s common for subscription reporting to differ across tools. ReCharge and SourceMedium may be answering slightly different questions, using different timestamps, or applying different rules for refunds, cancellations, and attribution. + +As of **February 20, 2026**, Shopify line-item subscription classification in SourceMedium was updated to use expanded metadata signals (including ReCharge app-id fallback coverage for `294517`) and to ignore placeholder-only `subscription_id = '1'`. + + ## Start by aligning on definitions Before troubleshooting, confirm which definition you’re using in each tool: @@ -40,6 +44,14 @@ Subscription checkouts can reduce UTM coverage depending on your storefront/chec Confirm you’re comparing the same store(s), channel(s), and date range in both tools. +### 5) Shopify metadata signal changes (for existing users) + +If your subscription/non-subscription split changed recently, this can be expected after the Shopify signal update: + +- Some lines previously marked one-time may now be classified as subscription due to newly recognized metadata keys. +- Some lines previously marked subscription may now be one-time if the only prior signal was placeholder `subscription_id = '1'`. +- In post-cutover Shopify data, single-line orders with `order_source_name = '294517'` can now classify as subscription via fallback logic. + ## What to do next If you’re still seeing unexplained differences, share the following with your SourceMedium team: