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.

Dela upp dina flöden på flera sidor

Sådan paginerer du selvbyggede XML-feeds fra landingssider med query-parameteren ?p=. Undgå timeouts på store feeds.

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

Bygger du selv et feed via en landingsside, kan det blive så stort, at systemet ikke kan generere hele filen i ét hug. Resultatet er timeouts, tomme filer eller feed-modtagere, der ikke kan læse XML'en. Løsningen er at dele feedet op i flere mindre sider med en simpel query-parameter i URL'en.

Denne guide forklarer, hvordan du paginerer dit feed korrekt, hvilken parameter du skal bruge, og hvordan du henter alle siderne fra en ekstern server.

Vigtigt: Parameteren hedder p. Bruger du ?page= i stedet, bliver parameteren ignoreret, og du får første side hver gang.

Sådan paginerer du dit feed

Tilføj ?p= efterfulgt af et sidetal til din feed-URL. Sidetællingen starter ved 0, så ?p=0 er første side, ?p=1 er anden side og så videre:

https://dinshop.dk/landingsside-feed         (samme som ?p=0)
https://dinshop.dk/landingsside-feed?p=0     (første side)
https://dinshop.dk/landingsside-feed?p=1     (anden side)
https://dinshop.dk/landingsside-feed?p=2     (tredje side)

Antallet af produkter pr. side styres af det limit, du har sat på selve landingssiden. Du fortsætter med at øge sidetallet, indtil siden ikke længere returnerer flere produkter.

Bemærk: Hvis sidetallet er højere end det antal sider, der reelt findes, returnerer Shoporama enten en tom side eller redirecter tilbage til første side. Stop derfor pagineringen, så snart en side returnerer 0 produkter.

Hvornår er det nødvendigt?

  • Feeds med mange produkter kan timeoute eller løbe tør for hukommelse, hvis hele filen genereres på én gang
  • Partner-netværk som Google Shopping og Partner Ads kan modtage feeds opdelt over flere URL'er
  • Det forbedrer performance og mindsker risikoen for fejl, fordi hver side genereres hurtigt
  • Det gør det nemmere at fejlsøge ét enkelt segment ad gangen, hvis noget driller

Eksempel: Hent alle sider i et script

Hvis du henter dit feed fra en ekstern server (fx i en cron-opgave hos en partner eller et eget script), kan du loope, indtil der ikke er flere produkter:

$page = 0;
while (true) {
    $url = "https://dinshop.dk/landingsside-feed?p=".$page;
    $xml = file_get_contents($url);

    if (empty(trim($xml)) || stristr($xml, "<item>") === false) {
        break;
    }

    // gem eller forarbejd indholdet her
    $page++;
}

Brug det tag, der markerer et produkt i netop dit feed-format. I eksemplet er det <item>, men det kunne også være <product> eller noget helt tredje, afhængigt af din egen template.

Pagination i blog og produktoversigter

Den samme ?p=-konvention bruges også i din webshops blog og på almindelige landingssider med produkter. Det er ét fælles mønster på tværs af Shoporama, så du kan genbruge den samme logik alle steder.

Brug med eksterne feed-modtagere

De fleste feed-modtagere (Google Merchant Center, Partner Ads, Pricerunner osv.) accepterer enten flere feed-URL'er, eller at du kombinerer dem til én samlet fil hos dig selv, før du afleverer den. Spørg din annonceringspartner, hvilket setup de foretrækker.

Tip: Bruger du et af Shoporamas indbyggede feeds (Google Shopping, Pricerunner osv.), håndteres opdelingen automatisk, og du behøver ikke selv tænke på paginering.

Ofte stillede spørgsmål

Hvorfor hedder parameteren p og ikke page?

Det er et historisk valg i Shoporamas frontend. Den korte form p bruges på blog, landingssider og feeds. Brug derfor altid ?p=. Skriver du ?page=, bliver parameteren ignoreret, og du får første side hver gang uden nogen fejlmeddelelse.

Starter sidetællingen ved 0 eller 1?

Ved 0. ?p=0 giver første side, ?p=1 giver anden side og så videre. URL'en helt uden parameter giver også første side.

Hvor mange produkter er der på en side?

Det styres af landingssidens limit. Du finder feltet under Indhold, Landingssider i din admin, når du redigerer den pågældende landingsside. Et godt udgangspunkt er 500 til 1000 produkter pr. side, men det afhænger af, hvor tunge dine produktdata er.

Hvad gør jeg, hvis mit feed stadig er for langsomt?

Sænk antallet af produkter pr. side og kør flere kald i stedet. Tjek samtidig at du ikke har for mange dyre felter med, fx ikke-cachede beregninger eller komplicerede if-konstruktioner i din XML-template. Stadig problemer? Skriv til support@shoporama.dk, så kigger vi på det.

Hvordan ved jeg, at jeg har hentet alle sider?

Når en side returnerer en tom liste eller redirecter dig tilbage til første side, er der ikke flere produkter. Stop loopet der. Det er sikrest, fordi Shoporama selv håndterer overløb til første side.

Kan jeg sende én samlet URL til Google Merchant Center?

Hvis du bruger Shoporamas indbyggede Google Shopping-feed, ja. Bruger du et selvbygget feed via en landingsside, skal du enten aflevere flere URL'er eller selv samle siderne til én fil før upload. Spørg din partner, hvad de foretrækker.

Får jeg dubletter, hvis et produkt skifter side mellem to kald?

Det kan ske, hvis nye produkter oprettes eller fjernes, mens du henter feedet. Sandsynligheden er lille i praksis, men vil du være helt sikker, så kør hele pagineringen tæt på hinanden, eller deduplicér på id efter at have samlet alle sider.

Kan jeg paginere min webshops blog på samme måde?

Ja. Bloggen bruger samme ?p=-parameter med 10 indlæg pr. side som standard. Det er det samme mønster, og dine paginerings-links i temaet kan derfor genbruge logikken.

Skal jeg sætte canonical-tags på de paginerede sider?

På normale landingssider sætter Shoporama automatisk canonical-tagget til at inkludere ?p=-parameteren, så hver side har sin egen canonical. På selvbyggede feeds er det normalt ikke noget, du behøver tænke på, da feedet konsumeres af et script og ikke indekseres af søgemaskiner.

Hvad gør jeg, hvis min annoncepartner ikke kan håndtere flere URL'er?

Så skal du selv samle siderne til én fil, inden du afleverer den. Lav et lille script, der henter alle sider, fjerner XML-headeren fra side 2 og frem, og samler det hele til én gyldig XML-fil, du gemmer på din egen server. Brug derefter den samlede fils URL hos partneren.

Har du brug for hjælp? Kontakt os på support@shoporama.dk.