Skocz do zawartości

Polecony E-commerce InPost import z pliku

Polecane posty

Czy ktoś wie, czy w Menedżerze paczek można zaimportować polecone z pliku ?

 

Bo kombinuję, ale chyba da się importować tylko paczkomaty. ???

W managerze nie piszą o tym. Jedynie tu:

https://b2b.paczkomaty.pl/pl/e-commerce-polecony

że można przesyłać przez api paczkomatów.

 

Kolejna integracja w kolejce dla ST? Przy okazji jeśli będą robić paczkomaty/listy/kuriera allegro.

Link to postu
  • 7 miesięcy temu...

tam jest tam coś takiego ale nie wiem jak to przerobić by eksporcie danych w oknie tranmsformata wpisać poprawny ciąg by prawidłowo utworzyło mi plik

 

e-mail;telefon;rozmiar;paczkomat;numer_referencyjny;ubezpieczenie;za_pobraniem;imie_i_nazwisko;ulica;kod_pocztowy;miejscowosc;typ_przesylki

jan.kowalski@inpost.pl;500300100;A;KRA128;MY_SHOP#1234;10;50;Jan Kowalski;ul. Klonowa 5;43-300;Bielsko-Biała;e-commerce

jan.kowalski@inpost.pl;500300100;A;KRA128;MY_SHOP#1234;10;50;Jan Kowalski;ul. Klonowa 5;43-300;Bielsko-Biała;kurier

jan.kowalski@inpost.pl;500300100;A;KRA128;MY_SHOP#1234;10;50;;;;;paczkomaty

anna.nowak@inpost.pl;500700900;B;;MOJ_SKLEP#2345;;;Anna Nowak;ul. Klonowa 5;43-300;Bielsko-Biała

anna.nowak@inpost.pl;500700900;B;WAW350;MOJ_SKLEP#2345;20;100     

Link to postu

tam jest tam coś takiego ale nie wiem jak to przerobić by eksporcie danych w oknie tranmsformata wpisać poprawny ciąg by prawidłowo utworzyło mi plik

 

e-mail;telefon;rozmiar;paczkomat;numer_referencyjny;ubezpieczenie;za_pobraniem;imie_i_nazwisko;ulica;kod_pocztowy;miejscowosc;typ_przesylki

jan.kowalski@inpost.pl;500300100;A;KRA128;MY_SHOP#1234;10;50;Jan Kowalski;ul. Klonowa 5;43-300;Bielsko-Biała;e-commerce

jan.kowalski@inpost.pl;500300100;A;KRA128;MY_SHOP#1234;10;50;Jan Kowalski;ul. Klonowa 5;43-300;Bielsko-Biała;kurier

jan.kowalski@inpost.pl;500300100;A;KRA128;MY_SHOP#1234;10;50;;;;;paczkomaty

anna.nowak@inpost.pl;500700900;B;;MOJ_SKLEP#2345;;;Anna Nowak;ul. Klonowa 5;43-300;Bielsko-Biała

anna.nowak@inpost.pl;500700900;B;WAW350;MOJ_SKLEP#2345;20;100     

 

Chyba nikt na razie czegoś takiego nie opracował...

Link to postu

Jest w słowniku eksportów transformata przykładowa do CSV, to można zrobić na podobnej zasadzie. Można w niej podpatrzyć jak utworzyć plik o takiej strukturze.

 

Natomiast informację o tym, skąd wziąć konkretne pola można uzyskać eksportując paczki/klientów za pomocą domyślnej transformaty do XML. Sello wygeneruje wtedy plik XML ze wszystkimi polami jakie są eksportowane - będzie tam widać ich nazwy itp, które następnie można użyć w transformacie CSV.

 

Link to postu

witam

 

i jak Ks. Robak odpisali

poszukuje właśnie takiej transformatki na E-commerce InPost jeśli ktoś posiada byłbym wdzięczny

 

 

 

 

Tak, odpisali, że z radością informują, że na ich stronie jest plik przykładowy jak to zrobić ::)

 

Dałem sobie spokój, bo E-commerce Poczty Polskiej był w bardziej konkurencyjnej cenie, a do tego już transformatę mam.

 

Teraz po podwyżkach nadal się trzymam PP, bo jednak jest pewniejsza i mniej klientów wydziera się na mnie ;D

Link to postu

tak wiem p Bartku

Jest w słowniku eksportów transformata przykładowa do CSV, to można zrobić na podobnej zasadzie. Można w niej podpatrzyć jak utworzyć plik o takiej strukturze.

 

Natomiast informację o tym, skąd wziąć konkretne pola można uzyskać eksportując paczki/klientów za pomocą domyślnej transformaty do XML. Sello wygeneruje wtedy plik XML ze wszystkimi polami jakie są eksportowane - będzie tam widać ich nazwy itp, które następnie można użyć w transformacie CSV.

 

 

lecz żeby to zrobić to trochę trzeba się znać próbowałem jedynie to co mi wychodziło to potrafiłem zmienić kolejność wymaganych pól

dlamnie i talk nie lada wyzwaniem była zmiana "kosmetyczna" transformatki do EN

 

https://forum.sello.pl/index.php?topic=9014.0

 

tu należ się wielkie podziękowania dla e-kupowanie_pl za pomoc i wsparcie

 

na razie będę kopiował ręcznie potem zobaczymy jak to wyjdzie

jakby ktoś miał gotowca do E-commerce Polecony InPost to byłbym wdzięczy za podesłanie

 

Link to postu

W załączonym pliku można dokonać kilku ustawień, między innymi określić nazwę dostawy Sello, która odpowiada przesyłkom e-commerce. Wszystkie parametry opisane są komentarzami.

Jeśli nazwa przesyłki zostanie wpisana (z uwzględnieniem wielkości liter) wtedy można zaznaczyć całą listę paczek i transformata wybierze do eksportu tylko te, które mają ustawioną wskazaną nazwę dostawy. Jeśli nazwa pozostanie pusta, to wyeksportowane zostaną wszystkie zaznaczone paczki w Sello.

 

Zawartość pliku należy oczywiście wkleić do nowej transformaty utworzonej w słowniku typów eksportu, określić jej nazwę według własnych preferencji i ustawić jako aktywną (ewentualnie domyślnie zaznaczoną).

 

Gdyby wystąpiły jakieś problemy z plikiem to proszę dać znać. Nie był on jakoś szczególnie testowany.

 

Smacznego :)

InPost_e-commerce.zip

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

@Bartosz Rosa Coś chyba jest nie tak z załącznikiem. Wygląda jakby był nie z tego wątku.Mógłbyś to zweryfikować i przesłać poprawny?

 

Walczę z tym od wczoraj i już jakoś to wygląda po eksporcie, ale jeszcze nie wszystko działa.

 

<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:strip-space elements="*" />
  <xsl:variable name="comma">;</xsl:variable>
 <xsl:variable name="gabaryt">A</xsl:variable>
 <xsl:variable name="ubezpieczenie">0</xsl:variable>
  
  <xsl:template match="/">
    <xsl:text>e-mail;telefon;rozmiar;paczkomat;numer_referencyjny;ubezpieczenie;za_pobraniem;imie_i_nazwisko;nazwa_firmy;ulica;kod_pocztowy;miejscowosc;typ_przesylki</xsl:text>
    <xsl:text>&#xa;</xsl:text>
    <xsl:apply-templates select="s:ExportData/s:Customer" />
  </xsl:template>
  
  <xsl:template match="s:Customer"> 
    <xsl:value-of select="s:MainAddress/s:Email"/><xsl:value-of select="$comma"/>
    <xsl:value-of select="s:MainAddress/s:PhoneNumber"/><xsl:value-of select="$comma"/>
    <xsl:value-of select="$gabaryt"/><xsl:value-of select="$comma"/>
    <xsl:value-of select="s:MainAddress/s:Line1"/> <xsl:value-of select="s:DeliveryAddress/s:Line2"/><xsl:value-of select="$comma"/>
    <xsl:value-of select="s:Nick"/><xsl:value-of select="$comma"/>
    <xsl:value-of select="$ubezpieczenie"/><xsl:value-of select="$comma"/>
    <xsl:value-of select="s:Charge"/><xsl:value-of select="$comma"/>
    <xsl:value-of select="s:Name"/><xsl:value-of select="$comma"/>
    <xsl:value-of select="s:MainAddress/s:Company"/><xsl:value-of select="$comma"/>
    <xsl:value-of select="s:MainAddress/s:Line1"/> <xsl:value-of select="s:DeliveryAddress/s:Line2"/><xsl:value-of select="$comma"/>
    <xsl:value-of select="s:MainAddress/s:ZipCode"/><xsl:value-of select="$comma"/>
    <xsl:value-of select="s:MainAddress/s:City"/><xsl:value-of select="$comma"/>
    <xsl:value-of select="s:DeliveryMethod/s:DeliveryName"/><xsl:value-of select="$comma"/>

    <xsl:text>&#xa;</xsl:text>
  </xsl:template>
</xsl:stylesheet>

 

Dałem na sztywno gabaryt A, bo nie wiem jak to ustawić. Adres chciałem zmienić z main na delivery ale wtedy nic nie pokazuję, coś mi po głowie chodzi, że trzeba to jakoś inaczej wpisać patrząc na drzewo w pliku XML wydaje mi się, że gdzieś powinno znaleźć się wyrażenie package, które jest nad delivery. Widzę, że tutaj jest jakby odwołanie do customer (  <xsl:template match="s:Customer"> ).

Wartość pobrania to chyba charge, ale też niestety nie wyświetla.

Czy muszę w sposobach wysyłki zmienić na paczkomaty i kurier, żeby manager inpostu odczytał właściwie dane z pliku? Wcześniej miałem to bardziej rozpisane i była informacja czy pobranie czy nie, ale nie wiem jak tutaj zrobić jakieś zmienne.

 

Może ktoś bardziej kumaty ode mnie rzuci na to okiem i coś podpowie?

 

Z góry dzięki, bo już trochę czasu mi to zajęło, a jeszczę planuję zrobić transformatę do EN, więc nie wiem czy mi życia wystarczy w tym tempie:P

Link to postu

Podczas migracji starego forum część załączników się "popsuła" i przywracać je trzeba ręcznie dla każdego postu. Już poprawiony.

W przykładnie powyżej jest s:Customer, bo to jest transformata do eksportu klientów. Dla paczek musi być s:Package jak słusznie zauważyłeś.

  • Dziękuję 1
Link to postu

@Bartosz Rosa Zrobiłem mały mix Twojego i mojego kodu i działa.

Poniżej wklejam całość. Może się komuś przyda.

<?xml version="1.0" encoding="utf-8"?>
<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:output method="text" indent="yes"/>
  <xsl:strip-space elements="*" />
  
  <!-- Dane poniżej można modyfikować =============================================== -->
  
  <!--separator danych, domyślnie TAB ('	')| średnik (';') | przecinek (',') -->
<xsl:variable name="comma">;</xsl:variable>  
  
  <!--rozmiar, domyślnie D -->
  <xsl:variable name="rozmiar">A</xsl:variable>       
  
  <!-- kwota ubezpieczenia, domyślnie 10 -->
  <xsl:variable name="ubezpieczenie">0</xsl:variable>  
  
  <!-- typ przesyłki, domyślnie e-commerce | kurier | paczkomaty -->
  <xsl:variable name="typ_przesylki">kurier</xsl:variable>  
  
  <!-- nazwa dostawy Sello, która ma być eksportowana, ważna wielkość liter, gdy pole puste to eksportowane będą wszystkie zaznaczone -->
  <xsl:variable name="dostawa_sello"></xsl:variable>  
  
  <!-- Dane powyżej można modyfikować =============================================== -->
  
  <xsl:template match="/">
    <xsl:text>e-mail</xsl:text><xsl:value-of select="$comma"/>
    <xsl:text>telefon</xsl:text><xsl:value-of select="$comma"/>
    <xsl:text>rozmiar</xsl:text><xsl:value-of select="$comma"/>
    <xsl:text>paczkomat</xsl:text><xsl:value-of select="$comma"/>
    <xsl:text>numer_referencyjny</xsl:text><xsl:value-of select="$comma"/>
    <xsl:text>ubezpieczenie</xsl:text><xsl:value-of select="$comma"/>
    <xsl:text>za_pobraniem</xsl:text><xsl:value-of select="$comma"/>
    <xsl:text>imie_i_nazwisko</xsl:text><xsl:value-of select="$comma"/>
    <xsl:text>nazwa_firmy</xsl:text><xsl:value-of select="$comma"/>
    <xsl:text>ulica</xsl:text><xsl:value-of select="$comma"/>
    <xsl:text>kod_pocztowy</xsl:text><xsl:value-of select="$comma"/>
    <xsl:text>miejscowosc</xsl:text><xsl:value-of select="$comma"/>
    <xsl:text>typ_przesylki</xsl:text>
    <xsl:text>
</xsl:text>
    <xsl:choose>
      <xsl:when test="$dostawa_sello = ''">
        <xsl:apply-templates select="s:ExportData/s:Package" />
      </xsl:when>
      <xsl:otherwise>
        <xsl:apply-templates select="s:ExportData/s:Package[s:DeliveryMethod/s:DeliveryName=$dostawa_sello]" />
      </xsl:otherwise>
    </xsl:choose>   
  </xsl:template>
  
  <xsl:template match="s:Package"> 
    <xsl:value-of select="s:DeliveryAddress/s:Email"/><xsl:value-of select="$comma"/>
    <xsl:value-of select="s:DeliveryAddress/s:PhoneNumber"/><xsl:value-of select="$comma"/>
    <xsl:value-of select="$rozmiar"/><xsl:value-of select="$comma"/>
    <xsl:value-of select="$comma"/>
    <xsl:value-of select="s:DeliveryAddress/s:Name"/><xsl:value-of select="$comma"/>
    <xsl:value-of select="ubezpieczenie"/><xsl:value-of select="$comma"/>
    <xsl:if test="s:IsPayOnDelivery = 1"><xsl:value-of select="s:Charge"/></xsl:if><xsl:value-of select="$comma"/>
    <xsl:value-of select="s:DeliveryAddress/s:Name"/><xsl:value-of select="$comma"/>
    <xsl:value-of select="s:DeliveryAddress/s:Company"/><xsl:value-of select="$comma"/>
    <xsl:value-of select="s:DeliveryAddress/s:Line1"/> <xsl:value-of select="s:DeliveryAddress/s:Line2"/><xsl:value-of select="$comma"/>
    <xsl:value-of select="s:DeliveryAddress/s:ZipCode"/><xsl:value-of select="$comma"/>
    <xsl:value-of select="s:DeliveryAddress/s:City"/><xsl:value-of select="$comma"/>
    <xsl:value-of select="$typ_przesylki"/><xsl:value-of select="$comma"/>
    <xsl:text>
</xsl:text>
  </xsl:template>
  
</xsl:stylesheet>

 

Próbuję jeszcze zmienić kilka rzeczy dla ułatwienia. 

W mojej transformacie separator ustawiony jest jako średnik, bo tabulator wszystko rozwala.

Próbowałem ustawić tabulator i żeby nie było nagłówków, bo tak szybciej by się wgrywało plik, ale niestety mi nie działa.

 

Kod do separatora robiłem tak:

<!--separator danych, domyślnie TAB ('&#x9;')| średnik (';') | przecinek (',') -->
<xsl:variable name="comma">&#x9;</xsl:variable>  

 

i usuwałem nagłówki, czyli cały kod:

  <xsl:template match="/">
    <xsl:text>e-mail</xsl:text><xsl:value-of select="$comma"/>
    <xsl:text>telefon</xsl:text><xsl:value-of select="$comma"/>
    <xsl:text>rozmiar</xsl:text><xsl:value-of select="$comma"/>
    <xsl:text>paczkomat</xsl:text><xsl:value-of select="$comma"/>
    <xsl:text>numer_referencyjny</xsl:text><xsl:value-of select="$comma"/>
    <xsl:text>ubezpieczenie</xsl:text><xsl:value-of select="$comma"/>
    <xsl:text>za_pobraniem</xsl:text><xsl:value-of select="$comma"/>
    <xsl:text>imie_i_nazwisko</xsl:text><xsl:value-of select="$comma"/>
    <xsl:text>nazwa_firmy</xsl:text><xsl:value-of select="$comma"/>
    <xsl:text>ulica</xsl:text><xsl:value-of select="$comma"/>
    <xsl:text>kod_pocztowy</xsl:text><xsl:value-of select="$comma"/>
    <xsl:text>miejscowosc</xsl:text><xsl:value-of select="$comma"/>
    <xsl:text>typ_przesylki</xsl:text>
    <xsl:text>&#xa;</xsl:text>
    <xsl:choose>
      <xsl:when test="$dostawa_sello = ''">
        <xsl:apply-templates select="s:ExportData/s:Package" />
      </xsl:when>
      <xsl:otherwise>
        <xsl:apply-templates select="s:ExportData/s:Package[s:DeliveryMethod/s:DeliveryName=$dostawa_sello]" />
      </xsl:otherwise>
    </xsl:choose>   
  </xsl:template>

 

Dodatkowo trochę uciążliwe przy pobraniu jest, że kwotę pobrania sello podaje z czterema miejscami po przecinku i później w managerze inpostu trzeba to poprawiać.

Da się to gdzieś zmienić w Sello czy wymaga to już zmiany w programie?

 

Link to postu

A co się dzieje po usunięciu nagłówka?

Możliwe, że trzeba wywołać przetwarzanie xmla pozostawiając

 <xsl:template match="/">
    <xsl:choose>
      <xsl:when test="$dostawa_sello = ''">
        <xsl:apply-templates select="s:ExportData/s:Package" />
      </xsl:when>
      <xsl:otherwise>
        <xsl:apply-templates select="s:ExportData/s:Package[s:DeliveryMethod/s:DeliveryName=$dostawa_sello]" />
      </xsl:otherwise>
    </xsl:choose>   
  </xsl:template> 

Inaczej silnik XSLT prawdopodobnie nie znajduje elementu Package (no bo jest wewnątrz ExportData). Ustawienie template match ="/" powoduje, że ten szablon jest zastosowany do głównego elementu XMLa, który to wewnątrz wywołuje (apply-templates) przetwarzanie szablonu dla elementu Package.

Jeśli chodzi o formatowanie liczb, to https://www.w3schools.com/xml/func_formatnumber.asp

Link to postu

@Bartosz Rosa Nagłówki udało się usunąć tak jak sugerowałeś. 

Ze stosowaniem tabulatora jako separatora chyba nic nie będzie bo pomimo, że w managerze inpostu tabela wygląda na dobrze sformatowaną to później pokazuje, że system nie przypisał sobie numerów kolumn. Wszystkie inne separatory działają prawidłowo.

Kombinowałem z tym zaokrągleniem, ale nie znam kompletnie składki xmla i nie wyszło.

Wrzuciłem taki kod przy pobraniu:

    <xsl:if test="s:IsPayOnDelivery = 1"><xsl:value-of select="format-number("s:Charge", "###,###.00")'/></xsl:if><xsl:value-of select="$comma"/>

Myślałem, że może się uda jak w nagłówku dam po prostu:

<xsl:decimal-format decimal-separator="," grouping-separator="."/>

 

W tej chwili treść działającej transformaty bez nagłówków z separatorem ; i bez zaokrąglania do dwóch miejsc po przecinku wygląda tak:

<?xml version="1.0" encoding="utf-8"?>
<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:output method="text" indent="yes"/>
  <xsl:strip-space elements="*" />
  <!-- Dane poniżej można modyfikować =============================================== -->
  
  <!--separator danych, domyślnie TAB ('&#x9;')| średnik (';') | przecinek (',') -->
<xsl:variable name="comma">;</xsl:variable>  
  
  <!--rozmiar, domyślnie D -->
  <xsl:variable name="rozmiar">A</xsl:variable>       
  
  <!-- kwota ubezpieczenia, domyślnie 10 -->
  <xsl:variable name="ubezpieczenie">0</xsl:variable>  
  
  <!-- typ przesyłki, domyślnie e-commerce | kurier | paczkomaty -->
  <xsl:variable name="typ_przesylki">kurier</xsl:variable>  
  
  <!-- nazwa dostawy Sello, która ma być eksportowana, ważna wielkość liter, gdy pole puste to eksportowane będą wszystkie zaznaczone -->
  <xsl:variable name="dostawa_sello"></xsl:variable>  
  
  <!-- Dane powyżej można modyfikować =============================================== -->
  
  <xsl:template match="/">
    <xsl:choose>
      <xsl:when test="$dostawa_sello = ''">
        <xsl:apply-templates select="s:ExportData/s:Package" />
      </xsl:when>
      <xsl:otherwise>
        <xsl:apply-templates select="s:ExportData/s:Package[s:DeliveryMethod/s:DeliveryName=$dostawa_sello]" />
      </xsl:otherwise>
    </xsl:choose>   
  </xsl:template>
  
  <xsl:template match="s:Package"> 
    <xsl:value-of select="s:DeliveryAddress/s:Email"/><xsl:value-of select="$comma"/>
    <xsl:value-of select="s:DeliveryAddress/s:PhoneNumber"/><xsl:value-of select="$comma"/>
    <xsl:value-of select="$rozmiar"/><xsl:value-of select="$comma"/>
    <xsl:value-of select="$comma"/>
    <xsl:value-of select="s:DeliveryAddress/s:Name"/><xsl:value-of select="$comma"/>
    <xsl:value-of select="ubezpieczenie"/><xsl:value-of select="$comma"/>
    <xsl:if test="s:IsPayOnDelivery = 1"><xsl:value-of select="s:Charge"/></xsl:if><xsl:value-of select="$comma"/>
    <xsl:value-of select="s:DeliveryAddress/s:Name"/><xsl:value-of select="$comma"/>
    <xsl:value-of select="s:DeliveryAddress/s:Company"/><xsl:value-of select="$comma"/>
    <xsl:value-of select="s:DeliveryAddress/s:Line1"/> <xsl:value-of select="s:DeliveryAddress/s:Line2"/><xsl:value-of select="$comma"/>
    <xsl:value-of select="s:DeliveryAddress/s:ZipCode"/><xsl:value-of select="$comma"/>
    <xsl:value-of select="s:DeliveryAddress/s:City"/><xsl:value-of select="$comma"/>
    <xsl:value-of select="$typ_przesylki"/><xsl:value-of select="$comma"/>
    <xsl:text>&#xa;</xsl:text>
  </xsl:template>
  
</xsl:stylesheet>

 

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

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