Skocz do zawartości

Transformata do Paczka w Ruchu

Polecane posty

Witam

nigdzie nie mogę znaleźć takiego wątku. Czy może ktoś wie jak napisać taką transformatę.

Dane do exportu w csv do Paczka w Ruchu to:

OrderID;DestinationCode;PSD;EMail;FirstName;LastName;CompanyName;StreetName;BuildingNumber;FlatNumber;City;PostCode;PhoneNumber

123123;9999-9999-89-98;123456;odbiorca@adres.pl;O_Imie;O_nazwisko;;;;;;;999888777

Link to postu
  • 2 tygodnie później...

W Sello nie ma niestety takich dodatkowych pól na poziomie paczki, ale od wersji 1.18 udostępnimy w eksporcie pole z notatkami, aby za pomocą transformaty można było sięgać do danych tam umieszczonych. Adres punktu odbioru jest przenoszony w Sello z formularza do notatek przy kopiowaniu adresu wysyłki. Niestety z tego co wiedzę numer PSD nie jest zwracany z Allegro. Drugi numer jest i powinien znaleźć się w notatce w postaci:

 

PACZKA w RUCHu: 9305-0927-73-17

 

Za pomocą transformaty trzeba by zatem znaleźć w notatkach wiersz zaczynający się od "PACZKA w RUCHu:" i pobrać resztę tego wiersza jako DestinationCode.

Link to postu
  • 1 miesiąc temu...

Witam, czy coś się zmieniło w temacie? Jakieś postępy?

 

Bartku, wspominasz ze nr PSD nie jest zwracany. Rozumiem, że masz na myśli API Allegro?

W mailach podsumowujących transakcję ten numer jest widoczny. Nie da się jakoś do niego dobrać?

 

W jaki sposób odnieść się do notatki i odnaleźć szukany wiersz?

 

I ostatnie, skąd wziąć OrderID? Chyba nie są to kolejne numery porządkowe? (1,2,3 itd)

Link to postu
  • 1 rok później...

Paczka w Ruchu niedawno została zintegrowana z Sello, dzięki aplikacji Y.Shipping (www.shipping.yosi.pl)

 

Y.Shipping generuje automatycznie listy kurierskie z Sello do  InPost, InPost Kurier, Inpost Polecony, Inpost Allegro, DHL, DHL Express, DHL Parcelshop, DPD, Siódemka, UPS, GLS, Fedex, Poczta Polska, Schenker, K-EX, JAS-FBG, TBA Express, Paczka w Ruchu.

 

W Sello na dokumencie transakcyjnym zostaje zapisany numer listu przewozowego.

Link to postu
  • 1 miesiąc temu...
  • 5 miesięcy temu...

Odświeżam temat.

Programu  Y.Shipping (www.shipping.yosi.pl) nawet nie da się pobrać ze strony, a nawet jeśli, to jest drogi jak na wdrożenie tylko paczki w ruchu.

Zresztą do systemu paczki w ruchu trzeba i tak ręcznie wgyrwać plik, więc całkowicie się tego nie zautomtyzuje.

 

Kwestia tylko napisania eksportu danych z sello do paczki w ruchu.

Pytanie jak pisać taki eksport, gdzie dane ?

 

Jestem zainteresowany zleceniem napisania takej transformaty.

mail brat@brat.pl

Link to postu

 

Kwestia tylko napisania eksportu danych z sello do paczki w ruchu.

Pytanie jak pisać taki eksport, gdzie dane ?

 

Jestem zainteresowany zleceniem napisania takej transformaty.

mail brat@brat.pl

 

Aby napisać transformatę należy zapoznać się z XML i transformacjami XSLT.

 

Źródłowymi danymi do przekształceń są dane otrzymane w wyniku eksportu paczek "XML (domyślny format z klientami)".

 

Powstanie plik, zawierający wszystkie dane, które można wykorzystać w swoich transformacjach.

 

Następnie, opierając się na strukturze tego pliku należy napisać transformację XSLT dającą w wyniku dane akceptowane przez odbiorcę, czyli np. system Pczki w Ruchu.

 

Schemat tych danych wynikowych należy uzyskać u ich źródła czyli od Paczki w Ruchu.

 

Gdy transformacja XSLT jest już gotowa, wystarczy ją wkleić do Sello do Słowników->Eksport Danych.

 

 

Jeżeli nie znasz się na transformacjach XSLT, możesz poczytać nasze forum, gdzie są przykłady działających realizacji, zwracających zarówno dane w formacie XML jak i CSV.

 

Szczegóły znajdziesz na Liście porad.

 

Jeżeli chcesz wynająć kogoś do tego celu, z powodzeniem może to być student informatyki, nie musi znać Sello.

 

Wystarczy, że dasz mu podstawowy eksport z Sello, o którym pisałem powyżej zawierający kilka przykładowych paczek i poprosisz o napisanie transformacji XSLT do wskazanego formatu wynikowego.

 

Popytaj na oferii, jestem pewien, że ktoś się znajdzie.

Link to postu
  • 4 miesiące temu...

ok już sobie poradziłem.

 

Poniżej transformata Paczka w Ruchu.

Uwaga, na razie nie jest przetestowana poza importem do Ruch-u. Nie sprawdzone pobranie!

 

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

<xsl:output method="text" encoding="utf-8" />

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

<xsl:text> OrderID;DestinationCode;PSD;EMail;FirstName;LastName;CompanyName;StreetName;BuildingNumber;FlatNumber;City;PostCode;PhoneNumber;CashOnDelivery;CashOnDeliveryValue;TransferDescription;Insurance;InsuranceValue

</xsl:text>

        <!--OrderID-->

        <xsl:value-of select="s:Package/@PackageID"/>

        <xsl:text>;</xsl:text>

        <!--DestinationCode-->   

        <!--<xsl:value-of select="s:Package/s:Notes/s:Note/s:Content"/>-->       

<xsl:value-of select="substring(substring-after(s:Package/s:Notes/s:Note/s:Content, 'PACZKA w RUCHu: '), 1, 15)"/>

        <xsl:text>;</xsl:text>

        <!--PSD-->

        <xsl:text>;</xsl:text>

        <!--EMail-->

        <xsl:value-of select="s:Package/s:DeliveryAddress/s:Email"/>

        <xsl:text>;</xsl:text>

        <!--FirstName  -->

        <xsl:value-of select="substring-before(s:Package/s:DeliveryAddress/s:Name, ' ')"/>

        <xsl:text>;</xsl:text>

        <!-- LastName -->

<xsl:value-of select="substring-after(s:Package/s:DeliveryAddress/s:Name, ' ')"/>

        <xsl:text>;</xsl:text>

        <!--CompanyName-->

        <xsl:choose>

            <xsl:when test="s:Package/s:DeliveryAddress/s:Company!=''">

                <xsl:value-of select="s:Package/s:DeliveryAddress/s:Company"/>

            </xsl:when>

            <xsl:otherwise>

                <xsl:value-of select="s:Package/s:DeliveryAddress/s:Name"/>

            </xsl:otherwise>

        </xsl:choose>

        <xsl:text>;</xsl:text>

        <!--StreetName  -->

        <xsl:value-of select="s:Package/s:DeliveryAddress/s:Street"/>

        <xsl:text>;</xsl:text>

        <!--BuildingNumber  -->

        <xsl:value-of select="s:Package/s:DeliveryAddress/s:HouseNumber"/>

        <xsl:text>;</xsl:text>

        <!--FlatNumber  -->

        <xsl:value-of select="s:Package/s:DeliveryAddress/s:FlatNumber"/>

        <xsl:text>;</xsl:text>

        <!-- City -->

        <xsl:value-of select="s:Package/s:DeliveryAddress/s:City"/>

        <xsl:text>;</xsl:text>

        <!-- PostCode -->

        <xsl:value-of select="translate(s:Package/s:DeliveryAddress/s:ZipCode,'- ','')"/>

        <xsl:text>;</xsl:text>

        <!-- PhoneNumber -->

        <xsl:value-of select="s:Package/s:DeliveryAddress/s:PhoneNumber"/>

        <xsl:text>;</xsl:text>

 

<xsl:if test="s:Package/s:DeliveryMethod/s:IsPayOnDelivery=1">                       

            <xsl:text>1</xsl:text>

        </xsl:if>

        <!-- CashOnDelivery -->

        <xsl:text>;</xsl:text>

        <!-- CashOnDeliveryValue -->

<xsl:if test="s:Package/s:DeliveryMethod/s:IsPayOnDelivery=1">               

          <xsl:if test="s:Charge">             

            <xsl:value-of select="round(number(s:Charge)*100)"/>       

          </xsl:if>

        </xsl:if>

        <xsl:text>;</xsl:text>

        <!-- TransferDescription -->

<xsl:if test="s:Package/s:DeliveryMethod/s:IsPayOnDelivery=1">               

  <xsl:text>Pobranie RUCH allegro nick:</xsl:text>

  <xsl:value-of select="s:Package/s:Customer/s:Nick"/>

</xsl:if>

        <xsl:text>;</xsl:text>

        <!-- Insurance -->

        <xsl:text>;</xsl:text>

        <!-- InsuranceValue -->

</xsl:template>

</xsl:stylesheet>

Link to postu
  • 2 tygodnie później...
  • 3 tygodnie później...

Mi osobiście strasznie topornie się w tym xslt pisało i zrezygnowałem.

 

Po głębszych przemyśleniach wysunąłem następujące wnioski:

 

xslt dla paczki w ruchu średnio się nadaje!

 

  • Średnio się nadaje dlatego, że ich import CSV wygląda na napisany autorsko (:D), obsługuje tylko przecinki. Kto bawił się z CSV to wie co robić gdy w stringu jest znak delimitera ;) -  tu jest to ... pomijane
  • kiepsko napisany importer oznacza, że w najbliższym czasie będzie pewnie zmiana i BC
  • Brak dokumentacji sprawia, że muszę się poruszać po omacku. Nie wiem na jakie znaki sobie pozwolić, a na jakie nie.
  • Żelazna zasada mówi, aby nie pokazywać błędów na produkcji. Spoko, tylko może warto by podać chociażby kod błędu? Ale tu dostajemy tylko informacje o błędzie i klasyczny tekst: "Administrator został powiadomiony" :D

 

 

 

Napisanie takiej transformaty mija się trochę z celem dopóki nie wyjdzie coś stabilnego.

Kolejne pytanie to.. dlaczego nie mogą po prostu pozwolić ludziom importować w JSON / yaml ?

(Oszczędziłbym jakieś ~100 linii kodu) (Sello też mogłoby mieć taką opcje, xml'e to taki 2009 rok :D)

 

Ja zastosowałem takie rozwiązanie:

Prosty skrypcik w pythonie ( wersja obojętna 2 lub 3.5) i użyłem biblioteki:

xml.etree i modułu ElementTree. Operuje na domyślnie wygenerowanym pliku xml z Sello i poruszam się xpathem. (Proste wygodne itd.)

 

Uwaga: Trzeba zmieniać kodowanie z UTF-16le na UTF-8 :D

 

i bibliotekę csv.

 

Wygenerowany plik z paczkami przeciągam na skrypt i dostaję csv z ładnie wygenerowanymi danymi które paczka w ruchu akceptuje.

W przypadku zmiany api, zmieniam tylko odpowiedni moduł i całość śmiga dalej.

 

 

Polecam, jeżeli zabawa z xslt Wam nie leży.

 

 

Link to postu

Sello eksportuje do XMLa z dwóch powodów:

1. XML jest wspierany bezpośrednio przez SQL Server

2. XML można przetwarzać za pomocą XSLT w cokolwiek innego (inny XML, CSV, TXT, czy nawet do JSONa ;) )

 

JSON do Sello powoli wkracza, póki co wykorzystywany jest przez niektóre wewnętrzne mechanizmy.

Link to postu

"odpowiedniej transformaty"   :o 

To czekam, aż się taka pojawi. :->

 

Dla mnie to trochę jak:

http://i.imgur.com/INBvStO.png

 

Ale już nie zaśmiecam wątku.

Mam nadzieję, że nakierowałem trochę "na około" jak można to rozwiązać w prosty i przyjazny sposób.

 

 

 

 

Możesz wrzucić tutaj i opisać w kilku słowach - wymieniamy się ważnymi pozycjami książkowymi :D

Link to postu
  • 2 miesiące temu...
  • 4 tygodnie później...

Witam

Mam pytanie czy ktoś z tej zamieszczonej parę wpisów wyżej w tym wątku transformaty kiedykolwiek skorzystał? bo ja właśnie próbuję i jest brzydko mówiąc - kupa. dostaje komunikat że eksport został przeprowadzony pomyslnie - ale nie ma pliku! wszystkie pliki xml wyeksportowane z sello zapisują mi się w domyślnym katalogu C:\sello_Eksport W tym wypadku żaden plik się nie tworzy. Nie umiem znaleźć nic w samym kodzie transformaty. z reszta szukając na czuja bez odpowiedniej wiedzy wątpię żebym coś sam znalazł. Ale jeśli komuś ona działała to przynajmniej miałbym pewnośc że to nie kwestia kodu tylko coś z moim sello czy kompem jest nie tak

Link to postu

dostaje komunikat że eksport został przeprowadzony pomyslnie - ale nie ma pliku! wszystkie pliki xml wyeksportowane z sello zapisują mi się w domyślnym katalogu C:\sello_Eksport W tym wypadku żaden plik się nie tworzy. Nie umiem znaleźć nic w samym kodzie transformaty. z reszta szukając na czuja bez odpowiedniej wiedzy wątpię żebym coś sam znalazł.

 

Do PwR plik wynikowy to csv więc xml-a tam nie szukaj.

Link to postu

A jakakolwiek inna działa? Np domyślny eksport do tej samej skopiowanej ścieżki?

oczywiście. Regularnie używam eksportu paczek Poczty - Pocztex Kurier 48 (plik pobrany z tego forum kilka lat temu - jeszcze wtedy przesyłka biznesowa to się nazywało.) I śmiga bez problemu codziennie Tylko ta transformata z tego wątku nie daje u mnie w efekcie nic - albo zapisuje plik gdzieś indziej. Ale jeśli tak to nie wiem gdzie - windowsowa szukajka mi go na dysku nie znajduje.

Link to postu

 

Do PwR plik wynikowy to csv więc xml-a tam nie szukaj.

 

Ale ten csv powinien wylądować ostatecznie w tym samym folderze do którego sello domyślnie eksportuje xml'e ? Bo sęk w tym że u mnie tam konkretnie nie tworzy się żaden plik. Gdybym znalazł tam po eksporcie cokolwiek bez względu na rozszerzenie to bym tu nie siał paniki :)

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ę...