Hejsan! Du verkar inte vara medlem på Ehandel.se ännu. Du vet väl att det är gratis och ger dig tillgång till forumet, nyhetsbrevet och mycket mer?
Bli medlem nu eller Logga in:

Gå tillbaka   Ehandel.se > E-handelsforumet > Logistik

Svara
 
LinkBack Ämnesverktyg Visningsalternativ
  #1 (permalink)  
Gammal 2012-09-21, 11:45
Ivrig
www.nesconnector.se
Fractronics
 
Reg.datum: dec 2009
Inlägg: 85
Fractronics is on a distinguished road
Standard Script för packsoft online

Hej!

Har länge stört mig på det manuella arbetet att klippa och klistra in adresser i packsoft online.
Idag fick jag nog och knåpade ihop ett Greasemonkey script som gör mitt jobb.
(Eftersom jag kör chrome så kör jag egentligen inte Greasemonkey utan Tampermonkey men det borde fungera med Greasemonkey)

Scriptet startar när jag öppnar min sida med packsedlar (en eller flera), om jag klickar på ett visst objekt på sidan så sparas alla adresser och packsoft online öppnas, man loggas in, flyttas till utskriftsfavoriten varubrev, alla uppgifter fylls i automatiskt för alla insamlade adresser, och man flyttas slutligen till lagrade utskrifter där man kan trycka på skriv ut.
(Scriptet skulle kunna trycka på "skriv ut" också men jag stoppar här)

Äntligen slipper jag klippa och klistra.

Jag slängde ihop scriptet på en halvtimme (det går att göra bättre på alla sätt) och det är gjort för att fungera för mig och min utskriftsfavorit "varubrev", men om någon vill ha det att utgå ifrån så bifogar jag det här.

Kod:
// ==UserScript==
// @name          varubrev
// @namespace     www.fractalposter.com
// @author        Mikael Backlund
// @description   Varubrev
// @include       https://po.unifaun.se*
// @include       http://www.nesconnector.se*
// @require 	    http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js
// @version		    001
// ==/UserScript==



// Base url of page to collect addresses on.
var customer_info_url_base = "http://www.nesconnector.se/admin/index.php?route=sale/order/packinginv";
// When object of this class is clicked on the above page addresses are collected 
var object_class_to_click = ".customer_addr2";
// Pacsoft online user id
var my_pacsoft_uid = "123456";
// Pacsoft online password 
var my_pacsoft_pwd = "abcdef";
// Name on image next to favorite <img name="xxxxxxxx">
var favorite_html_name = "act_ShipmentJobFavoriteSearchActions_SearchResultEdit_RowId_7249";
// Senders packsoft customer number
var my_packsoft_customer_nr = "987654321";
// Class of <p> with customer name etc...
var customer_name_class      = ".customer_name";
var customer_address1_class  = ".customer_address1";
var customer_address2_class  = ".customer_address2";
var customer_postcode_class  = ".customer_postcode";
var customer_email_class     = ".customer_email";
var customer_telephone_class = ".customer_telephone";
var customer_order_id_class  = ".customer_order_id";


var customer_names      = new Array();
var customer_address1s  = new Array();
var customer_address2s  = new Array();
var customer_postcodes  = new Array();
var customer_emails     = new Array();
var customer_telephones = new Array();
var customer_order_ids  = new Array();

// Attach the collect_addresses function to a object on the page with addresses
if (window.location.href.indexOf(customer_info_url_base) > -1){
  $(object_class_to_click).click(collect_addresses);
}
// The login page of packsoft online
else if (GM_getValue("trigger")=="1" && $('input[name="act_LoginActions_Login"]')[0]) {
  $('input[name="CompanyLogin"]').val(my_pacsoft_uid);
  $('input[name="UserPass"]').val(my_pacsoft_pwd);
  GM_setValue("trigger", "2");
  setTimeout(function() {$('input[name="act_LoginActions_Login"]').trigger("click");},100);
}
// Packsoft home screen, go to my favorite named Varubrev
else if (GM_getValue("trigger")=="2" && document.location.href.indexOf("Action=act_SystemActions_Body")>-1) {
  GM_setValue("trigger", "3");
  GM_setValue("session_link", document.location.href.split("&")[0].split("?")[1]);
  document.location = "webapp?"+GM_getValue("session_link")+"&Action="+favorite_html_name;  
}
// Fill the first page of the form press next (do while there is addresses left) 
else if (GM_getValue("trigger")=="3" && GM_getValue("no_of_customers")>0 && $('input[name="act_ShipmentJobEdit1Actions_Next"]')[0]) {  
  $('input[name="RECEIVERName"]').val(GM_getValue("customer_names").split("¤")[GM_getValue("no_of_customers")-1]);
  $('input[name="RECEIVERDeliveryAddress1"]').val(GM_getValue("customer_address1s").split("¤")[GM_getValue("no_of_customers")-1]);
  $('input[name="RECEIVERDeliveryAddress2"]').val(GM_getValue("customer_address2s").split("¤")[GM_getValue("no_of_customers")-1]);
  $('input[name="RECEIVERDeliveryZipcode"]').focus(); 
  $('input[name="RECEIVERDeliveryZipcode"]').val(GM_getValue("customer_postcodes").split("¤")[GM_getValue("no_of_customers")-1]);
  $('input[name="RECEIVERDeliveryZipcode"]').blur(); 
  $('input[name="RECEIVERPhone"]').focus(); 
  $('input[name="RECEIVERPhone"]').val(GM_getValue("customer_telephones").split("¤")[GM_getValue("no_of_customers")-1]);
  $('input[name="RECEIVEREmail"]').val(GM_getValue("customer_emails").split("¤")[GM_getValue("no_of_customers")-1]);
  setTimeout(function() {$('input[name="act_ShipmentJobEdit1Actions_Next"]').trigger("click");},100);
}
// Fill the second page of the form click "lagra" (do while there is addresses left) 
else if (GM_getValue("trigger")=="3" && GM_getValue("no_of_customers")>0 && $('input[name="act_ShipmentJobEdit2Actions_Store"]')[0]) {    
  $('input[name="ShipmentSndReference"]').val(GM_getValue("customer_order_ids").split("¤")[GM_getValue("no_of_customers")-1]);    
  $('select[name="SenderCustNo"]').val(my_packsoft_customer_nr);        
  $('input[name="AddonsNOTEMAIL"]').attr('checked', true);     
  GM_setValue("no_of_customers", GM_getValue("no_of_customers")-1);
  if (GM_getValue("no_of_customers")==0)
    GM_setValue("trigger", "4");
  setTimeout(function() {$('input[name="act_ShipmentJobEdit2Actions_Store"]').trigger("click");},100);                         
}
// Go to "Lagrade utskrifter"
else if (GM_getValue("trigger")=="4" && $('input[name="act_ShipmentJobEdit1Actions_Next"]')[0]) {    
  GM_setValue("trigger", "0");
  document.location = "webapp?"+GM_getValue("session_link")+"&Action=act_MenuActions_Item&Target=body&ItemHandler=ShipmentJobSearchActions";  
}

// This function collects addresses stores them and then opens packsoft online
// This function is attached to a object on the page with addresses
// It is triggered when the user clicks the object
function collect_addresses() {      
  $(customer_name_class).each(function (i, elem)   { customer_names[i]=$(elem).text().replace("¤",""); });
  $('.customer_address1').each(function (i, elem)  { customer_address1s[i]=$(elem).text().replace("¤",""); });
  $('.customer_address2').each(function (i, elem)  { customer_address2s[i]=$(elem).text().replace("¤",""); });
  $('.customer_postcode').each(function (i, elem)  { customer_postcodes[i]=$(elem).text().replace("¤",""); });
  $('.customer_email').each(function (i, elem)     { customer_emails[i]=$(elem).text().replace("¤",""); });
  $('.customer_telephone').each(function (i, elem) { customer_telephones[i]=$(elem).text().replace("¤",""); });
  $('.customer_order_id').each(function (i, elem)  { customer_order_ids[i]=$(elem).text().replace("¤",""); });
    
  GM_setValue("customer_names", customer_names.join("¤"));
  GM_setValue("customer_address1s", customer_address1s.join("¤"));
  GM_setValue("customer_address2s", customer_address2s.join("¤"));
  GM_setValue("customer_postcodes", customer_postcodes.join("¤"));
  GM_setValue("customer_emails", customer_emails.join("¤"));
  GM_setValue("customer_telephones", customer_telephones.join("¤"));
  GM_setValue("customer_order_ids", customer_order_ids.join("¤"));
    
  GM_setValue("no_of_customers", customer_names.length);
  GM_setValue("trigger", "1");
  alert("Collected " + customer_names.length + " customer addresses.");
  window.open("https://po.unifaun.se");
}
__________________
Säljer NES connector | Listar Sveriges Bästa Webbhotell

Senast redigerad av Fractronics den 2012-09-22 klockan 09:19.
Svara med citat
Annons


  #2 (permalink)  
Gammal 2012-09-21, 14:05
Har Ehandel.se som hobby
Vilande
Evig Webb
@davidwigg
 
Reg.datum: sep 2011
Inlägg: 491
DavidWigg will become famous soon enough
Skicka ett meddelande via Skype™ till DavidWigg
Standard

Precis vad jag skulle ha till min opencart-installation.

Har du någon speciell modul i Opencart som denna går till?
__________________
f.d ehandlare. Nu: SEO:are & SysAdmin Projekt: Casinorecensioner
Svara med citat
  #3 (permalink)  
Gammal 2012-09-21, 16:04
Ivrig
www.nesconnector.se
Fractronics
 
Reg.datum: dec 2009
Inlägg: 85
Fractronics is on a distinguished road
Standard

Citat:
Ursprungligen postat av DavidWigg Visa inlägg
Precis vad jag skulle ha till min opencart-installation.

Har du någon speciell modul i Opencart som denna går till?
Hej!

Nej det är ett script (javascript) som körs av ett browseplugin (Greasemonkey för FF eller Tampermonkey for chrome). Men installerar först browserpluginet och lägger sedan till dom script man vill köra. Det spelar ingen roll vad man kör sin ehandel på.

Detta script känner av när man besöker en viss sida (sidan med dom adresser man vill skriva ut).
Scriptet lägger då till en function på denna sidan som körs när man klickar på ett objekt med en viss class. Detta ställs in med följande i scriptet:
Kod:
var customer_info_url_base = "http://www.nesconnector.se/admin/index.php?route=sale/order/packinginv";
var object_class_to_click = ".customer_addr2";
När man klickar på detta object samlas addressinformation in från alla <p> taggar på sidan med följande classer:
Kod:
// Class of <p> with customer name etc... (these are collected)
var customer_name_class      = ".customer_name";
var customer_address1_class  = ".customer_address1";
var customer_address2_class  = ".customer_address2";
var customer_postcode_class  = ".customer_postcode";
var customer_email_class     = ".customer_email";
var customer_telephone_class = ".customer_telephone";
var customer_order_id_class  = ".customer_order_id";
Så om det finns en
Kod:
<p class="customer_name">Ove Vovve</p>
så samlas det namnet in.

Sedan öppnar scriptet packsoft online och loggar in och öppnar en utskriftsfavorit länken till min utskriftsfavorit sätts i scriptet
Kod:
// Link to favorite for varubrev in packsoft
var varubrev_link = "webapp?Env=po.regionse_SE_WOSF7O3S4BM6DXJP_0&Action=act_ShipmentJobFavoriteSearchActions_SearchResultEdit_RowId_7249";
Scriptet kommer nu fylla i namn adress mm för alla dom addresser den samlat in och lagra dessa utskrifter.

Sist går scriptet till lagrade utskrifter.

Scriptet behöver säkert ändras eftersom någon annans utskriftsfavorit kanske har andra fältnamn jämfört med min.
Någon annan kan säkert skapa ett mer generiskt script.
__________________
Säljer NES connector | Listar Sveriges Bästa Webbhotell
Svara med citat
  #4 (permalink)  
Gammal 2012-09-21, 17:09
Har Ehandel.se som hobby
Vilande
Evig Webb
@davidwigg
 
Reg.datum: sep 2011
Inlägg: 491
DavidWigg will become famous soon enough
Skicka ett meddelande via Skype™ till DavidWigg
Standard

Detta var väldigt intressant. Jag ska sätta tänderna i det

Men det är alltså att jag ändrar lite i min "/admin/index.php?route=sale/order/invoice" så kan det gå?

Nu är så här:


PHP-kod:
<table class="address">
    <
tr class="heading">
      <
td width="50%"><b>Till</b></td>
      <
td width="50%"><b>Leveransadress (om annan än fakturaadress)</b></td>
    </
tr>
    <
tr>
      <
td>Kalle Anka<br />Ankeborgsvägern 1<br />1234 Ankeborg<br />Sweden<br/>
        
Anka@hotmail.se<br/>
        
070xxxxxx</td
Då kan jag sätta in dessa klasser i denna kod(?) Typ så?

PHP-kod:
<table class="address">
    <
tr class="heading">
      <
td width="50%"><b>Till</b></td>
      <
td width="50%"><b>Leveransadress (om annan än fakturaadress)</b></td>
    </
tr>
    <
tr>
      <
td><class="customer_name">Kalle Anka</p><br /><class=".customer_address1">Ankeborgsvägen 1</p><br /><class=".customer_postcode">12345</p>Ankeborg<br />Sweden<br/>
        
anka@hotmail.se<br/>
        
070xxxxxxx</td
__________________
f.d ehandlare. Nu: SEO:are & SysAdmin Projekt: Casinorecensioner
Svara med citat
  #5 (permalink)  
Gammal 2012-09-21, 18:04
Har Ehandel.se som hobby
Vilande
Evig Webb
@davidwigg
 
Reg.datum: sep 2011
Inlägg: 491
DavidWigg will become famous soon enough
Skicka ett meddelande via Skype™ till DavidWigg
Standard

En fråga till bara

Hur hittade du sökvägen till din utskriftfavorit?

Jag har en utskriftfavorit som ligger under "Utskriftsfavoriter - Påbörja utskrift".

Men jag får inte upp en länk till den.
__________________
f.d ehandlare. Nu: SEO:are & SysAdmin Projekt: Casinorecensioner
Svara med citat
  #6 (permalink)  
Gammal 2012-09-22, 09:18
Ivrig
www.nesconnector.se
Fractronics
 
Reg.datum: dec 2009
Inlägg: 85
Fractronics is on a distinguished road
Standard

Citat:
Ursprungligen postat av DavidWigg Visa inlägg
Detta var väldigt intressant. Jag ska sätta tänderna i det
Då kan jag sätta in dessa klasser i denna kod(?) Typ så?
Ja så borde fungera, jag tror inte att det behöver vara just <p> det borde fungera även med <span> eller liknande.


Citat:
Ursprungligen postat av DavidWigg Visa inlägg
Jag har en utskriftfavorit som ligger under "Utskriftsfavoriter - Påbörja utskrift".

Men jag får inte upp en länk till den.
Jag hittade ett fel i scriptet som berodde på session beroende länkar, det är fixat nu och scriptet är uppdaterat i första posten.
Länken du letade efter är nu ändrad lite i scriptet, man skriver nu in namnet på den bild (liten pil) som syns till vänster om utskriftsfavoriten.
I chrome högerklicka och välj insect element och se vad den har för "name".
__________________
Säljer NES connector | Listar Sveriges Bästa Webbhotell
Svara med citat
  #7 (permalink)  
Gammal 2012-09-22, 10:20
Har Ehandel.se som hobby
Vilande
Evig Webb
@davidwigg
 
Reg.datum: sep 2011
Inlägg: 491
DavidWigg will become famous soon enough
Skicka ett meddelande via Skype™ till DavidWigg
Standard

Citat:
Ursprungligen postat av Fractronics Visa inlägg
Ja så borde fungera, jag tror inte att det behöver vara just <p> det borde fungera även med <span> eller liknande.




Jag hittade ett fel i scriptet som berodde på session beroende länkar, det är fixat nu och scriptet är uppdaterat i första posten.
Länken du letade efter är nu ändrad lite i scriptet, man skriver nu in namnet på den bild (liten pil) som syns till vänster om utskriftsfavoriten.
I chrome högerklicka och välj insect element och se vad den har för "name".
Perfekt. Hittade länken

Ska försöka att få detta att fungera. Fungerar det, är du årets hjälte

Det är så jä*la kul att lära sig något nytt också
__________________
f.d ehandlare. Nu: SEO:are & SysAdmin Projekt: Casinorecensioner
Svara med citat
  #8 (permalink)  
Gammal 2012-09-23, 16:40
peanuts avatar
Nyfödd
http://www.bistroroom.se
Kronord Handel AB
@mikaelkrohne
 
Reg.datum: mar 2012
Inlägg: 31
peanut is on a distinguished road
Standard

Grymt, ska försöka knåpa ihop något liknande mellan våran OpenCart-butik och DHL Multishipping
__________________
Säljer smarta, roliga och innovativa kökstillbehörBistroroom.se
Svara med citat
  #9 (permalink)  
Gammal 2012-09-25, 14:35
Har Ehandel.se som hobby
Vilande
Evig Webb
@davidwigg
 
Reg.datum: sep 2011
Inlägg: 491
DavidWigg will become famous soon enough
Skicka ett meddelande via Skype™ till DavidWigg
Standard

Jag kan bekräfta att detta fungerar alldeles utmärkt nu. Har kopplat det från min Open Cart-installation till Unifaun. Den hämtar adresserna från den inbyggda "invoice" (faktura).

I admin har jag också en modul som gör att jag kan skriva ut "invoice" på alla beställningar samtidigt. Det resulterar i att jag också kan exportera alla adresser till Unifaun med ett knapptryck nu.
__________________
f.d ehandlare. Nu: SEO:are & SysAdmin Projekt: Casinorecensioner

Senast redigerad av DavidWigg den 2012-09-25 klockan 14:38.
Svara med citat
Annons
  #10 (permalink)  
Gammal 2012-09-25, 14:55
Medlem
V-C-R-a-c-i-n-g-s-e
V-C-R-a-c-i-n-g-s-e
 
Reg.datum: dec 2010
Inlägg: 148
puttedge is on a distinguished road
Standard

Nu väntar man bara på en youtube tutorial så kommer alla ehandlare köra med script
Svara med citat
Svara

Ämnesverktyg
Visningsalternativ

Regler för att posta
Du får inte posta nya ämnen
Du får inte posta svar
Du får inte posta bifogade filer
Du får inte redigera dina inlägg

BB-kod är
Smilies är
[IMG]-kod är
HTML-kod är av
Trackbacks are
Pingbacks are
Refbacks are




Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.
Search Engine Friendly URLs by vBSEO 3.3.2
Svensk översättning av: Anders Pettersson
vBulletin Skin developed by: vBStyles.com
Ad Management plugin by RedTyger











Leverantörserbjudanden

Jobb på Ehandel.se
Rapunzel of Sweden söker:
Webbdesigner/Art Director
eValent Group AB söker:
Säljare av e-handelslösningar
Svenskt bolag inom försäljning av barnkläder (konfidentiellt) söker:
Online Content Editor, Finsktalande