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

Acs Bundle Laravel Package

answear/acs-bundle

Symfony bundle for ACS pickup point integration. Configure API credentials via YAML, then use ParcelShopsService to fetch parcel shops by country (Greece or Cyprus) and optional kind, returning ParcelShop DTOs. Includes clear exceptions for service and response errors.

View on GitHub
Deep Wiki
Context7

Product Decisions This Supports

  • Market entry / feature parity for Greece & Cyprus: The package's entire scope is fetching ACS pickup points (ParcelShopsService::getList(CountryIdEnum, ?int $kind) → ParcelShop[]) for GR and CY. That directly supports a "collect from an ACS point" delivery option at checkout — a localized expectation in those markets — or a store/pickup-point locator.
  • Build vs. buy (and buy vs. wrap): Parcel-shop lookup is undifferentiated plumbing: one API call, a small DTO set, two error types. This package is a reference implementation and contract definition, not a drop-in — it is a Symfony bundle, and the target stack is Laravel/PHP. The real PM decision is not "adopt or build" but "wrap/port vs. reimplement the thin client," priced at a short spike rather than a multi-month build.
  • Roadmap sequencing: Because coverage stops at discovery, it forces an explicit phased plan: Phase 1 = show pickup points (this package); Phase 2 = label creation, tracking, returns, webhooks (not covered — separate ACS integration work and separate buy/build decision).
  • Checkout & UX decisions: The kind filter enables product choices — all points vs. lockers only — and the returned shop data drives selector UX, address/hours display, and default-point logic. The GR/CY-only constraint also bounds which markets the feature ships in.
  • Reliability and fallback design: The typed ServiceUnavailable and MalformedResponse exceptions (plus the Guzzle timeout added in 2.1.1) define the failure surface. PM-visible decisions follow: retry policy, caching of shop lists, timeout budget, and whether checkout degrades gracefully to home delivery when ACS is down.
  • Dependency risk budgeting: 0 stars, 0 dependents, single-vendor maintenance, MIT license. Correct framing is internal tooling we own and can fork — not a community-backed dependency to plan around.
  • Documentation-quality signal: The README's config block is labeled answear_gls inside an ACS bundle, and installation points at a raw Git URL. Small, but it tells you onboarding requires engineering verification, and it should shape the estimate.

When to Consider This Package

Consider it when:

  • You sell or ship into Greece and/or Cyprus, and pickup-point delivery is table stakes or a conversion lever.
  • The needed scope is read-only parcel-shop discovery — no labels, no tracking, no returns yet.
  • Your stack is PHP 8.2+ (8.4 for 4.0.0) on a modern Laravel; you're willing to spend a short spike wrapping or porting rather than installing the bundle directly.
  • You want a free, MIT-licensed reference for ACS auth (apiKey, companyId, companyPassword, userId, userPassword, default language GR) and response shapes instead of reverse-engineering the carrier API.
  • You can own a small internal surface: a wrapper service, config file, tests, and a maintainer.

Look elsewhere or deprioritize when:

  • You need end-to-end shipping — label generation, tracking, returns, status webhooks. This package does none of it.
  • You're Laravel-native with no Symfony components and low appetite for a wrapper: a ~200-line client using Laravel's Http facade plus simple DTOs may be cheaper and cleaner than adapting Symfony-bound code.
  • You need multi-country or multi-carrier coverage, or a carrier-agnostic abstraction (EasyPost/Shippo-style) rather than a single-carrier bundle.
  • You require published SLAs, support commitments, or a broad adopter base to clear procurement/security review.
  • You have no PHP owner to fork, test, and patch — with zero dependents, the maintenance burden is entirely yours.

How to Pitch It (Stakeholders)

Executives: "ACS is a major Greek courier, and pickup-point delivery is expected in Greece and Cyprus. This MIT-licensed bundle gives us the ACS parcel-shop lookup for free — one call returning shops filtered by country and kind. It is not a Laravel package, so engineering wraps it; budget a one-to-two week spike, not a build cycle. It covers discovery only — labels and tracking remain separate roadmap decisions. Cash cost is near zero; the real risk is a single-maintainer, zero-adoption dependency, which we contain by isolating it behind our own service interface so it can be swapped without touching product code."

Engineering: "Symfony 6/7 bundle, PHP 8.2–8.4, Guzzle-based, config-driven, with a deliberately small public surface: ParcelShopsService::getList(CountryIdEnum, ?int $kind) returning ParcelShop DTOs, plus typed ServiceUnavailable and MalformedResponse exceptions. Recommendation for our Laravel stack: don't pull the bundle in for its container — reuse its ACS request/response contract and reimplement the client with Laravel's HTTP client. Move config to config/acs.php and env/vault, add timeout, retry, and caching for shop lists, map the two exception types, and fake responses in tests. Wrap it all in app/Services/AcsService so a carrier change is a one-file change. Note the README's config key is mislabeled (answear_gls), so validate against a live sandbox call before committing to the contract."

Proposed next step: approve a time-boxed spike for the GR/CY pickup-point option, gated on a documented fallback to home delivery when ACS is unavailable and a checkout-conversion read before full rollout.

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/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
skyraptor/chatter
edlugz/sasapay
abbasudo/artisan-route