Skip to content

[Shopify] Add Unlisted product status#9321

Open
onbuyuka wants to merge 1 commit into
mainfrom
bugs/642074-shopify-product-status-unlisted
Open

[Shopify] Add Unlisted product status#9321
onbuyuka wants to merge 1 commit into
mainfrom
bugs/642074-shopify-product-status-unlisted

Conversation

@onbuyuka

@onbuyuka onbuyuka commented Jul 10, 2026

Copy link
Copy Markdown
Contributor

What & why

Shopify added the UNLISTED value to its GraphQL ProductStatus enum (visible from API version 2025-10 onward). The Shopify Connector talks to API version 2026-07, but the "Shpfy Product Status" enum (30130) only knew about Active, Archived, and Draft. As a result, ShpfyProductAPI.ConvertToProductStatus could not map the UNLISTED string and silently fell back to Active, misrepresenting unlisted products on import.

This adds the Unlisted value to the enum. Because the value name matches the cleaned Shopify string, both directions now work with no further code changes: import maps UNLISTEDUnlisted, and export uppercases the enum name back to UNLISTED.

Linked work

Fixes AB#642074

How I validated this

  • I read the full diff and it contains only changes I intended.
  • I built the affected app(s) locally with no new analyzer warnings.
  • I ran the change in Business Central and confirmed it behaves as expected.
  • I added or updated tests for the new behavior, or explained below why none are needed.

What I tested and the outcome

  • Built the Shopify Connector app locally via the AL tooling — package generated with no errors and no new analyzer warnings.
  • Published the app to a local on-prem NST and exercised the import path (UpdateShopifyProductFields) with a product payload carrying "status":"UNLISTED"; the resulting Shpfy Product record was mapped to Unlisted instead of the previous Active fallback.
  • No test added: the change is a purely additive enum value, and the text↔enum mapping is deterministic (the cleaned Shopify string matches the enum value name by construction), so a dedicated test would mostly exercise framework string-matching rather than connector logic.

Risk & compatibility

Low. The change only adds a new enum value; existing Active/Archived/Draft handling is unchanged, and the enum is Extensible = false. Products that were incorrectly stored as Active because they are UNLISTED in Shopify will be corrected to Unlisted on the next sync.

Shopify added the UNLISTED value to its GraphQL ProductStatus enum
(visible from API version 2025-10 onward). The connector uses API
version 2026-07, so importing an unlisted product previously fell back
to Active, misrepresenting the product. Add the Unlisted value to the
"Shpfy Product Status" enum so the status is mapped correctly on both
import and export.

Fixes AB#642074

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: bbea116d-8175-459f-b8f5-f628665a5cc7
@onbuyuka onbuyuka requested a review from a team July 10, 2026 17:37
@github-actions github-actions Bot added the AL: Apps (W1) Add-on apps for W1 label Jul 10, 2026
@github-actions github-actions Bot added this to the Version 29.0 milestone Jul 10, 2026
@onbuyuka onbuyuka enabled auto-merge July 10, 2026 17:41
@github-actions

Copy link
Copy Markdown
Contributor

Copilot PR Review

Iteration 1 · Outcome: completed

The diff (single enum value addition) matched the upgrade domain and complied with its guidance; all other leaf domains had no applicable knowledge and the UI leaf found no page/control-add-in files changed.

Knowledge source: https://github.com/microsoft/BCQuality@822cae1b2771ac25f665f73369f69093bd4fd630

Orchestrator pre-filter (13 file(s) excluded)

  • layer-disabled (knowledge) : 13 file(s)

Findings produced by the Copilot CLI agent against BCQuality at 822cae1b2771ac25f665f73369f69093bd4fd630. Reply 👎 on any inline comment to flag false positives.

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

Labels

AL: Apps (W1) Add-on apps for W1

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant