/** * build out the order item payload * @param IOrderItem * @param Mage_Sales_Model_Order_Item * @param Mage_Sales_Model_Order * @param Mage_Sales_Model_Order_Address * @param int * @param string * @param bool * @return IOrderItem */ public function buildOrderItem(IOrderItem $payload, Mage_Sales_Model_Order_Item $item, Mage_Sales_Model_Order $order, Mage_Sales_Model_Order_Address $address, $lineNumber, $includeShipping = false) { $merch = $payload->getMerchandisePricing(); $this->prepareMerchandisePricing($item, $merch); $mageShippingMethod = $address->getShippingMethod(); $romShippingMethod = $this->shippingHelper->getMethodSdkId($mageShippingMethod); if ($includeShipping) { $this->prepareShippingPriceGroup($address, $payload); } list($itemSize, $itemSizeId) = $this->getItemSizeInfo($item); list($itemColor, $itemColorId) = $this->getItemColorInfo($item); $payload->setLineNumber($lineNumber)->setItemId($item->getSku())->setQuantity($item->getQtyOrdered())->setDescription($item->getName())->setMerchandisePricing($merch)->setColor($itemColor)->setColorId($itemColorId)->setSize($itemSize)->setSizeId($itemSizeId)->setDepartment($item->getProduct()->getDepartment())->setShippingMethod($romShippingMethod)->setShippingMethodDisplayText($this->shippingHelper->getMethodTitle($address->getShippingMethod()))->setVendorId($item->getProduct()->getDropShipSupplierNumber())->setVendorId($item->getProduct()->getDropShipSupplierName())->setFulfillmentChannel($payload::FULFILLMENT_CHANNEL_SHIP_TO_HOME); return $payload; }
/** * Get the shipping method id to use for an item. Takes into account if the * item is a physical or virtual item. * * @param Mage_Sales_Model_Order_Item * @param Mage_Sales_Model_Order_Address * @return string */ protected function getItemShippingMethod(Mage_Sales_Model_Order_Item $item, Mage_Sales_Model_Order_Address $address) { return $item->getIsVirtual() ? $this->shippingHelper->getVirtualMethodSdkId() : $this->shippingHelper->getMethodSdkId($address->getShippingMethod()); }