Skocz do zawartości

Eksport do EN (BETA)

Polecane posty

Poniżej podaję kod z poprawionymi prefiksami dla telefonów GSM - problem opisywany był w tym wątku. Forumowicz z TS pozy dorobił obejście w oryginalnych transformatach polegające na tym, że jeśli pierwszą cyfrą numeru telefonu była 5,6,7,8 to transformata traktuje taki numer jak numer telefonu komórkowego.

Niestety EN nadal zgłaszał błędy przy telefonach zaczynających się od tych cyfr a będących numerami stacjonarnymi i nadal w EN wyskakiwał ten błąd opisany przez pozy:

 

To przyznam, że to dość dla mnie zaskakujące. Po naszej stronie nigdzie nie zapisujemy nic w żadnym polu, gdzie EN powinno spodziewać się adresu e-mail. Nie mam pojęcia dlaczego w takim razie pojawia się w tym polu numer telefonu. I to tylko wtedy, kiedy jest to numer stacjonarny. W przesyłce biznesowej EN spodziewa się numeru komórkowego, na który można wysłać SMS i pewnie dlatego robi jakieś dziwne rzeczy. Widzę dwa wyjścia:

1. Wykrywać, czy numer klienta jest numerem stacjonarnym. Jeśli tak, to nie podawać w ogóle żadnego numeru i zostawić pole z kontaktem puste.

 

Poprawiłem to rozwiązanie podając prefiksy numerów należących do sieci mobilnych. Rozwiązanie wykorzystuję w transformacie dla dawnej biznesówki 852 ale można je wprowadzić do innych transformat.

 

Ten fragment kodu w 852:

<xsl:variable name="phone" select="translate(s:DeliveryAddress/s:PhoneNumber,'- ()/','')"/>
     <xsl:variable name="phone2" select="format-number(substring($phone,string-length($phone)-8,9),'000000000')"/>
     <xsl:if test="starts-with($phone2,'5') or starts-with($phone2,'6') or starts-with($phone2,'7') or starts-with($phone2,'8')">
       <xsl:element name="Atrybut">
         <xsl:attribute name="Typ"/>
         <xsl:attribute name="Nazwa">KontaktAdresata</xsl:attribute>
         <xsl:value-of select="$phone2"/>
       </xsl:element>
     </xsl:if>

 

należy zastąpić tym fragmentem kodu:

<xsl:variable name="phone" select="translate(s:DeliveryAddress/s:PhoneNumber,'- ()/','')"/>
<xsl:variable name="phone2" select="format-number(substring($phone,string-length($phone)-8,9),'000000000')"/>

<xsl:choose>
<xsl:when test="starts-with($phone2,'50') or starts-with($phone2,'51') or starts-with($phone2,'53') or starts-with($phone2,'57') or starts-with($phone2,'60') or starts-with($phone2,'66') or starts-with($phone2,'69') or starts-with($phone2,'72') or starts-with($phone2,'73') or starts-with($phone2,'78') or starts-with($phone2,'79') or starts-with($phone2,'88')">
<xsl:element name="Atrybut">
<xsl:attribute name="Typ"/>
<xsl:attribute name="Nazwa">KontaktAdresata</xsl:attribute>
<xsl:value-of select="$phone2"/>
</xsl:element>
</xsl:when>
<xsl:otherwise>
<xsl:element name="Atrybut">
<xsl:attribute name="Typ"/>
<xsl:attribute name="Nazwa">KontaktAdresata</xsl:attribute>
<xsl:value-of select="123456789"/>
<!--Powyżej zamiast 123456789 wpisujemy swój numer komórki, jeśli klient poda numer stacjonarny to powiadomienie przyjdzie na nasz numer komórki i nie trzeba poprawiać nic w EN'ie-->
</xsl:element>
</xsl:otherwise>
</xsl:choose>

 

W powyższym zmienionym kodzie zamiast cyfr 123456789 podajemy swój numer telefonu komórkowego i jeśli klient podał telefon nie należący do sieci komórkowej to wtedy transformata wprowadzi nasz numer telefonu komórkowego, EN nie zgłosi błędu i powiadomienie zostanie wysłane na nasz telefon komórkowy, a nie błędny klienta.

Najpierw myślałem tak jak pozy, że jak klient poda stacjonarny to żeby wcale nie podawać telefonu i zostawić to pole puste ale zdarzyło mi się, że klient zamówił odbiór w punkcie i podał zły telefon, a dla odbioru w punkcie telefon komórkowy jest wymagany więc i tak wtedy musiałem wprowadzić swoją komórkę. Stąd powyższe rozwiązanie nie powinno zgłaszać żadnych błędów w żadnej sytuacji, co najwyżej będą przychodzić smsy na komórkę.

Uwaga rozwiązanie zrobiłem naprędce w 15 minut ;)  i nie jest zbyt dobrze przetestowane więc proszę je sobie wcześniej sprawdzić. Numery prefiksów wyszukać można w internecie pod hasłem: prefiksy GSM.

Jeśli EN zgłosi jeszcze jakiś błąd z telefonem komórkowym to proszę dajcie znać.

 

Pozdrawiam

EDIT

Poniżej podałem jeszcze inny sposób

Link to postu

Wiem, że rzadko się to zdarza, ale jednak mi się parę razy zdarzyło, że listowy od paczek dzwonił czy jestem w domu i może podjechać.

Wówczas lepszy numer stacjonarny niż nadającego.

 

Tak masz rację ale to zależy dla jakiej paczki. Jak jest to przesyłka z odbiorem w punkcie to musisz podać komórkę stąd moje rozwiązanie.

 

W takim razie można by jeszcze wprowadzić zależność, że jak zwykła biznesowa to podaje numer w formie podanej przez klienta, a jak z odbiorem w punkcie to naszą komórkę (bo jakąś komórkę trzeba wtedy podać). Jeśli korzystacie z mojego rozwiązania podawania PniUP w polu numer NIP w adresie do wysyłki to można by taki wybór uzależnić od zawartości tego właśnie pola. Ale jak nie korzystacie z mojego rozwiązania to od czego uzależnić taki wybór?

 

Jakieś sugestie - po czym odróżnić zwykłą przesyłkę biznesową od przesyłki z odbiorem w punkcie, to pomyślę nad takim rozwiązaniem jeszcze.

 

PS

Może po nazwie DeliveryName? ale to też zależy jak ktoś sobie rozróżnił przesyłkę  biznesową zwykłą od tej z odbiorem w punkcie w Sello?

 

PS2

EDIT

Poniżej rozwiązanie jak wprowadzić puste pole zamiast naszego telefonu komórkowego.

Link to postu

Wróć, stop, przewiń, itp...  :o:)

 

Skupiłem myśli na tym jak rozróżnić przesyłkę biznesową zwykłą od odbioru w punkcie, a to nie tak bo przecież dla tego pola musi być podany telefon komórkowy bo przecież stąd cały ten problem z formą tego numeru :) Nie można podać stacjonarnego.

 

Co prawda w EN'ie przy ręcznym wpisywaniu danych przesyłki jest jeszcze pole telefon, w którym można wprowadzić telefon stacjonarny i jak nie poda się telefonu komórkowego to on się wydrukuje na etykiecie ale nie widzę tego pola w specyfikacji.

 

Więc nie da się - chyba, że ktoś będzie miał jeszcze jakąś sugestię.

 

Na razie są takie opcje:

1. Stare rozwiązanie - przy błędnych numerach EN zgłasza błędy, że numer nie należy do sieci mobilnej - można wtedy zdecydować jaki numer podać i poprawić - mi się nie chciało tego robić :) i dlatego

2. Drugie - powyższe rozwiązanie - żadnych błędów, ewentualne sms'y przychodzą na naszą komórkę.

 

Link to postu

Masz Pan jak zwykle rację.

 

Pisze jak byk, albo wół w specyfikacji, że w kurierze 48 i e-przesyłce ma być telefon komórkowy.

 

Oczywiście wszystko zależy od przyjętej koncepcji.

Albo piszemy do klienta, że ma podać numer komórkowy (zwłaszcza przy e-przesyłce)

albo robimy Twoim sposobem.

 

Przy e-przesyłce można tak robić.

Ale w kurierze 48 raczej osobiście wybrał bym pole puste.

 

I tak dużo pomogłeś rozpracowując sposób odróżniania numerów zwykłych od komórkowych. Każdy może sobie wybrać rozwiązanie sam.

Chyba jak się w Twoim kodzie zamiast własnego numeru komórkowego wpisze pustkę, to wyjdzie puste w EN ?

Czy wywali błąd ?

 

I jeszcze jedno - nigdy nie nadawałem e-przesyłki.

Do paczkomatu jest niezbędny numer telefonu, bo go trzeba wpisać w paczkomacie, jak się wybrało paczkomat starego typu, albo ma się przedpotopowy telefon nie umiejący obsługiwać stron www.

Czy w e-przesyłce jest tak samo ? Jakiś numer jest niezbędny ?

Ze specyfikacji wynika, że można zamiennie stosować e-mail w tym samym polu.

Link to postu

Oczywiście wszystko zależy od przyjętej koncepcji.

Albo piszemy do klienta, że ma podać numer komórkowy (zwłaszcza przy e-przesyłce)

albo robimy Twoim sposobem.

No właśnie mi szkoda czasu dzwonić do klienta, a numer nadania dostaje w mailu.

 

Przy e-przesyłce można tak robić.

Ale w kurierze 48 raczej osobiście wybrał bym pole puste.

 

Przy e-przesyłce musisz tak robić bo musisz podać jakiś numer komórkowy.

Dla zwykłej biznesówki (kurier48) też listonosz ma jakiś telefon i jakby rzeczywiście chciał zadzwonić to zadzwoni do nas, a my możemy mu podać telefon klienta lub sami skontaktować się z klientem - lepsze niż puste pole

 

I tak dużo pomogłeś rozpracowując sposób odróżniania numerów zwykłych od komórkowych. Każdy może sobie wybrać rozwiązanie sam.

 

Eeeee tam - tylko wprowadziłem prawidłowe prefiksy - 15 minut roboty ;)

 

Chyba jak się w Twoim kodzie zamiast własnego numeru komórkowego wpisze pustkę, to wyjdzie puste w EN ?

Czy wywali błąd ?

 

A nie, bo Sello nie wyeksportuje takiego pliku jak tam będzie pustka - to wtedy prościej można

 

Jak chcesz zostawić puste pole to zamieniasz tylko jedną linijkę - tą

<xsl:if test="starts-with($phone2,'5') or starts-with($phone2,'6') or starts-with($phone2,'7') or starts-with($phone2,'8')">

 

na tą:

     

<xsl:if test="starts-with($phone2,'50') or starts-with($phone2,'51') or starts-with($phone2,'53') or starts-with($phone2,'57') or starts-with($phone2,'60') or starts-with($phone2,'66') or starts-with($phone2,'69') or starts-with($phone2,'72') or starts-with($phone2,'73') or starts-with($phone2,'78') or starts-with($phone2,'79') or starts-with($phone2,'88')">

EDIT

Ta podana przeze mnie linijka jest tylko bardziej szczelna bo nie przepuszcza telefonów stacjonarnych więc nie robią się problemy z tym numerem telefonu stacjonarnego w polu maila, o którym pisał pozy.

 

I wtedy jak telefon nie będzie należał do sieci komórkowej to wstawi się pustka (wstawi się pustka - zaje-fajne hasło ;););) )

i dla zwykłej biznesówki nie jest wymagany telefon więc EN nie zgłosi błędu,

a dla odbioru w punkcie jest wymagany więc zgłosi błąd, że brak telefonu

 

I jeszcze jedno - nigdy nie nadawałem e-przesyłki.

Do paczkomatu jest niezbędny numer telefonu, bo go trzeba wpisać w paczkomacie, jak się wybrało paczkomat starego typu, albo ma się przedpotopowy telefon nie umiejący obsługiwać stron www.

Czy w e-przesyłce jest tak samo ? Jakiś numer jest niezbędny ?

 

Dla odbioru w punkcie jest wymagany, dla e-przesyłek jak ktoś ma jeszcze umowę na nie podpisaną to pewnie też. Na telefon przychodzi SMS że twoja paczka czeka do odbioru w placówce - a na poczcie odbierasz na dowód osobisty - tylko nazwisko drukuje się na etykiecie.

 

Ze specyfikacji wynika, że można zamiennie stosować e-mail w tym samym polu.

 

Nie dla biznesówki - w szczegółach dla 852 pisze, że powiadomienie jest tylko SMS'em

 

PS

Na zaś piszcie numerki przy kolejnych pytaniach - szybciej się odpowiada na konkretne numerki niż cytowanie każdego pytania odrębnie :) Pozdrawiam :)

Link to postu

I zrobiłem ostateczne rozwiązanie z prefiksami GSM

 

W oryginalnych transformatach ten fragment kodu:

<xsl:variable name="phone" select="translate(s:DeliveryAddress/s:PhoneNumber,'- ()/','')"/>
      <xsl:variable name="phone2" select="format-number(substring($phone,string-length($phone)-8,9),'000000000')"/>
      <xsl:if test="starts-with($phone2,'5') or starts-with($phone2,'6') or starts-with($phone2,'7') or starts-with($phone2,'8')">
        <xsl:element name="Atrybut">
          <xsl:attribute name="Typ"/>
          <xsl:attribute name="Nazwa">KontaktAdresata</xsl:attribute>
          <xsl:value-of select="$phone2"/>
        </xsl:element>
      </xsl:if>

 

należy zastąpić tym fragmentem jeśli korzystacie z mojego sposobu podawania wartości dla pola PniUP

Rozwiązanie A:

<xsl:variable name="phone" select="translate(s:DeliveryAddress/s:PhoneNumber,'- ()/','')"/>
<xsl:variable name="phone2" select="format-number(substring($phone,string-length($phone)-8,9),'000000000')"/>
<xsl:choose>
<xsl:when test="starts-with($phone2,'50') or starts-with($phone2,'51') or starts-with($phone2,'53') or starts-with($phone2,'57') or starts-with($phone2,'60') or starts-with($phone2,'66') or starts-with($phone2,'69') or starts-with($phone2,'72') or starts-with($phone2,'73') or starts-with($phone2,'78') or starts-with($phone2,'79') or starts-with($phone2,'88')">
<xsl:element name="Atrybut">
<xsl:attribute name="Typ"/>
<xsl:attribute name="Nazwa">KontaktAdresata</xsl:attribute>
<xsl:value-of select="$phone2"/>
</xsl:element>
</xsl:when>
<!--Jeśli klient poda numer komórkowy to wstawi się jego numer komórkowy-->
<xsl:otherwise>
<xsl:if test="string-length(s:DeliveryAddress/s:NIP) = 6">
<xsl:element name="Atrybut">
<xsl:attribute name="Typ"/>
<xsl:attribute name="Nazwa">KontaktAdresata</xsl:attribute>
<xsl:value-of select="123456789"/>
<!--Powyżej wpisujemy swój numer komórki, jeśli klient poda numer stacjonarny i będzie to odbiór w punkcie to powiadomienie przyjdzie na nasz numer komórki, bo jakąś komórkę trzeba wtedy podać-->
<!--Jeśli klient poda numer stacjonarny i będzie to zwykła biznesówka to wstawi się puste pole, a telefon klienta można wstawić w pole opisu przesyłki -->
</xsl:element>
</xsl:if>
</xsl:otherwise>
</xsl:choose>

 

lub tym fragmentem kodu jeśli nie korzystacie z mojego sposobu podawania wartości dla pola PniUP ale macie rozróżnione w Sello odbiór w punkcie jako osobny rodzaj wysyłki

Rozwiązanie B

<xsl:variable name="phone" select="translate(s:DeliveryAddress/s:PhoneNumber,'- ()/','')"/>
<xsl:variable name="phone2" select="format-number(substring($phone,string-length($phone)-8,9),'000000000')"/>
<xsl:choose>
<xsl:when test="starts-with($phone2,'50') or starts-with($phone2,'51') or starts-with($phone2,'53') or starts-with($phone2,'57') or starts-with($phone2,'60') or starts-with($phone2,'66') or starts-with($phone2,'69') or starts-with($phone2,'72') or starts-with($phone2,'73') or starts-with($phone2,'78') or starts-with($phone2,'79') or starts-with($phone2,'88')">
<xsl:element name="Atrybut">
<xsl:attribute name="Typ"/>
<xsl:attribute name="Nazwa">KontaktAdresata</xsl:attribute>
<xsl:value-of select="$phone2"/>
</xsl:element>
</xsl:when>
<!--Jeśli klient poda numer komórkowy to wstawi się jego numer komórkowy-->
<xsl:otherwise>
<xsl:if test="s:DeliveryMethod/s:DeliveryName='Nazwa1' or s:DeliveryMethod/s:DeliveryName='nazwa2)'">
<xsl:element name="Atrybut">
<xsl:attribute name="Typ"/>
<xsl:attribute name="Nazwa">KontaktAdresata</xsl:attribute>
<xsl:value-of select="123456789"/>
<!--Powyżej wpisujemy w nazwę1 własną nazwę z Sello dla odbiorów w punkcie lub e-przesyłki po przedpłacie, a dla nazwy2 własną nazwę z Sello dla odbiorów w punkcie lub e-przesyłki (za pobraniem)-->
<!--Nazwy muszą być identyczne co do joty więc najlepiej skopiować je z właściwych dostaw ze słownika "Wysyłka towarów - Sposoby wysyłki" z Sello -->
</xsl:element>
</xsl:if>
</xsl:otherwise>
</xsl:choose>

 

Rozwiązanie A - stwierdza czy biznesówka jest z odbiorem w punkcie na podstawie wartości pola PniUP,

a rozwiązanie B - stwierdza czy biznesówka jest z odbiorem w punkcie na podstawie Waszej nazwy dla tego sposobu wysyłki.

W rozwiązaniu B trzeba podać własną nazwę z Sello dla tego sposobu wysyłki.

 

Oba rozwiązania działają tak, że:

-jeśli klient podał numer komórkowy to zawsze wstawi się jego numer komórkowy

ale jeśli klient podał telefon stacjonarny to:

1. dla odbiorów w punkcie wstawi się nasz numer telefonu komórkowego i sms o oczekującej przesyłce przyjdzie na naszą komórkę bo jakąś komórkę trzeba podać

2. a dla zwykłych biznesówek wstawi się pustka bo tu telefon nie jest wymagany, a prawdziwy telefon stacjonarny klienta można podać w polu opisu przesyłki.

W ten sposób EN nigdy nie zgłosi żadnych błędów co do błędnego numeru telefonu, a listonosz gdyby chciał dzwonić do klienta to zobaczy w polu telefon pustkę ale może zobaczy telefon klienta w polu opisu do przesyłki jeśli go tam podamy. W każdym razie listonosz nie będzie nas nękać telefonami w sprawie paczek klientów.

Link to postu

Witam,

wczoraj, właśnie coś takiego stworzyłem. Za jednym razem exportujesz list firmowy zwykły, przesyłkę firmowa polecaną oraz przesyłkę poleconą priorytetową.

 

Dzięki gawcio90 za udostępnienie łącznej transformaty bo na jej podstawie i z Twoją pomocą mam teraz łączną transformatę do wszystkich listów i paczek.

 

Mogę eksportować wszystkie przesyłki naraz i drukować wszystkie etykiety naraz.

I nie trzeba już nic myśleć. Działa z szybkością błyskawicy :)

 

Dziękuję :)

Link to postu

 

 

E.... a udostępnił byś taką łączną do wszystkiego ?

;D ;D ;D ;D ;D ;D ;D ;D

 

Bo Ty i Gawcio90 jesteście ekspertami od transformat, a ja raczej nie ... :D

 

Fajnie było by przetestować gotowy kod podany w całości ;)

A jak to z tą e-przesyłką? Działa dla niej? Jak podaje się UP? Chyba coś przeoczyłem.

Link to postu

Proszę bardzo, mówicie i macie :)

Poniżej w załączniku to jest przeróbka zbiorczej transformaty gwacia90 dla moich sposobów wysyłek (biznesowych i firmowych). Nie ma znaczenia czy będziecie pracować na mojej czy gawcia90 bo i tak każdy taką transformatę musi przerobić, a najłatwiej to stworzyć, pod siebie na podstawie swoich pojedynczych transformat i swojego nazewnictwa sposobów wysyłki z Sello bo inaczej nie będzie działać. Dlatego właśnie Team Sello nie zdecydowało się na wprowadzenie jednego pliku.

 

Plus gratis mini kolorowy poradnik :):):)

A. Spiszcie sobie rodzaje wysyłki i które transformaty do nich stosujecie oraz przypisane im sposoby wysyłki z Sello.

Dla mojej transformaty zbiorczej są to:

1. przesyłki biznesowe, korzystam z transformaty 852, a w Sello eksportuje tą transformatą te sposoby wysyłki:

-Paczka pocztowa ekonomiczna

-Paczka pocztowa priorytetowa

-Przesyłka pobraniowa ekonomiczna (Paczka48)

-Przesyłka pobraniowa priorytetowa (Paczka24)

-E-PRZESYŁKA (Paczka48 Odbiór w punkcie)

-E-PRZESYŁKA po przedpłacie (Paczka48 Odbiór)

2. przesyłka firmowa, korzystam z transformaty 845, a w Sello eksportuję tą transformatą te sposoby wysyłki:

-List polecony ekonomiczny

-List polecony priorytetowy

 

Powyższe nazwy sposobów wysyłki należy skopiować dokładnie tak jak każdy ma w swoim Sello ze słownika Wysyłka towarów - Sposoby wysyłki. Inaczej zbiorcza transformata nie będzie działać. Każdy podaje te sposoby dla siebie tak jak wykorzystuje transformaty. Oczywiście każdy z Was wykorzystuje inne transformaty dla swoich sposobów wysyłek – te powyżej to moje bo u nas wszystkie paczki idą jako biznesowe, a wszystkie listy idą jako firmowe

 

B. Transformatę przerabiajcie sobie zawsze w Visual Studio – koloruje on składnię i podkreśla błędy.

1.Ale nie podkreśla białych spacji ;) więc pamiętajcie żeby zamykać każde pole. Cytując gawcia90 nie może być tak jak poniżej:

lement name="Atrybut">
<xsl:attribute name="Typ"/>
<xsl:attribute name="Nazwa">Ilosc</xsl:attribute>1
</xsl:element> 
 

Czyli nie można zostawić samej wartości 1 na końcu i musi być tak jak poniżej, tyczy się to każdego elementu:

lement name="Atrybut">
<xsl:attribute name="Typ"/>
<xsl:attribute name="Nazwa">Ilosc</xsl:attribute>1</xsl:element>
 

 

2. Nie zostawiajcie też pustych linii - poniżej wprowadziłem je tylko żeby łatwiej było zobaczyć strukturę takiej łącznej transformaty.

 

3. Na wstępie zwińcie sobie wszystkie elementy żeby wyglądały jak poniżej. Transformata będzie dla Was bardziej czytelna i łatwiejsza do przeróbki. Dla każdego oddzielnego sposobu wysyłki trzeba wprowadzić rozróżnianie go if’em i połączyć elementy pojedynczych transformat w jedną całość.

 

C. Pojedyncze transformaty składają się w skrócie z:

1. Górnej części – te z danymi nadawcy, numerem umowy, itp. – w zbiorczej można wymienić te dane tylko jeden raz.

2. Potem są dane z komentarzami dla konkretnych przesyłek np opis przesyłki, gabaryt – w zbiorczej te dane należy również wprowadzić raz w górnej części i nie mogą się powtórzyć – np. pole opis jeśli jest inne dla przesyłek firmowych, a inne dla biznesówek (ja poniżej takie podwójne pola nazwałem dopisując 2 i dopisałem też 2 w dolnej części transformaty już w konkretnej przesyłce żeby wprowadzały się prawidłowe dane

 

W zbiorczej transformacie po <xsl:template match="s:Package"> znajdują się konkretne transformaty przypisane do konkretnych sposobów wysyłki z Sello. Ich wyboru dokonuje się poleceniem if,  a następnie podaje fragment pojedynczych transformat od miejsca przesyłka do końca:

 

<xsl:if test="s:DeliveryMethod/s:DeliveryName='Paczka pocztowa ekonomiczna'">

 

+<xsl:element name="Przesylka">...</xsl:element>

 

</xsl:if>

 

I potem w zbiorczej podajemy kolejny rodzaj wysyłki, aż wyczerpiemy wszystkie nasze opcje. Jak do jednego rodzaju sposobu wysyłki np. biznesowych przypisanych jest kilka sposobów wysyłki z Sello to oddzielamy je operatorem or (tak jak ja zrobiłem dla biznesówek i firmowych)

 

D.Struktura całej zbiorczej transformaty wygląda mniej więcej jak poniżej (te plusy na początku niektórych linii to zwinięte elementy-łatwiej tak zobaczyć o co chodzi):

 

<xsl:stylesheet version="1.0"xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:s="http://www.sello.pl/export">

<!—- górna część -->

<xsl:variable name="NrUmowy"></xsl:variable>

<xsl:variable name="KartaUmowy"></xsl:variable>

<xsl:variable name="Gabaryt">M</xsl:variable>

<xsl:variable name="Gabaryt2">A</xsl:variable>

<xsl:variable name="Firmowa">T</xsl:variable>

<xsl:variable name="Miejscowa"></xsl:variable>

<xsl:variable name="Ubezpieczona">N</xsl:variable>

+<xsl:variable name="FormaPowiadomieniaAdresata"></xsl:variable>

+<xsl:template name="TytulPrzelewu">...</xsl:template>

+<xsl:template name="PniUP">...</xsl:template>

+<xsl:template name="Opis">...</xsl:template>

+<xsl:template name="Opis2">...</xsl:template>

<xsl:param name="Year"/>

<xsl:param name="Month"/>

<xsl:param name="Day"/>

<xsl:param name="Hour"/>

<xsl:param name="Minute"/>

<xsl:param name="Second"/>

+<xsl:template match="s:ExportData">...</xsl:template>

<xsl:template match="s:Package">

 

<!—- dane poszczególnych wysyłek – w każdej if, a potem od elelemntu Przesyłka - skopiowane dane z pojedynczych transformat i zakończenie if’a i następny sposób, itd. -->

 

<!--biznesowa 852-->

<!—- if'em wybieramy rodzaj przesyłki z Sello który chcemy eksportować danymi z konkretnej przesyłki -->

<xsl:if test="s:DeliveryMethod/s:DeliveryName='Paczka pocztowa ekonomiczna' or s:DeliveryMethod/s:DeliveryName='Paczka pocztowa priorytetowa' or s:DeliveryMethod/s:DeliveryName='Przesyłka pobraniowa ekonomiczna (Paczka48)' or s:DeliveryMethod/s:DeliveryName='Przesyłka pobraniowa priorytetowa (Paczka24)' or s:DeliveryMethod/s:DeliveryName='E-PRZESYŁKA (Paczka48 Odbiór w punkcie)' or s:DeliveryMethod/s:DeliveryName='E-PRZESYŁKA po przedpłacie (Paczka48 Odbiór)'">

 

<!—- tymi danymi z pojedynczej transformaty - tutaj dla 852 -->

+<xsl:element name="Przesylka">...</xsl:element>

 

</xsl:if>

 

<!--firmowa 845 -->

<!—- if'em wybieramy rodzaj przesyłki z Sello który chcemy eksportować danymi z konkretnej przesyłki -->

<xsl:if test="s:DeliveryMethod/s:DeliveryName='List polecony ekonomiczny' or s:DeliveryMethod/s:DeliveryName='List polecony priorytetowy'">

 

<!—- tymi danymi z pojedynczej transformaty - tutaj dla 845 -->

+<xsl:element name="Przesylka">...</xsl:element>

 

</xsl:if>

 

<!—- zakończenie -->

</xsl:template>

</xsl:stylesheet>

 

E. Zbiorcza transformata z załącznika składa się z moich przerobionych pojedynczych transformat i zawiera wprowadzone przeze mnie pola:

-PniUP,

-ten ulepszony wybór prefiksu komórkowego,

-wprowadzenie w polach opis nicku i numeru tel klienta,

 

Każdy musi ją przerobić pod siebie lub łatwiej stworzyć własną zbiorczą na podstawie swoich pojedynczych transformat i swojego nazewnictwa sposobów wysyłki z Sello bo inaczej nie będzie działać.

 

zbiorcza_dla_EN852_i_EN845_zip

Edytowane przez Bartosz Rosa
Aktualizacja załącznika
Link to postu

Fajnie było by przetestować gotowy kod podany w całości ;)

A jak to z tą e-przesyłką? Działa dla niej? Jak podaje się UP? Chyba coś przeoczyłem.

 

Działa i ja sobie chwalę tą metodę - tutaj zacząłem to opisywać:

https://forum.sello.pl/index.php?topic=6309.msg41788#msg41788

W zbiorczej transformacie poprawiłem później warunek, że jeśli pole NIP = 6 znaków to traktuje ją jako biznesówkę z odbiorem w punkcie - nie zdarzyła nam się jeszcze żadna pomyłka z biznesówkami.

 

Na pierwszy rzut oka trochę to dziwne bo podaje się numer placówki (PniUP) w polu NIP w adresie do wysyłki ale naprawdę działa i jest szybko.

Dla biznesówek z odbiorem w punkcie - już na etapie transakcji wyszukujemy numer placówki w pliku z placówkami i wprowadzamy go w pole NIP w adresie do wysyłki i zapominamy - resztą zajmuje się transformata, nic nie robimy po stronie EN'a.

 

Jak teraz jeszcze jest ta zbiorcza transformata to naprawdę jest pełna automatyzacja:

1. Na paczkach do wysłania filtr Poczta Polska, Ctrl+A i eksportujemy jeden plik.

2. Importujemy do EN'a.

3. W EN wydruk nalepek do całego zbioru - jeden plik pdf i wydruk naraz wszystkich etykiet.

4. Zamknij jeden zbiór i przekaż dane do placówki.

5. Etykiety do kangurków i oklejenie ich na przesyłkach.

Link to postu

OMG, niezłe dzieło.

Teraz zbieram siły, może UDA mi się przez to przebrnąć w praktyce  :P :P :P :P

 

Dzięki :)

 

Z tym, że jak to przeczytałem to nie wiem czy to jest zrozumiałe bo starałem się pisać tak normalnie bez informatycznego słownictwa. No nie wiem.

 

Zobaczymy, jak będą problemy to pisz :)

Link to postu

Transformaty do poczty i poczta polska załatwiona już jest u mnie całkowicie, nawet z obsługą wagi :)

Nie zostało nic do poprawienia - tak trochę głupio :o???:P:-\;D

 

PS

Teraz czekam, aż wprowadzą w Sello te dodatkowe tagi do towarów i ich aktualizację i nie mogę się już doczekać kolejnej olbrzymiej partii roboty tylko po to żeby potem mniej pracować. Bo codzienne poprawianie tych aukcji dobija mnie, a zawsze wyjdzie, że coś trzeba poprawić/zaktualizować :(

Link to postu

Kawał dobrej roboty!

 

Dodam tylko, że jeżeli komuś En źle importuje przesyłki to pierwsze co zróbcie to wyeksportujcie jedną niedziałająca przesyłkę z Sello i przeanalizujcie XML'a w przeglądarce, ponieważ EN nie zawsze zgłosi konkretny błąd.

 

Bardzo łatwo wtedy wyłapać błędy, brak jakiegoś znacznika czy ew jakąś niechcianą spację.

Link to postu

Witam

Było już poruszone:

 

2. Do przesyłek poleconych nie pobiera nr telefonu i adresu e-mail klienta, a do przesyłek biznesowych samego e-maila, da to się zmienić ?

 

Ale odpowiedzi nie znalazłem.

 

Uzyłem tej zajefajnej transformaty wszystko w jednym, działa pięknie oprócz importu adresów mailowych. Zaznaczenie powiadomienia emailem nic nie zmienia dla biznesowej, w listach zmienia o tyle, że wrzuca mail zamiast telefonu.

 

Czyli sytuację mamy następującą:

 

Zaznaczone powiadomienie mailem, brak w exporcie poleconych numeru telefonu, ale to nie problem, bo jest w polu opis. Biznesówka bez zmian, wrzuca telefon, nie ma maila. Co zrobić, aby biznesówki pobierały maila? Jak jest mail, to EN wysyła powiadomienie z numerem przesyłki, wygodna opcja.

 

Najlepiej byłoby, gdyby i telefon i mail pobierał sie w każdym rodzaju przesyłki, bo wtedy zaznaczona opcja powiadomienia telefonicznego, a EN sam z siebie wyśle maila z numerem :)

Pomoże ktoś?

Link to postu

No właśnie, a wszystkie problemy można by tak fajnie rozwiązać gdyby tylko Sello obsługiwało ENa przez API.

Nie byłby potrzebny ten wątek z 17 stronami, który i tak nie rozwiązuje problemów wszystkich użytkowników i który jest tylko i wyłącznie dowodem wstydu dla Sello, obrazującym ile kombinacji, ile pracy trzeba poświęcić, aby w programie do obsługi transakcji wykonać tak podstawową rzecz jak wysyłka pocztą polską.

 

A tak mamy integrację z Kexem, zaraz będzie z kioskami ruchu dostarczającymi przesyłki do sądu, ChinaPost, a może nawet MakumbaExpress, a to co najważniejsze i dotykające każdego użytkownika będzie dalej leżało :P

 

I proszę się nie obrażać, bo to nie są wymysły - niniejszy wątek istnieje naprawdę. I właśnie w nim piszę. Proszę popatrzeć na ilość wyświetleń - ponad 11.000 !

Czy tyle osób korzysta z Kexa ?

Link to postu

Najlepiej byłoby, gdyby i telefon i mail pobierał sie w każdym rodzaju przesyłki, bo wtedy zaznaczona opcja powiadomienia telefonicznego, a EN sam z siebie wyśle maila z numerem :)

Pomoże ktoś?

 

Ale to jest niezrozumienie specyfikacji EN'a - nie da się tak jak byś chciał bo EN tego nie obsługuje - to nie jest wina Sello i transformaty tylko EN'a.

 

Poprzez import xml'a możesz importować to co poczta zezwoliła i jest to dla poruszanej kwestii albo - albo. Czyli, albo mail - albo telefon. Nie można zaimportować wszystkich danych - nie ma takiej opcji w specyfikacji EN'a, ani w przykładowych plikach, które poczta udostępniła.

 

1. W poleconym możesz włączyć powiadomienie emailem lub telefonem - ale jest płatne, większość użytkowników (w tym ja) nie chce płacić za to powiadomienie więc nie skupiałem się nad tym rozwiązaniem ale działa - to co zaznaczysz to się wysyła - albo mail albo telefon i na to przyjdzie powiadomienie.

Nie wiem co byś chciał dla przesyłki poleconej jeszcze zmienić bo wszystko działa? Chyba, że czegoś nie zrozumiałem?

Oczywiście wpisując dane ręcznie w EN mamy wszystkie pola dostępne i możemy wpisać co chcemy i gdzie chcemy ale specyfikacja EN'a nie pozwala na import zawartości tych pól. Inna kwestia ile tych powiadomień EN wyśle jeśli dla poleconych podalibyśmy wszystkie dane - maila i telefon komórkowy - trzeba dopytać swojego PH od EN'a.

EDIT

W transformacie dla poleconych jest wykrywanie prefiksów GSM wg tej starej metody jednocyfrowej, więc jakbyś chciał sobie włączyć powiadomienia na komórki to również tam zmień sobie ten fragment o prefiksach GSM żeby EN nie zgłaszał Ci błędu że telefon nie należy do sieci komórkowej.

 

2. W biznesówkach istnieje tylko powiadomienie na telefon komórkowy - innych opcji EN nie obsługuje poprzez import z xml'a, nie wiem jak to jest dla maila wpisanego poprzez www - znowu pytanie do swojego PH od EN'a.

Czyli jeśli chciałbyś wysyłać dla biznesówek powiadomienie na maila - to zapytaj się swojego PH od EN'a czy dorobią taką możliwość, a maila do klienta z numerem nadania przecież wysyłasz z Sello?

 

Czyli jak wyjaśniłem powyżej w tej sytuacji trzeba by zapytać swojego PH od EN'a czy będzie dorobiony import tych pól poprzez xml'a i kiedy oraz jak działa wysyłanie powiadomień gdy się poda wszystkie dane. Jeśli poczta dorobi import z xml'a wszystkich tych pól to będzie można je sobie bez problemu wstawić. Na razie się nie da.

 

Pozdrawiam

 

 

Link to postu

Witam.

W powiadomieniach biznesowych z sello nie ma numeru nadania, jeśli nie masz puli od poczty, dlatego wygodne jest wysyłanie ich wprost z EN - telefon się importuje bo musi, a mailem EN wysyłałby klientowi numer przesyłki.

Sprawdziłem to ręcznie - dodanie maila skutkuje wysłaniem powiadomienia, opcja nie jest płatna (ani mail, ani sms).

Nie wiem jak przy poleconym, bo tam ustaliliśmy, że mam mail w imporcie we właściwym miejscu (wysyła powiadomienie mailowe z numerem przesyłki i nie jest płatny) + telefon w polu opis, zatem temat poleconych wyczerpany.

 

Dzięki za info, skoro albo albo w biznesach, to nie będę z tematem walczył, poproszę pocztowca o pulę numerków i oprę informacje o maile z sello :)

Pozdrawiam

Link to postu

Sprawdziłem to ręcznie - dodanie maila skutkuje wysłaniem powiadomienia, opcja nie jest płatna (ani mail, ani sms).

 

Tak, dla biznesówek jest za darmo. Ale proszę - doprecyzuj jeśli to testowałeś:

1. Czyli jeśli dla biznesówek podamy maila i telefon komórkowy to powiadomienie wyśle się i na maila i na komórkę?

 

Nie wiem jak przy poleconym, bo tam ustaliliśmy, że mam mail w imporcie we właściwym miejscu (wysyła powiadomienie mailowe z numerem przesyłki i nie jest płatny) + telefon w polu opis, zatem temat poleconych wyczerpany.

 

To jeszcze ustalmy definitywnie bo nie chciało mi się pytać mojego PH, a różne wersje krążą?

2. Czy dla przesyłek poleconych powiadomienie mailowe jest płatne?

3. Czy dla przesyłek poleconych powiadomienie na komórkę jest płatne?

 

 

Dzięki za info, skoro albo albo w biznesach, to nie będę z tematem walczył, poproszę pocztowca o pulę numerków i oprę informacje o maile z sello :)

 

Z tą pulą jest właśnie najwygodniej bo masz numery nadania w Sello i jakby klient dzwonił to masz wszystko w jednym miejscu - w Sello.

Link to postu

No właśnie, a wszystkie problemy można by tak fajnie rozwiązać gdyby tylko Sello...

 

Eeeee, nie ma co narzekać  ;D

Nie znasz czasów jak w Sello nie było auto-kopiowania danych z FOD'ów, eksportu i wiele innych rzeczy :) Najstarsi forumowicze mogliby Ci napisać jak zaczynali :) Właściwie ci co teraz zaczynają to mogą sobie lepiej wszystko dopasować i zautomatyzować pracę jak ci co zaczynali parę lat temu i nie dostosowywali się na bieżąco do wprowadzanych zmian . Sello naprawdę się zmieniło w ciągu ostatnich kilku lat na DUŻY plus. Co nie znaczy, że nie ma braków ;) - dla mnie najważniejsze to:

-dodatkowe tagi w towarach,

-aktualizacja tych i innych tagów przy ponownym wystawianiu aukcji,

-auto-ponowne wystawianie aukcji.

Każdy forumowicz mógłby zrobić taką listę dla siebie :)

Rozumiem Ciebie i to co piszesz oraz popieram w 100-u procentach, tyle że trzeba się dostosować do sytuacji, nie da się wszystkiego zrobić naraz :(

 

Trzeba spojrzeć na Sello jak na biznes - coś tak jak każdy z nas patrzy na swoją działalność. Niby pasowałoby zrobić milion rzeczy i drugi milion rzeczy nie działa tak jak mógłby działać - ale nikt z nas nie jest w stanie w 100-u procentach wszystkiego ustawić tak żeby było jak chcielibyśmy. Zwłaszcza przy tych ciągłych zmianach - kłodach o których pisał Bartek. Dlatego trzeba dostosować się tak żeby działało w prawie 100-u procentach i wykonywać co się da obejściami (np. transformatami). Również z tego samego powodu część rzeczy muszę robić sam i dokupywać rozwiązania partnerskie, a lobbować na ważne projekty, których bez Team Sello nie dam rady zrobić/obejść ;)

 

Zapewne tak jak Ty, uważam, że Sello powinno być doinwestowane i mogłoby stać się monopolistą do obsługi aukcji i wysyłek no ale to kwestia zarządu Insertu i tego jak patrzy na Sello.

Dobra, a teraz odpowiadając na Twoje pytania żeby nie robić offtopu :)

1. Obsługa EN przez WebApi podejrzewam, że sprowadzałaby się do tego samego co import przez xml'a - jeśli nie można przez import przekazać pewnych pól to i przez WebApi zapewne się nie da.

2. Co do wątku - każdy z nas stosuje swoje rozwiązania więc nie wiem czy dałoby się uwzględnić potrzeby każdego z nas czy to przez transformatę czy WebApi poczty polskiej.

3. Integracja z KEX też nie jest mi potrzebna co nie znaczy, że innym również - znowu kwestia popatrzenia na Sello jak na biznes - KEX zapewne przyszedł i zapłacił więc jest integracja ;) Niestety kosztem innych funkcjonalności :(

4. Transformata łączna do poczty polskiej, którą udostępniłem - u mnie kompletnie załatwia sprawę obsługi poczty polskiej więc nie wydaje mi się żeby integracja przez WebApi była potrzebna lub ważniejsza niż sprawy, których nie da się obejść transformatą ;)

Raczej kwestia dostosowania tych transformat pod siebie – jak byś miał z czymś problemy to pisz – jak będę umiał to Ci zawsze pomogę :) Tak ja wyżej napisałem – u mnie nie ma już co robić z pocztą polską - sprawa załatwiona. To co dawniej trwało kilka godzin teraz zajmuje sekundy :) Mi się udało zrobić łączną transformatę to i Tobie się uda – a zaoszczędzony czas przeznaczymy na pisanie na forum  :D :D :D

 

No i widzisz - zrobiłem sobie przerwę na forum Sello :)

Bo niby niedziela - a ja znowu tracę czas na ponowne wystawianie zakończonych wczoraj aukcji, sprawdzanie ilości i ręczne wprowadzanie poprawek bo się zmieniła specyfikacja techniczna produktów  - a mogłoby się to robić automatycznie :(

Ale już niedługo, oby niedługo :)

Link to postu

1. Czyli jeśli dla biznesówek podamy maila i telefon komórkowy to powiadomienie wyśle się i na maila i na komórkę?

 

Tak, pójdzie mail i sms, obie opcje są bezpłatne, mail jest o tyle fajny, że od razu z linkiem do sledzenia. No ale nie chcą się maile importować :)

 

2. Czy dla przesyłek poleconych powiadomienie mailowe jest płatne?

3. Czy dla przesyłek poleconych powiadomienie na komórkę jest płatne?

 

Maile dla poleconych sa bezpłatne, telefon nie wiem, bo jak napisałem jest zawarty w polu opis, więc powiadomienie sms odnośnie poleconych nie idzie do klienta, tel tylko dla roznosiciela, jakby mu się umyśliło, że zadzwoni :)

 

Link to postu

 

Dobra, a teraz odpowiadając na Twoje pytania żeby nie robić offtopu :)

1. Obsługa EN przez WebApi podejrzewam, że sprowadzałaby się do tego samego co import przez xml'a - jeśli nie można przez import przekazać pewnych pól to i przez WebApi zapewne się nie da.

 

He, no tak, pewnie przez API da się zrobić to samo co przez transformaty, z tym że:

-jest to łatwe dla użytkownika, bo obsługiwane przez interfejs Sello. A tworzenie transformat nie jest łatwe, i prawdę mówiąc, gdyby nie Ty i nie paru innych Wolontariuszy, którzy byli tak mili, że się podzielili wiedzą, to cała reszta siedziałaby w ciemnej d....dziurze.

 

-jest wygodniejsze - jeden klik i mamy wyeksportowane paczki wraz z przeniesieniem numerów nadawczych do Sello, bez potrzeby posługiwania się plikami przejściowymi i własnymi numerami nadawczymi, o które trzeba prosić pocztę i tłumaczyć PH, po co Ci one, "bo przecież EN sam nadaje numery".

 

-obsługiwałoby gabaryty kuriera48, czego przez transformatę automatycznie zrobić się nie da.

 

-no i w końcu obecna wersja przez transformaty, to niezła partyzantka w stylu Linuxa - "wszystko można", wystarczy poświęcić temu parę tygodni, podczas gdy w Windowsie jest to na dzień dobry :P

Obliczałeś ile czasu zajęło Ci doprowadzenie transformat do używalności ?  ;D

Nawet aby przerobić tą Twoją transformatę, aby u mnie działała potrzeba dużo czasu.

 

Ja rozumiem, że nie ma integracji z takimi API jak sendit czy furgonetka, czy inne, bo to są rozwiązania jakich setki, i nie można zintegrować wszystkiego.

Jednakże na moją logikę Poczta Polska to powinien być priorytet (prioritaire).

Zwłaszcza, że temat jest bardzo popularny i każdy nowy użytkownik trafia na tą ścianę.

A zaraz potem na drugą - dlaczego nie ma GUID  ;D

 

::)

 

No, to pogadalim, to teraz jazda targać te worki :P :P :P

Link to postu

Dołącz do dyskusji

Możesz dodać zawartość już teraz a zarejestrować się później. Jeśli posiadasz już konto, zaloguj się aby dodać zawartość za jego pomocą.
Uwaga: Twój wpis zanim będzie widoczny, będzie wymagał zatwierdzenia moderatora.

Użytkownik forum
Odpowiedz...

×   Wklejono zawartość z formatowaniem.   Usuń formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Odnośnik został automatycznie osadzony.   Przywróć wyświetlanie jako odnośnik

×   Przywrócono poprzednią zawartość.   Wyczyść edytor

×   Nie możesz bezpośrednio wkleić grafiki. Dodaj lub załącz grafiki z adresu URL.

×
×
  • Dodaj nową pozycję...