Skip to content

Investigate Shopify/Hub product mismatch and clarify product matching status #61

Closed

Description

@code811

Location

Products and Thresholds page, Dashboard stock levels, Shopify product synchronization, and product/threshold associations.

Backlog source

Abdikhaliq reported that Products and Thresholds does not appear to match Shopify, while Dashboard inventory displays the expected Shopify products. Carson investigated the different data paths on November 5–6, 2026.

Abdikhaliq supports retaining Hub product records while distinguishing those currently represented in Shopify. Exact status semantics and the reported mismatch still require validation.

Current behavior

The Dashboard iterates through inventory returned by Shopify’s getStockLevels function. GET /products lists stored Hub products with manufacturer and threshold information.

Sync from Shopify upserts products by SKU. Matching SKUs update names; existing non-null Shopify inventory IDs are retained. Missing SKUs and individual write failures are skipped. The handler does not remove older Hub products.

These differences explain how the pages can show different product sets, but no concrete live mismatch has been verified. Retained sample/older records are one possible explanation, not a confirmed root cause.

Expected behavior

Products and Thresholds should clearly represent Hub products and their relationship to Shopify while preserving operational records and history.

Users should be able to distinguish a product matched in the latest successful Shopify retrieval from one absent from that retrieval or one whose status cannot currently be verified. Identity matching must not imply that every field has synchronized successfully.

Acceptance criteria

  • Trace a concrete reported mismatch through Shopify retrieval, synchronization, the Hub product record, and both page responses.
  • Determine whether the mismatch results from retained records, skipped synchronization, identity matching, configuration, or another cause.
  • Correct any confirmed defect and record supporting verification.
  • Define matching rules for SKU and Shopify inventory item ID, including missing or conflicting identifiers.
  • Define precise user-facing status labels and the evidence required for each.
  • Failed, disabled, or incomplete retrieval does not incorrectly classify every Hub product as absent.
  • Distinguish sample-data results from live Shopify verification.
  • Verify that thresholds are configured and saved against the intended Hub/Shopify product association.
  • Preserve manufacturer associations, thresholds, alerts, reorder history, and production-run records.
  • Test matched and unmatched records, missing/conflicting identifiers, retrieval failure, and threshold associations in an identified development environment.

Verification evidence

Prior code review compared backend/src/routes/products.js with backend/src/routes/dashboard.js and inspected Shopify synchronization behavior.

The November 6 discussion was reconstructed by Carson after Sidechat became unavailable. No specific live mismatch or implemented correction has been verified. Record the implementation baseline, environment, and runtime evidence before closure.

Dependencies or decisions

Related to #54: reliable product and threshold associations are necessary before claiming the complete reorder-refresh workflow is validated.

Product deactivation is a separate proposed feature. Absence from Shopify retrieval does not authorize deletion or automatic deactivation. Any data cleanup, identity migration, or changes affecting historical associations require a separate reviewed plan. Trello Card.

Priority: High (provisional; potential impact on product/threshold accuracy).
Area: Products / Shopify / thresholds.
Status: Investigation / Needs verification.
Owner: Unassigned pending coordination.
Target date: To be agreed.

Activity

  1. added
    priority: highCore functionalities are not working as intended
    area: productsProducts, thresholds, and product-detail views
    area: integrationsShopify, Zoho, Partner, Klaviyo, and related integrations
    status: needs-ownerReady for ownership coordination before development
    on Nov 7, 2026
  2. self-assigned this
    on Nov 9, 2026
  3. code811 commented on Nov 9, 2026

    @code811
    OwnerAuthor

    Completed by pull request #64.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

area: integrationsShopify, Zoho, Partner, Klaviyo, and related integrationsarea: productsProducts, thresholds, and product-detail viewspriority: highCore functionalities are not working as intendedstatus: needs-ownerReady for ownership coordination before development

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions