Błąd Spring Global (Spring Omni): uzyskiwanie pustej odpowiedzi podczas pobierania etykiety

Wystąpił problem podczas próby utworzenia przesyłki (Używanie / wysyłki API) i potem ściągaliśmy etykietę (Używanie / wysyłki / {shipment_id} / API plików). Problem polegał na tym, że otrzymaliśmy pustą odpowiedź. Kiedy sprawdzaliśmy przesyłki na zapleczu, wyglądało to jak na poniższym zrzucie ekranu:

Pusta odpowiedź

Kiedy kliknęliśmy na przesyłkę (ze statusem = „koncepcja”), mamy wiadomość jako „Przesyłka została utworzona, ale nie została jeszcze zarejestrowana u przewoźnika (jeszcze).“

Kiedy zrozumieliśmy koncepcję tego nowego procesu tworzenia przesyłek na wiosnę Omni, dowiadujemy się, że w Spring Global musimy zarejestrować przesyłkę, a nie tylko utworzyć przesyłkę przed pobraniem etykiety odpowiadającej przesyłce. Istnieją dwa możliwe scenariusze rejestracji przesyłki:

  1. Utwórz przesyłkę i jednocześnie zarejestruj się
  2. Utwórz przesyłkę, ale zarejestruj ją w określonym czasie, tj. W przyszłości

1. Aby natychmiast zarejestrować przesyłkę

Wysyłając żądanie utworzenia przesyłki, musimy wysłać „register_at„wartość parametru jako 0 lub czas przeszły (znacznik czasu UNIX) w danych żądania.

{
  "data": {
    "type": "shipments",
    "attributes": {
      "recipient_address": {
        "street_1": "Baker Street",
        "street_2": "Marylebone",
        "street_number": 221,
        "street_number_suffix": "B",
        "postal_code": "NW1 6XE",
        "city": "London",
        "region_code": "ENG",
        "country_code": "GB",
        "first_name": "Sherlock",
        "last_name": "Holmes",
        "company": "Holmes Investigations",
        "email": "s.holmes@holmesinvestigations.com",
        "phone_number": "+31 234 567 890"
      },
      "return_address": {
        "street_1": "Baker Street",
        "street_2": "Marylebone",
        "street_number": 221,
        "street_number_suffix": "B",
        "postal_code": "NW1 6XE",
        "city": "London",
        "region_code": "ENG",
        "country_code": "GB",
        "first_name": "Sherlock",
        "last_name": "Holmes",
        "company": "Holmes Investigations",
        "email": "s.holmes@holmesinvestigations.com",
        "phone_number": "+31 234 567 890"
      },
      "sender_address": {
        "street_1": "Baker Street",
        "street_2": "Marylebone",
        "street_number": 221,
        "street_number_suffix": "B",
        "postal_code": "NW1 6XE",
        "city": "London",
        "region_code": "ENG",
        "country_code": "GB",
        "first_name": "Sherlock",
        "last_name": "Holmes",
        "company": "Holmes Investigations",
        "email": "s.holmes@holmesinvestigations.com",
        "phone_number": "+31 234 567 890"
      },
      "pickup_location": {
        "code": "205604",
        "address": {
          "street_1": "Baker Street",
          "street_2": "Marylebone",
          "street_number": 221,
          "street_number_suffix": "B",
          "postal_code": "NW1 6XE",
          "city": "London",
          "region_code": "ENG",
          "country_code": "GB",
          "first_name": "Sherlock",
          "last_name": "Holmes",
          "company": "Holmes Investigations",
          "email": "s.holmes@holmesinvestigations.com",
          "phone_number": "+31 234 567 890"
        }
      },
      "description": "Order #8008135",
      "physical_properties": {
        "height": 150,
        "width": 300,
        "length": 500,
        "volume": 22.5,
        "weight": 5000
      },
      "items": [
        {
          "sku": "123456789",
          "description": "OnePlus X",
          "item_value": {
            "amount": 995,
            "currency": "EUR"
          },
          "quantity": 2,
          "hs_code": "8517.12.00",
          "origin_country_code": "GB",
          "item_weight": 135
        }
      ],
      "customs": {
        "content_type": "merchandise",
        "invoice_number": "9000",
        "non_delivery": "return",
        "incoterm": "DAP",
        "license_number": "218532158",
        "certificate_number": "12122121"
      },
      "register_at": 0
    },
    "relationships": {
      "service_options": {
        "data": [
          {
            "type": "service-options",
            "id": "4c675b1a-516c-4410-abff-d237fd45bcd0"
          }
        ]
      },
      "shop": {
        "data": {
          "type": "shops",
          "id": "35eddf50-1d84-47a3-8479-6bfda729cd99"
        }
      },
      "service": {
        "data": {
          "type": "services",
          "id": "175a235f-aff5-4e44-87b5-3657b75c1deb"
        }
      },
      "contract": {
        "data": {
          "type": "contracts",
          "id": "2cb32706-5762-4b96-9212-327e6afaeeff"
        }
      }
    }
  }
}

Jeśli wyślemy wartość register_at jako bieżący znacznik czasu, możemy uzyskać pewne opóźnienie w rejestracji przesyłki, So Spring Global zasugerował nam wysłanie wartości register_at jako 0, aby czas był brany pod uwagę w przeszłości, a przesyłka zostanie zarejestrowana tak szybko, jak jak to możliwe. Ponieważ przesyłka zostanie zarejestrowana teraz, nie będziemy mogli jej usunąć / edytować.

2. Zarejestruj przesyłkę w przyszłości

Jeśli chcemy edytować / usunąć przesyłkę po jej utworzeniu, musimy tylko zarejestrować przesyłkę w przyszłości lub w określonym czasie. Aby zarejestrować przesyłkę w przyszłości, powiedzmy po godzinach tworzenia przesyłki przez 5, po prostu podaj wartość „register_at” jako przyszły znacznik czasu wynoszący pięć godzin na podstawie bieżącego czasu. Teraz będziemy mogli edytować / usuwać przesyłkę do godziny 5, ale nie będziemy mogli pobrać etykiety i faktury handlowej. Przy podanym znaczniku czasu przesyłka zostanie automatycznie zarejestrowana i będziemy mogli pobrać etykietę i fakturę handlową po upływie określonego czasu.

Są to więc dwa sposoby rejestracji przesyłki. Możemy korzystać zarówno z naszych wymagań.

Odwiedź tutaj, aby uzyskać powiązane informacje:

Błąd Spring Global (Spring Omni): Wymagana jest właściwość numer_telefonu

Wiosenny manifest omni

Spring Global (Spring Omni) Error: Przesyłka nie jest zarejestrowana

Spring Global (Spring Omni): Koncepcja fakturowania

Spring Global (Spring Omni) Error: Resource Not Found


DHL Problem: Lokalizacja docelowa jest nieprawidłowa. Proszę sprawdzić dane

Podczas rezerwacji przesyłki w DHL za pomocą API (w naszym przypadku krajem dostawy była „Irlandia”), otrzymaliśmy błąd w odpowiedzi na żądanie możliwości. Błąd to „Lokalizacja docelowa jest nieprawidłowa. Proszę sprawdzić dane“.

Rozwiązanie: �

W związku z tym problemem podnieśliśmy mandat na DHL, a oni odpowiedzieli, jak poniżej:

Gdy żądasz możliwości, ważne jest, aby podać kompletne i wysokiej jakości dane adresowe. Niezbędne jest określenie dokładnych informacji o routingu i możliwości dla punktu początkowego i docelowego. Przyczyną błędu mogą być:

  1. Możliwe, że na różnych przedmieściach znajduje się więcej niż jedno miasto o tej samej nazwie. Aby więc uzyskać skuteczną odpowiedź, musimy dodać przedmieścia w adresie docelowym specjalnie dla kraju dostawy „Irlandia”.
  2. W przypadku krajów docelowych, w których nie ma żadnych kodów pocztowych, nazwa miasta musi być napisana poprawnie. Na przykład� w IE nie ma miasta o nazwie NORTH ROAD, rzeczywiste miasto nazywa się M50 NORTH ROAD.

Z tej odpowiedzi nie było jasne, czy sprawdzanie poprawności adresu oznacza, skąd mamy wiedzieć, czy adres jest poprawny, czy nie, czy nazwa miasta jest poprawna, czy nie. Na przykład, jeśli wysyłamy nazwę miasta jako „Co. Dublin” w żądaniu utworzenia przesyłki pojawia się błąd dotyczący nieprawidłowej lokalizacji. Dlatego ponownie podnieśliśmy zgłoszenie, aby dowiedzieć się, w jaki sposób możemy zweryfikować adres, aw odpowiedzi DHL zasugerował narzędzie o nazwie DHL Capability Tool (https://dct.dhl.com/). Wystarczy wpisać adres nadawcy i adres docelowy w formularzu i kliknąć przycisk wyszukiwania, jak pokazano na zrzucie ekranu poniżej:

To narzędzie poda wynik, czy adres jest prawidłowy, czy nie. Więc jeśli otrzymujesz błąd dotyczący lokalizacji, możesz zweryfikować adres za pomocą tego narzędzia możliwości.

5 eCommerce porady i wskazówki, aby zapewnić szybki wzrost

W epoce cyfrowego świata świadomość stała się warunkiem wstępnym dla każdego człowieka, a wszystkie gałęzie przemysłu rozwijają się tak szybko, że nigdy nie wiemy, co staje się modne jak to. Jedną z takich gałęzi przemysłu, która rozrosła się i dzięki Internetowi 4G jest przemysł eCommerce. Dla tych, którzy nie są tego świadomi, branża eCommerce jest jedną z najszybciej rozwijających się gałęzi przemysłu na całym świecie. A największym darem tej branży jest trend zakupów online rządzący światem. Osoby z każdego zakątka tego globu oddają się temu procesowi i oszczędzają swój czas i energię. Według StatistaPrzewiduje się, że przychody e-detaliczne wzrosną do 4.88 bilionów dolarów w 2021.

Jednak szybki wzrost przyniósł również ogromną konkurencję między różnymi kupcami handlu elektronicznego. Wzrost liczby przedsiębiorstw handlu elektronicznego doprowadził do wzrostu konkurencji między tymi kupcami. To sprawiło, że byli odpowiedzialni za dotrzymanie kroku nowym trendom w handlu elektronicznym, zwłaszcza tym, które wymagają postępu technicznego w kształtowaniu zachowań konsumentów.

Oto porady i wskazówki 5, które zapewnią szybki rozwój biznesu e-commerce:

1. Popraw treści wideo i marketing:

Marketing wideo to obecnie jeden z najlepszych i najpopularniejszych sposobów content marketingu. Ponieważ konsumenci uwielbiają oglądać filmy w dzisiejszych czasach, jest to łatwy i przyjemny sposób na aktywne zaangażowanie klientów na stronie e-commerce, co skutkuje wzrostem sprzedaży i przychodów. Aby pokonać konkurencję, jest to najbardziej korzystny sposób na poprawę rozwoju eCommerce i osiągnięcie nowego sukcesu. Umieszczając filmy z mediów społecznościowych, takich jak youtube lub dodając elementy projektu wideo, sprzedawcy mogą łatwo ulepszyć stronę główną lub stronę produktu, co może przyciągnąć więcej klientów do Twojego sklepu.

2. Służ konsumentów Omnichannel:

W dzisiejszej połączonej erze cyfrowej klienci szukają swojego ulubionego produktu na więcej niż jednym kanale internetowym lub rynku. Według Statista, Amazon odpowiadał za 56.1 procent ruchu w segmencie, eBay za ruch 19.5%, Walmart 3.8% i Etsy stanowiły 3.5% ruchu. Liczby te są wyraźnie podobieństwem do kluczowej potrzeby obsługi konsumentów wielokanałowych poprzez marketing produktów i usług na wszystkich dostępnych kanałach lub rynkach. Dzisiaj promowanie marki lub produktu w Internecie jest łatwiejsze niż wcześniej, ale przedtem sprzedawcy muszą zamienić swoje pomysły w biznes e-commerce. Pamiętaj, aby sprzedawać swoją stronę na różnych platformach, takich jak media społecznościowe, renomowane rynki, takie jak Amazon, eBay, Etsy, Walmart jak również w małych sklepach detalicznych. Nigdy nie zostawiaj okazji do promowania swojego sklepu z markami w jakikolwiek możliwy sposób. Niezależnie od tego, który kanał sprzedajesz, zawsze sprzedawaj oryginalne i niezawodne produkty, aby budować zaufanie klientów do marki i sklepu e-commerce. Pomoże to nie tylko zwiększyć ruch klientów, ale także odróżnić sklep e-commerce od innych.

3. Oznacz sposoby na sukces dzięki AI Chatbots:

Jeśli chcesz dać twardą konkurencję innym sprzedawcom, możesz spróbować swoich sił w funkcji pomocy 24 / 7 podanej przez AI Empowered Chatbots. Klienci uwielbiają natychmiastową odpowiedź na swoje zapytania, a chatboty są idealnym rozwiązaniem. Zautomatyzowane chatboty mogą rozwiązać każdy rodzaj zapytania wielu klientów jednocześnie. Jednak nie mogą myśleć poza polem, rozpoznać błędnie napisane słowa lub ocenić niekompletne zapytania, ponieważ ich kreatywność jest ograniczona przez kod, który je stworzył. Ale dzięki tym postęp technologiczny ponieważ sprawili, że te chatboty są inteligentne i wyrafinowane. Są również kompatybilne z SSL i wielojęzyczne, co pomaga osiągnąć satysfakcję klientów również w regionach. W związku z tym zwiększy ruch klientów na Twojej stronie, co doprowadzi do zryczałtowanej kwoty sprzedaży i przychodów.

4. Wyszukiwanie głosowe to nowe dobrodziejstwo:

Zwykle dzieje się tak, gdy klienci nie są w stanie napisać poprawnej pisowni żądanego produktu i nie mogą go znaleźć na stronie internetowej. Prowadzi to do zmniejszenia współczynnika konwersji strony internetowej, ponieważ kwalifikowani potencjalni klienci również zamieniają się w niekwalifikowanych. Wyszukiwanie głosowe jest nowym trendem w tych sklepach internetowych, ponieważ pomogło wielu osobom, które nie mogły napisać poprawnej pisowni na karcie wyszukiwania. Mogą po prostu wymawiać nazwę swojego produktu i będą prezentowane na ekranach mobilnych. Według Statista, Procent użytkowników 35 stwierdził, że w przyszłości rozważą zakup żywności za pośrednictwem swojego asystenta głosowego. Niektóre najnowsze gadżety do wyszukiwania głosowego, takie jak Google Play, Alexa Amazon, Amazon Echo itp. To jedne z najlepszych innowacji na platformach eCommerce. Wielu właścicieli sklepów internetowych już przyjęło funkcję wyszukiwania głosowego dla swojej internetowej firmy handlu elektronicznego. Postęp wyszukiwania głosowego jest przerastającą szansą, jeśli chodzi o ulepszanie SEO, co można również poprawić, ulepszając opis produktu na stronie internetowej.

5. Bezpieczna i bezpieczna metoda płatności:

Jeśli chodzi o kasę, klienci wierzą w bezpieczną metodę płatności i płatności, ponieważ wiele osób opuszcza wózek z powodu braku zaufania, co może doprowadzić do utraty potencjalnych klientów. Ostatni etap zakupów online powinien być płynny i prosty, ponieważ wiele osób jest sfrustrowanych złożonym procesem realizacji transakcji i bramkami płatności. Według Statista, 69.23 procent cyfrowych koszyków i koszyków został porzucony w roku 2017, a zakup nie został zakończony. Wiele razy wynika to z braku zaufania do bramek płatniczych przy kasie. Jeśli więc chcesz poprawić współczynnik konwersji swojej witryny i chcesz mieć dodatkową przewagę nad innymi konkurentami, pamiętaj, aby zapewnić prosty proces realizacji transakcji i bezpieczne opcje płatności. Możesz zastosować dodatek do strony PrestaShop w sklepie eCommerce.

Ostateczny werdykt:

Ponieważ branża eCommerce wciąż ewoluuje, najważniejszym obowiązkiem jest zapewnienie pozytywnego doświadczenia w zakupach konsumenckich. Sprzedawcy powinni być świadomi najnowszych trendów w handlu elektronicznym, takich jak marketing omnichannel, chatboty, treści wideo i marketing, a także uproszczony proces płatności i płatności, co z pewnością pomoże wyróżnić się na tle konkurencji eCommerce. Konkurencja jest najwyższa i musimy to pokonać. Aby zachować dodatkową przewagę nad innymi, oferuje KnowBand Integratorzy rynku które umożliwiają sprzedawcom zintegrowanie ich sklepu e-commerce z takimi renomowanymi rynkami Etsy, eBay, Walmart, Zakupy Google i Newegg. Możesz teraz wymienić produkty i opisy za pomocą kilku kliknięć. W ten sposób łatwiej jest zaktualizować dane zbiorczo. Co więcej, mapowanie atrybutów staje się ciastem z automatycznym podejściem. Zintegruj swój sklep eCommerce i zarób ogromną część zysków.

Znajdź więcej powiązanych artykułów tutaj:

  1. Klucze do pomyślnego zakupu online i odbioru w sklepie
  2. Wskazówki 8, aby zwiększyć liczbę klientów na Marketplace
  3. 6 Summer Holiday eCommerce błędy wysyłki, których należy unikać
  4. Wskazówki 9, które pomogą Ci sprzedać więcej na Walmart Marketplace


Jak wyświetlić cenę we wszystkich walutach na stronie produktu OpenCart?

Cele bloga

Po przeczytaniu tego bloga będziemy mogli wyświetlić cenę we wszystkich walutach na stronie produktu OpenCart 3.x

Problem Statement

Domyślnie OpenCart 3.x wyświetla cenę produktu w walucie ustawionej jako domyślna lub wybranej przez użytkownika końcowego. Aby wyświetlić cenę we wszystkich dostępnych walutach, będzie niewiele zmian w domyślnych lub podstawowych plikach OpenCart. (W przypadku, gdy nie chcesz zmieniać plików podstawowych, można to zrobić za pomocą VqMod lub OcMod.)

Wymaganie

Musimy zmodyfikować wymienione poniżej pliki, aby pokazać cenę produktu we wszystkich dostępnych walutach na stronie produktu.

Procedura rozwiązania problemu –

Wykonaj poniższe kroki – Otwórz produkt.php z katalogu / kontrolera / produktu i wyszukaj

$ results = $ this-> model_catalog_product-> getProductImages ($ this-> request-> get ['product_id']);

2. I dodaj następujące oświadczenie –

$ currencies = $ this-> model_localisation_currency-> getCurrencies ();

3. Ponownie znajdź następujący fragment kodu w tym samym pliku –

if ($ this-> customer-> isLogged () ||! $ this-> config-> get ('config_customer_price')) {$ data ['price'] = $ this-> currency-> format ($ this- > podatek-> oblicz ($ product_info ['price'], $ product_info ['tax_class_id'], $ this-> config-> get ('config_tax')), $ this-> session-> data ['currency'] ); } else {$ data ['price'] = false; }

4. I zastąp go –

$ data ['price'] = array (); if ($ this-> customer-> isLogged () ||! $ this-> config-> get ('config_customer_price')) {foreach ($ waluty jako $ currency) {if ($ currency ['status']) { $ data ['price'] [] = $ this-> currency-> format ($ this-> tax-> Oblicz ($ product_info ['price'], $ product_info ['tax_class_id'], $ this-> config- > get ('config_tax')), $ currency ['code']); }}}

5. Otwórz product.twig z katalogu / view / theme / default / template / product i wyszukaj

<h2> {{price}} </h2>

5. I zastąp go –

{% dla currency_price w cenie%} <h2> {{currency_price}} </h2> {% endfor%}

Następnie wyczyść wszystkie pamięci podręczne (pamięć podręczna ocmod, pamięć podręczna gałązek, pamięć podręczna vqmod) To wszystko. Zobacz zrzut ekranu poniżej po zastosowaniu zmian w kodzie –

Podsumowanie

Po wykonaniu powyższej procedury będziesz mógł wyświetlić cenę we wszystkich dostępnych walutach na stronie produktu.


Instalacja i konfiguracja Xdebug – część 1

Wprowadzenie

Ten dokument zawiera kroki, aby zainstalować Xdebug i skonfigurować go za pomocą Netbeans.

Kroki, aby zainstalować Xdebug i skonfigurować go za pomocą Netbeans

Aby zainstalować Xdebug i skonfigurować go za pomocą Netbeans, kroki podano poniżej –

1. Zainstaluj Xdebug dla PHP, uruchamiając następujące polecenie w środowisku Linux

sudo apt-get zainstaluj php5-xdebug

2. Skonfiguruj Xdebug.ini dla systemu Linux

sudo vi /etc/php5/apache2/conf.d/20-xdebug.ini

Dodaj następujące linie –

xdebug.profiler_output_dir=/tmp
xdebug.profiler_output_name=cachegrind.out.%p
xdebug.profiler_enable_trigger=1
xdebug.profiler_enable=0
xdebug.remote_enable=true
xdebug.remote_host=127.0.0.1
xdebug.remote_port=9001
xdebug.remote_handler=dbgp
xdebug.remote_autostart=0

3. Uruchom ponownie Apache

Sudo service apache2 restart

4. Teraz skonfiguruj Netbeans, wykonując poniższe kroki i pokazane na zrzucie ekranu –

  • Przejdź do Narzędzia -> Opcje -> PHP -> Debugowanie
  • Ustaw port debugowania: 9001
  • Naciśnij przycisk OK, a następnie rozpocznij debugowanie projektu za pomocą CTRL + F5 lub pliku za pomocą CTRL + SHIFT + F5

Tutorial video:

Wygląda pomocnie? Przeczytaj także drugą część artykułu, aby uzyskać pełne i szczegółowe informacje:

Instalacja i konfiguracja Xdebug – część 2


Instalacja i konfiguracja Xdebug przy użyciu NetBeans – Część 2

Wprowadzenie

Ten dokument dotyczy instalacji i konfiguracji Xdebug za pomocą Netbeans w systemie Windows.

Jak debugować poprzez Xdebug w projekcie?

Aby debugować poprzez Xdebug, musisz skonfigurować projekt w Netbeans. Skonfiguruj projekt systemu blogów w NetBeans. Po skonfigurowaniu projektu w NetBeans wybierz projekt, dla którego chcesz debugować. Teraz przejdź do menu Plik na górnym pasku menu.

Następnie kliknij właściwości projektu.

Po kliknięciu na to otworzy się okienko, w którym musisz wybrać zakładkę Uruchom konfigurację.

Po kliknięciu na to otworzy się okienko, w którym musisz wybrać zakładkę Uruchom konfigurację. Wtedy możesz zobaczyć przycisk Zaawansowane. Kliknij to i wybierz „Nie otwieraj sieci

Teraz kliknij debugger, aby rozpocząć debugowanie. Zobacz na zrzucie ekranu. A przedtem musisz otworzyć projekt w przeglądarce: Na przykład: http: // localhost: 8080 / blogs / blogs.php? XDEBUG_SESSION_START = netbeans-xdebug Uwaga: Podświetlona część w powyższym adresie URL to identyfikator sesji xdebug. Musisz przekazać go na stronie, którą chcesz debugować.

Możesz zobaczyć stan Xdebug w stanie poniżej na pasku powiadomień NetBeans w poniższej migawce:

Następnie musisz dodać punkt przerwania w pliku kodu. Kod zatrzyma się w tym momencie i możesz sprawdzić wartości. Możesz śledzić kod, klikając F7 w NetBeans. Możesz sprawdzić wartość zmiennych dynamicznych przez najechanie na zmienne. Możesz także dodać zmienną na liście obserwacyjnej.

Dopóki nie dokończysz lub nie osiągniesz ostatniej linii kodu, który debugujesz, w przeglądarce zatrzyma się. Po prostu pokazał ładowanie. Po zakończeniu debugowania lub zamykania sesji debugowania pojawi się strona ((w przeglądarce), którą otwierasz.

Obejrzyj cały samouczek w następującym filmie wideo:

Wygląda pomocnie? Przeczytaj także drugą część artykułu, aby uzyskać pełne i szczegółowe informacje:

Instalacja i konfiguracja Xdebug


Jak wydrukować ostatnio wykonane zapytanie w CakePHP2?

Wykonaj następujące kroki, aby wydrukować ostatnie wykonane zapytanie w CakePHP2:

Aby wydrukować ostatnie wykonane zapytanie:

Dodaj poniższy kod w pliku app_model.php, który znajduje się w katalogu głównym / cake / libs / model.

funkcja publiczna getLastQuery () {Konfiguruj :: write ('debug', '2'); $ dbo = $ this-> getDatasource (); $ logs = $ dbo-> getLog (); $ lastLog = end ($ logs ['log']); zwraca $ lastLog ['query']; }

Dodaj poniższy wiersz w modelu, w którym chcesz wydrukować zapytanie.

$ last_query = $ this-> ModelName-> getLastQuery ();

Ponieważ zapisaliśmy ostatnio wykonane zapytanie w zmiennej $ last_query, użyj tego do wydrukowania ostatniego wykonanego zapytania.

Uwaga: powyższy kod będzie działać tylko wtedy, gdy twój model rozszerzy appModel, ponieważ mamy zdefiniowaną funkcję w app_model.php

Aby wydrukować wszystkie wykonane zapytania:

Napisz poniższy kod w modelu, aby wyświetlić wszystkie zapytania wykonane w kodzie:

$ log = $ this-> Model-> getDataSource () -> getLog (false, false); debug ($ log);


Jak usunąć produkty z rynku Go Sport?

Cel bloga:

Po przeczytaniu tego bloga będziesz w stanie zrozumieć, w jaki sposób sprzedawca może usuwać produkty z rynku Go Sport.

Metody usuwania produktów z rynku Go Sport

Możesz usunąć produkty z rynku Go Sport dwiema metodami: 1. Usuwając ręcznie z konta sprzedawcy 2.By używając Inventory Feed

1.0 Usuń ręcznie z konta sprzedawcy

1. Zaloguj się dohttps://gosport-prod.mirakl.net/shop/user/api). 2. Po zalogowaniu musisz wybrać listę ofert z „Mój ekwipunek„Karta jak pokazano na poniższym obrazku:

3. Na stronie listy ofert musisz przeszukać SKU za pomocą pola „Oferta SKU” i zaznaczyć pola wyboru odpowiadające tym SKU, które chcesz usunąć, jak pokazano na obrazku poniżej.

4. U dołu strony znajduje się przycisk do usuwania produktu, jak pokazano na poniższym obrazku.

5. Po kliknięciu tego przycisku na ekranie pojawi się wyskakujące okienko, które pokaże listę jednostek SKU, które wybrałeś do usunięcia oraz przycisk, aby usunąć te jednostki SKU. Jest to pokazane na obrazku poniżej:

2.0 Korzystanie z kanału zapasów

Możesz usunąć produkty luzem z rynku Go Sport przy użyciu kanału zapasów. Możesz pobrać przykładowy kanał inwentaryzacji z linku podanego poniżej:

Kliknij tutaj, aby pobrać kanał zapasów

W tym kanale musisz wypełnić dane w następujących polach:

SKU: Wprowadź numer SKU, który chcesz usunąć

update-delete:? Enter “DELETE„w tej kolumnie.
?
Po utworzeniu kanału musisz przesłać kanał na konto sprzedawcy Go Sport. Kroki są podane poniżej:

1. Zaloguj się do konta sprzedawcy Go Sport (URL:https://gosport-prod.mirakl.net/shop/user/api). 2.Importuj z pliku„opcja z”Mój ekwipunek„zakładka. 3. Na stronie Importuj plik musisz przesłać kanał, jak pokazano na obrazku:

4. Możesz śledzić status przesłanego kanału za pomocą opcji Importuj ofertę śledzenia, jak pokazano na powyższym obrazku. Po kliknięciu opcji Importuj ofertę śledzenia zostanie otwarta nowa strona, na której można sprawdzić stan przesłanego kanału. Jeśli kanał został pomyślnie zaimportowany, możesz również sprawdzić status przetwarzania kanału, jak pokazano na poniższym obrazku:

Podsumowanie

Po przeczytaniu tego dokumentu (sprzedający) możesz łatwo usunąć swoje produkty z rynku Go Sport.


Konfiguracja Amazon SQS i subskrypcje MWS dla powiadomienia AnyOfferChanged

Cel bloga

Po przeczytaniu tego bloga będziesz w stanie zrozumieć, w jaki sposób SQS jest skonfigurowany i w jaki sposób MWS jest subskrybowany dla każdego powiadomienia.

Utwórzmy Amazon SQS i Włącz to dla subskrypcji MWS

Amazonka

Utwórz usługę Amazon Simple Queue (Amazon

1. Zaloguj Sięhttps://console.aws.amazon.com/sqs/home?region=us-west-2#?URL?and credentials. Page will look like below image.

2. KliknijUtwórz nowy Kolejka

Tutaj wejdźNazwa kolejki?which you want. Select queue type. By default,?Standardowa kolejka?will be selected. Now click on?Skonfiguruj kolejkę?and after click on this, you will get the options to configure queue like below image.

  • Domyślny limit czasu widoczności:Jest to czas, w którym odebrana wiadomość z kolejki nie będzie dostępna do ponownego odbioru.
  • Okres przechowywania wiadomości: Jest to czas, w którym każda wiadomość będzie znajdować się w kolejce, jeśli wiadomość ta nie zostanie wymazana na siłę. Po wprowadzonym czasie wiadomość zostanie automatycznie usunięta z kolejki. Są to dwie najważniejsze dziedziny. Inne pola to:
  • Maksymalny rozmiar wiadomości:
  • Opóźnienie dostawy:Czas opóźnienia pierwszego dostarczenia wszystkich wiadomości dodanych do tej kolejki.
  • Odbierz czas oczekiwania na wiadomość:Najwyższy czas, przez jaki wywołanie długodystansowe będzie oczekiwać na wiadomość, zanim zostanie zwrócona pusta odpowiedź.

Po wprowadzeniu szczegółów kliknijUtwórz kolejkę?button and you will be redirected on queue list page and your new queue will also be shown as shown in below image and basic detail of queue will also be displayed.

In basic detail, there is?URL?which is the most important attribute and this will be used to register and subscribe for notification.

Teraz kliknijDodaj pozwolenie?button. A popup will be opened like below image. Enter your?AWS?account number and in action, check?Wszystko?Akcje?checkbox and click on Add permissions.


Możesz dodać wiele uprawnień, jak chcesz.

Zarejestruj miejsce docelowe (utworzona kolejka)

Teraz utworzono kolejkę i musisz zarejestrować tę kolejkę dla powiadomień. W tym celu musisz użyć operacji RegisterDestinationhttps://mws.amazonservices.co.uk/scratchpad/index.html?or?https://mws.amazonservices.com/scratchpad/index.html?depending on the marketplace. Select?subscriptions?from?API?Section and?RegisterDestination?from operation as below image.


Tutaj wpisz: SellerId, AWSAccessKeyId, Secret Key i MarketplaceI. W miejscu docelowymsqsQueueUrl?and in Destination.AttributeList.member.1.Value, you need to enter?SQS?URL co było w szczegółach w

Przesyłając wniosek, możesz uzyskać odpowiedź na pytanie o sukces lub odpowiedź na błąd. Jeśli otrzymasz odpowiedź poniżej, oznacza to, że udało się zarejestrować.

<? xml version = "1.0"?> <RequestReportResponse xmlns = "https://mws.amazonservices.com/doc/2009-01-01/"> <RequestReportResult> <ReportRequestInfo> <ReportRequestId> 2291326454 </ReportRequestId> < ReportType> _GET_MERCHANT_LISTINGS_DATA_ </ReportType> <StartDate> 2009-01-21T02: 10: 39 + 00: 00 </StartDate> <EndDate> 2009-02-13T02: 10: 39 + 00: 00: 2009: 02 + 20: 02 </EndDate> <Scheduled> false </Scheduled> <SubmittedDate> 10-39-00T00: 88: 76 + 600: 46 </SubmittedDate> <ReportProcessingStatus> _SUBMITTED_ </ReportProcessingStatus> </ReportRequestInfo> </RequestReportResult> <ResponseMetadata> <RequestId> 2faca53> -0d8-b4533c-43cXNUMXcXNUMXeXNUMXa </RequestId> </ResponseMetadata> </RequestReportResponse>

Jeśli żądanie nie powiedzie się, głównym elementem odpowiedzi będzie ErrorResponse, niezależnie od żądanego działania, aw odpowiedzi pojawią się również szczegóły błędu.

<ErrorResponse xmlns = "https://mws.amazonservices.com/doc/2009-01-01/"> <Error> <Type> Nadawca </Type> <Kod> InvalidClientTokenId </Code> <Message> Dostęp AWS Podany identyfikator klucza nie istnieje w naszych rejestrach. </Message> <Szczegóły> com.amazonservices.mws.model.Error$Detail@17b6643 </Detail> </Error> <RequestID> b7afc6c3-6f75-4707-bcf4-0475ad23162c </RequestID> </ErrorResponse>

Po zarejestrowaniu miejsca docelowego spróbuj wykonać operację SendTestNotificationToDestination, aby sprawdzić, czy powiadomienia są odbierane. Ta operacja wysyła powiadomienie testowe do określonego miejsca docelowego.

Subskrybuj powiadomienia

W tym celu należy użyć operacji CreateSubscription, a ta operacja utworzy nową subskrypcję dla określonego typu powiadomienia i miejsca docelowego. Wybierz


Wpisz tutaj SellerId, AWSAccessKeyId, Secret Key i MarketplaceId. Subscription.NotificationType powinien byćsqsQueueUrl?and in Subscription.Destination.AttributeList.member.1.Value, you need to enter?SQS?URL which was under details in?SQS?Queue. Subscription.IsEnabled will be true.

When submitting the request, either you will get success or error in response. Once you get success in response, all is done to get notifications.

After this, you can fetch notification from SQS using CURL request.



How to use Catch_Lite?

Cel bloga

Po przeczytaniu tego bloga będziesz w stanie zrozumieć, w jaki sposób cache_lite jest używany do tworzenia pamięci podręcznej dla HTML.

Powiedzmy o Cache_Lite

Cache_Lite to system buforowania, który może być używany do witryny o dużym natężeniu ruchu. Prosta logika pamięci podręcznej lite polega na podawaniu HTML z pamięci podręcznej, jeśli pamięć podręczna została już utworzona dla tego HTML, dzięki czemu można zapisać czas na pobranie / przygotowanie z bazy danych / wykonanie kodu w celu utworzenia HTML. Cache_Lite tworzy pamięć podręczną HTML dla strony na podstawie identyfikatora, gdy żądanie tej strony przychodzi po raz pierwszy i po prostu służy stronie po raz pierwszy bez pamięci podręcznej. Teraz, gdy ponownie pojawi się żądanie tej samej strony, HTML zostanie po prostu pobrany z pamięci podręcznej odpowiadającej identyfikatorowi i pokaże stronę, tzn. System nie utworzy HTML ponownie i wyśle ​​HTML z pamięci podręcznej.

Sprawdzanie przed implementacją Cache_Lite

Przed wdrożeniem cache_lite należy sprawdzić, czy PEAR jest zainstalowany. W tym celu utwórz plik w katalogu głównym i zapisz poniższe wiersze kodu w tym pliku i uruchom to samo w przeglądarce.

<? php require_once 'Cache / Lite.php'; var_dump (class_exists ('Cache_Lite', false)); ?>

Jeśli w odpowiedzi otrzymasz wartość logiczną true, PEAR jest już zainstalowany i ma pakiet Cache_Lite. Ale jeśli otrzymasz boolean false lub inny błąd w odpowiedzi, musisz sprawdzić, czy PEAR nie jest zainstalowany lub PEAR nie ma pakietu Cache_lite. W tym celu utwórz plik w katalogu głównym i zapisz poniższe linie kodu w tym pliku i uruchom to samo w przeglądarce.

<? php require_once 'System.php'; var_dump (class_exists ('System', false)); ?>

Jeśli w odpowiedzi otrzymasz wartość logiczną true, PEAR jest zainstalowany, ale PEAR nie ma pakietu Cache_Lite. W takim przypadku proszę odnieść się https://pear.php.net/package/Cache_Lite. Jeśli nadal otrzymujesz boolean false lub inny błąd, PEAR nie jest zainstalowany lub include_path nie jest ustawiony. W takim przypadku proszę odnieść się https://pear.php.net.

Implementacja Cache_Lite

Jeśli PEAR jest zainstalowany i ma pakiet Cache_Lite, możesz rozpocząć implementację Cache_Lite. Proces tworzenia pamięci podręcznej jest następujący:

  1. Po pierwsze dołącz pakiet Cache_Lite. W tym celu wymagany jest plik Cache / Lite.php.
  2. Utwórz identyfikator, który powinien być unikalny dla tego kodu HTML, aby można go było zidentyfikować w folderze pamięci podręcznej w momencie pobrania z pamięci podręcznej. Szyfruj ten identyfikator za pomocą md5.
  3. Zdefiniuj katalog, w którym chcesz zapisać pamięć podręczną i czas odświeżania, po którym chcesz odświeżyć pamięć podręczną. Jeśli chcesz odświeżyć pamięć podręczną raz dziennie, ustaw 86400. Teraz, gdy strona zostanie otwarta po raz pierwszy, pamięć podręczna zostanie utworzona i ta strona będzie obsługiwana przez pamięć podręczną na następną godzinę 24 (ta godzina 24 zostanie obliczona po utworzeniu pamięci podręcznej). Teraz pamięć podręczna zostanie odświeżona tylko wtedy, gdy strona zostanie ponownie załadowana po godzinie 24.
  4. Następnie utwórz obiekt cache_lite i sprawdź, czy pamięć podręczna została utworzona dla identyfikatora, czy nie. Jeśli tworzona jest pamięć podręczna, zdekompresuj dane pamięci podręcznej i załaduj dane w przeglądarce. Jeśli pamięć podręczna nie zostanie utworzona, pobierz dane z bufora wyjściowego, skompresuj te dane i zapisz w pamięci podręcznej.

Aby uzyskać więcej zrozumienia, spójrz na poniższy fragment kodu:

define ('CACHE_LITE_STATUS', 'ON'); // Ustaw inny niż ON, jeśli nie chcesz obsługiwać HTML z cache define ('CACHE_LITE_REFRESH_TIME', '43200'); // To jest czas życia pamięci podręcznej, po którym chcesz odświeżyć pamięć podręczną. if (CACHE_LITE_STATUS == 'ON') {require_once ('Cache / Lite.php'); $ id = 'testid'; // To jest unikalny identyfikator używający, która pamięć podręczna zostanie utworzona. $ id = md5 ($ id); $ options = array ('cacheDir' => "testDir /", // testDir jest katalogiem, w którym zostanie zapisana pamięć podręczna. Pamięć podręczna zostanie utworzona z taką samą nazwą jak id, więc nazwa reżysera powinna być z końcowym ukośnikiem na końcu ' lifeTime '=> CACHE_LITE_REFRESH_TIME); $ Cache_Lite = new Cache_Lite ($ options); if ($ data = $ Cache_Lite-> get ($ id)) {echo gzuncompress ($ data); // Aby zdekompresować skompresowany łańcuch. Ma to na celu zdekompresowanie danych pobranych z pamięci podręcznej} else {ob_start (); // Włącz buforowanie wyjścia $ data = ob_get_contents (); // Spowoduje to zwrócenie zawartości bufora wyjściowego $ data = gzcompress ($ data, 9); // Aby skompresować dane bufora wyjściowego $ Cache_Lite-> save ($ data); // Aby zapisać skompresowane dane w pamięci podręcznej ob_end_flush (); // Opróżnij bufor wyjściowy i wyłącz buforowanie wyjściowe}}

Podsumowanie

Po przeczytaniu tego dokumentu możesz wypróbować ten sam kod w systemie, aby obsługiwać HTML przy użyciu Cache_Lite. Poinformuj nas o dalszych ulepszeniach.