本文整理汇总了PHP中Shipment::addItem方法的典型用法代码示例。如果您正苦于以下问题:PHP Shipment::addItem方法的具体用法?PHP Shipment::addItem怎么用?PHP Shipment::addItem使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Shipment
的用法示例。
在下文中一共展示了Shipment::addItem方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: addProduct
/**
* Add a product to shopping basket
*/
public function addProduct(Product $product, $count = 1, $ignoreAvailability = false, Shipment $shipment = null)
{
if (0 >= $count) {
$this->removeProduct($product);
} else {
if (!$product->isAvailable() && !$ignoreAvailability) {
throw new ApplicationException('Product is not available (' . $product->getID() . ')');
}
$count = $this->validateCount($product, $count);
$item = OrderedItem::getNewInstance($this, $product, $count);
$this->orderedItems[] = $item;
if (!$this->isFinalized->get() || !$this->shipments || !$this->shipments->size()) {
if ($shipment) {
$shipment->addItem($item);
}
} else {
if (!$shipment) {
$shipment = $this->shipments->get(0);
}
$shipment->addItem($item);
}
}
$this->resetShipments();
if (isset($item)) {
return $item;
}
}
示例2: save
private function save(OrderedItem $item, Shipment $shipment, $existingItem = false)
{
$validator = $this->createOrderedItemValidator();
if ($validator->isValid()) {
if ($count = (int) $this->request->get('count') && !(int) $this->request->get('downloadable')) {
$item->count->set($count);
}
$shipment->loadItems();
if (!$existingItem) {
$shipment->addItem($item);
}
if ($shipment->getShippingService()) {
$shipmentRates = $shipment->getDeliveryZone()->getShippingRates($shipment);
$shipment->setAvailableRates($shipmentRates);
$shipment->setRateId($shipment->getShippingService()->getID());
}
$shipment->recalculateAmounts();
$shipment->save();
return array('item' => array('ID' => $item->getID(), 'Product' => $item->getProduct()->toArray(), 'Shipment' => array('ID' => $shipment->getID(), 'amount' => (double) $shipment->amount->get(), 'shippingAmount' => (double) $shipment->shippingAmount->get(), 'taxAmount' => (double) $shipment->taxAmount->get(), 'total' => (double) $shipment->shippingAmount->get() + (double) $shipment->amount->get() + (double) $shipment->taxAmount->get(), 'prefix' => $shipment->getCurrency()->pricePrefix->get(), 'suffix' => $shipment->getCurrency()->priceSuffix->get(), 'Order' => $shipment->order->get()->toFlatArray()), 'count' => $item->count->get(), 'price' => $item->price->get(), 'priceCurrencyID' => $item->getCurrency()->getID(), 'isExisting' => $existingItem, 'variations' => $item->getProduct()->getParent()->getVariationData($this->application)));
} else {
return array('errors' => $validator->getErrorList());
//return new JSONResponse(array('errors' => $validator->getErrorList()), 'failure', $this->translate('_unable_to_update_items_quantity'));
}
}