En resum
- HPOS guarda les comandes en taules pròpies en lloc de fer-ho a les entrades de WordPress.
- El codi que llegeix comandes amb funcions d'entrades o SQL directe pot fallar sense donar error.
- El mode de compatibilitat sincronitza les dues taules i permet tornar enrere durant la transició.
- Assaja el canvi en una còpia de la botiga, amb ERP i facturació inclosos, abans de producció.
HPOS a WooCommerce (High-Performance Order Storage, emmagatzematge de comandes d'alt rendiment) canvia el lloc on la botiga guarda les comandes. Des de la versió 8.2 ve activat a les instal·lacions noves, però moltes botigues que fa anys que venen continuen amb el sistema antic, sovint perquè algun plugin no l'admet o perquè ningú no s'ha volgut arriscar a canviar-lo. Aquí expliquem què canvia per dins, com funciona la sincronització entre els dos sistemes i com plantejar la migració amb un entorn de proves perquè els plugins continuïn funcionant.
- Còpia de provesmateixos plugins i versions, amb correus i passarel·les desconnectats
- Compatibilitatresol plugins incompatibles i codi propi
- Sincronitzaciómode de compatibilitat amb l'emmagatzematge antic com a principal
- Canvi a HPOSHPOS com a principal i bateria de proves
- Producciómateixos passos amb poca activitat i còpia recent
- Fi de la sincronitzacióes desactiva quan no apareixen incidències
Què és HPOS i què canvia a les taules de comandes
Fins a l'arribada d'HPOS, WooCommerce guardava cada comanda com una entrada de WordPress, a la mateixa taula que les pàgines i els articles del blog. Les dades de la comanda (imports, adreces, mètode de pagament, notes internes) anaven a una taula genèrica de metadades, una fila per dada. Funciona, però amb moltes comandes aquesta taula creix sense parar i les consultes per buscar o filtrar comandes es tornen lentes, perquè han de creuar moltíssimes files.
HPOS mou les comandes a taules pròpies, dissenyades per a elles:
- wc_orders, amb les dades principals de la comanda: estat, imports, client i dates.
- wc_order_addresses, amb les adreces de facturació i d'enviament.
- wc_order_operational_data, amb dades internes que WooCommerce fa servir per gestionar la comanda.
- wc_orders_meta, amb les metadades que afegeixen els plugins.
Davant de cada nom va el prefix de taules de la teva instal·lació. Per a qui gestiona la botiga el canvi gairebé no es veu: la pantalla de comandes s'assembla molt a l'anterior, tot i que en canvia l'adreça dins de l'administrador, així que els marcadors i enllaços interns a comandes concretes poden deixar de funcionar. Per al codi que llegeix o escriu comandes, el canvi afecta tot el que fa.
Així queden els dos sistemes comparats punt per punt:
| Aspecte | Entrades de WordPress (antic) | HPOS |
|---|---|---|
| On es guarda la comanda | A la taula d'entrades, al costat de pàgines i articles | En taules pròpies de comandes |
| Dades de la comanda | A la taula genèrica de metadades, una fila per dada | En columnes de wc_orders i les seves taules d'adreces i dades internes |
| Metadades de plugins | A la taula de metadades d'entrades | A wc_orders_meta |
| Cerques amb moltes comandes | Es tornen lentes quan creixen les metadades | Consulten taules pensades per a comandes |
| Codi amb funcions d'entrades | Funciona | Pot llegir dades velles o escriure on ningú no llegeix |
| Instal·lacions noves | Ja no és l'opció per defecte | Activat per defecte des de la versió 8.2 |
Per què HPOS pot trencar plugins i codi a mida
Un plugin que tracta les comandes amb les funcions públiques de WooCommerce (carrega la comanda com a objecte i en llegeix o en guarda les dades amb els mètodes de la mateixa comanda) funciona igual amb un sistema que amb l'altre, perquè WooCommerce decideix per dins de quina taula ha de llegir. Els problemes apareixen amb el codi que va pel seu compte:
- Llegeix o actualitza dades de la comanda amb les funcions de metadades de WordPress pensades per a entrades.
- Busca comandes amb consultes d'entrades filtrades pel tipus shop_order.
- Llança consultes SQL directes contra les taules d'entrades i metadades.
- Afegeix columnes, filtres o caixes a la pantalla de comandes amb hooks que només existeixen a la pantalla antiga.
Amb HPOS actiu, aquest codi pot llegir dades desactualitzades o escriure en una taula que WooCommerce ja no consulta. Moltes vegades ni tan sols dona error. La comanda es guarda, però el número de seguiment, el camp de factura o la marca d'enviat a l'ERP queden en un lloc on ningú no els llegeix.
Imagina una botiga amb un connector propi que marca cada comanda com a exportada a l'ERP guardant una metadada amb la funció de WordPress. Després d'activar HPOS, el connector ja no troba aquesta marca i torna a enviar comandes que ja estaven exportades. Per detectar un error així cal una prova completa en un entorn de còpia que inclogui la comprovació a l'ERP.
Mode de compatibilitat i sincronització entre taules
WooCommerce permet tenir els dos sistemes en paral·lel. Als ajustos avançats, apartat de característiques, tries quin emmagatzematge mana (el d'alt rendiment o l'antic, basat en entrades de WordPress) i pots activar el mode de compatibilitat, que manté sincronitzades les taules noves i les antigues. El text exacte de cada opció pot variar una mica segons la versió i l'idioma de l'administrador.
Com funciona a la pràctica:
- Només una de les dues fonts és la principal. L'altra rep una còpia de cada canvi.
- Quan actives la sincronització per primera vegada, les comandes pendents es copien per lots en segon pla, mitjançant tasques programades. En una botiga amb un històric llarg triga una estona.
- Mentre quedin comandes sense sincronitzar, WooCommerce no et deixa canviar l'emmagatzematge principal.
- Amb la sincronització activa pots tornar a l'emmagatzematge antic si alguna cosa falla, perquè les dues taules tenen les mateixes dades.
La sincronització té un cost: cada escriptura de comanda es fa dues vegades. Té sentit com a etapa de transició, mentre comproves que tot funciona i conserves la tornada enrere. Quan la botiga fa un temps que està estable amb HPOS, el normal és desactivar-la.
En botigues amb moltes comandes, la sincronització també es pot llançar des de la línia d'ordres amb WP-CLI, cosa que permet controlar millor quan s'executa i no dependre de les tasques programades.
Com revisar quins plugins són incompatibles amb HPOS
Els plugins poden declarar si són compatibles amb HPOS. Si algun dels actius es declara incompatible, WooCommerce ho avisa a la mateixa pantalla de característiques, enllaça a la llista de plugins afectats i no deixa activar el nou emmagatzematge fins que es resolgui.
Aquesta llista és un bon punt de partida, tot i que es queda curta:
- Un plugin que no declara res pot no aparèixer com a incompatible i, tot i així, llegir comandes pel seu compte.
- El codi a mida que sigui al tema, per exemple a functions.php, no declara compatibilitat de cap manera.
- Els connectors amb ERP, magatzem o facturació poden funcionar bé a la botiga i fallar al sistema extern.
Per a cada plugin de la llista, comprova si hi ha una versió més recent que ja declari compatibilitat, si l'autor encara el manté o si toca substituir-lo. Al codi propi, busca funcions d'entrades i metadades de WordPress aplicades a comandes, consultes directes a la base de dades i referències al tipus shop_order. Si n'apareixen moltes, sol ser un bon moment per passar aquest codi a un plugin a mida escrit sobre les funcions públiques de WooCommerce. A la guia sobre plugin comprat o codi a mida a WooCommerce expliquem on ha de viure aquest codi.
Pla per activar HPOS a WooCommerce amb un entorn de proves
Si l'actives directament a producció, el primer avís d'un plugin trencat sol arribar d'un client. L'ordre que proposem per activar HPOS a WooCommerce és aquest:
- Fes una còpia completa de la botiga real, fitxers i base de dades, en un entorn de proves amb els mateixos plugins i versions.
- En aquesta còpia, desactiva els correus a clients i apunta passarel·les de pagament, ERP i transportistes als seus entorns de prova.
- Actualitza WooCommerce, la resta de plugins i el tema, i comprova que tot funciona abans de tocar HPOS.
- Resol els plugins incompatibles i el codi propi que hagis localitzat.
- Activa el mode de compatibilitat amb l'emmagatzematge antic com a principal i espera que se sincronitzin totes les comandes.
- Canvia l'emmagatzematge principal a HPOS, amb la sincronització encara activa, i passa la bateria de proves.
- Repeteix els mateixos passos a producció en un moment de poca activitat, amb una còpia de seguretat recent.
- Mantén la sincronització mentre vigiles registres i processos externs, i desactiva-la quan no apareguin incidències.
Què provar després d'activar HPOS
La llista de proves hauria d'estar escrita abans del canvi, amb el resultat esperat de cadascuna:
- Una compra completa amb cada mètode de pagament actiu.
- Una comanda amb cupó i una altra amb diverses línies i un enviament especial.
- Canvis d'estat manuals des de l'administrador, inclosa una cancel·lació.
- Un reemborsament parcial.
- La cerca i els filtres de la pantalla de comandes, també els que afegeixen plugins.
- Factures, etiquetes d'enviament i números de seguiment.
- L'exportació a l'ERP o al magatzem, comprovant al sistema extern que no es duplica cap comanda.
- Subscripcions o comandes recurrents, si en fas servir.
- Informes de vendes, comparant les xifres d'un mateix període abans i després del canvi.
Si la botiga està connectada a un ERP, l'exportació és la prova que més importa: una comanda duplicada a facturació costa bastant més d'arreglar que un error visible a la botiga. A integració ERP i ecommerce expliquem com dissenyem aquestes connexions perquè es detecti una comanda repetida.
Quan esperar abans de migrar a HPOS
Les botigues existents poden continuar, de moment, amb l'emmagatzematge antic, així que no cal forçar el canvi en un mal moment. Convé esperar si un plugin del qual depèn l'operativa no és compatible i no té substitut, si estàs entrant en temporada alta o si no disposes d'un entorn de proves on assajar.
Si decideixes esperar, revisa les notes de versió de WooCommerce per si canvien els plans per a l'emmagatzematge antic, i aprofita qualsevol desenvolupament nou que toqui comandes per escriure'l ja compatible amb HPOS.
Checklist abans de migrar a HPOS
- Versió actual de WooCommerce i emmagatzematge actiu (si la botiga es va crear amb la 8.2 o posterior, pot ser que ja faci servir HPOS).
- Llista de plugins incompatibles i una decisió per a cadascun: actualitzar, substituir o reescriure.
- Inventari del codi propi, al tema o en plugins a mida, que llegeixi o escrigui comandes.
- Connexions externes que treballen amb comandes: ERP, magatzem, facturació i automatitzacions.
- Entorn de proves actualitzat, amb correus i passarel·les desconnectats.
- Llista de proves amb el resultat esperat de cadascuna.
- Finestra de canvi a producció i còpia de seguretat acabada de fer.
- Una persona encarregada de vigilar registres i comandes els dies següents.
Si prefereixes no fer-ho sol, la migració a HPOS encaixa dins del manteniment WooCommerce: revisem plugins i codi, preparem la còpia de proves i fem el canvi amb la tornada enrere preparada.



