Tilgjengelig i Barcelona

WooCommerce Utvikler i Barcelona

Barcelona er et viktig forretnings- og teknologisenter. Vi leverer WordPress-løsninger med fokus på ytelse, sikkerhet og målbare forretningsresultater.

WooCommerce Utvikler → Barcelona

Vi støtter WordPress-miljøet i Barcelona

Vi er ikke bare et fjernbyrå. Vi er en aktiv del av økosystemet. Vi tror på Open Source og bidrar tilbake til fellesskapet som driver over 40 % av nettet (W3Techs).

Lokal kontekst: Skalerbar arkitektur for voksende produkter, sterke sikkerhetsgrunnlag og flerspråklige brukerreiser optimalisert for regionale og internasjonale målgrupper.

WordPress & WooCommerce Utvikler i Barcelona

01. Lokal SEO-ytelse

I det konkurranseutsatte markedet i Barcelona er sidehastighet ditt sterkeste SEO-fortrinn. Vår Astro + Headless WP-stack leverer ytelse som etterlater konkurrentene.

02. Enterprise-sikkerhet

For bedrifter i Barcelona som betjener Startups og bedrifter, er datasikkerhet avgjørende. Headless-arkitektur eliminerer praktisk talt standard WordPress-angrepsvektorer.

En WooCommerce-butikk som selger til kunder i Barcelona og Catalonia må håndtere tre ting som ikke står i standarddokumentasjonen til Woo: Redsys eller Bizum i kassen, IVA beregnet riktig for spanske og EU-kunder, og innhold på spansk, engelsk og katalansk der markedet krever det. Vi bygger og rydder opp i WooCommerce for bedrifter i Barcelona med utgangspunkt i nettopp disse kravene, ikke en generisk mal som siden lokaliseres med bynavn.

Catalonia er Spanias tyngste e-handelsregion, og Barcelona er både logistikk-knutepunkt og teknologihovedstad. Bizum brukes av over halvparten av spanjolene, og en kasse uten mobilbetaling taper konverteringer på lokal trafikk. Det er det praktiske utgangspunktet for arbeidet vårt.

#WooCommerce-utvikling i Barcelona

Barcelona-markedet er modent. Katalanske og spanske netthandlere er vant til raske kasser, Bizum-knapp på mobil, tydelig IVA og returinformasjon i henhold til lokal forbrukerlovgivning. Arbeidet vårt handler om å få WooCommerce til å oppføre seg slik en lokal kunde forventer, og å gjøre det på en måte som overlever oppdateringer av Woo, temaet og betalingstilleggene.

#Hva vi faktisk bygger

  • Redsys og Bizum i kassen: redirect-flyt for kort via Redsys, app-switch for Bizum på mobil, 3D Secure 2.0 på kortbetalinger, og test av webhooks for autorisasjon, belastning, refusjon og delvis refusjon mot testmiljø
  • Stripe ved siden av lokale gatewayer der butikken selger internasjonalt, med riktig rekkefølge i kassen for spansk og katalansk trafikk og testkort-matrise per gateway
  • IVA-oppsett for spansk handel: 21 prosent standardsats, redusert sats på næringsmidler og bøker, fritak der det gjelder, og OSS-håndtering for EU-salg utenfor Spania
  • Flerspråklig storefront: spansk (ES), engelsk (EN) og katalansk (CA) med hreflang, uavhengige produktbeskrivelser per språk og kasseflyt tilpasset hvert marked
  • Frakt med Correos, SEUR og MRW: fraktsoner innen Catalonia og resten av Spania, prisregler basert på vekt og volum, hentested som leveringsvalg, og fraktsedler/sporing koblet mot ordrebehandlingen
  • GDPR etter AEPD-krav: samtykkehåndtering, cookie-banner med granulært valg, databehandleravtaler og personvern bygget inn i arkitekturen, med hosting i EU
  • Utvidelser av WooCommerce REST API for hodeløs storefront, mobilapp eller POS, med autentisering og idempotente betalingsstier

#Hvorfor spanske betalings- og fraktvalg styrer arkitekturen

I de fleste WooCommerce-prosjekter for Barcelona er det ikke produktkatalogen som er vanskelig, det er kassen. Redsys oppfører seg ikke som et vanlig Stripe-skema: redirect-flyten, 3DS-vinduet og webhook-bekreftelsen krever at ordrestatus ikke settes til betalt før Redsys faktisk har bekreftet. Vi har sett butikker der ordrer ble markert fullført på redirect tilbake, ikke på webhook, slik at avbrutte betalinger ga ordrer uten penger. Den typen feil fanges bare med ende-til-ende-QA på selve betalingsstien.

Bizum er den andre fellen. En spansk kunde forventer å betale med mobilappen i kassen, ikke bare kort. Når Bizum mangler eller er feilkoblet, faller konverteringen på mobil kraftig. Integrasjonen krever app-switch-logikk, callback-håndtering og idempotens slik at dobbel webhook ikke gir dobbel ordre.

Frakt er den tredje. En katalansk kunde forventer å velge hentested hos Correos eller en SEUR-pakkeboks i kassen, ikke bare «standard frakt». Når dette mangler, faller konverteringen. Vi setter opp fraktsonene og leveringsvalgene som hører til det spanske markedet, og kobler dem mot sporing kunden ser i e-posten.

#Markedet og miljøet i Barcelona

Barcelona er Catalonias kommersielle og teknologiske tyngdepunkt. 22@Barcelona-distriktet og Poblenou samler startups, e-handelsselskaper og logistikkaktører som betjener hele Iberia-halvøya. Catalonia står for rundt en fjerdedel av Spanias B2C e-handel, og Barcelona er porten mot resten av EU for mange merkevarer som selger fra Spania.

Kundene våre i Barcelona spenner fra lokale D2C-merkevarer i mote og livsstil, til etablerte grossister som flytter fra en lukket plattform over til WooCommerce for å eie egen kode og selge på tvers av språk. Fellesnevneren er at de trenger en butikk som tar Bizum og Redsys på alvor, regner IVA riktig, hoster data i EU og lar dem nå kunder på spansk, engelsk og katalansk.

Mange av disse butikkene har vokst organisk over flere år: et tema fra en kjøpt mal, et halvt dusin tillegg som overlapper, og en kasse som er lappet sammen i takt med at nye krav dukket opp. Det fungerer helt til trafikken øker, et betalingstillegg slutter å bli vedlikeholdt, eller AEPD stiller krav om oppdatert samtykkehåndtering. Da er det ikke en ny plugin som trengs, men en opprydding i arkitekturen: skille ut egen kode i en egen plugin, fjerne tillegg som dupliserer hverandre, og gjøre kassen forutsigbar igjen. Vi tar denne typen refaktorering uten å bygge alt på nytt, så lenge WooCommerce er riktig plattform for det butikken skal gjøre. Er det ikke det, sier vi det skriftlig.

#Slik jobber vi gjennom et prosjekt

  1. Kasse- og katalogrevisjon. Vi går gjennom dagens WooCommerce-butikk: produkttaksonomi, kasseflyt, aktive betalingstillegg (Redsys, Bizum, Stripe), fraktsoner mot Correos/SEUR, IVA-regler, språkversjoner og Lighthouse-måling på de mest besøkte produkt- og kategorisidene.
  2. Plan for betaling, frakt og integrasjon. Vi dokumenterer gateway-valg og rekkefølge i kassen, fraktsoner og hentestedslogikk, IVA- og OSS-håndtering, og koblinger mot regnskap, lager eller fulfilment. Grensen mellom Woo-kjerne, egen plugin og temakode settes her.
  3. Bygging i feature-brancher. Vi følger kodestandardene til WordPress og WooCommerce, utvider Woo via action- og filter-hooks i stedet for å endre kjernen, og tester betalings- og ordrestier underveis.
  4. QA på ordrestien. Handlekurv, kasse, betaling med testkort og test-Bizum på hver gateway, refusjon og delvis refusjon, kunde-e-post og admin-redigering, kjørt i et testmiljø som speiler produksjon.
  5. Utrulling og overlevering. Vi deployer via en dokumentert release-prosess med testet tilbakeføring, og leverer runbook for hver gateway og hver integrasjon sammen med dokumentasjon for butikkstyrere og redaktører.

#Typiske oppdrag fra Barcelona-butikker

  • Redsys markerte ordrer betalt på redirect. En motebutikk i Eixample markerte ordrer fullført når kunden kom tilbake fra Redsys, ikke når webhook bekreftet betalingen. Vi flyttet bekreftelsen til callback-håndtereren, la inn idempotens slik at dobbel webhook ikke ga dobbel ordre, og satte opp full testmatrise for autorisasjon, belastning og refusjon.
  • Bizum manglet i kassen. En D2C-merkevare med over 70 prosent mobiltrafikk hadde bare kortbetaling. Vi la til Bizum-gateway med app-switch, testet redirect og callback mot testmiljø, og plasserte mobilbetaling øverst i kassen for spansk trafikk.
  • Tre språk, én kasse som ikke skalerte. En grossist i Poblenou solgte på spansk, engelsk og katalansk, men kasseflyten var hardkodet på spansk. Vi satte opp WPML eller Polylang med WooCommerce-kompatibilitet, uavhengige produktbeskrivelser per språk, og hreflang som peker riktig for hver versjon.
  • Treg kasse på mobil. En butikk med tungt tema og mange aktive tillegg hadde flere sekunders forsinkelse før betalingsknappen var klikkbar. Vi startet med Lighthouse, WP-CLI-profil og Query Monitor på kassesiden, fant cart-fragment-kallene og autoloadede options som var skyld i mesteparten, og fjernet flaskehalsene én etter én.

#Tekniske standarder og EU-hosting

Vi kjører WooCommerce på PHP 8.2 eller nyere, med object caching (Redis) der trafikken forsvarer det, og CDN foran statiske ressurser. Hosting skjer i EU-datasentre, slik at personopplysninger fra kunder i Catalonia og resten av EU behandles innenfor GDPR-rammeverket uten unødvendige tredjelandsoverføringer. Betaling går via Redsys, Bizum og Stripe avhengig av hva butikken trenger, alltid med 3D Secure på kort. Tunge jobber, som synkronisering mot lager eller regnskap, kjøres via Action Scheduler i bakgrunnen slik at de ikke blokkerer kassen.

#Hva du kan forvente etter lansering

Vi lover ikke faste prosenttall, fordi resultatet avhenger av utgangspunktet. Det vi leverer er en kasse som tar Redsys og Bizum på alvor og bekrefter ordrer på webhook, ikke på redirect, fraktvalg som matcher det spanske og katalanske kunder forventer, IVA og GDPR håndtert i selve flyten i stedet for manuelt, flerspråklig innhold som fungerer for ES, EN og CA, og en målbar forbedring i Core Web Vitals på de sidene som faktisk konverterer. Måltallene settes mot dagens nivå i revisjonen, ikke mot oppdiktede bransjegjennomsnitt.

#Sikkerhet og personvern etter AEPD

Hvert prosjekt får en sikkerhetsgrunnlinje: HTTPS med HSTS, Content Security Policy mot XSS, sårbarhetsskanning av avhengigheter i CI, tofaktor for administratorkontoer og testede sikkerhetskopier. Butikker som håndterer personopplysninger får GDPR-tilpasset samtykkehåndtering i tråd med AEPD-retningslinjer: granulært cookie-valg, tydelig informasjon om databehandling, databehandleravtaler og personvern bygget inn i arkitekturen.

For spanske nettbutikker betyr det i praksis at kundedata fra Redsys-, Bizum- og kortbetalinger, samt navn og adresse for frakt, lagres på servere i EU og behandles slik regelverket krever. Vi dokumenterer hvilke tredjeparter som mottar data, og sørger for at samtykke-loggen er sporbar ved en eventuell AEPD-henvendelse.

#Ytelse, målt der det teller

Core Web Vitals påvirker både rangering og konvertering, og på en nettbutikk er det kasse-, produkt- og kategorisidene som betyr noe. Vi jobber mot lav LCP gjennom optimalisert kritisk renderingsvei og forhåndsinnlasting av hero-bilder i moderne format (WebP/AVIF), lav INP gjennom minimal JavaScript og utsatt innlasting av tredjepartsskript (inkludert betalingsskript fra Redsys), og stabil layout (lav CLS) gjennom faste bildedimensjoner og reservert plass for dynamisk innhold som Bizum-knappen. Vi måler kontinuerlig med Lighthouse i utrullingsløpet, slik at en regresjon blokkerer distribusjon i stedet for å nå produksjon.

#Spørsmål Barcelona-butikker stiller oss

Setter dere opp Redsys og Bizum i kassen? Ja. Vi integrerer Redsys for kortbetaling med 3D Secure, Bizum for mobilbetaling med app-switch, og tester autorisasjon, belastning, refusjon og delvis refusjon mot testmiljø før lansering. Bekreftelse av betaling skjer på webhook eller server-til-server-callback, ikke på redirect tilbake til butikken.

Kan dere håndtere IVA og OSS riktig? Ja. Vi setter 21 prosent standardsats og reduserte satser der de gjelder, skiller innenlands spansk salg fra EU-salg via OSS der det kreves, og viser priser med IVA inkludert slik spanske forbrukere forventer.

Støtter dere spansk, engelsk og katalansk? Ja. Vi setter opp flerspråklig WooCommerce med uavhengige produktbeskrivelser, kasseflyt og hreflang per språk. Katalansk er obligatorisk for mange bedrifter i Catalonia som retter seg mot lokale kunder.

Hvor hostes butikken? I EU-datasentre, slik at personopplysninger behandles innenfor GDPR uten unødvendige tredjelandsoverføringer. Dette er et krav mange Barcelona-bedrifter stiller etter AEPD-veiledning om databehandling.

Endrer dere WooCommerce-kjernen? Nei. Tilpasninger går via dokumenterte action- og filter-hooks, med en klar deling mellom egen plugin og tema, slik at butikken overlever Woo-oppdateringer.

Jobber dere med butikker utenfor Barcelona? Ja. Vi har tyngdepunktet i Barcelona-miljøet, men leverer til netthandlere i hele Catalonia, Spania og til internasjonale merkevarer som selger fra Barcelona.

#Integrasjoner en spansk nettbutikk faktisk trenger

En spansk nettbutikk på WooCommerce ender som regel opp med de samme fire koblingene: betaling med Redsys og Bizum, frakt med Correos, SEUR eller MRW inkludert hentesteder, regnskap i Holded, A3 eller Sage, og en ordrestatus som settes av serveren til leverandøren, ikke av at kunden tilfeldigvis kommer tilbake til takkesiden. Rekkefølgen er ikke tilfeldig: hver kobling nedover i listen arver feilene fra den over hvis den første ikke er riktig bygget.

#Betaling: Redsys og Bizum ved siden av kort

Redsys er en redirect-gateway, ikke et skjema. Integrasjonen bygges mot Redsys REST-API for engangskjøp og mot abonnements-API-et for gjentakende trekk. Butikken oppretter en betaling, sender kunden til Redsys og venter. Alt som skjer etterpå er utenfor nettleserens kontroll. Derfor implementeres gatewayen som en vanlig WC_Payment_Gateway-klasse der process_payment returnerer en redirect og ingenting mer, mens fullføringen skjer i callback-håndtereren. Ordren får payment_complete først når Redsys har bekreftet.

Bizum er en app-switch. Integrasjonen krever at kunden sendes til Bizum-appen på mobil, og at callback-håndtereren venter på bekreftelse fra Bizum-serveren. Samme prinsipp gjelder: ordrestatus settes ikke på redirect, men på server-til-server-varsel.

Stripe går ved siden av for internasjonalt salg. For kunder utenfor Spania eller som foretrekker kort direkte, dekker Stripe internasjonale betalinger med 3D Secure. To eller tre gatewayer betyr flere sett med statuskoder, refusjonsmodeller og webhook-formater, så ordren må lagre i metadata hvilken gateway som eide betalingen og hvilken referanse den bruker.

HPOS må deklareres. På butikker med High-Performance Order Storage må egen plugin-kode melde kompatibilitet via FeaturesUtil::declare_compatibilitybefore_woocommerce_init, og all lesing og skriving av ordredata må gå gjennom wc_get_order og CRUD-metodene i stedet for direkte postmeta-kall.

#Frakt: Correos, SEUR og MRW med hentesteder

Fraktpriser hentes, de gjettes ikke. Correos, SEUR og MRW tilbyr API-er for pris og leveringstid per produkt og postnummer. Svaret kobles inn i kassen via woocommerce_package_rates, med volumvekt regnet ut fra pakkens dimensjoner der den overstiger faktisk vekt. Svarene mellomlagres i transienter per postnummer og vektklasse, fordi kassen ikke kan vente på et eksternt kall ved hver oppdatering av handlekurven.

Hentested er et eget datafelt. Kunden velger et konkret utleveringssted eller en pakkeboks i kassen, og valget må lagres på ordren som en identifikator fra leverandøren, ikke som fritekst. Fraktsedlene genereres senere mot den identifikatoren.

Tidsavbrudd krever en reserveløsning. Når frakt-API-et ikke svarer, skal kassen falle tilbake til en definert standardsats i stedet for å vise en kasse uten fraktvalg. Feilen logges via wc_get_logger med egen kilde.

Sporing hører hjemme i e-posten. Sporingsnummeret lagres på ordren og skrives inn i forsendelsesvarselet, typisk via woocommerce_email_before_order_table.

#Regnskap: Holded, A3 eller Sage

Salget bokføres én gang, med riktig IVA-kode. Holded, A3 og Sage har REST-API med token-basert autentisering. Integrasjonen oppretter kunde og salgsdokument, og mapper hver produktgruppe til riktig IVA-kode i stedet for å sende en flat sats. Nummeret på det opprettede dokumentet skrives tilbake på ordren.

Avstemming er mot utbetaling, ikke mot ordre. Betalingsleverandøren utbetaler samlet og trekker gebyr. Regnskapet stemmer først når integrasjonen bokfører utbetalingen som en egen post med gebyret skilt ut.

B2B betyr e-faktura. Selger butikken til bedrifter i Spania, skal fakturaen sendes elektronisk med CIF/NIF på mottakeren. Det er en egen flyt i kassen: felt for organisasjonsnummer, validering, og et annet dokumentløp enn forbrukersalget.

Synkronisering kjøres i kø. All overføring til regnskap legges på Action Scheduler med gjentatte forsøk ved feil, aldri synkront i kasseforespørselen.

#Flerspråklig storefront: ES, EN og CA

Hvert språk er en egen URL. Spansk, engelsk og katalansk får egne URL-er med hreflang-tagger som peker riktig. Produktbeskrivelser, kassefelt og e-postmaler oversettes uavhengig, ikke maskinoversatt fra én master.

Katalansk er ikke valgfritt for lokale kunder. I Catalonia forventer mange kunder innhold på katalansk, spesielt i offentlig sektor og B2B. Vi setter opp språkvelger og standard språk basert på geografi og preferanse.

SEO per språk. Hvert språk får egen meta-tittel, beskrivelse og strukturert data, slik at Google og andre søkemotorer indexerer riktig versjon for riktig marked.

#Hvorfor ordrestatus må settes server-til-server

Takkesiden er et løfte, ikke et bevis. Kunden kan miste dekning på metroen i Barcelona, lukke appen, bytte til en annen app mens betalingen fullføres, eller ha nettleseren i bakgrunnen. Redirect tilbake til butikken er dermed en hendelse som kanskje skjer. Betalingsbekreftelsen fra Redsys eller Bizum er en hendelse som skjer uansett, og det er den ordrestatusen skal henge på.

Verifiser først, kvitter raskt, jobb etterpå. Callback-endepunktet skal først verifisere signaturen på varselet mot delt hemmelighet, deretter svare med en rask kvittering, og først etterpå gjøre det tunge arbeidet i en bakgrunnsjobb.

Idempotens lagres, den antas ikke. Hvert varsel har en identifikator. Den lagres når hendelsen er behandlet, og et varsel med en allerede lagret identifikator forkastes. Uten dette gir gjentatte forsøk dobbel belastning, dobbel bokføring i regnskapet og dobbelt kunde-e-post.

Avstemmingsjobben er sikkerhetsnettet. En planlagt jobb henter status fra leverandøren for ordrer som har blitt stående som ventende lenger enn et definert vindu, og retter opp der varselet aldri kom fram. Jobben kjøres via ekte systemcron mot wp cron event run --due-now med DISABLE_WP_CRON satt.

Testing gjøres på feilstiene. Testmatrisen dekker ikke bare vellykket betaling, men avbrutt betaling i appen, varsel som kommer to ganger, varsel som kommer i feil rekkefølge, forsinket varsel, frakt-API som svarer for sent, og regnskaps-API som avviser dokumentet.

#WooCommerce i andre spanske byer

Trenger du WooCommerce-hjelp utenfor Barcelona, gjelder de samme spanske kravene til Redsys, Bizum, IVA og GDPR, men med lokal logistikk og kundemønster. Se også WooCommerce-utvikler i Madrid, WooCommerce-utvikler i Valencia og WooCommerce-utvikler i Sevilla for hvordan oppsettet tilpasses der.

Etter lansering tar vedlikehold og support for WordPress i Barcelona oppdateringer, sikkerhetskopier og overvåking.

#Andre europeiske byer

Samme WooCommerce-leveranse finnes i flere europeiske byer, med lokalt tilpasset betaling og MVA:

#Start et WooCommerce-prosjekt i Barcelona

Trenger butikken din i Barcelona en kasse som tar Redsys og Bizum på alvor, regner IVA riktig, hoster data i EU og når kunder på spansk, engelsk og katalansk, ta kontakt for en uforpliktende gjennomgang. Vi ser på dagens oppsett, peker på den faktiske flaskehalsen og gir en ærlig vurdering av hva som bør gjøres først. Prisen settes individuelt etter omfang, og du får oversikten skriftlig før arbeidet starter.

For butikker og nettsteder som trenger en strukturert gjennomgang av risiko, er inngangen sikkerhetsrevisjon for WordPress.

Kart over Barcelona og omegn

Vi betjener kunder i Barcelona og nærliggende områder.

Utvalgt innhold:

Denne siden inneholder spesifikk innsikt for Barcelona.

En WooCommerce-butikk som selger til kunder i Barcelona og Catalonia må håndtere tre ting som ikke står i standarddokumentasjonen til Woo: Redsys eller Bizum i kassen, IVA beregnet riktig for spanske og EU-kunder, og innhold på spansk, engelsk og katalansk der markedet krever det. Vi bygger og rydder opp i WooCommerce for bedrifter i Barcelona med utgangspunkt i nettopp disse kravene, ikke en generisk mal som siden lokaliseres med bynavn.

Catalonia er Spanias tyngste e-handelsregion, og Barcelona er både logistikk-knutepunkt og teknologihovedstad. Bizum brukes av over halvparten av spanjolene, og en kasse uten mobilbetaling taper konverteringer på lokal trafikk. Det er det praktiske utgangspunktet for arbeidet vårt.

#WooCommerce-utvikling i Barcelona

Barcelona-markedet er modent. Katalanske og spanske netthandlere er vant til raske kasser, Bizum-knapp på mobil, tydelig IVA og returinformasjon i henhold til lokal forbrukerlovgivning. Arbeidet vårt handler om å få WooCommerce til å oppføre seg slik en lokal kunde forventer, og å gjøre det på en måte som overlever oppdateringer av Woo, temaet og betalingstilleggene.

#Hva vi faktisk bygger

  • Redsys og Bizum i kassen: redirect-flyt for kort via Redsys, app-switch for Bizum på mobil, 3D Secure 2.0 på kortbetalinger, og test av webhooks for autorisasjon, belastning, refusjon og delvis refusjon mot testmiljø
  • Stripe ved siden av lokale gatewayer der butikken selger internasjonalt, med riktig rekkefølge i kassen for spansk og katalansk trafikk og testkort-matrise per gateway
  • IVA-oppsett for spansk handel: 21 prosent standardsats, redusert sats på næringsmidler og bøker, fritak der det gjelder, og OSS-håndtering for EU-salg utenfor Spania
  • Flerspråklig storefront: spansk (ES), engelsk (EN) og katalansk (CA) med hreflang, uavhengige produktbeskrivelser per språk og kasseflyt tilpasset hvert marked
  • Frakt med Correos, SEUR og MRW: fraktsoner innen Catalonia og resten av Spania, prisregler basert på vekt og volum, hentested som leveringsvalg, og fraktsedler/sporing koblet mot ordrebehandlingen
  • GDPR etter AEPD-krav: samtykkehåndtering, cookie-banner med granulært valg, databehandleravtaler og personvern bygget inn i arkitekturen, med hosting i EU
  • Utvidelser av WooCommerce REST API for hodeløs storefront, mobilapp eller POS, med autentisering og idempotente betalingsstier

#Hvorfor spanske betalings- og fraktvalg styrer arkitekturen

I de fleste WooCommerce-prosjekter for Barcelona er det ikke produktkatalogen som er vanskelig, det er kassen. Redsys oppfører seg ikke som et vanlig Stripe-skema: redirect-flyten, 3DS-vinduet og webhook-bekreftelsen krever at ordrestatus ikke settes til betalt før Redsys faktisk har bekreftet. Vi har sett butikker der ordrer ble markert fullført på redirect tilbake, ikke på webhook, slik at avbrutte betalinger ga ordrer uten penger. Den typen feil fanges bare med ende-til-ende-QA på selve betalingsstien.

Bizum er den andre fellen. En spansk kunde forventer å betale med mobilappen i kassen, ikke bare kort. Når Bizum mangler eller er feilkoblet, faller konverteringen på mobil kraftig. Integrasjonen krever app-switch-logikk, callback-håndtering og idempotens slik at dobbel webhook ikke gir dobbel ordre.

Frakt er den tredje. En katalansk kunde forventer å velge hentested hos Correos eller en SEUR-pakkeboks i kassen, ikke bare «standard frakt». Når dette mangler, faller konverteringen. Vi setter opp fraktsonene og leveringsvalgene som hører til det spanske markedet, og kobler dem mot sporing kunden ser i e-posten.

#Markedet og miljøet i Barcelona

Barcelona er Catalonias kommersielle og teknologiske tyngdepunkt. 22@Barcelona-distriktet og Poblenou samler startups, e-handelsselskaper og logistikkaktører som betjener hele Iberia-halvøya. Catalonia står for rundt en fjerdedel av Spanias B2C e-handel, og Barcelona er porten mot resten av EU for mange merkevarer som selger fra Spania.

Kundene våre i Barcelona spenner fra lokale D2C-merkevarer i mote og livsstil, til etablerte grossister som flytter fra en lukket plattform over til WooCommerce for å eie egen kode og selge på tvers av språk. Fellesnevneren er at de trenger en butikk som tar Bizum og Redsys på alvor, regner IVA riktig, hoster data i EU og lar dem nå kunder på spansk, engelsk og katalansk.

Mange av disse butikkene har vokst organisk over flere år: et tema fra en kjøpt mal, et halvt dusin tillegg som overlapper, og en kasse som er lappet sammen i takt med at nye krav dukket opp. Det fungerer helt til trafikken øker, et betalingstillegg slutter å bli vedlikeholdt, eller AEPD stiller krav om oppdatert samtykkehåndtering. Da er det ikke en ny plugin som trengs, men en opprydding i arkitekturen: skille ut egen kode i en egen plugin, fjerne tillegg som dupliserer hverandre, og gjøre kassen forutsigbar igjen. Vi tar denne typen refaktorering uten å bygge alt på nytt, så lenge WooCommerce er riktig plattform for det butikken skal gjøre. Er det ikke det, sier vi det skriftlig.

#Slik jobber vi gjennom et prosjekt

  1. Kasse- og katalogrevisjon. Vi går gjennom dagens WooCommerce-butikk: produkttaksonomi, kasseflyt, aktive betalingstillegg (Redsys, Bizum, Stripe), fraktsoner mot Correos/SEUR, IVA-regler, språkversjoner og Lighthouse-måling på de mest besøkte produkt- og kategorisidene.
  2. Plan for betaling, frakt og integrasjon. Vi dokumenterer gateway-valg og rekkefølge i kassen, fraktsoner og hentestedslogikk, IVA- og OSS-håndtering, og koblinger mot regnskap, lager eller fulfilment. Grensen mellom Woo-kjerne, egen plugin og temakode settes her.
  3. Bygging i feature-brancher. Vi følger kodestandardene til WordPress og WooCommerce, utvider Woo via action- og filter-hooks i stedet for å endre kjernen, og tester betalings- og ordrestier underveis.
  4. QA på ordrestien. Handlekurv, kasse, betaling med testkort og test-Bizum på hver gateway, refusjon og delvis refusjon, kunde-e-post og admin-redigering, kjørt i et testmiljø som speiler produksjon.
  5. Utrulling og overlevering. Vi deployer via en dokumentert release-prosess med testet tilbakeføring, og leverer runbook for hver gateway og hver integrasjon sammen med dokumentasjon for butikkstyrere og redaktører.

#Typiske oppdrag fra Barcelona-butikker

  • Redsys markerte ordrer betalt på redirect. En motebutikk i Eixample markerte ordrer fullført når kunden kom tilbake fra Redsys, ikke når webhook bekreftet betalingen. Vi flyttet bekreftelsen til callback-håndtereren, la inn idempotens slik at dobbel webhook ikke ga dobbel ordre, og satte opp full testmatrise for autorisasjon, belastning og refusjon.
  • Bizum manglet i kassen. En D2C-merkevare med over 70 prosent mobiltrafikk hadde bare kortbetaling. Vi la til Bizum-gateway med app-switch, testet redirect og callback mot testmiljø, og plasserte mobilbetaling øverst i kassen for spansk trafikk.
  • Tre språk, én kasse som ikke skalerte. En grossist i Poblenou solgte på spansk, engelsk og katalansk, men kasseflyten var hardkodet på spansk. Vi satte opp WPML eller Polylang med WooCommerce-kompatibilitet, uavhengige produktbeskrivelser per språk, og hreflang som peker riktig for hver versjon.
  • Treg kasse på mobil. En butikk med tungt tema og mange aktive tillegg hadde flere sekunders forsinkelse før betalingsknappen var klikkbar. Vi startet med Lighthouse, WP-CLI-profil og Query Monitor på kassesiden, fant cart-fragment-kallene og autoloadede options som var skyld i mesteparten, og fjernet flaskehalsene én etter én.

#Tekniske standarder og EU-hosting

Vi kjører WooCommerce på PHP 8.2 eller nyere, med object caching (Redis) der trafikken forsvarer det, og CDN foran statiske ressurser. Hosting skjer i EU-datasentre, slik at personopplysninger fra kunder i Catalonia og resten av EU behandles innenfor GDPR-rammeverket uten unødvendige tredjelandsoverføringer. Betaling går via Redsys, Bizum og Stripe avhengig av hva butikken trenger, alltid med 3D Secure på kort. Tunge jobber, som synkronisering mot lager eller regnskap, kjøres via Action Scheduler i bakgrunnen slik at de ikke blokkerer kassen.

#Hva du kan forvente etter lansering

Vi lover ikke faste prosenttall, fordi resultatet avhenger av utgangspunktet. Det vi leverer er en kasse som tar Redsys og Bizum på alvor og bekrefter ordrer på webhook, ikke på redirect, fraktvalg som matcher det spanske og katalanske kunder forventer, IVA og GDPR håndtert i selve flyten i stedet for manuelt, flerspråklig innhold som fungerer for ES, EN og CA, og en målbar forbedring i Core Web Vitals på de sidene som faktisk konverterer. Måltallene settes mot dagens nivå i revisjonen, ikke mot oppdiktede bransjegjennomsnitt.

#Sikkerhet og personvern etter AEPD

Hvert prosjekt får en sikkerhetsgrunnlinje: HTTPS med HSTS, Content Security Policy mot XSS, sårbarhetsskanning av avhengigheter i CI, tofaktor for administratorkontoer og testede sikkerhetskopier. Butikker som håndterer personopplysninger får GDPR-tilpasset samtykkehåndtering i tråd med AEPD-retningslinjer: granulært cookie-valg, tydelig informasjon om databehandling, databehandleravtaler og personvern bygget inn i arkitekturen.

For spanske nettbutikker betyr det i praksis at kundedata fra Redsys-, Bizum- og kortbetalinger, samt navn og adresse for frakt, lagres på servere i EU og behandles slik regelverket krever. Vi dokumenterer hvilke tredjeparter som mottar data, og sørger for at samtykke-loggen er sporbar ved en eventuell AEPD-henvendelse.

#Ytelse, målt der det teller

Core Web Vitals påvirker både rangering og konvertering, og på en nettbutikk er det kasse-, produkt- og kategorisidene som betyr noe. Vi jobber mot lav LCP gjennom optimalisert kritisk renderingsvei og forhåndsinnlasting av hero-bilder i moderne format (WebP/AVIF), lav INP gjennom minimal JavaScript og utsatt innlasting av tredjepartsskript (inkludert betalingsskript fra Redsys), og stabil layout (lav CLS) gjennom faste bildedimensjoner og reservert plass for dynamisk innhold som Bizum-knappen. Vi måler kontinuerlig med Lighthouse i utrullingsløpet, slik at en regresjon blokkerer distribusjon i stedet for å nå produksjon.

#Spørsmål Barcelona-butikker stiller oss

Setter dere opp Redsys og Bizum i kassen? Ja. Vi integrerer Redsys for kortbetaling med 3D Secure, Bizum for mobilbetaling med app-switch, og tester autorisasjon, belastning, refusjon og delvis refusjon mot testmiljø før lansering. Bekreftelse av betaling skjer på webhook eller server-til-server-callback, ikke på redirect tilbake til butikken.

Kan dere håndtere IVA og OSS riktig? Ja. Vi setter 21 prosent standardsats og reduserte satser der de gjelder, skiller innenlands spansk salg fra EU-salg via OSS der det kreves, og viser priser med IVA inkludert slik spanske forbrukere forventer.

Støtter dere spansk, engelsk og katalansk? Ja. Vi setter opp flerspråklig WooCommerce med uavhengige produktbeskrivelser, kasseflyt og hreflang per språk. Katalansk er obligatorisk for mange bedrifter i Catalonia som retter seg mot lokale kunder.

Hvor hostes butikken? I EU-datasentre, slik at personopplysninger behandles innenfor GDPR uten unødvendige tredjelandsoverføringer. Dette er et krav mange Barcelona-bedrifter stiller etter AEPD-veiledning om databehandling.

Endrer dere WooCommerce-kjernen? Nei. Tilpasninger går via dokumenterte action- og filter-hooks, med en klar deling mellom egen plugin og tema, slik at butikken overlever Woo-oppdateringer.

Jobber dere med butikker utenfor Barcelona? Ja. Vi har tyngdepunktet i Barcelona-miljøet, men leverer til netthandlere i hele Catalonia, Spania og til internasjonale merkevarer som selger fra Barcelona.

#Integrasjoner en spansk nettbutikk faktisk trenger

En spansk nettbutikk på WooCommerce ender som regel opp med de samme fire koblingene: betaling med Redsys og Bizum, frakt med Correos, SEUR eller MRW inkludert hentesteder, regnskap i Holded, A3 eller Sage, og en ordrestatus som settes av serveren til leverandøren, ikke av at kunden tilfeldigvis kommer tilbake til takkesiden. Rekkefølgen er ikke tilfeldig: hver kobling nedover i listen arver feilene fra den over hvis den første ikke er riktig bygget.

#Betaling: Redsys og Bizum ved siden av kort

Redsys er en redirect-gateway, ikke et skjema. Integrasjonen bygges mot Redsys REST-API for engangskjøp og mot abonnements-API-et for gjentakende trekk. Butikken oppretter en betaling, sender kunden til Redsys og venter. Alt som skjer etterpå er utenfor nettleserens kontroll. Derfor implementeres gatewayen som en vanlig WC_Payment_Gateway-klasse der process_payment returnerer en redirect og ingenting mer, mens fullføringen skjer i callback-håndtereren. Ordren får payment_complete først når Redsys har bekreftet.

Bizum er en app-switch. Integrasjonen krever at kunden sendes til Bizum-appen på mobil, og at callback-håndtereren venter på bekreftelse fra Bizum-serveren. Samme prinsipp gjelder: ordrestatus settes ikke på redirect, men på server-til-server-varsel.

Stripe går ved siden av for internasjonalt salg. For kunder utenfor Spania eller som foretrekker kort direkte, dekker Stripe internasjonale betalinger med 3D Secure. To eller tre gatewayer betyr flere sett med statuskoder, refusjonsmodeller og webhook-formater, så ordren må lagre i metadata hvilken gateway som eide betalingen og hvilken referanse den bruker.

HPOS må deklareres. På butikker med High-Performance Order Storage må egen plugin-kode melde kompatibilitet via FeaturesUtil::declare_compatibilitybefore_woocommerce_init, og all lesing og skriving av ordredata må gå gjennom wc_get_order og CRUD-metodene i stedet for direkte postmeta-kall.

#Frakt: Correos, SEUR og MRW med hentesteder

Fraktpriser hentes, de gjettes ikke. Correos, SEUR og MRW tilbyr API-er for pris og leveringstid per produkt og postnummer. Svaret kobles inn i kassen via woocommerce_package_rates, med volumvekt regnet ut fra pakkens dimensjoner der den overstiger faktisk vekt. Svarene mellomlagres i transienter per postnummer og vektklasse, fordi kassen ikke kan vente på et eksternt kall ved hver oppdatering av handlekurven.

Hentested er et eget datafelt. Kunden velger et konkret utleveringssted eller en pakkeboks i kassen, og valget må lagres på ordren som en identifikator fra leverandøren, ikke som fritekst. Fraktsedlene genereres senere mot den identifikatoren.

Tidsavbrudd krever en reserveløsning. Når frakt-API-et ikke svarer, skal kassen falle tilbake til en definert standardsats i stedet for å vise en kasse uten fraktvalg. Feilen logges via wc_get_logger med egen kilde.

Sporing hører hjemme i e-posten. Sporingsnummeret lagres på ordren og skrives inn i forsendelsesvarselet, typisk via woocommerce_email_before_order_table.

#Regnskap: Holded, A3 eller Sage

Salget bokføres én gang, med riktig IVA-kode. Holded, A3 og Sage har REST-API med token-basert autentisering. Integrasjonen oppretter kunde og salgsdokument, og mapper hver produktgruppe til riktig IVA-kode i stedet for å sende en flat sats. Nummeret på det opprettede dokumentet skrives tilbake på ordren.

Avstemming er mot utbetaling, ikke mot ordre. Betalingsleverandøren utbetaler samlet og trekker gebyr. Regnskapet stemmer først når integrasjonen bokfører utbetalingen som en egen post med gebyret skilt ut.

B2B betyr e-faktura. Selger butikken til bedrifter i Spania, skal fakturaen sendes elektronisk med CIF/NIF på mottakeren. Det er en egen flyt i kassen: felt for organisasjonsnummer, validering, og et annet dokumentløp enn forbrukersalget.

Synkronisering kjøres i kø. All overføring til regnskap legges på Action Scheduler med gjentatte forsøk ved feil, aldri synkront i kasseforespørselen.

#Flerspråklig storefront: ES, EN og CA

Hvert språk er en egen URL. Spansk, engelsk og katalansk får egne URL-er med hreflang-tagger som peker riktig. Produktbeskrivelser, kassefelt og e-postmaler oversettes uavhengig, ikke maskinoversatt fra én master.

Katalansk er ikke valgfritt for lokale kunder. I Catalonia forventer mange kunder innhold på katalansk, spesielt i offentlig sektor og B2B. Vi setter opp språkvelger og standard språk basert på geografi og preferanse.

SEO per språk. Hvert språk får egen meta-tittel, beskrivelse og strukturert data, slik at Google og andre søkemotorer indexerer riktig versjon for riktig marked.

#Hvorfor ordrestatus må settes server-til-server

Takkesiden er et løfte, ikke et bevis. Kunden kan miste dekning på metroen i Barcelona, lukke appen, bytte til en annen app mens betalingen fullføres, eller ha nettleseren i bakgrunnen. Redirect tilbake til butikken er dermed en hendelse som kanskje skjer. Betalingsbekreftelsen fra Redsys eller Bizum er en hendelse som skjer uansett, og det er den ordrestatusen skal henge på.

Verifiser først, kvitter raskt, jobb etterpå. Callback-endepunktet skal først verifisere signaturen på varselet mot delt hemmelighet, deretter svare med en rask kvittering, og først etterpå gjøre det tunge arbeidet i en bakgrunnsjobb.

Idempotens lagres, den antas ikke. Hvert varsel har en identifikator. Den lagres når hendelsen er behandlet, og et varsel med en allerede lagret identifikator forkastes. Uten dette gir gjentatte forsøk dobbel belastning, dobbel bokføring i regnskapet og dobbelt kunde-e-post.

Avstemmingsjobben er sikkerhetsnettet. En planlagt jobb henter status fra leverandøren for ordrer som har blitt stående som ventende lenger enn et definert vindu, og retter opp der varselet aldri kom fram. Jobben kjøres via ekte systemcron mot wp cron event run --due-now med DISABLE_WP_CRON satt.

Testing gjøres på feilstiene. Testmatrisen dekker ikke bare vellykket betaling, men avbrutt betaling i appen, varsel som kommer to ganger, varsel som kommer i feil rekkefølge, forsinket varsel, frakt-API som svarer for sent, og regnskaps-API som avviser dokumentet.

#WooCommerce i andre spanske byer

Trenger du WooCommerce-hjelp utenfor Barcelona, gjelder de samme spanske kravene til Redsys, Bizum, IVA og GDPR, men med lokal logistikk og kundemønster. Se også WooCommerce-utvikler i Madrid, WooCommerce-utvikler i Valencia og WooCommerce-utvikler i Sevilla for hvordan oppsettet tilpasses der.

Etter lansering tar vedlikehold og support for WordPress i Barcelona oppdateringer, sikkerhetskopier og overvåking.

#Andre europeiske byer

Samme WooCommerce-leveranse finnes i flere europeiske byer, med lokalt tilpasset betaling og MVA:

#Start et WooCommerce-prosjekt i Barcelona

Trenger butikken din i Barcelona en kasse som tar Redsys og Bizum på alvor, regner IVA riktig, hoster data i EU og når kunder på spansk, engelsk og katalansk, ta kontakt for en uforpliktende gjennomgang. Vi ser på dagens oppsett, peker på den faktiske flaskehalsen og gir en ærlig vurdering av hva som bør gjøres først. Prisen settes individuelt etter omfang, og du får oversikten skriftlig før arbeidet starter.

For butikker og nettsteder som trenger en strukturert gjennomgang av risiko, er inngangen sikkerhetsrevisjon for WordPress.

WordPress-miljøet i Barcelona

Vi har vært medarrangør av WordCamp Gdynia siden 2015 og med i organisasjonsteamet for WordCamp Europe siden 2024. Det vi lærer der, går tilbake inn i koden vi skriver for kundene.

Metodiske guider (SEO, GEO, compliance)

Disse sidene forklarer hvordan vi jobber med AI-siteringer, WooCommerce B2B-modernisering og operasjonell resiliens under NIS2 og anskaffelser. Innholdet gjelder uansett leveranseby.

Hva som gjør Barcelona unik

Lokal ekspertise: - Senior WooCommerce-utvikling for e-handelsbedrifter i Barcelona - Egen checkout, integrasjon av betalingsgatewayer, fraktregler og MVA-logikk - Hook-baserte utvidelser i stedet for kjerneendringer, REST-API-utvidelse, serverside-blokkmønstre Teamet vårt forstår markedet i Barcelona og tilpasser løsninger til lokale forretningsbehov. Den største fordelen er å kombinere teknisk kvalitet med den lokale forretningskonteksten i Barcelona.

Trenger du tjenesten: WooCommerce Utvikler i Barcelona?

La oss diskutere hvordan vi kan levere topp ytelse til ditt lokale prosjekt.

Bestill gratis konsultasjon i Barcelona

Vanlige spørsmål - WooCommerce Utvikler Barcelona

Hvor møtes webutviklingsmiljøet i Barcelona?

WordPress Barcelona er den lokale meetupen, på https://www.meetup.com/wordpressbcn/. Spør der før du signerer med noen, meg inkludert. Et rom med folk som allerede har leid inn lokalt sjekker referanser raskere enn noen porteføljeside.

Endrer dere WooCommerce-kjernen?

Nei. Butikken må overleve Woo-oppdateringer, så tilpasninger går via de dokumenterte action- og filter-hookene, pluss en klar deling mellom egen plugin og tema. Endringer i kjernefilene blir ikke gjort. Grensen mellom Woo-kjerne, plugin-kode og temakode settes i arkitekturen og noteres i runbooken.

Hvordan integrerer dere betalingsgatewayer?

For hver gateway dokumenterer jeg støttede flyter (engangs, gjentakende, refusjon, delvis refusjon, 3DS), testkort-matrise, webhooks gatewayen sender, og lokal idempotens-historie. End-to-end-QA mot testmiljø dekker handlekurv → betaling → ordre → e-post → admin-redigering → refusjon på hver aktive gateway, inkludert feilstier.

Teknologier og Spesialiseringer - Barcelona

Vi spesialiserer oss på:

Vi jobber med:

WooCommerceWordPressSEOWebytelse
Relevant klynge

Utforsk andre WordPress-tjenester og kunnskapsbase

Styrk virksomheten din med profesjonell teknisk støtte innen kjerneområdene i WordPress-økosystemet.