Skip to content

Commit 12eff43

Browse files
author
Tine Staric
committed
Add Metafields to Products and Variants
1 parent 8d8b3ba commit 12eff43

File tree

53 files changed

+2235
-18
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

53 files changed

+2235
-18
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
namespace Microsoft.Integration.Shopify;
2+
3+
codeunit 30312 "Shpfy Mtfld Type Boolean" implements "Shpfy IMetafield Type"
4+
{
5+
procedure HasAssistEdit(): Boolean
6+
begin
7+
exit(false);
8+
end;
9+
10+
procedure IsValidValue(Value: Text): Boolean
11+
var
12+
DummyBoolean: Boolean;
13+
begin
14+
exit(Evaluate(DummyBoolean, Value, 9));
15+
end;
16+
17+
procedure AssistEdit(var Value: Text[2048]): Boolean
18+
begin
19+
Value := Value;
20+
exit(false);
21+
end;
22+
23+
procedure GetExampleValue(): Text
24+
begin
25+
exit('true');
26+
end;
27+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
namespace Microsoft.Integration.Shopify;
2+
3+
using System.Utilities;
4+
5+
codeunit 30321 "Shpfy Mtfld Type Collect. Ref" implements "Shpfy IMetafield Type"
6+
{
7+
procedure HasAssistEdit(): Boolean
8+
begin
9+
exit(false);
10+
end;
11+
12+
procedure IsValidValue(Value: Text): Boolean
13+
var
14+
Regex: Codeunit Regex;
15+
begin
16+
exit(Regex.IsMatch(Value, '^gid:\/\/shopify\/Collection\/\d+$'));
17+
end;
18+
19+
procedure AssistEdit(var Value: Text[2048]): Boolean
20+
begin
21+
Value := Value;
22+
exit(false);
23+
end;
24+
25+
procedure GetExampleValue(): Text
26+
begin
27+
exit('gid://shopify/Collection/1234567890');
28+
end;
29+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
namespace Microsoft.Integration.Shopify;
2+
3+
using System.Utilities;
4+
5+
codeunit 30313 "Shpfy Mtfld Type Color" implements "Shpfy IMetafield Type"
6+
{
7+
procedure HasAssistEdit(): Boolean
8+
begin
9+
exit(false);
10+
end;
11+
12+
procedure IsValidValue(Value: Text): Boolean
13+
var
14+
Regex: Codeunit Regex;
15+
begin
16+
exit(Regex.IsMatch(Value, '^#[0-9A-Fa-f]{6}$'));
17+
end;
18+
19+
procedure AssistEdit(var Value: Text[2048]): Boolean
20+
begin
21+
Value := Value;
22+
exit(false);
23+
end;
24+
25+
procedure GetExampleValue(): Text
26+
begin
27+
exit('#fff123');
28+
end;
29+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
namespace Microsoft.Integration.Shopify;
2+
3+
codeunit 30314 "Shpfy Mtfld Type Date" implements "Shpfy IMetafield Type"
4+
{
5+
procedure HasAssistEdit(): Boolean
6+
begin
7+
exit(false);
8+
end;
9+
10+
procedure IsValidValue(Value: Text): Boolean
11+
var
12+
DummyDate: Date;
13+
begin
14+
exit(Evaluate(DummyDate, Value, 9));
15+
end;
16+
17+
procedure AssistEdit(var Value: Text[2048]): Boolean
18+
begin
19+
Value := Value;
20+
exit(false);
21+
end;
22+
23+
procedure GetExampleValue(): Text
24+
begin
25+
exit('2022-02-02');
26+
end;
27+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
namespace Microsoft.Integration.Shopify;
2+
3+
codeunit 30315 "Shpfy Mtfld Type DateTime" implements "Shpfy IMetafield Type"
4+
{
5+
procedure HasAssistEdit(): Boolean
6+
begin
7+
exit(false);
8+
end;
9+
10+
procedure IsValidValue(Value: Text): Boolean
11+
var
12+
DummyDateTime: DateTime;
13+
begin
14+
exit(Evaluate(DummyDateTime, Value, 9));
15+
end;
16+
17+
procedure AssistEdit(var Value: Text[2048]): Boolean
18+
begin
19+
Value := Value;
20+
exit(false);
21+
end;
22+
23+
procedure GetExampleValue(): Text
24+
begin
25+
exit('2022-01-01T12:30:00');
26+
end;
27+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,70 @@
1+
namespace Microsoft.Integration.Shopify;
2+
3+
codeunit 30316 "Shpfy Mtfld Type Dimension" implements "Shpfy IMetafield Type"
4+
{
5+
var
6+
DimensionJsonTemplateTxt: Label '{"value": %1, "unit": "%2"}', Locked = true;
7+
8+
procedure HasAssistEdit(): Boolean
9+
begin
10+
exit(true);
11+
end;
12+
13+
procedure IsValidValue(Value: Text): Boolean
14+
var
15+
Dimension: Decimal;
16+
Unit: Enum "Shpfy Metafield Dimension Type";
17+
begin
18+
exit(TryExtractValues(Value, Dimension, Unit));
19+
end;
20+
21+
procedure AssistEdit(var Value: Text[2048]): Boolean
22+
var
23+
MetafieldAssistEdit: Page "Shpfy Metafield Assist Edit";
24+
Dimension: Decimal;
25+
Unit: Enum "Shpfy Metafield Dimension Type";
26+
begin
27+
if Value <> '' then
28+
if not TryExtractValues(Value, Dimension, Unit) then begin
29+
Clear(Dimension);
30+
Clear(Unit);
31+
end;
32+
33+
if MetafieldAssistEdit.OpenForDimension(Dimension, Unit) then begin
34+
MetafieldAssistEdit.GetDimensionValue(Dimension, Unit);
35+
Value := StrSubstNo(DimensionJsonTemplateTxt, Format(Dimension, 0, 9), GetDimensionTypeName(Unit));
36+
end else
37+
exit(false);
38+
end;
39+
40+
procedure GetExampleValue(): Text
41+
begin
42+
exit(StrSubstNo(DimensionJsonTemplateTxt, '1.5', 'cm'));
43+
end;
44+
45+
[TryFunction]
46+
local procedure TryExtractValues(Value: Text; var Dimension: Decimal; var Unit: Enum "Shpfy Metafield Dimension Type")
47+
var
48+
JToken: JsonToken;
49+
JObject: JsonObject;
50+
begin
51+
JObject.ReadFrom(Value);
52+
JObject.SelectToken('value', JToken);
53+
Dimension := JToken.AsValue().AsDecimal();
54+
JObject.SelectToken('unit', JToken);
55+
Unit := ConvertToDimensionType(JToken.AsValue().AsText());
56+
57+
if JObject.Keys.Count() <> 2 then
58+
Error('');
59+
end;
60+
61+
local procedure GetDimensionTypeName(DimensionType: Enum "Shpfy Metafield Dimension Type"): Text
62+
begin
63+
exit(DimensionType.Names().Get(DimensionType.Ordinals().IndexOf(DimensionType.AsInteger())));
64+
end;
65+
66+
local procedure ConvertToDimensionType(Value: Text) Type: Enum "Shpfy Metafield Dimension Type"
67+
begin
68+
exit(Enum::"Shpfy Metafield Dimension Type".FromInteger(Type.Ordinals().Get(Type.Names().IndexOf(Value))));
69+
end;
70+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
namespace Microsoft.Integration.Shopify;
2+
3+
using System.Utilities;
4+
5+
codeunit 30322 "Shpfy Mtfld Type File Ref" implements "Shpfy IMetafield Type"
6+
{
7+
procedure HasAssistEdit(): Boolean
8+
begin
9+
exit(false);
10+
end;
11+
12+
procedure IsValidValue(Value: Text): Boolean
13+
var
14+
Regex: Codeunit Regex;
15+
begin
16+
exit(Regex.IsMatch(Value, '^gid:\/\/shopify\/MediaImage\/\d+$'));
17+
end;
18+
19+
procedure AssistEdit(var Value: Text[2048]): Boolean
20+
begin
21+
Value := Value;
22+
exit(false);
23+
end;
24+
25+
procedure GetExampleValue(): Text
26+
begin
27+
exit('gid://shopify/MediaImage/1234567890');
28+
end;
29+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
namespace Microsoft.Integration.Shopify;
2+
3+
codeunit 30310 "Shpfy Mtfld Type Integer" implements "Shpfy IMetafield Type"
4+
{
5+
procedure HasAssistEdit(): Boolean
6+
begin
7+
exit(false);
8+
end;
9+
10+
procedure IsValidValue(Value: Text): Boolean
11+
var
12+
DummyInteger: BigInteger;
13+
MinInt: BigInteger;
14+
MaxInt: BigInteger;
15+
begin
16+
if not Evaluate(DummyInteger, Value, 9) then
17+
exit(false);
18+
19+
Evaluate(MinInt, '-9007199254740991', 9);
20+
Evaluate(MaxInt, '9007199254740991', 9);
21+
if (DummyInteger < MinInt) or (DummyInteger > MaxInt) then
22+
exit(false);
23+
24+
exit(true);
25+
end;
26+
27+
procedure AssistEdit(var Value: Text[2048]): Boolean
28+
begin
29+
Value := Value;
30+
exit(false);
31+
end;
32+
33+
procedure GetExampleValue(): Text
34+
begin
35+
exit('123');
36+
end;
37+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
namespace Microsoft.Integration.Shopify;
2+
3+
codeunit 30311 "Shpfy Mtfld Type Json" implements "Shpfy IMetafield Type"
4+
{
5+
procedure HasAssistEdit(): Boolean
6+
begin
7+
exit(false);
8+
end;
9+
10+
procedure IsValidValue(Value: Text): Boolean
11+
var
12+
JsonObject: JsonObject;
13+
begin
14+
exit(JsonObject.ReadFrom(Value));
15+
end;
16+
17+
procedure AssistEdit(var Value: Text[2048]): Boolean
18+
begin
19+
Value := Value;
20+
exit(false);
21+
end;
22+
23+
procedure GetExampleValue(): Text
24+
begin
25+
exit('{"ingredient": "flour", "amount": 0.3}');
26+
end;
27+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
namespace Microsoft.Integration.Shopify;
2+
3+
using System.Utilities;
4+
5+
codeunit 30327 "Shpfy Mtfld Type Metaobj. Ref" implements "Shpfy IMetafield Type"
6+
{
7+
procedure HasAssistEdit(): Boolean
8+
begin
9+
exit(false);
10+
end;
11+
12+
procedure IsValidValue(Value: Text): Boolean
13+
var
14+
Regex: Codeunit Regex;
15+
begin
16+
exit(Regex.IsMatch(Value, '^gid:\/\/shopify\/Metaobject\/\d+$'));
17+
end;
18+
19+
procedure AssistEdit(var Value: Text[2048]): Boolean
20+
begin
21+
Value := Value;
22+
exit(false);
23+
end;
24+
25+
procedure GetExampleValue(): Text
26+
begin
27+
exit('gid://shopify/Metaobject/1234567890');
28+
end;
29+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
namespace Microsoft.Integration.Shopify;
2+
3+
using System.Utilities;
4+
5+
codeunit 30331 "Shpfy Mtfld Type Mixed Ref" implements "Shpfy IMetafield Type"
6+
{
7+
procedure HasAssistEdit(): Boolean
8+
begin
9+
exit(false);
10+
end;
11+
12+
procedure IsValidValue(Value: Text): Boolean
13+
var
14+
Regex: Codeunit Regex;
15+
begin
16+
exit(Regex.IsMatch(Value, '^gid:\/\/shopify\/[A-Za-z]+\/\d+$'));
17+
end;
18+
19+
procedure AssistEdit(var Value: Text[2048]): Boolean
20+
begin
21+
Value := Value;
22+
exit(false);
23+
end;
24+
25+
procedure GetExampleValue(): Text
26+
begin
27+
exit('gid://shopify/Product/1234567890');
28+
end;
29+
}

0 commit comments

Comments
 (0)