februar 19, 2016

Addwish integration med Shoporama

Addwish er en dansk ønskeseddel, mersalg, opsalg, søgemaskine ting, som man forholdsvis hurtigt kan tilknytte sin shop. Der skal dog en udvikler ind over. Her er opskriften, din udvikler skal bruge og så tager det max en time.

1. Opret dig og indsæt script

Allerførst skal du oprette dig på Addwish. Når du gør dette, får du et script, som du skal sende til din udvikler. Dette skal han indsætte nederst i din global.html fil (lige inden </body> )

2. Berig dine produkter med info

Dernæst skal der lidt kode ind på dine produkter. Det er bare at copy paste den her ind på product.html siden.

<{assign var="newcachename" value="product_addwishcache"|cat:$product->getProductId()}>
                            <{assign var="randomttl" value=43200|mt_rand:86400}>
                            <{get_cache name=$newcachename ttl=$randomttl assign="my_new_cached_data"}>
                            <{if $my_new_cached_data}>
                                <{$my_new_cached_data}>
                            <{else}>
                                <{cache name=$newcachename}>
                                    <span style="display:none" class="addwish-product" data-title="<{$product->getName()|escape}>" <{if $images}>
                                    <{section name="j" loop=$images start=0 max=1}>
                                    data-imgurl="<{$webshop->getUrl()}><{$images[j]->getSrc(770, 770, 'fit')}>" 
                                    <{/section}>
                                <{/if}> data-price="<{$product->getRealPrice()|number_format:2:".":""}>" data-productnumber="<{$product->getProductId()}>" data-url="<{$webshop->getUrl()}>/<{$product->getUrl()}>" data-currency="<{$webshop->getCurrency()}>" <{if $supplier}>data-brand="<{$supplier->getName()}>"<{/if}> <{if $product->getIsInStock()}>data-instock="true"<{else}> data-instock="false"<{/if}> <{if $product->getSalePrice()}> data-previousprice="<{$product->getPrice()|number_format:2:".":""}>"<{/if}> <{if $product->getMetaValue('addwish_score')}>data-score="<{$product->getMetaValue('addwish_score')}>"<{/if}> <{if $product->getMetaValue('addwish_gender')}>data-gender="<{$product->getMetaValue('addwish_gender')}>"<{/if}> <{if $product->getMetaValue('addwish_recurrent')}>data-recurrent="<{$product->getMetaValue('addwish_recurrent')}>"<{/if}>></span>

                                <{/cache}>
                            <{/if}>

Bemærk du kan bruge disse i ekstrafelter på produktet

addwish_score

addwish_gender

addwish_recurrent

Hvis de er på produktet, bliver de vist. Hvis ikke, sker der intet ved det.

3. Konverteringsscript

Ja … så skal vi ha’ lidt kode ind på thanks.html. Lidt afhængig af, hvordan du bruger Google Analytics skal du lige være opmærksom på, at den bliver afviklet. Det tester du naturligvis. Men … her er koden, du skal bruge på kvitteringssiden.

<span style="display:none;" class="addwish-conversion" 
        data-tax="<{$order->getVat()|number_format:2:".":""}>"
        data-ordernumber="<{$order->getWebshopOrderId()}>"
        data-total="<{$order->getPrice()|number_format:2:".":""}>">
         <{assign var="products" value=$order->getProducts()}>
         <{section name="i" loop=$products}>
            <span
                data-unit-price="<{$products[i]->getUnitPrice()|number_format:2:".":""}>"
                data-url="<{$webshop->getUrl()}>/<{$products[i]->getUrl()}>"
                data-productnumber="<{$products[i]->getProductId()}>"
                data-quantity="<{$products[i]->getAmount()|number_format:2:".":""}>"
            ></span>
        <{/section}>

    </span>

4. Et feed til Addwish

Addwish skal bruge et feed med alle dine produkter. Det gøres nemmest således:

Opret en fil med SFTP som du f.eks. kalder addwishfeed.xml. Smid dette deri

<?xml version="1.0" encoding="UTF-8"?>

<{assign var="products" value=$landing_page->getProducts()}>

<products>

<{section name="i" loop=$products}>
    <product>

    <url><{$webshop->getUrl()}>/<{$products[i]->getUrl()}></url>

    <title><{$products[i]->getName()|escape}></title>
    <{assign var="images" value=$products[i]->getImages()}>
    <{if $images}>
        <{section name="j" loop=$images start=0 max=1}>
            <imgurl><{$webshop->getUrl()}><{$images[j]->getSrc(300, 300, 'fit')}></imgurl>
        <{/section}>
    <{/if}>
    <price><{$products[i]->getRealPrice(null, null, true)|number_format:2:".":""}></price>

    <keywords></keywords>

    <description><{$products[i]->getDescription()|escape}></description>

    <{if $products[i]->getSalePrice()}>
    <previousprice><{$products[i]->getPrice(null, null, true)|number_format:2:".":""}></previousprice>
    <{/if}>

    <productnumber><{$products[i]->getOwnId()}></productnumber>

    <currency><{$webshop->getCurrency()}></currency>
    <{assign var="supplier" value=$products[i]->getSupplier()}>
    <{if $supplier}>
        <brand><{$supplier->getName()|escape}></brand>
    <{/if}>
    <instock><{if $products[i]->getIsInStock()}>true<{else}>false<{/if}></instock>

    </product>
<{/section}>
</products>

Opret så en landingsside. Kald den evt. addwish-produkter. Sæt reglerne for de produkter, du vil have med (f.eks. bare realpris > 0 ).

I “eget XML” indtaster du addwishfeed.xml og lige nedenunder har du så URL’en på dit feed, som du skal oplyse Addwish om.

Sæt flueben i “noindex, follow” (vi behøver ikke få denne side indexeret).

5. Opret blank side til Addwish søgeresultater

Her anbefaler jeg at lave en statisk side, der f.eks. hedder searchresults. Sæt et ekstrafelt til “addwishsearch=true” og bed så din udvikler checke på dette på page.html.

Send den URL du beslutter dig for til Addwish.

6. Oplys Addwish om, hvad der er i /basket

Denne simple kode skal du (eller rettere din udvikler) lige smide i din basket.html

<{if $basket}>
    <span style="display:none" class="addwish-basket" data-total="<{$total_price|number_format:2:",":"."}>" data-tax="<{$vat|number_format:2:",":"."}>" data-noshipping="0">

    <{section name="i" loop=$basket}>
    <{assign var="product" value=$basket[i].product}>
         <span 
         data-unit-price="<{$total_price|number_format:2:".":""}>" 
         data-url="<($webshop->getUrl()}><{$product->getUrl()}>" 
         data-productnumber="<{$product->getOwnId()}>" 
         data-quantity="<{$basket[i].amount}>"
         >

         </span>
    <{/section}>

    </span>
<{/if}>

Bemærk hvor der står data-noshipping=”0″ skal du indtaste din grænse for fri fragt. Så har du fri fragt over 399, så skal der stå data-noshipping=”399″.

 

Det var alt – du burde nu være good to go og skal så bare vente på om Addwish kan skaffe flere grunker i kassen til dig.

 

4 svar til “Addwish integration med Shoporama”

  1. Brian Brandt siger:

    En meget vigtig detalje der skal ændres i ovenstående script på kvitteringssiden er, at der skal tilføjes en Addwish class til scriptet.

    Lige nu hedder den:
    span style=”display:none;”

    Men den skal hedde:
    span class=”addwish-conversion” style=”display:none;

    Ellers modtager Addwish ikke data rigtigt.

  2. Brian Brandt siger:

    og din “basket” kode skal også have en class tilføjet.

    Den hedder, class=”addwish-basket”

    Og på produktsiden skal der lige tilføjes en class der hedder “addwish-product”.

  3. Nicolai Bach siger:

    På basket skal kode:
    data-url=”getUrl()}>getUrl()}>”

    rettes til:

    data-url=”getUrl()}>/getUrl()}>”

Skriv et svar

Din e-mailadresse vil ikke blive publiceret.