Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
cbb76070d9 | ||
|
|
966f099ffb |
@@ -4,6 +4,21 @@ All notable changes to this project will be documented in this file.
|
||||
|
||||
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/).
|
||||
|
||||
## [0.29.3] - 2026-09-30
|
||||
### Fixed
|
||||
- Queued shipping jobs did nothing: `PollShipmentTrackingJob` and
|
||||
`SyncCarrierVouchersJob` ran every time but finished in milliseconds
|
||||
without contacting any carrier. The queue worker clears facade instances
|
||||
before each job, and the Shipping manager was bound with `bind()`, so the
|
||||
facade then built a fresh manager with no drivers registered. It's now a
|
||||
singleton. Tracking from the scheduler never worked on a deployed app
|
||||
because of this (a "Sync now" click worked, since it doesn't go through
|
||||
the queue).
|
||||
- ELTA extra parcels are no longer tracked by their own number: ELTA only
|
||||
tracks a multi-parcel send by its main voucher and rejects the extra
|
||||
parcels' numbers ("Λάθος ΣΥΔΕΤΑ"), which logged an error for each of them
|
||||
on every tracking run.
|
||||
|
||||
## [0.29.2] - 2026-09-30
|
||||
### Added
|
||||
- `core.display_timezone` (env `DISPLAY_TIMEZONE`, default `Europe/Athens`):
|
||||
|
||||
+1
-1
@@ -2,7 +2,7 @@
|
||||
"name": "boboko/core",
|
||||
"description": "Core module — authentication and shared panel behaviour",
|
||||
"type": "library",
|
||||
"version": "0.29.2",
|
||||
"version": "0.29.3",
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Modules\\Core\\": "src/"
|
||||
|
||||
+1
-1
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@boboko/core",
|
||||
"version": "0.29.2",
|
||||
"version": "0.29.3",
|
||||
"private": true,
|
||||
"type": "module",
|
||||
"description": "Portable Stimulus controllers and styles for boboko-core's cart + checkout module. Installed as a real npm dependency (file:../boboko-core in dev, a tagged git install in prod) so a consuming app's `npm install` resolves this package's own dependencies (leaflet, @hotwired/stimulus) transitively, the same way `composer update boboko/*` does for PHP. See CONTRIBUTE.md's \"JS/CSS: a real npm package\" section.",
|
||||
|
||||
@@ -154,7 +154,13 @@ class ShippingServiceProvider extends ServiceProvider
|
||||
// run before the Shipping::extend() calls below, which resolve —
|
||||
// and the facade then CACHES — whatever's bound at that moment).
|
||||
$this->app->booted(function () {
|
||||
$this->app->bind(ShippingMethodManagerInterface::class, fn ($app) => $app->make(ShippingManager::class));
|
||||
// A singleton, not bind(): the queue worker clears every
|
||||
// facade's cached instance before each job
|
||||
// (Facade::clearResolvedInstances()), so with bind() the Shipping
|
||||
// facade then built a fresh, empty manager — without the drivers
|
||||
// extended below — and every queued job (tracking, voucher sync)
|
||||
// saw no carriers at all.
|
||||
$this->app->singleton(ShippingMethodManagerInterface::class, fn ($app) => $app->make(ShippingManager::class));
|
||||
|
||||
// Shipping::extend('acs', fn ($app) => $app->make(AcsRateDriver::class));
|
||||
Shipping::extend('box-now', fn ($app) => $app->make(BoxNowRateDriver::class));
|
||||
|
||||
@@ -278,6 +278,13 @@ class EltaFulfillmentService implements CarrierFulfillmentInterface, IssuesVouch
|
||||
|
||||
public function trackShipment(Shipment $shipment): Collection
|
||||
{
|
||||
// ELTA tracks a multi-parcel send by its main voucher only — an
|
||||
// extra parcel's own number is rejected ("Λάθος ΣΥΔΕΤΑ"). Its
|
||||
// history is the main voucher's, which is tracked on its own row.
|
||||
if (! $shipment->is($this->masterOf($shipment))) {
|
||||
return collect();
|
||||
}
|
||||
|
||||
$response = $this->client->getTracking([
|
||||
'web_vg' => $shipment->tracking_reference,
|
||||
'pel_code' => config('elta.apost_code'),
|
||||
|
||||
Reference in New Issue
Block a user