/** * @param \SimpleXMLElement $order * @param ShopifyOrderEntity $shopifyOrder * @return ErpOrderEntity */ public static function createFromShopifyOrder(\SimpleXMLElement $order, ShopifyOrderEntity $shopifyOrder) { $self = new self(); $self->orderId = (string) $order->OrderNumber; $self->shopifyOrderId = $shopifyOrder->getId(); return $self; }
/** * @param ErpShipmentEntity $erpShipment * @param ShopifyOrderEntity $shopifyOrder */ public function setFulfilledItems(ErpShipmentEntity $erpShipment, ShopifyOrderEntity $shopifyOrder) { /** @var ErpOrderItemEntity $item */ foreach ($erpShipment->getShipmentItems() as $item) { /** @var ShopifyOrderLineItemEntity $shopifyItem */ foreach ($shopifyOrder->getItems() as $shopifyItem) { if ($item->getSku() == $shopifyItem->getSku()) { $shopifyItem->setIsFulfilled(1); } } } }
/** * @param Event $event * @param StoreEntity $store */ public function __construct(Event $event, StoreEntity $store) { parent::__construct($event, $store); $this->order = ShopifyOrderEntity::createFromResponse($event->getPayload()); }
/** * @param StoreEntity $store * @param ShopifyOrderEntity $orderEntity * @return ErpOrderEntity */ public function createOrder(StoreEntity $store, ShopifyOrderEntity $orderEntity) { $xmlObject = ShopifyOrderEntity::convertToXmlForErp($orderEntity, $store); $request = $this->client->createRequest('POST', sprintf('%s/orders/', $store->getErpUrl()), ['auth' => [$store->getErpUsername(), $store->getErpPassword()], 'body' => $xmlObject->asXML()]); $response = $this->sendRequest($request)->xml(); return ErpOrderEntity::createFromShopifyOrder($response, $orderEntity); }
/** * @param StoreEntity $store * @param ShopifyOrderEntity $order * @return ShopifyTransactionEntity|null */ public function getTransaction(StoreEntity $store, ShopifyOrderEntity $order) { $this->setSettings($store); $response = $this->client->getTransactions(['order_id' => $order->getId()]); $orderTransaction = null; if ($response['transactions']) { foreach ($response['transactions'] as $transaction) { if ($transaction['kind'] == ShopifyTransactionEntity::KIND_AUTHORIZATION || $transaction['kind'] == ShopifyTransactionEntity::KIND_CAPTURE) { $orderTransaction = ShopifyTransactionEntity::createFromTransactionResponse($transaction); $order->setTransaction($orderTransaction); break; } } } }