Weave Code
Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Rajaongkir Laravel Package

kavist/rajaongkir

Laravel wrapper for the RajaOngkir API that simplifies shipping cost calculation and Indonesian province/city lookups, making it easy to integrate ongkir rates into e-commerce checkout flows with clean, ready-to-use methods.

View on GitHub
Deep Wiki
Context7

Product Decisions This Supports

  • Shipping/logistics integration in Indonesian e-commerce flows: RajaOngkir is the de facto standard for ongkos kirim (shipping cost) lookups across Indonesian couriers (JNE, TIKI, POS, etc.). This package wraps that API for Laravel apps, directly supporting checkout, product detail page shipping estimates, and order fulfillment features.
  • Build vs. buy for shipping cost calculation: Using this package is a "buy/borrow" decision that offloads courier-tariff API plumbing instead of building your own RajaOngkir client. The v1.1.0 change to file_get_contents() signals the package is optimizing for breadth of hosting compatibility over control/depth — relevant if your infra runs on shared hosting or constrained PHP environments where cURL is disabled.
  • Roadmap scoping for localization: If your roadmap includes serving the Indonesian market, this package reduces the time-to-market for shipping estimates and lets you focus engineering on pricing rules, caching, and UX rather than raw API calls.
  • Feature prioritization around caching & resilience: Because v1.1.0 trades cURL's timeout/header control for file_get_contents() simplicity, PMs should plan for caching layer and fallback logic at the feature level (e.g., cache subdistrict/city lookups), since the client itself now offers less built-in control.

When to Consider This Package

Consider adopting when:

  • You are building a Laravel app targeting Indonesia and need shipping cost calculation or destination (province/city/subdistrict) data from RajaOngkir.
  • Your hosting environment lacks cURL or has allow_url_fopen enabled but cURL disabled — v1.1.0 explicitly targets this compatibility case.
  • You want a lightweight, framework-native wrapper rather than a full logistics SDK, and are comfortable handling caching, retries, and error UX yourself.
  • Your volume is modest enough that per-request HTTP calls with a caching strategy are acceptable.

Look elsewhere or proceed with caution when:

  • You need fine-grained HTTP control (custom timeouts, connection pooling, retry/backoff, detailed error codes, streaming). file_get_contents() is weaker than cURL here — expect less observability and harder debugging of timeouts/failures.
  • Your environment has allow_url_fopen disabled (common in hardened/secure hosting) — the new implementation may fail where cURL worked.
  • You operate high-traffic checkouts requiring resilient, instrumented API clients (consider a Guzzle-based client or building your own with Illuminate\Support\Facades\Http).
  • You need authentication, rate-limit handling, or structured logging out of the box — this package is a thin wrapper and won't provide those.
  • You're not on RajaOngkir (e.g., using a different regional logistics aggregator).

How to Pitch It (Stakeholders)

For executives: This is a Laravel package that lets our product calculate Indonesian shipping costs and destination data via RajaOngkir — a core capability for launching and operating in the Indonesian market. The v1.1.0 update improves compatibility with a wider range of hosting environments by removing a dependency on cURL, which lowers deployment friction and broadens where we can run the app. Bottom line: faster go-to-market for Indonesia features with lower infra constraints, though we should still plan for caching and monitoring around it.

For engineering: v1.1.0 swaps BasicClient from cURL to file_get_contents() to reduce cURL dependency. Trade-offs to note: we lose granular timeout/header control and richer error handling; we gain compatibility on environments without cURL. Prerequisites: allow_url_fopen must be enabled, and we should add our own timeout protection, caching (province/city/subdistrict data changes rarely), retry/fallback logic, and structured error logging. Recommend wrapping calls in a service layer so we can swap the underlying HTTP client later without touching feature code. Also flag: verify no behavioral regressions in production hosts (e.g., SSL verification, redirects, and error surfacing may differ from cURL).

Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
socialdept/atp-orm
cboxdk/laravel-assistant-client
socialdept/atp-resolver
socialdept/tenant-domains
tautvydasr/blade-class-names
socialdept/color-scales
maherelgamil/controller
coleus/widgets
coleus/table
coleus/users
coleus/music
coleus/health
coleus/calendar
coleus/notes
coleus/support
coleus/settings
coleus/apps
seampact/laravel
emmyconceptng/laravel-ng-postcode
jjsquady/round-robin