Jak zintegrować mój system z aplikacją Paczkomaty InPost?

Jeżeli jesteś programistą i integrujesz system pobierający zamówienia z Shopify, możesz pobierać ID paczkomatu bezpośrednio z API Shopify.

Każde zamówienie w Shopify zawiera shipping_lines (REST) lub shippingLines (GraphQL), jest to Array z wybranymi podczas składania zamówienia metodami dostawy. Zazwyczaj jest to jedna metoda dostawy. Metoda ta jest obiektem składającym się m.in. z name (String) carrier_identifier (REST) carrierIdentifier (GraphQL) oraz code (String).

carrier_identifier naszej aplikacji to zawsze string:  817bcd956c0dec08763dd1d56479cc14

Format 1.0

W przypadku dostawy do Paczkomatu, code jest w formacie: INPOST-{id_paczkomatu}

Podczas pobierania zamówienia sprawdź, czy, czy code zawiera String: INPOST-, jeśli tak — usuń prefiks, w ten sposób uzyskasz id wybranego paczkomatu.

Format 2.0 (beta)

Podczas trwania testów, format 2.0 jest włączany na żądanie.

W przypadku dostawy do Paczkomatu, code jest w formacie JSON String, na przykład:

{\"carrier\":\"INPOST_PL\",\"point_id\":\"WAW401M\",\"weekend_delivery\":false}

Podczas pobierania zamówienia sprawdź, czy code zawiera String:  INPOST_PL, jeśli tak – parsuj obiekt, a następnie odczytaj atrybut point_id — w ten sposób uzyskasz id wybranego paczkomatu.

Jeżeli Twój system obsługuję usługę Paczka w weekend, możesz sprawdzić, czy wybrano ją dla danego zamówienia poprzez odczytanie atrybutu weekend_delivery (Boolean)

Jeżeli Twój system obsługuje inne kraje, atrybut carrier może przybrać wartości: INPOST_PL, INPOST_GB, INPOST_IT.

Przykładowa funkcja obsługująca format 2.0 i 1.0

const shippingLine = {
  carrier_identifier: "817bcd956c0dec08763dd1d56479cc14",
  name: "Paczkomat (0.5 km) - WAW02AP",
  code: '{"carrier":"INPOST_PL","point_id":"WAW02AP","weekend_delivery":false}',
};

function getPointId() {
  if (shippingLine.carrier_identifier === "817bcd956c0dec08763dd1d56479cc14") {

    // Format 2.0
    if (shippingLine.code.includes("INPOST_PL")) {
      const parsed = JSON.parse(shippingLine.code);
      return parsed.point_id;

    // Format 1.0
    } else if (shippingLine.code.includes("INPOST-")) {
      return shippingLine.code.split("INPOST-").pop();

    } else {
      return null;
    }
  }
}

Po zintegrowaniu się koniecznie daj nam znać, a dodamy Twój system na listę integracji.

Dokumentacja Shopify:

REST: https://shopify.dev/docs/admin-api/rest/reference/orders/order

GraphQL: https://shopify.dev/docs/admin-api/graphql/reference/object/order

Czy to odpowiada na Twoje pytanie? Dziękujemy za opinię There was a problem submitting your feedback. Please try again later.