예제 #1
0
 function testProduct()
 {
     $decoder = new XmlDecoder();
     $product = $decoder->decodeProduct($this->getXml());
     $this->assertEquals('2mtqj837tow0', $product->getUid());
     $this->assertEquals('Hladká vyztužená podprsenka CHANGE Tactel černá', $product->getName());
     $this->assertEquals(new \DateTime('2016-03-07 15:30:05'), $product->getCreated());
     $this->assertEquals(new \DateTime('2016-03-28 13:59:06'), $product->getUpdated());
     $this->assertFalse($product->isDeleted());
     $this->assertEquals(Availability::IN_STOCK, $product->getAvailability()->getCode());
     $this->assertEquals(0, $product->getAvailability()->getHours());
     $this->assertEquals(6, $product->getAvailability()->getQuantity());
     $this->assertEquals('ihned k odeslání', $product->getAvailability()->getText());
     $this->assertEquals('v2ae564zkhcs', $product->getImages()[0]->getUid());
     $this->assertEquals('https://cdn.shopapi.cz/img/orig/9/8/69/986943cc69c7292472e6f9146934bfa8.jpg', $product->getImages()[0]->getUrl());
     $this->assertEquals(420, $product->getPrice());
     $this->assertEquals(635, $product->getPriceRetail());
     $this->assertEquals(21, $product->getVatRate());
     $this->assertEquals('88000011212', $product->getEan());
     $this->assertEquals('CB19604108-BLACK', $product->getCode());
     $this->assertEquals('89suej9s5ukg', $product->getBrand()->getUid());
     $this->assertEquals('CHANGE Lingerie', $product->getBrand()->getName());
     $this->assertEquals('description', $product->getDescription());
     $this->assertEquals('fulldescription', $product->getFullDescription());
     $this->assertEquals(24, $product->getWarranty());
     $this->assertEquals('https://www.perfektnipradlo.cz/Podprsenky/vyztuzene/Hladka-vyztuzena-podprsenka-CHANGE-Tactel-cerna', $product->getUrl());
     $this->assertEquals('3vbdae456tc0', $product->getVariants()[0]->getUid());
     $this->assertEquals('28q0qb1pvl5w', $product->getVariants()[1]->getUid());
     $this->assertEquals('b9i9ssr4lxk4', $product->getAttributes()[0]->getAttribute()->getUid());
     $this->assertEquals('Barva', $product->getAttributes()[0]->getAttribute()->getName());
     $this->assertEquals(['bílá', 'modrá', 'ocelová'], $product->getAttributes()[0]->getValues());
     $this->assertEquals('b9i9ssr4lxk4', $product->getAttribute('b9i9ssr4lxk4')->getAttribute()->getUid());
     $this->assertNull($product->getAttribute('xxx'));
     $this->assertEquals('0f26c54d0a9cd4dbad6c096cfd587847', $product->getChecksum());
 }
예제 #2
0
 /**
  * @param $xmlFilePath
  * @return \Generator|Product[]
  */
 public function readFromPath($xmlFilePath)
 {
     $xml = new \XMLReader();
     $xml->open($xmlFilePath);
     while ($xml->read() && $xml->name !== 'product') {
     }
     $decoder = new XmlDecoder();
     while ($xmlData = $xml->readOuterXml()) {
         (yield $decoder->decodeProduct(new \SimpleXMLElement($xmlData)));
         $xml->next('product');
     }
     $xml->close();
 }