A configurator that computes the total in JavaScript and posts it to the cart has handed pricing to the customer's browser.
Compute it twice: once in the browser so the total moves as they choose, once on the server from the options — never from the number that was posted.
https://t.co/Dwaa0yBxhw
WooFinance began as a WooCommerce plugin. It now also runs on iPhone, Mac and Apple Watch.
Same numbers either way: profit after cost of goods, cash flow, margin by product. On the watch because the question "did we actually make money today" does not wait until you are back at the desk.
https://t.co/FCTn2HvxBw
WooCommerce has one idea of stock: you had ten, you sold one, you have nine.
A rental returns. It is unavailable for a range of dates, needs cleaning before the next hire, and its price depends on how long somebody keeps it.
None of that is a setting.
https://t.co/p6z1klOxLy
If a WooCommerce webhook fails five times in a row, WooCommerce sets it to disabled and stops trying.
No email. Nothing on any screen you normally look at.
Most "my integration stopped working" reports are this — and re-enabling it does not resend what was missed.
https://t.co/yRoOC3v2mg
Interactive seat selection on any floor plan
Upload a floor plan, draw reservation areas in minutes, and let customers visually pick seats, tables, or zones — then checkout directly through WooCommerce.
https://t.co/09ArShnKr3
ZATCA's first invoice has no predecessor, so the hash chain starts from a fixed constant: base64 of the SHA-256 of "0".
Get that constant wrong and the first submission is rejected — and because each invoice chains off the last, nothing after it can succeed either.
The invoice itself looks perfect. That is what makes it hard to find.
https://t.co/H3NqsFTxXY
I built an endless ski runner on a real mountain.
Ilgaz, northern Türkiye. The summit is 2,587 m in the game because it is 2,587 m in life. The runs carry the names they carry on the actual piste map — Kadınçayırı, Yurduntepe, Büyükhacet.
Free:
https://t.co/aTD4SL8BtY