Skip to content

[Shopify] Add Unlisted product status#9321

Merged
onbuyuka merged 1 commit into
mainfrom
bugs/642074-shopify-product-status-unlisted
Jul 16, 2026
Merged

[Shopify] Add Unlisted product status#9321
onbuyuka merged 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

github-actions Bot commented Jul 10, 2026

Copy link
Copy Markdown
Contributor

Copilot PR Review

Iteration 2 · Outcome: completed

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.

@github-actions

Copy link
Copy Markdown
Contributor

⚠️ Stale Status Check Deleted

The Pull Request Build workflow run for this PR was older than 72 hours and has been deleted.

📋 Why was it deleted?

Status checks that are too old may no longer reflect the current state of the target branch. To ensure this PR is validated against the latest code and passes up-to-date checks, a fresh build is required.


🔄 How to trigger a new status check:

  1. 📤 Push a new commit to the PR branch, or
  2. 🔁 Close and reopen the PR

This will automatically trigger a new Pull Request Build workflow run.

@onbuyuka onbuyuka closed this Jul 14, 2026
auto-merge was automatically disabled July 14, 2026 07:56

Pull request was closed

@onbuyuka onbuyuka reopened this Jul 14, 2026
@onbuyuka
onbuyuka enabled auto-merge July 14, 2026 07:56
@onbuyuka
onbuyuka added this pull request to the merge queue Jul 16, 2026
@JesperSchulz JesperSchulz added the Integration GitHub request for Integration area label Jul 16, 2026
Merged via the queue into main with commit 4142744 Jul 16, 2026
481 of 497 checks passed
@onbuyuka
onbuyuka deleted the bugs/642074-shopify-product-status-unlisted branch July 16, 2026 16:53
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 Integration GitHub request for Integration area

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants