فهرست مستندات پروژه
الوپیک (Alopeyk)
پیک لحظهای شهری. REST API. پشتیبانی از برنامهریزی pickup.
پیکربندی
use Eram\Ersal\Provider\Alopeyk\AlopeykConfig;
$config = new AlopeykConfig(
token: 'your-bearer-token',
sandbox: false,
baseUrl: null,
);
قابلیتها
| رابط | پشتیبانی |
|---|---|
ShippingInterface | ✅ |
SupportsPickup | ✅ |
SupportsLabel | ❌ |
SupportsBranches | ❌ |
SupportsCOD | ❌ |
راهاندازی
use Eram\Ersal\Ersal;
use Eram\Ersal\Provider\Alopeyk\AlopeykConfig;
$alopeyk = (new Ersal())->create('alopeyk', new AlopeykConfig(token: 'your-token'));
الوپیک از هدر Authorization: Bearer <token> استفاده میکند.
quote()
بهینهشده برای ارسال درونشهری — از ServiceLevel::SameDay (مقدار 'same_day') استفاده کنید.
use Eram\Ersal\Address\Address;
use Eram\Ersal\Address\Parcel;
use Eram\Ersal\Catalog\ServiceLevel;
use Eram\Ersal\Request\QuoteRequest;
$origin = new Address(
firstName: 'Sender', lastName: 'N',
phone: '09123456789',
province: 'تهران', city: 'تهران',
addressLine: 'خیابان آزادی',
lat: 35.7000, lng: 51.3500,
);
$destination = new Address(
firstName: 'Receiver', lastName: 'N',
phone: '09121111111',
province: 'تهران', city: 'تهران',
addressLine: 'خیابان ولیعصر',
lat: 35.7300, lng: 51.4100,
);
$quotes = $alopeyk->quote(new QuoteRequest(
origin: $origin, destination: $destination,
parcel: new Parcel(weightGrams: 500),
serviceLevel: ServiceLevel::SameDay->value,
));
foreach ($quotes as $quote) {
echo "{$quote->cost->inToman()} تومان\n";
}
createShipment()
use Eram\Ersal\Request\BookingRequest;
$shipment = $alopeyk->createShipment(new BookingRequest(
origin: $origin, destination: $destination,
parcel: new Parcel(weightGrams: 500),
orderId: 'ORDER-AL-001',
serviceLevel: 'same_day',
));
track()
$tracked = $alopeyk->track($shipment->getId());
echo $tracked->getStatus()->label('fa');
// موقعیت پیک معمولاً در event.raw میآید
foreach ($tracked->getHistory() as $event) {
$courierLocation = $event->raw['courier_location'] ?? null;
printf("[%s] %s\n", $event->at->format('H:i'), $event->description);
}
cancel()
use Eram\Ersal\Exception\CancellationException;
try {
$cancelled = $alopeyk->cancel($shipment->getId());
} catch (CancellationException $e) {
// پیک اعزام شده — لغو رد شد
}
schedulePickup() — تعیین پیک در بازه زمانی مشخص
use Eram\Ersal\Contracts\SupportsPickup;
use Eram\Ersal\Request\PickupRequest;
if ($alopeyk instanceof SupportsPickup) {
$alopeyk->schedulePickup($shipment->getId(), new PickupRequest(
windowStart: new DateTimeImmutable('today 14:00'),
windowEnd: new DateTimeImmutable('today 14:30'),
instructions: 'پشت در آپارتمان، زنگ نزنید',
));
}
مدیریت خطا
use Eram\Ersal\Exception\ProviderException;
use Eram\Ersal\Provider\Alopeyk\AlopeykErrorCode;
try {
$alopeyk->createShipment($booking);
} catch (ProviderException $e) {
$code = AlopeykErrorCode::tryFrom((int) $e->getErrorCode());
if ($code === AlopeykErrorCode::NoCourierAvailable) {
// چند دقیقه دیگر دوباره تلاش کنید
}
echo $code?->message('fa') ?? $e->getMessage();
}
نکات
- بهینهشده برای ارسال همان روز درونشهری
- مختصات جغرافیایی روی آدرسها به شدت توصیه میشود
- بدون COD، بدون برچسب
- آدرس endpointها را با مستندات توسعهدهنده الوپیک تایید کنید
⁅پیک لحظه لحظ شهری rest api پشتیبانی از برنامهریزی برنامه ریزی pickup use eram ersal provider alopeyk alopeykconfig config new alopeykconfig token your bearer token sandbox false baseurl null رابط پشتیبانی shippinginterface supportspickup supportslabel supportsbranches supportscod use eram ersal ersal use eram ersal provider alopeyk alopeykconfig alopeyk new ersal create alopeyk new alopeykconfig token your token الوپیک از هدر authorization bearer token استفاد کرد بهینهشد بهینه شد برای ارسال درونشهری درون شهری از servicelevel sameday مقدار same day استفاد کرد use eram ersal address address use eram ersal address parcel use eram ersal catalog servicelevel use eram ersal request quoterequest origin new address firstname sender lastname n phone 09123456789 province تهران city تهران addressline خیابان آزادی ازادی lat 35 7000 lng 51 3500 destination new address firstname receiver lastname n phone 09121111111 province تهران city تهران addressline خیابان ولیعصر lat 35 7300 lng 51 4100 quotes alopeyk quote new quoterequest origin origin destination destination parcel new parcel weightgrams 500 servicelevel servicelevel sameday value foreach quotes as quote echo quote cost intoman توم n use eram ersal request bookingrequest shipment alopeyk createshipment new bookingrequest origin origin destination destination parcel new parcel weightgrams 500 orderid order al 001 servicelevel same day tracked alopeyk track shipment getid echo tracked getstatus label fa موقعیت پیک معمولا در event raw آمد می foreach tracked gethistory as event courierlocation event raw courier location null printf s s n event at format h i event description use eram ersal exception cancellationexception try cancelled alopeyk cancel shipment getid catch cancellationexception e پیک اعزام شد لغو رد شد use eram ersal contracts supportspickup use eram ersal request pickuprequest if alopeyk instanceof supportspickup alopeyk schedulepickup shipment getid new pickuprequest windowstart new datetimeimmutable today 14 00 windowend new datetimeimmutable today 14 30 instructions پشت در آپارتمان اپارت زنگ نزد use eram ersal exception providerexception use eram ersal provider alopeyk alopeykerrorcode try alopeyk createshipment booking catch providerexception e code alopeykerrorcode tryfrom int e geterrorcode if code alopeykerrorcode nocourieravailable چند دقیقه دیگر دوباره تلاش کرد echo code message fa e getmessage بهینهشد بهینه شد برای ارسال همان روز درونشهری درون شهری مختصات جغرافیایی روی آدرس ادرس به شدت توصیه شد بدون cod بدون برچسب آدرس ادرس endpoint را با مستند توسعهد توسعه دهنده الوپیک تای کرد⁆
⁅الوپیک alopeyk⁆
⁅پیکربندیقابلیتهاراهاندازیquote پیکربندیقابلیت هاراه اندازیquote createshipment track cancel schedulepickup تعی پیک در بازه زمانی مشخصمدیریت خطانک⁆