Skip to content

Commit 4fb211f

Browse files
committed
Include price and image url in variants
1 parent 8e732b7 commit 4fb211f

9 files changed

Lines changed: 126 additions & 19 deletions

File tree

.idea/php-test-framework.xml

Lines changed: 14 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

.idea/php.xml

Lines changed: 46 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

.idea/vcs.xml

Lines changed: 6 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

.idea/widget_php_module.iml

Lines changed: 34 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

.phpunit.result.cache

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
C:37:"PHPUnit\Runner\DefaultTestResultCache":922:{a:2:{s:7:"defects";a:1:{s:51:"Faslet\Tests\WidgetTest::testReturnsAValidWidgetTag";i:3;}s:5:"times";a:11:{s:51:"Faslet\Tests\WidgetTest::testReturnsAValidWidgetTag";d:0.001;s:60:"Faslet\Tests\OrderTrackingTest::testSetsShopIdOnConstruction";d:0.017;s:65:"Faslet\Tests\OrderTrackingTest::testReturnsAValidOrderTrackingTag";d:0.001;s:66:"Faslet\Tests\OrderTrackingTest::testThrowsErrorWhenShopIdIsMissing";d:0.009;s:71:"Faslet\Tests\OrderTrackingTest::testThrowsErrorWhenOrderNumberIsMissing";d:0;s:67:"Faslet\Tests\OrderTrackingTest::testThrowsErrorWhenProductsAreEmpty";d:0;s:53:"Faslet\Tests\WidgetTest::testSetsShopIdOnConstruction";d:0.001;s:50:"Faslet\Tests\WidgetTest::testReturnsValidScriptTag";d:0;s:58:"Faslet\Tests\WidgetTest::testThrowsErrorWhenBrandIsMissing";d:0;s:59:"Faslet\Tests\WidgetTest::testThrowsErrorWhenShopIdIsMissing";d:0;s:62:"Faslet\Tests\WidgetTest::testThrowsErrorWhenVariantsAreMissing";d:0;}}}

README.md

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -29,12 +29,12 @@ $widget
2929

3030

3131
$widget
32-
->addVariant("var_1", "S", true, "sku_1", "red")
33-
->addVariant("var_2", "S", true, "sku_2", "blue")
34-
->addVariant("var_3", "M", true, "sku_3", "red")
35-
->addVariant("var_4", "M", false, "sku_4", "blue")
36-
->addVariant("var_5", "L", false, "sku_5", "red")
37-
->addVariant("var_6", "L", false, "sku_6", "blue");
32+
->addVariant("var_1", "S", true, "sku_1", "red", 59.99, 'https://placekitten.com')
33+
->addVariant("var_2", "S", true, "sku_2", "blue", 59.99, 'https://placekitten.com')
34+
->addVariant("var_3", "M", true, "sku_3", "red", 49.99, 'https://placekitten.com')
35+
->addVariant("var_4", "M", false, "sku_4", "blue", 49.99, 'https://placekitten.com')
36+
->addVariant("var_5", "L", false, "sku_5", "red", 59.99, 'https://placekitten.com')
37+
->addVariant("var_6", "L", false, "sku_6", "blue", 59.99, 'https://placekitten.com');
3838

3939
$widget->withAddToCartRedirect("https://example.com/add-to-cart?variantId=%id%", "%id%");
4040
```

examples/faslet-widget.php

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -19,12 +19,12 @@
1919

2020

2121
$widget
22-
->addVariant("var_1", "S", true, "sku_1", "red")
23-
->addVariant("var_2", "S", true, "sku_2", "blue")
24-
->addVariant("var_3", "M", true, "sku_3", "red")
25-
->addVariant("var_4", "M", false, "sku_4", "blue")
26-
->addVariant("var_5", "L", false, "sku_5", "red")
27-
->addVariant("var_6", "L", false, "sku_6", "blue");
22+
->addVariant("var_1", "S", true, "sku_1", "red", 59.99, 'https://placekitten.com')
23+
->addVariant("var_2", "S", true, "sku_2", "blue", 59.99, 'https://placekitten.com')
24+
->addVariant("var_3", "M", true, "sku_3", "red", 49.99, 'https://placekitten.com')
25+
->addVariant("var_4", "M", false, "sku_4", "blue", 49.99, 'https://placekitten.com')
26+
->addVariant("var_5", "L", false, "sku_5", "red", 59.99, 'https://placekitten.com')
27+
->addVariant("var_6", "L", false, "sku_6", "blue", 59.99, 'https://placekitten.com');
2828

2929
$widget->withAddToCartRedirect("https://example.com/add-to-cart?variantId=%id%", "%id%")
3030

src/Widget.php

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -117,9 +117,15 @@ public function addColor(string $id, string $name)
117117
return $this;
118118
}
119119

120-
public function addVariant(string $variantId, string $sizeLabel, bool $inStock, string $sku, string $colorId)
120+
public function addVariant(string $variantId, string $sizeLabel, bool $inStock, string $sku, string $colorId, int $price, ?string $imageUrl = null)
121121
{
122-
$this->variants[] = array("size" => $sizeLabel, "id" => $variantId, "sku" => $sku, "available" => $inStock, "color" => $colorId);
122+
$this->variants[] = array("size" => $sizeLabel, "id" => $variantId, "sku" => $sku, "available" => $inStock, "color" => $colorId, "price" => $price);
123+
if($imageUrl != null) {
124+
$currentIndex = count($this->variants) - 1;
125+
$this->variants[$currentIndex]["imageUrl"] = $imageUrl;
126+
}
127+
128+
123129
return $this;
124130
}
125131

tests/WidgetTest.php

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -48,10 +48,10 @@ public function testReturnsAValidWidgetTag(): void
4848

4949

5050
$widget
51-
->addVariant("var_1", "S", true, "sku_1", "red")
52-
->addVariant("var_2", "S", true, "sku_2", "blue")
53-
->addVariant("var_3", "M", false, "sku_3", "red")
54-
->addVariant("var_4", "M", true, "sku_4", "blue");
51+
->addVariant("var_1", "S", true, "sku_1", "red", 43)
52+
->addVariant("var_2", "S", true, "sku_2", "blue", 37, "https://test.com")
53+
->addVariant("var_3", "M", false, "sku_3", "red", 43)
54+
->addVariant("var_4", "M", true, "sku_4", "blue", 43);
5555

5656
$widgetSnippet = $widget
5757
->buildWidget();
@@ -61,7 +61,7 @@ public function testReturnsAValidWidgetTag(): void
6161
<script>
6262
window._faslet = window._faslet || {};
6363
window._faslet.id = \"product id\";
64-
window._faslet.variants = [{\"size\":\"S\",\"id\":\"var_1\",\"sku\":\"sku_1\",\"available\":true,\"color\":\"red\"},{\"size\":\"S\",\"id\":\"var_2\",\"sku\":\"sku_2\",\"available\":true,\"color\":\"blue\"},{\"size\":\"M\",\"id\":\"var_3\",\"sku\":\"sku_3\",\"available\":false,\"color\":\"red\"},{\"size\":\"M\",\"id\":\"var_4\",\"sku\":\"sku_4\",\"available\":true,\"color\":\"blue\"}];
64+
window._faslet.variants = [{\"size\":\"S\",\"id\":\"var_1\",\"sku\":\"sku_1\",\"available\":true,\"color\":\"red\",\"price\":43},{\"size\":\"S\",\"id\":\"var_2\",\"sku\":\"sku_2\",\"available\":true,\"color\":\"blue\",\"price\":37,\"imageUrl\":\"https:\/\/test.com\"},{\"size\":\"M\",\"id\":\"var_3\",\"sku\":\"sku_3\",\"available\":false,\"color\":\"red\",\"price\":43},{\"size\":\"M\",\"id\":\"var_4\",\"sku\":\"sku_4\",\"available\":true,\"color\":\"blue\",\"price\":43}];
6565
window._faslet.colors = [{\"id\":\"red\",\"name\":\"Magnificent Red\"},{\"id\":\"blue\",\"name\":\"Dashing Blue\"}];
6666
window._faslet.shopUrl = \"https://shop.com/\";
6767
</script>

0 commit comments

Comments
 (0)