Ehandel.se

Ehandel.se (https://www.ehandel.se/forum/)
-   Logistik (https://www.ehandel.se/forum/logistik/)
-   -   Script för SkickaLätt (https://www.ehandel.se/forum/logistik/5152-script-foer-skickalaett.html)

Björn 2012-09-27 15:49

Script för SkickaLätt
 
Med inspiration från Fractronics packsoft-script gjorde jag ett för Postens Skicka Lätt.

Det är mitt första Greasemonkey-script så det går säkert att förbättra, då jag har 2 shoppar så har scriptet stöd för båda, är enkelt att lägga till fler eller ta bort. Jag har kommenterat de rader som ni behöver ändra för att få det att fungera för er. Förbättringsförslag eller frågor mottages gärna.

Scriptet triggas alltså om urlarna innehåller vad som specats. Jag triggar kopieringen av adress på inputfältet firstname som ligger i en container med id customers.

Installera Greasemonkey till Firefox, spara scriptet lokalt som t.ex. skickalatt.user.js och öppna det i Firefox så får du där möjlighet att installera det som ett GM-script.

Kod:

// ==UserScript==
// @name          skickalatt
// @namespace    www.dinshopp.se
// @author        Björn Hansson
// @description  Posten skicka lätt
// @include      http://skicka.posten.se*
// @include      http://www.dinshopp1.se/admin*
// @include      http://www.dinshopp2.se/admin*
// @require          http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js
// @version          001
// ==/UserScript==

// Base url identifier of page to collect address from
var customer_info_url_base = "index.php?controller=customers&action=setCustomer&id=";        // You need to change this

// When object is clicked on the above page address is collected (in this case the input field with the name firstname in the container with id customers)
var object_to_click = "#customers input[name=firstname]";        // You need to change this

// Attach the collect_address function to above object on the page to copy address from
if (window.location.href.indexOf(customer_info_url_base) > -1)
{
  $(object_to_click).click(collect_address);
}
else if (GM_getValue("collected") == 1 && document.location.href.indexOf("serviceSettings.aspx?ServiceKey=SkickaLatt")>-1)
{  // Posten skicka lätt page: If address is collected and we are at postens page for skicka lätt

  // Packet size
  $('#ctl00_PlaceHolderMain_ServiceSettings_SizeSettings_LengthTextBox').val('20');        // You need to change this
  $('#ctl00_PlaceHolderMain_ServiceSettings_SizeSettings_WidthTextBox').val('20');        // You need to change this
  $('#ctl00_PlaceHolderMain_ServiceSettings_SizeSettings_HeightTextBox').val('10');        // You need to change this
   
  // Sending company
  $('#ctl00_PlaceHolderMain_ServiceSettings_AddressControl_fromAddressCompany').val('Företag AB');        // You need to change this
  $('#ctl00_PlaceHolderMain_ServiceSettings_AddressControl_fromAddressName').val(GM_getValue("fromName"));
  $('#ctl00_PlaceHolderMain_ServiceSettings_AddressControl_fromAddressStreet').val('Gatan 1');                // You need to change this
  $('#ctl00_PlaceHolderMain_ServiceSettings_AddressControl_fromAddressZip').val('12312');                // You need to change this
  $('#ctl00_PlaceHolderMain_ServiceSettings_AddressControl_fromAddressCity').val('Staden');                // You need to change this
  $('#ctl00_PlaceHolderMain_ServiceSettings_AddressControl_fromAddressEmail').val(GM_getValue("fromEmail"));
 
  // Customer info
  $('#ctl00_PlaceHolderMain_ServiceSettings_AddressControl_fromCompany').trigger("click");
  $('#ctl00_PlaceHolderMain_ServiceSettings_AddressControl_toAddressName').val(GM_getValue("firstname")+' '+GM_getValue("lastname"));
  $('#ctl00_PlaceHolderMain_ServiceSettings_AddressControl_toAddressStreet').val(GM_getValue("address1")+' '+GM_getValue("address2"));
  $('#ctl00_PlaceHolderMain_ServiceSettings_AddressControl_toAddressZip').val(GM_getValue("zipcode"));
  $('#ctl00_PlaceHolderMain_ServiceSettings_AddressControl_toAddressCity').val(GM_getValue("city"));
  $('#ctl00_PlaceHolderMain_ServiceSettings_AddressControl_toAddressEmail').val(GM_getValue("email"));
  $('#ctl00_PlaceHolderMain_ServiceSettings_AddressControl_toAddressMobilePhoneNumber').val(GM_getValue("cell_phone"));
}

function collect_address()
{   
  GM_setValue("firstname", $("input[name=firstname]").val() );
  GM_setValue("lastname", $("input[name=lastname]").val() );
  GM_setValue("email", $("input[name=email]").val() );
  GM_setValue("address1", $("input[name=address1]").val() );
  GM_setValue("address2", $("input[name=address2]").val() );
  GM_setValue("zipcode", $("input[name=zipcode]").val().replace(" ","") );          // No spaces allowed in zipcode
  GM_setValue("city", $("input[name=city]").val() );                                // Not actually needed since posten fills this by auto from zipcode..
  GM_setValue("cell_phone", $("input[name=cell_phone]").val() );
 
  if(document.location.href.indexOf("http://www.dinshopp1.se/admin")>-1)        // You need to change this
  {
    GM_setValue("fromName", "Shoppnamn1");                // You need to change this
    GM_setValue("fromEmail", "info@dinshopp1.se");        // You need to change this
  }
  else if(document.location.href.indexOf("http://www.dinshopp2.se/admin")>-1)        // You need to change this
  {
    GM_setValue("fromName", "Shoppnamn2");                // You need to change this
    GM_setValue("fromEmail", "info@dinshopp2.se");        // You need to change this
  }
       
  GM_setValue("collected", "1");
  alert("Address of " + GM_getValue("firstname") + " " + GM_getValue("lastname") + " collected. You are now redirected to posten.se");
  window.open("http://skicka.posten.se/Skicka/Pages/serviceSettings.aspx?ServiceKey=SkickaLatt");
}


shavingroom 2012-09-29 14:48

Tack för detta!

Tyvärr är man ju inte direkt vass på script/programmering trots att jag jobbar med IT...

Kör min butik på Talex (osc) och en hel del verkar annorlunda från hur ditt script ser ut.

Kan betala för att få detta att fungera, PM!

tonys 2012-09-29 16:14

Hej Shavingroom,
Det är bara att kontakta oss.
Talex är inte riktigt osc sedan länge heller :-)

Björn 2012-09-30 12:44

Svarar gärna på frågor om ni behöver hjälp, man får anpassa triggern (object_to_click) och från vilka fält uppgifterna hämtas, beroende på hur sidan är uppbyggd.

thbr02 2013-03-02 20:07

Integrera med Opencart
 
Jag försöker att integrera detta script med Opencart och skulle helst se att jag kunde köra scriptet i Opencart utan att använda mig av någon webläsar plugin. Är detta möjligt?

Björn 2013-03-03 10:10

Nej inte detta script. Det är gjort just för den plugin.

thbr02 2013-03-03 18:21

Ska variablerna defineras i Opencart på något sätt som i pacsoft scriptet?

thbr02 2013-03-04 18:25

Jag skulle gärna vilja använda detta script för att på ett enkelt sätt föra över tidskrävande uppgifter till Postens formulär. Mitt problem är att jag inte har en aning om hur jag aktiverar det. Tar gärna emot lite tips. Jag använder Opencart 1.5.1.3.

jonas32 2014-07-02 06:35

Jepp, fick allt att funka på båda mina shoppar. Så perfekt :) Tack.
Finns det någon som kan hjälpa mig hur man lägger det i varukorgen automatiskt också så vore det dunder :)

Jon82 2016-04-02 14:22

Citat:

Ursprungligen postat av jonas32 (Inlägg 78040)
Jepp, fick allt att funka på båda mina shoppar. Så perfekt :) Tack.
Finns det någon som kan hjälpa mig hur man lägger det i varukorgen automatiskt också så vore det dunder :)

Hej.. fungerar det här fortfarande?
Kan verkligen ingenting om att programmera så all hjälp uppskattas.

Skulle älska att få igång det här till webshopen.


Alla tider är GMT +1. Klockan är nu 15:42.

Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2020, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson
Search Engine Optimisation provided by DragonByte SEO (Lite) - vBulletin Mods & Addons Copyright © 2020 DragonByte Technologies Ltd.
Ad Management plugin by RedTyger