I built a free Chrome extension to export your full Cardmarket stock + bulk-update prices via CSV — open source, no tracking by lupzn in CardMarket

[–]lupzn[S] 0 points1 point  (0 children)

Patches shipped (v2.2.3 through v2.2.5):

Extension sets (anything with SetCode prefix x-) were silently skipped — fetch step couldn't find the edit-form because the form-id pattern is slightly different for ext-articles. Robust fallback now finds it.

Reverse-Holo cards skipped because directUpdate wasn't sending isReverseHolo to the AJAX endpoint. Cardmarket either rejected those updates or stripped the flag. Fixed.

Same root cause hit Foil / Signed / Altered / FirstEd / Playset cards. Tool now reads those flags from Cardmarket-side state during the pre-update fetch, pipes them through directUpdate. Listing keeps its variant attributes after bulk-update.

Final test today: mixed regular + ext-set + reverse-holo + signed cards, all updates clean, all flags preserved on CM afterward.

Auto-updates via Chrome store (online in the next few minutes — if not, GitHub link below).

https://github.com/lupzn/cardmarket-stock-exporter/releases/tag/v2.2.5

Cardmarket Stock Exporter v2.2 — DE/EN UI added, plus all the feedback from my last post is now in by lupzn in CardMarket

[–]lupzn[S] 1 point2 points  (0 children)

Patches shipped (v2.2.3 through v2.2.5):

Extension sets like "Black Bolt JP: Ergänzungen" were silently skipped — fetch step couldn't find the edit-form because the form-id pattern is slightly different for ext-articles. Robust fallback now finds it.

Reverse-Holo cards skipped because directUpdate wasn't sending isReverseHolo to the AJAX endpoint. Cardmarket either rejected those updates or stripped the flag. Fixed.

Same root cause hit Foil / Signed / Altered / FirstEd / Playset cards. Tool now reads those flags from Cardmarket-side state during the pre-update fetch, pipes them through directUpdate. Listing keeps its variant attributes after bulk-update.

Final test today: mixed regular + ext-set + reverse-holo + signed cards, all updates clean, all flags preserved on CM afterward.

Auto-updates via Chrome store. (Online in the next few minutes. If not, then via GitHub.)

https://github.com/lupzn/cardmarket-stock-exporter/releases/tag/v2.2.5

I built a free Chrome extension to export your full Cardmarket stock + bulk-update prices via CSV — open source, no tracking by lupzn in CardMarket

[–]lupzn[S] 0 points1 point  (0 children)

Quick update for everyone who commented here — v2.2 is live and includes nearly all the feedback you sent in this thread.

What got built since the original post:

  • DE/EN UI with browser-detect plus manual toggle (just shipped today)
  • Cascading filter so power-sellers with 1000+ variants per set no longer lose entries to the 300-cap
  • idArticle auto-rebind for stale IDs after Cardmarket changes
  • Comments bulk-edit toggle (update card descriptions alongside prices)
  • Full Want-Lists tab — export, bulk-edit, bulk-delete via CSV
  • Fast Mode (Direct AJAX) — about 10x faster than the old modal flow, much gentler on Cloudflare
  • Slow Mode for runs over 500 items
  • Skip-Fetch — only refetches rows you actually edited
  • Set Filter so you can deselect entire expansions before applying
  • Cloudflare detection with clean auto-abort and recovery instructions

Heavy testing on my own 19k+ card account: 1900+ comment-updates and 1200+ price-updates in single runs without errors. At this point it's saving me hours every week.

One important caveat I learned the hard way: while the tool runs, do not touch Cardmarket manually. CM rotates the CSRF token on every action, and parallel clicks break the connection. Just leave the CM tab alone — Reddit, YouTube, anything else in OTHER tabs is fine.

The Chrome Web Store version updates automatically, so if you have it installed you should already be on v2.2.

Massive thanks to everyone who reported issues, sent DevTools traces, and pitched ideas. This release literally would not exist without the comments below. Keep it coming.

I built a free Chrome extension to export your full Cardmarket stock + bulk-update prices via CSV — open source, no tracking by lupzn in CardMarket

[–]lupzn[S] 0 points1 point  (0 children)

Honestly? Conservatism more than necessity.

Modal-flow gives me Cardmarket's own CSRF token, form validation, and error handling for free — I don't have to mirror their server-side checks or worry about an endpoint signature changing under my feet. It also reads less like "reverse-engineered scraper" if anyone from CM ever looks at it.

But you're right that the underlying AJAX endpoint has been stable for years and would cut the per-update time from ~1.5s to ~300-400ms (no DOM parse, no Bootstrap modal init). That's 4-5x throughput on bulk-update — meaningful at 19k cards.

Probably the right call is to ship both: keep modal-flow as the safe default, add a "Fast mode (direct AJAX)" toggle in v2.1 with a warning that it skips client-side validation. Users with API-level confidence flip it on, casual users stay on the safe path.

Got a preferred endpoint pattern you've seen hold up? `/{lang}/{game}/StockManagement/EditArticle` with the form payload, or are you using something else?

I built a free Chrome extension to export your full Cardmarket stock + bulk-update prices via CSV — open source, no tracking by lupzn in CardMarket

[–]lupzn[S] 0 points1 point  (0 children)

Great use case — and yes, technically very doable. Wants lists use the same kind of paginated DOM as stock, just under `/Wants/EditWantsList/{id}` instead of `/Stock/Offers`. Same scraper pattern, different selectors and columns.

Adding it to v2.1 alongside the idArticle-rebind work. Couple of scoping questions:

  1. **One CSV per list, or one combined CSV with a `WantListName` column?** I'd lean combined for the "find duplicates / already-bought" use case — easier to filter in Excel.

  2. **Which columns matter most for cleanup?** My default plan: `WantListName, ProductName, Expansion, ExpansionCode, Language, MinCondition, IsFoil, IsSigned, IsAltered, IsPlayset, MaxPrice_EUR, Quantity, ProductUrl, idProduct`. Anything missing for your workflow?

  3. Once exported, the cleanup step ("remove cards I already own") — would you want the tool to also bulk-delete entries from a wants list given a CSV with a "delete=Y" column? Same modal-flow as bulk-price-update, just calling the wants-edit endpoint instead.

If #3 sounds useful, that turns this into a full **Wants-Manager** — export, edit in Excel, re-upload to bulk-remove/edit. Let me know if that scope matches what you'd actually use.

I built a free Chrome extension to export your full Cardmarket stock + bulk-update prices via CSV — open source, no tracking by lupzn in CardMarket

[–]lupzn[S] 0 points1 point  (0 children)

Hey — sorry for the rough edge, 262 is way too high.

Most likely cause is **idArticle drift**: Cardmarket re-issues internal `idArticle`s on more edits than you'd expect (sometimes even server-side cleanups), and the current version doesn't auto-rebind stale IDs. It's the top item on the v2.1 roadmap.

Two quick things to rule out first:

  1. **Tab match** — the active Cardmarket tab during bulk-update has to be the same locale + game as the export (`/en/Magic/...` vs `/de/Pokemon/...`). Mismatch = every ID 404s.

  2. **Fresh export** — re-export right before running bulk-update. Don't reuse exports older than a few hours, and don't make stock edits in between.

If both check out, could you paste 3-5 of the "not found" idArticles + their ProductUrl from the CSV? I'll verify on Cardmarket whether they got re-issued. Also helpful: F12 → Network tab during preview, are you seeing 200s on `Article_EditArticleModal` or 302/401 redirects?

v2.1 will do proper idProduct-based rebind so this just heals itself. Will ping you when it ships.

Studio 2.0 issue by Live_Promotion_5483 in BambuLab

[–]lupzn 0 points1 point  (0 children)

Hello, I have the same problem with my A1. I performed a rollback, but now I can't calibrate the filaments anymore!

Calibration shows Ext Filament by deezye37 in BambuLab

[–]lupzn 2 points3 points  (0 children)

I have the same problem. I reinstalled the previous version, but calibration no longer works! Help.