/** * verify * - shipping discounts are applied to the shipping pricegroup */ public function testBuildOrderItemsWithShippingDiscounts() { $lineNumber = 1; $this->addressStub->setEbayEnterpriseOrderDiscountData(['1,2,3,4' => ['id' => '1,2,3,4']]); $handler = $this->getModelMockBuilder('ebayenterprise_order/create_orderitem')->setMethods(['loadOrderItemOptions', 'prepareMerchandisePricing'])->setConstructorArgs([['shipping_helper' => $this->shippingHelper]])->getMock(); $handler->expects($this->any())->method('loadOrderItemOptions')->will($this->returnValue($this->optionValueCollectionStub)); $handler->expects($this->any())->method('prepareMerchandisePricing')->will($this->returnSelf()); $handler->buildOrderItem($this->payload, $this->itemStub, $this->orderStub, $this->addressStub, $lineNumber, true); $pg = $this->payload->getShippingPricing(); $this->assertNotNull($pg); $this->assertCount(1, $pg->getDiscounts()); }
/** * Add tax data for tax totals for shipping prices and discounts. * * @return self */ protected function _addShippingTaxes() { $taxes = $this->_getTaxRecordsBySource(EbayEnterprise_Tax_Model_Record::SOURCE_SHIPPING); $discountTaxes = $this->_getTaxRecordsBySource(EbayEnterprise_Tax_Model_Record::SOURCE_SHIPPING_DISCOUNT); if ($taxes || $discountTaxes) { $priceGroup = $this->_orderItemPayload->getShippingPricing() ?: $this->_orderItemPayload->getEmptyPriceGroup(); $priceGroup->setTaxClass($this->_taxConfig->shippingTaxClass); $this->_addTaxRecordsToContainer($taxes, $priceGroup)->_addDiscountTaxRecords($discountTaxes, $priceGroup); $this->_orderItemPayload->setShippingPricing($priceGroup); } return $this; }