Skip to main content

ArtinTech Solution

Letting Admins Change a Product Variant After an Order Is Placed

“Kan I ændre min ordre til størrelse 32 i stedet for 30?” er en af de mest almindelige beskeder, en modebutik på nettet får efter checkout, og en, WooCommerce reelt ikke har noget indbygget svar på.

To separate forhindringer

Den første forhindring er, at varelinjer i WooCommerce-ordrer simpelthen ikke har en handling til at “skifte variant” nogen steder i brugerfladen. Du kan redigere antal og pris på en eksisterende linje eller slette den og tilføje et andet produkt fra bunden, men at skifte kun varianten og beholde samme produkt, pris og antal er ikke muligt.

Den anden, mindre indlysende forhindring er, at WooCommerces indbyggede redigering af varelinjer kun virker, så længe $order->is_editable() returnerer true, hvilket på en standardinstallation betyder, at ordrestatus er pending, on-hold, or . I praksis er de fleste rigtige ordrer allerede rykket tilBehandles , når en kunde beder om en anden størrelse, hvilket låser den indbyggede editor helt. by the time a customer asks for a size change, which locks the native editor out entirely.

Vi tilføjede et

Skift variant -link under hver varelinje med varianter på ordreskærmen, bevidst uafhængigt af WooCommerces link under each variable-product line item on the order-edit screen — deliberately independent of WooCommerce’s -tjek og kun begrænset af administratorrettigheder, for at rette en variant bagefter er netop situationen, hvor ordren allerede er kommet videre. Et klik indlæser alle kombinationer af størrelse, farve og længde for produktet som klikbare knapper og genbruger den samme vælgerkomponent, som vi byggede til Manual Order Creator. Når en ny variant vælges, kaldes WooCommerces egen

Selecting a new variation calls WooCommerce’s own -metode, den samme metode som WooCommerces checkout selv bruger, når den først opretter varelinjen. Derfor ender attributdata i præcis den form, som alle andre dele af WooCommerce forventer, i stedet for en hjemmelavet tilnærmelse, der går i stykker i ordremails eller CSV-eksport. Hver ændring skriver også en ordrenote, der præcist registrerer, hvad der blev ændret, for eksempel fra Størrelse 56 / Længde 43 / Dybblå til Størrelse 50 / Længde 43 / Dybblå, så der er et klart revisionsspor, hvis en kunde bestrider, hvad de modtog.

Det gør den bevidst ikke

Funktionen skifter kun variantens identitet: størrelse, farve, længde og varens navn. Den ændrer ikke pris, antal eller lagerbeholdning automatisk. Det er en bevidst grænse: at ændre, hvad en kunde blev opkrævet, eller automatisk justere lagertal, er beslutninger, en medarbejder skal træffe aktivt, ikke bivirkninger af en størrelsesrettelse.

This feature only swaps the variation identity: size, colour, length, and the item’s name. It doesn’t touch price, quantity, or stock levels automatically. That’s a deliberate boundary — silently changing what a customer was charged, or auto-adjusting inventory counts, are decisions a staff member should make explicitly, not side effects of a size correction.

En funktion, der kun virker, mens en ordre er “redigerbar” i platformens snævre forstand, løser ofte det forkerte tilfælde; det reelle behov opstår, efter det vindue er lukket.

  • At genbruge platformens egne setter-metoder i stedet for at skrive rå metadata er det, der holder skræddersyede ændringer kompatible med alt andet, der læser de data.
  • At trække en klar grænse for, hvad en funktion
  • Drawing an explicit boundary around what a feature does rører (pris, lager), er lige så vigtigt som det, den gør. touch (price, stock) is as important as what it does.

udvidelse af ordreforhåndsvisningen sådan byggede vi en manuel ordreopretter, how we built a manual order creator.

Støder du på en lignende begrænsning i din egen WooCommerce- eller WordPress-admin? Lad os tale — ArtinTech Solution bygger netop den slags skræddersyede værktøjer til webshops.

Del denne artikel

Skriv et svar

Din e-mailadresse vil ikke blive publiceret. Krævede felter er markeret med *