Autor Wątek: Odbiór w punkcie  (Przeczytany 3977 razy)

kawczpaw

  • Newbie
  • *
  • Wiadomości: 10
Witam,
do Subiekt GT wpływają zamówienia z kanału:
- cenneo (widok przykładowego pola Uwagi: PayU - szybka platność przelewem

Dostawa: Punkty Poczta, Żabka, Orlen, Ruch (płatne z góry)
[Ceneo: 2595_7270] #Punkt odbioru#
Nr punktu odbioru: 294226
Miasto: Pilszcz)
- sklep (widok przykładowego pola Uwagi:Przelew na konto
Do zapłaty: 43.83

Dostawa: Punkty Poczta, Żabka, Orlen, Ruch (płatne z góry)
| Odbiór w punkcie: 764032, Sklep Żabka - Księcia Władysława Opolczyka 17, 92-417 Łódź)

Czy można za pomocą wyrażeń regularnych ustawić w Prostej Paczce aby automatycznie punkty odbioru z tych zamówień przenosiły się na list?

pozdrawiam Paweł

Tomek

  • Administrator
  • Sr. Member
  • *****
  • Wiadomości: 322
Jeśli mamy uwagi w takiej formie:

Dostawa: Punkty Poczta, Żabka, Orlen, Ruch (płatne z góry)
| Odbiór w punkcie: 764032, Sklep Żabka - Księcia Władysława Opolczyka 17, 92-417 Łódź)

Proszę zastosować:
Nazwa: (?<=Odbiór w punkcie: .*, ).*(?= - )
Adres: (?<=Odbiór w punkcie: .* - ).*(?=,)
Kod Pocztowy: (?<=Odbiór w punkcie: .*,.*, ).*(?= )
Miasto: (?<=Odbiór w punkcie: .*,.*, .* ).*(?=\))

kawczpaw

  • Newbie
  • *
  • Wiadomości: 10
dziękuję
czy to zadziała dla obu przypadków, czyli dla sklepu (odbiór w punkcie) i ceneo (Numer punktu odbioru)?

Tomek

  • Administrator
  • Sr. Member
  • *****
  • Wiadomości: 322
Niestety nie - należy sprowadzić zapisywanie przez sklep i przez ceneo do jednej formy. Może ona być inna, niż podana powyżej, ale musi być jedna (np. Dostawa: Nazwa punktu | Kod punktu | Kod pocztowy | Miasto | Ulica [koniec])
Należy też pamiętać, że w uwagach powinien być jeden zapis, ale zakładam, że w uwagach jest albo zapis z ceneo, albo ze sklepu.

kawczpaw

  • Newbie
  • *
  • Wiadomości: 10
ok, dziękuję
obecnie w polu uwagi mam dwie różne formaty pola uwagi zależne od źródła pochodzenia zamówienia.

Tomek

  • Administrator
  • Sr. Member
  • *****
  • Wiadomości: 322
Jest jeszcze jedna możliwość. Dla Kurier 48 można zastosować wyszukiwanie po ID punktu (rozumiem, że wysyłka będzie miała miejsce za pośrednictwem Kurierska 48). W takim przypadku można zastosować wyrażenie:

(?<=Odbiór w punkcie: ).*?(?=,)|(?<=Nr punktu odbioru: ).*?(?=\r|\n|\r\n|\n\r|,)

które wyciągnie ID punktu odbioru i powinno to zadziałać.

Niestety pojawi się inny problem. Musimy znaleźć wyrażenie inicjujące, wspólne dla obu kanałów. W jednym mamy "Odbiór w punkcie:", a w drugim "Nr punktu odbioru:" - część wspólna to "dbi" i taki powinien (w tym przypadku) zostać użyty "Identyfikator punktu odbioru". Niestety taka praktyka spowoduje, że uwagi będą przeszukiwane zawsze, gdy znajdzie się tam "klient odbierze u nas w sklepie", "kurier odbierze to po 16" itp. itd. Może uda się wymusić na obu kanałach wstawienie jakiegoś dodatkowego ciągu znaków, który będzie taki sam w obu przypadkach i będzie mógł służyć za Identyfikator PO? Jeśli nie, proszę pracować na powyższym, regexie ze świadomością, że mogą pojawić się przypadki generujące błędy w nadaniach.

kawczpaw

  • Newbie
  • *
  • Wiadomości: 10
udało nam się ujednolicić i dla obu kanałów w polu będzie część wspólna Uwagi: Nr punktu odbioru: 294226
Wtedy w PP zaznaczymy szukaj po identyfikatorze punktu i jak musiałoby wyglądać wyrażenie?

kawczpaw

  • Newbie
  • *
  • Wiadomości: 10
już działa

dziękuję

Tomek

  • Administrator
  • Sr. Member
  • *****
  • Wiadomości: 322
Czy mogę prosić, jeśli to nie kłopot, o wklejenie swojego wyrażenia? Nasza propozycja, to:

(?<=Nr punktu odbioru: ).*?(?=\r|\n|\r\n|\n\r| )

czyli wybierz wszystko o frazy "Nr punktu odbioru: " do spacji lub końca linii.

kawczpaw

  • Newbie
  • *
  • Wiadomości: 10
użyłem tego wyrażenia
(?<=Nr punktu odbioru: ).*?(?=\r|\n|\r\n|\n\r|,)

Tomek

  • Administrator
  • Sr. Member
  • *****
  • Wiadomości: 322
Czyli od "Nr punktu odbioru: " do końca linii lub przecinka.
Rozumiem, że nie przytrafi się nigdy sytuacja, że za ID punktu będzie coś jeszcze? Jeśli istnieje takie ryzyko, warto jeszcze dodać spację, a więc:

(?<=Nr punktu odbioru: ).*?(?=\r|\n|\r\n|\n\r|,| )

kawczpaw

  • Newbie
  • *
  • Wiadomości: 10
ok
dziękuję

Tomek

  • Administrator
  • Sr. Member
  • *****
  • Wiadomości: 322
Nie ma sprawy!