Nödsituation

Vid nödsituationer eller driftstörningar kan du skicka ett SMS till vår jourtelefon

Jourtelefon (endast SMS)

+45 29 70 15 95

Skicka ett SMS med följande information:

  • Ditt namn och din webbshop
  • Beskrivning av problemet
  • Ditt telefonnummer för återuppringning

Anteckningar: Denna tjänst är endast avsedd för kritiska situationer där din webbshop ligger nere eller har allvarliga problem. För vanlig support, vänligen använd våra normala supportkanaler.

Flytta dina profiler till delade värden

Så här kopplar du samma storlekar, färger och andra värden i många produktprofiler till delade värden. I admin, via REST API eller med Claude – med en testkörning först och utan att påverka lager, varianter och priser.

Lästid: ca {åtta} minuter
Shopejer Utvecklare

Om du har många produktprofiler har du säkert samma storlek eller färg i alla. ”Medium” i T-shirt-profilen, ”Medium” i byxprofilen och kanske ”M” i en tredje. Med delade värden blir de samma värde, så att du och dina kunder kan hitta allt i Medium över alla profiler. Den här artikeln visar hur du flyttar över dina befintliga profiler, oavsett om du har fem profiler eller 600.

Det finns tre sätt att göra det på. Välj det som passar dig bäst:

  • Sätt A, i admin: för dig med få profiler. Du klickar dig igenom profilerna en i taget.
  • Sätt B, via REST API: för din utvecklare eller integratör när det finns många profiler.
  • Alternativ C, med Claude: för dig med många profiler som hellre vill skriva på vanlig danska än att programmera.

Om du är osäker på vad ett delat värde är, börja med huvudartikeln Delade värden eller den korta förklaringen i ordlistan.

Innan du sätter igång

Vad ändras och vad ändras inte?

När du kopplar ett profilvärde till ett delat värde lägger du bara till en koppling. Profilens värde förblir oförändrat. Det innebär:

  • Dina produkter, varianter, lagernivåer, priser och order ändras inte.
  • Kunder som har varor i varukorgen märker ingenting.
  • Allt kan ångras. Om du tar bort kopplingen återgår profilvärdet till att vara ett vanligt värde.

Namn ändras endast när du själv begär det: när du byter namn på ett värde innan du kopplar det, när en utvecklare använder inställningen för att korrigera stavningen (se spår B) eller när du senare byter namn på ett delat värde. Då får alla kopplade värden det nya namnet, även de som tidigare stavades annorlunda. Beställningar behåller alltid det namn som varan hade när den köptes.

Planera namnen först

Ägna fem minuter åt att skriva ner vilka delade värden du vill ha. Det är dessa namn som kunden ser när de filtrerar. Några goda råd:

  • Välj ett stavningssätt. Ska det heta ”M” eller ”Medium”? Bestäm dig och använd samma stavning överallt.
  • Håll isär olika saker. Om två värden betyder olika saker, skapa två separata värden. En vuxen-M och en barn-M är inte samma storlek, så skapa till exempel ”M” och ”M (barn)”.
  • Koppla endast samman attribut som betyder samma sak. ”Nej” i attributet Vattentät är inte samma sak som ”Nej” i attributet Ekologisk. Om du kopplar ihop dem kommer kunden att se båda typerna av produkter när de filtrerar på ”Nej”.
  • Stora och små bokstäver spelar ingen roll. ”medium” och ”Medium” räknas som samma namn.

Delade värden fungerar endast för attribut av typen ”Lista över värden”, som du själv fyller i. Fält som kunden skriver i kan inte delas.

Spår A: i admin (få profiler)

Denna metod passar när du har ett fåtal profiler. Bilder på alla skärmbilder hittar du i huvudartikeln Delade värden.

1. Skapa de delade värdena

  1. Gå till Webbutik → Produktprofiler.
  2. Klicka på knappen Delade värden längst upp till höger.
  3. Skriv namnet i fältet Lägg till värde här och tryck på Enter. Du kan skapa flera samtidigt genom att separera dem med semikolon, t.ex. Small;Medium;Large.
  4. Dra värdena i den ordning du vill att de ska visas.

2. Gör profilens värden delade

  1. Öppna en profil under Webbutik → Produktprofiler.
  2. Hitta attributet, t.ex. Storlek, och klicka i fältet Värden.
  3. Skriv namnet på ett värde som profilen redan har, t.ex. ”Medium”.
  4. En lista med förslag visas. Bredvid det delade värdet står det ”Gör ditt värde delat”. Välj det med musen eller med piltangenterna och Enter.
  5. Profilens befintliga värde får nu en länkikon. Det skapas inget nytt värde, och varianter, lager och priser är som tidigare.
  6. Upprepa för varje värde. Länken sparas omedelbart.

Om det står ”finns redan ” bredvid förslaget är värdet redan delat i den här profilen, och du kan hoppa över det.

Om profilen stavar värdet annorlunda

Om värdet heter ”M” i profilen men ”Medium” bland dina delade värden måste du först byta namn på det:

  1. Klicka på pennikonen bredvid ”M” i profilen och ändra namnet till ”Medium”.
  2. Skriv ”Medium” i fältet Värden och välj förslaget för att dela ditt värde.

Om attributet redan har andra delade värden kopplas värdet in så fort du byter namn på det. Du kan se det på länkikonen, och i förslagslistan står det ”finns redan”. Då är du klar med det värdet och kan hoppa över steg 2. Om attributet ännu inte har några delade värden sker kopplingen först när du väljer förslaget i steg 2.

Att byta namn på ett variantvärde ändrar endast namnet. Lagernummer och lagerhistorik behålls.

Tänk på två saker

  • Välj inte det delade värdet utan att byta namn först. Om det inte står ”gör ditt värde delat” får profilen ett nytt, extra värde bredvid det gamla. Om attributet är en variant innebär det en ny variant utan lager.
  • Radera aldrig ett värde för att istället välja det delade. När du raderar ett variantvärde försvinner variantens lagerhistorik. Byt namn istället.

Spår B: via REST API (många profiler)

För utvecklare. Detta avsnitt är tekniskt och riktar sig till den som skapar integrationer för din webbshop. Om du är butiksägare utan utvecklare, använd då spår A eller spår C.

REST-API:et har tre endpunkter för flytningen: hitta kandidaterna, koppla ihop dem och ta bort kopplingen igen om du ångrar dig. Alla anrop använder din API-nyckel som rånyckel i Authorization-huvudet, utan ”Bearer” framför. POST-anrop måste ha Content-Type: application/json. Se Hitta eller skapa en API-nyckel. I exemplen står DIN_TOKEN istället för nyckeln.

1. Skapa de delade värdena

Skapa de namn som ska visas i webbutiken. Om ett värde redan finns returneras det befintliga istället för en kopia.

curl -X POST https://www.shoporama.dk/REST/attribute-shared-value \
  -H "Authorization: DIN_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"values": ["Small", "Medium", "Large"]}'

Du kan också hoppa över detta steg och låta länkanropet skapa de saknade värdena (se create_missing nedan). Då blir namnen dock de som profilerna råkar använda.

2. Hitta kandidaterna

Anropet hittar listattribut med samma namn i flera profiler, t.ex. Storlek i 40 profiler. Du får attributens id:n, alla värden med antal, stavningar som endast skiljer sig åt i stora och små bokstäver (t.ex. "s" och "S"), samt vilket delat värde varje värde redan matchar. Olika namn för samma storlek, t.ex. ”S” och ”Small”, räknas som två värden. Dessa sammanför du med mappning i nästa steg.

curl "https://www.shoporama.dk/REST/attribute-shared-value/candidates?search=Størrelse" \
  -H "Authorization: DIN_TOKEN"

Utdrag ur svaret:

{
    "candidates": [
        {
            "name": "Storlek",
            "attribute_count": 3,
            "profile_count": 3,
            "attributes": [
                {
                    "attribute_id": 3667,
                    "name": "Storlek",
                    "profile_id": 2939,
                    "profile_name": "Tröjor",
                    "is_variant": true,
                    "value_count": 3,
                    "linked_count": 0
                }
            ],
            "values": [
                {
                    "value": "S",
                    "count": 3,
                    "spellings": ["S"],
                    "attribute_shared_value_id": null
                }
            ]
        }
    ],
    "max_attributes_per_link": 50
}

Använd min_attributes (standard 2) för att endast visa namn som förekommer i minst lika många attribut. Gå igenom listan och välj endast de attribut som betyder samma sak.

3. Testa länken

Länkanropet kopplar varje värde i attributen till det delade värdet med samma namn. Det körs som en testkörning, såvida du inte skickar "dry_run": false, så att inget sparas i första omgången.

curl -X POST https://www.shoporama.dk/REST/attribute-shared-value/link \
  -H "Authorization: DIN_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "attribute_ids": [3667, 3673, 3689],
    "mapping": {"S": "Small", "M": "Medium", "L": "Large"},
    "create_missing": false,
    "dry_run": true
  }'

Fälten i anropet:

  • attribute_ids: attributen från steg 2. Högst 50 per anrop. Om du har fler, dela upp listan och gör flera anrop.
  • mapping: översätter profilernas stavning till det delade värdet, t.ex. {"S": "Small"}. Stor- och små bokstäver spelar ingen roll. Värden utan mapping matchas utifrån sitt eget namn.
  • create_missing: standardvärdet true skapar delade värden för namn som ännu inte finns. Med false används endast de delade värden du redan har, och resten står som omatchade.
  • rename: standardinställningen är false, så att profilerna behåller sin egen stavning (”S” finns kvar, men är kopplat till ”Small”). Med true döps även profilvärdena om så att de får samma namn som det delade värdet. Detta påverkar variantnamnen i lagerlistorna, men inte gamla order.
  • dry_run: standardinställning true.

4. Läs svaret

Svaret visar för varje attribut och varje värde vad som kommer att hända. Här förkortat till ett attribut:

{
    "dry_run": true,
    "summary": {
        "attributes": 3,
        "values_linked": 9,
        "values_already_linked": 0,
        "shared_values_created": 0,
        "values_unmatched": 0,
        "values_renamed": 0
    },
    "attributes": [
        {
            "attribute_id": 3667,
            "name": "Storlek",
            "profile_id": 2939,
            "profile_name": "Tröjor",
            "values": [
                {
                    "attribute_value_id": 22302,
                    "value": "S",
                    "action": "link",
                    "attribute_shared_value_id": 1,
                    "shared_value": "Small"
                },
                {
                    "attribute_value_id": 22558,
                    "value": "M",
                    "action": "link",
                    "attribute_shared_value_id": 2,
                    "shared_value": "Medium"
                },
                {
                    "attribute_value_id": 22304,
                    "value": "L",
                    "action": "link",
                    "attribute_shared_value_id": 3,
                    "shared_value": "Large"
                }
            ]
        }
    ],
    "created_shared_values": [],
    "warnings": [],
    "errors": [],
    "notes": [
        "dry_run: inga ändringar gjordes. Anropa igen med dry_run=false för att tillämpa ändringarna."
    ]
}

Kontrollera särskilt dessa fält:

  • åtgärd per värde: link (kopplas), already_linked (redan kopplat), unmatched (inget delat värde, och create_missing är avstängt), eller skipped_empty (tomt värde, hoppas över).
  • created_shared_values: de delade värden som skapas. Om det finns namn som du inte hade räknat med, lägg till dem i mappningen.
  • warnings: attribut där två värden hamnar på samma delade värde, t.ex. både ”S” och ”Small”. Båda kopplas, men inget av dem döps om, så att attributet inte får två identiska värden.
  • errors: t.ex. ett attribut som inte finns, inte är en lista, hör till en raderad profil eller om det finns fler än 50 attribut. Då svarar API:et med 400 och ingenting sparas.

5. Kör kopplingen

Om testkörningen ser korrekt ut, skicka exakt samma anrop med "dry_run": false. Svaret har samma uppbyggnad. Anropet kan tryggt köras igen: värden som redan är kopplade anges som already_linked.

6. Kontrollera resultatet

Hämta de delade värdena med GET /attribute-shared-value. Fältet linked_count visar hur många profilvärden som använder varje värde. Hämta sedan produkterna med ett delat värde över profilerna:

curl "https://www.shoporama.dk/REST/product?attribute_shared_value_id=2" \
  -H "Authorization: DIN_TOKEN"

| betyder ”eller” och komma betyder ”och”: attribute_shared_value_id=2|3,5 är (Medium eller Large) och det delade värdet med id 5. Lägg till in_stock=1 för att endast få varianter som finns i lager. Du kan också lägga till is_online=1. De övriga listfiltren i produktlistan, t.ex. search, category_id och profile_id, kan inte kombineras med detta.

7. Ångra med unlink

Unlink tar bort kopplingen för alla värden i de angivna attributen. Profilvärdena och de delade värdena finns kvar. Precis som link är unlink en testkörning, såvida du inte skickar "dry_run": false:

curl -X POST https://www.shoporama.dk/REST/attribute-shared-value/unlink \
  -H "Authorization: DIN_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"attribute_ids": [3667], "dry_run": true}'
{
    "dry_run": true,
    "attribute_ids": [3667],
    "values_unlinked": 3,
    "errors": []
}

Även här är gränsen 50 attribut per anrop. Om du har använt rename behålls det nya namnet efter unlink. Hela API:et beskrivs i REST API-dokumentationen under ”Shared Values”.

Spår C: med Claude

Om du har kopplat Claude till din webbshop (se Styr butiken med AI) kan Claude sköta hela flytten åt dig. Du skriver vad du vill, och Claude hittar attributen, visar dig resultatet och kopplar ihop dem när du godkänner det.

Exempel på vad du kan skriva

  • ”Hitta alla attribut som heter Storlek i alla mina profiler och visa mig vad som händer om du kopplar dem till de delade värdena Small, Medium och Large.”
  • ”Skapa de delade värdena XS, Small, Medium, Large och XL, och koppla alla mina storlekar till dem. Där profilen anger S, M eller L ska de kopplas till Small, Medium och Large.”
  • ”Vilka stavningar av färgerna har jag i mina profiler? Föreslå vilka delade värden jag bör skapa.”
  • "Ta bort kopplingen till de delade värdena i profilen Barnkläder."

Så här fungerar Claude

Claude använder samma funktioner som REST API:et. För utvecklare som vill följa med i granskningsloggen heter verktygen:

  • attribute_shared_value_candidates (Hitta likadana attributvärden): hittar attribut med samma namn i flera profiler.
  • attribute_shared_value_link (Koppla värden till delade värden): kopplar samman värdena, högst 50 attribut åt gången.
  • attribute_shared_value_unlink (Ta bort koppling till delade värden): ångrar kopplingen.
  • Dessutom finns attribute_shared_value_list och attribute_shared_value_create för att visa och skapa de delade värdena.

Claude har fått instruktioner att alltid göra en provkörning först och visa dig vad som kommer att kopplas samman, vilka delade värden som skapas och eventuella varningar. Först när du har sagt ja kopplar Claude samman på riktigt. Om du har många profiler delar Claude själv upp arbetet i omgångar om 50.

Om du har aktiverat Extra säkerhet måste du godkänna kopplingar och borttagning av kopplingar i admin innan de genomförs. Detsamma gäller om Claude ska radera ett delat värde. Testkörningen ändrar ingenting och körs därför utan godkännande.

Efter flytningen

  • Nya värden kopplas automatiskt. När ett attribut har delade värden kopplas ett nytt värde med samma namn som ett delat värde automatiskt. Detta gäller även när du importerar produkter via CSV eller när en integration skapar värden. Attribut utan delade värden påverkas inte, och nya delade värden skapas aldrig automatiskt.
  • Namnet är låst i profilen. Ett delat värde har samma namn i alla profiler, så om du ändrar namnet under Delade värden gäller det för alla profiler. Om en profil ska ha sitt eget namn klickar du på pennikonen och väljer Gör till vanligt värde.
  • Filtrering i webbutiken. I temana Montana och MontanaB2B slår produktfiltret samman de kopplade värdena under det delade värdets namn. Om kunden filtrerar på ”Medium” visas produkter från alla profiler. Detta kräver att filtret är inställt under Design → Filter. Se artikeln om produktfiltrering. I andra teman syns ingen skillnad för kunden.

Så här ångrar du

  • Ett värde i en profil: klicka på pennikonen bredvid värdet i profilen och välj Gör till vanligt värde.
  • Ett helt delat värde: ta bort det på sidan Delade värden med krysset. Profilerna behåller värdet, det är bara inte delat längre.
  • Flera attribut samtidigt: använd unlink i REST API:et, eller be Claude att ta bort kopplingen.

I samtliga fall kvarstår profilvärdena som vanliga värden. Om du har bytt namn på värden under tiden behåller de det nya namnet.

Vanliga frågor

Kan jag råka förstöra mina produkter när jag gör detta?

Nej. Kopplingen är ett extra lager ovanpå dina profiler. Produkter, varianter, lagernivåer, priser och order påverkas inte, och du kan alltid ta bort kopplingen igen. Det enda du måste se till är att inte radera värden under tiden.

Hur kan jag se om ett värde redan är delat?

I profilen har ett delat värde en länkikon. På sidan Delade värden finns en siffra vid varje värde som visar hur många profilvärden som använder det. Om siffran är 0 är inget kopplat ännu.

Jag har över 400 profiler. Måste jag verkligen klicka mig igenom dem alla?

Nej. Be Claude om det, eller be din utvecklare att använda REST API:et. Båda alternativen kopplar ihop upp till 50 attribut åt gången, så även flera hundra profiler kan hanteras med en handfull anrop – testa först.

Påverkar det mina plocklistor eller lagret?

Nej, inte utan en omdöpning. Lagerantal och lagerhistorik förblir oförändrade. Om du byter namn på en artikel, antingen själv eller med funktionen ”rename” i API:et, får varianten det nya namnet i lagerlistorna. Order som redan har lagts in, och därmed även deras plocklistor, behåller det namn som varan hade när den köptes.

När märker mina kunder skillnaden?

Så snart varorna är kopplade, om du använder Montana eller MontanaB2B med produktfiltrering aktiverad. Då visar ett filter på t.ex. ”Medium” produkter från alla profiler. Om du använder ett annat tema ser kunden ingen skillnad förrän temat har anpassats för detta.

Kommer produkter från min nästa CSV-import automatiskt med?

Ja, om attributet redan har delade värden och värdet i filen har samma namn som ett delat värde. Stor- och små bokstäver spelar ingen roll. Om filen stavar värdet annorlunda, eller om det inte finns som ett delat värde, blir det ett vanligt värde.

Vad händer om en profil har både ”S” och ”Small”?

Om båda pekar på samma delade värde kopplas båda ihop, men ingen av dem döps om, så att profilen inte slutar med två identiska värden. API:et och Claude visar en varning om detta under testkörningen, så att du kan rensa upp i profilen efteråt.

Jag är ny och har inte skapat profilerna. Hur vet jag vilka som hör ihop?

Be Claude att hitta attribut med samma namn i de olika profilerna och visa värdena, eller be din utvecklare om en lista över kandidaterna. Då kan du se var det finns olika stavningar innan något kopplas ihop. Om du är osäker, skriv till support@shoporama.dk.