Skip to content

Saleor field notes

Fix Saleor checkout, channels, stock, orders, and fulfillment with a script

A working library of the problems that hit real Saleor stores, across checkout and stock reservation, channels and channel listings, warehouses and stock, orders and fulfillment, payments, and webhooks, and how to detect or repair each one with a small Python or Node.js script. Every guide has a diagram of the problem, a diagram of the fix, full code in both languages, tests, and links to the source reports.

Python and Node.js Saleor GraphQL API Diagrams and full code
Browse all 51 scripts on GitHub Download them all as a zip Field guide PDF (51 fixs, 111 KB) Follow @allanninal Every fix on this page has a tested Python and Node.js script in the repo. Free, and MIT as stated in its README.

Checkout & Stock Reservation

6 guides

Shipping & Warehouses

4 guides

Stock & Inventory

4 guides

Products, Variants & Channels

6 guides

Orders & Fulfillment

9 guides

Order stuck unfulfilled after payment succeeds

Order status never leaves UNFULFILLED even after a successful payment or fulfillment creation. Script queries paid orders with no fulfillment past a time threshold.

Diagnostic

Fulfillment fails when variant stock equals one

orderFulfill misreports available stock and blocks fulfillment when a variant has exactly one unit. Script re-verifies stock against requested fulfillment quantity.

Diagnostic

Digital products not auto fulfilled despite setting enabled

automatic_fulfillment_digital_products is ignored for some orders, leaving digital only orders stuck unfulfilled. Script queries digital only orders still unfulfilled.

Diagnostic

Partial fulfillment breaks on a zero quantity line

fulfillmentCreate errors when a multi line order intentionally leaves one line unfulfilled, blocking partial shipment. Script identifies orders stuck mid fulfillment.

Diagnostic

Editing a confirmed order reverts it to draft status

Changing shipping address or lines on a placed order flips order status back to DRAFT, hiding it from normal queues. Script scans for draft orders that already have payments attached.

Diagnostic

draftOrderComplete drops the applied voucher

Converting a draft order with a voucher loses the discount on completion, understating the applied discount. Script compares draft versus completed order discount and totals.

Diagnostic

Draft order taxes reset to zero on completion

Tax fields computed on the draft order get wiped once draftOrderComplete runs, leaving blank tax on the final order. Script compares pre and post completion tax fields.

Diagnostic

Manual order line discount deleted on recalculation

Manually applied line level discounts vanish after certain order update mutations trigger a recalculation. Script compares line discounts before and after updates.

Diagnostic

Cannot unfulfill or delete an order paid with a gift card

Orders partly paid with a gift card get stuck because unfulfill or delete mutations error out. Script detects gift card orders that fail lifecycle mutations.

Diagnostic

Payments & Transactions

5 guides

Vouchers & Gift Cards

5 guides

Webhooks & Events

4 guides

Tax, Pricing & Migration

5 guides

Customers & Notifications

3 guides

Fighting a Saleor bug right now?

If you have a problem in Saleor checkout, channel, stock, or fulfillment that you would rather hand off, this is the kind of work I do. Message me and we can work through it together.

Contact me on LinkedIn

Found this useful?

These guides are free and always will be. If one saved you a support ticket or a refund, you can throw a coffee my way. It keeps the notes coming.

Buy me a coffee on Ko-fi