В настоящее время EasyPost создает отправку. Когда я создаю груз, он предоставляет мне все доступные услуги и цены.
Я хотел бы динамически выбирать сервис и возвращать только этот тариф.
Первоначально я бы прочитал массив, используя номер индекса (я думаю, что, как его описать).
Проблема заключается в том, что каждый раз, когда я создаю новую отправку, порядок массива тарифов изменяется так, что бы было выражено выражение $ shipment-> rate [0] [‘rate’], а затем в следующий раз первый класс.
Я хочу создать груз с «Экспресс» и только вернуть этот тариф.
Любой совет будет принят во внимание.
Вот мой код:
$name = $this->thiscustomer->cust_first . ' ' . $this->thiscustomer->cust_first;
$street_1 = $this->thiscustomer->street_1;
$street_2 = $this->thiscustomer->street_2;
$city = $this->thiscustomer->city;
$state = $this->thiscustomer->state;
$zip = $this->thiscustomer->zip;$weight = $this->weight;
$packaging = $this->packaging;
$service = $this->service;
$caddress = $this->consultant->address;
$cstreet_1 = $this->consultant->street_1;
$cstreet_2 = $this->consultant->street_2;
$ccity = $this->consultant->city;
$cstate = $this->consultant->state;
$czip = $this->consultant->zip;
$cname = $this->consultant->first_name . ' ' . $this->consultant->last_name;
$cuser_id = $this->consultant->user_id;require_once(dirname(__FILE__) . '/lib/easypost.php');
\EasyPost\EasyPost::setApiKey('KUk4fZUI6YaYc1h0FiIXFw');$shipment = \EasyPost\Shipment::create(array(
'to_address' => array(
"name" => $name,
"street1" => $street_1,
"street2" => $street_2,
"city" => $city,
"state" => $state,
"zip" => $zip
),
'from_address' => array(
"company" => $cname,
"street1" => $cstreet_1,
"street2" => $cstreet_2,
"city" => $ccity,
"state" => $cstate,
"zip" => $czip
),
'parcel' => array(
'weight' => $weight,
'predefined_package'=> $packaging
),
'rates' => array(
'service' => $service
)
));
echo $shipment->rates[0]['rate']. '<br>';
В EasyPost’s Руководство по началу работы Вот пример покупки конкретного перевозчика + тариф:
$shipment->buy($shipment->lowest_rate(array('USPS'), array('Express')));
Других решений пока нет …