Repository: saleor/saleor
Pull request: Migrate deprecated fields
I want to merge this change because...

Resolves #3996

<!-- Please mention all relevant issue numbers. -->

### Screenshots

<!-- If your changes affect the UI, providing "before" and "after" screenshots will
greatly reduce the amount of work needed to review your work. -->

### Pull Request Checklist

<!-- Please keep this section. It will make maintainer's life easier. -->

1. [x] Privileged views and APIs are guarded by proper permission checks.
1. [x] All visible strings are translated with proper context.
1. [x] All data-formatting is locale-aware (dates, numbers, and so on).
1. [x] Database queries are optimized and the number of queries is constant.
1. [x] Database migration files are up to date.
1. [ ] The changes are tested.
1. [ ] The code is documented (docstrings, project documentation).
1. [x] GraphQL schema and type definitions are up to date.
1. [x] Changes are mentioned in the changelog.


Problem statement:
Migrate from `deprecated` fields
Some GraphQL fields were recently deprecated in our API:
- OrderLine.thumbnailUrl
- Page.availableOn
- Page.isVisible
- ProductVariant.availability
- Product.availability -> pricing
- Product.availableOn
- Product.price
- Product.thumbnailUrl
- Collection.publishedDate

We should migrate queries in Dashboard 2.0 to use the new fields, so that we'll be able to drop the old ones from the schema.

Hints from issue discussion:
Field `Collection.publishedDate` is not used

Commit message: Rebase master

Patch to review:
diff --git a/package-lock.json b/package-lock.json
index 8c0dc53013b..24d0a86c3a6 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -15062,7 +15062,8 @@
         "ansi-regex": {
           "version": "2.1.1",
           "bundled": true,
-          "dev": true
+          "dev": true,
+          "optional": true
         },
         "aproba": {
           "version": "1.2.0",
@@ -15083,12 +15084,14 @@
         "balanced-match": {
           "version": "1.0.0",
           "bundled": true,
-          "dev": true
+          "dev": true,
+          "optional": true
         },
         "brace-expansion": {
           "version": "1.1.11",
           "bundled": true,
           "dev": true,
+          "optional": true,
           "requires": {
             "balanced-match": "^1.0.0",
             "concat-map": "0.0.1"
@@ -15103,17 +15106,20 @@
         "code-point-at": {
           "version": "1.1.0",
           "bundled": true,
-          "dev": true
+          "dev": true,
+          "optional": true
         },
         "concat-map": {
           "version": "0.0.1",
           "bundled": true,
-          "dev": true
+          "dev": true,
+          "optional": true
         },
         "console-control-strings": {
           "version": "1.1.0",
           "bundled": true,
-          "dev": true
+          "dev": true,
+          "optional": true
         },
         "core-util-is": {
           "version": "1.0.2",
@@ -15230,7 +15236,8 @@
         "inherits": {
           "version": "2.0.3",
           "bundled": true,
-          "dev": true
+          "dev": true,
+          "optional": true
         },
         "ini": {
           "version": "1.3.5",
@@ -15242,6 +15249,7 @@
           "version": "1.0.0",
           "bundled": true,
           "dev": true,
+          "optional": true,
           "requires": {
             "number-is-nan": "^1.0.0"
           }
@@ -15256,6 +15264,7 @@
           "version": "3.0.4",
           "bundled": true,
           "dev": true,
+          "optional": true,
           "requires": {
             "brace-expansion": "^1.1.7"
           }
@@ -15263,12 +15272,14 @@
         "minimist": {
           "version": "0.0.8",
           "bundled": true,
-          "dev": true
+          "dev": true,
+          "optional": true
         },
         "minipass": {
           "version": "2.2.4",
           "bundled": true,
           "dev": true,
+          "optional": true,
           "requires": {
             "safe-buffer": "^5.1.1",
             "yallist": "^3.0.0"
@@ -15287,6 +15298,7 @@
           "version": "0.5.1",
           "bundled": true,
           "dev": true,
+          "optional": true,
           "requires": {
             "minimist": "0.0.8"
           }
@@ -15367,7 +15379,8 @@
         "number-is-nan": {
           "version": "1.0.1",
           "bundled": true,
-          "dev": true
+          "dev": true,
+          "optional": true
         },
         "object-assign": {
           "version": "4.1.1",
@@ -15379,6 +15392,7 @@
           "version": "1.4.0",
           "bundled": true,
           "dev": true,
+          "optional": true,
           "requires": {
             "wrappy": "1"
           }
@@ -15464,7 +15478,8 @@
         "safe-buffer": {
           "version": "5.1.1",
           "bundled": true,
-          "dev": true
+          "dev": true,
+          "optional": true
         },
         "safer-buffer": {
           "version": "2.1.2",
@@ -15500,6 +15515,7 @@
           "version": "1.0.2",
           "bundled": true,
           "dev": true,
+          "optional": true,
           "requires": {
             "code-point-at": "^1.0.0",
             "is-fullwidth-code-point": "^1.0.0",
@@ -15519,6 +15535,7 @@
           "version": "3.0.1",
           "bundled": true,
           "dev": true,
+          "optional": true,
           "requires": {
             "ansi-regex": "^2.0.0"
           }
@@ -15562,12 +15579,14 @@
         "wrappy": {
           "version": "1.0.2",
           "bundled": true,
-          "dev": true
+          "dev": true,
+          "optional": true
         },
         "yallist": {
           "version": "3.0.2",
           "bundled": true,
-          "dev": true
+          "dev": true,
+          "optional": true
         }
       }
     },
@@ -18574,7 +18593,8 @@
             "ansi-regex": {
               "version": "2.1.1",
               "bundled": true,
-              "dev": true
+              "dev": true,
+              "optional": true
             },
             "aproba": {
               "version": "1.2.0",
@@ -18595,12 +18615,14 @@
             "balanced-match": {
               "version": "1.0.0",
               "bundled": true,
-              "dev": true
+              "dev": true,
+              "optional": true
             },
             "brace-expansion": {
               "version": "1.1.11",
               "bundled": true,
               "dev": true,
+              "optional": true,
               "requires": {
                 "balanced-match": "^1.0.0",
                 "concat-map": "0.0.1"
@@ -18615,17 +18637,20 @@
             "code-point-at": {
               "version": "1.1.0",
               "bundled": true,
-              "dev": true
+              "dev": true,
+              "optional": true
             },
             "concat-map": {
               "version": "0.0.1",
               "bundled": true,
-              "dev": true
+              "dev": true,
+              "optional": true
             },
             "console-control-strings": {
               "version": "1.1.0",
               "bundled": true,
-              "dev": true
+              "dev": true,
+              "optional": true
             },
             "core-util-is": {
               "version": "1.0.2",
@@ -18742,7 +18767,8 @@
             "inherits": {
               "version": "2.0.3",
               "bundled": true,
-              "dev": true
+              "dev": true,
+              "optional": true
             },
             "ini": {
               "version": "1.3.5",
@@ -18754,6 +18780,7 @@
               "version": "1.0.0",
               "bundled": true,
               "dev": true,
+              "optional": true,
               "requires": {
                 "number-is-nan": "^1.0.0"
               }
@@ -18768,6 +18795,7 @@
               "version": "3.0.4",
               "bundled": true,
               "dev": true,
+              "optional": true,
               "requires": {
                 "brace-expansion": "^1.1.7"
               }
@@ -18775,12 +18803,14 @@
             "minimist": {
               "version": "0.0.8",
               "bundled": true,
-              "dev": true
+              "dev": true,
+              "optional": true
             },
             "minipass": {
               "version": "2.3.5",
               "bundled": true,
               "dev": true,
+              "optional": true,
               "requires": {
                 "safe-buffer": "^5.1.2",
                 "yallist": "^3.0.0"
@@ -18799,6 +18829,7 @@
               "version": "0.5.1",
               "bundled": true,
               "dev": true,
+              "optional": true,
               "requires": {
                 "minimist": "0.0.8"
               }
@@ -18879,7 +18910,8 @@
             "number-is-nan": {
               "version": "1.0.1",
               "bundled": true,
-              "dev": true
+              "dev": true,
+              "optional": true
             },
             "object-assign": {
               "version": "4.1.1",
@@ -18891,6 +18923,7 @@
               "version": "1.4.0",
               "bundled": true,
               "dev": true,
+              "optional": true,
               "requires": {
                 "wrappy": "1"
               }
@@ -18976,7 +19009,8 @@
             "safe-buffer": {
               "version": "5.1.2",
               "bundled": true,
-              "dev": true
+              "dev": true,
+              "optional": true
             },
             "safer-buffer": {
               "version": "2.1.2",
@@ -19012,6 +19046,7 @@
               "version": "1.0.2",
               "bundled": true,
               "dev": true,
+              "optional": true,
               "requires": {
                 "code-point-at": "^1.0.0",
                 "is-fullwidth-code-point": "^1.0.0",
@@ -19031,6 +19066,7 @@
               "version": "3.0.1",
               "bundled": true,
               "dev": true,
+              "optional": true,
               "requires": {
                 "ansi-regex": "^2.0.0"
               }
@@ -19074,12 +19110,14 @@
             "wrappy": {
               "version": "1.0.2",
               "bundled": true,
-              "dev": true
+              "dev": true,
+              "optional": true
             },
             "yallist": {
               "version": "3.0.3",
               "bundled": true,
-              "dev": true
+              "dev": true,
+              "optional": true
             }
           }
         },
diff --git a/saleor/static/dashboard-next/categories/components/CategoryProducts/CategoryProducts.tsx b/saleor/static/dashboard-next/categories/components/CategoryProducts/CategoryProducts.tsx
index 42e39b480dd..b75f3c942d4 100644
--- a/saleor/static/dashboard-next/categories/components/CategoryProducts/CategoryProducts.tsx
+++ b/saleor/static/dashboard-next/categories/components/CategoryProducts/CategoryProducts.tsx
@@ -19,7 +19,7 @@ import Skeleton from "../../../components/Skeleton";
 import TableCellAvatar from "../../../components/TableCellAvatar";
 import TablePagination from "../../../components/TablePagination";
 import i18n from "../../../i18n";
-import { renderCollection } from "../../../misc";
+import { maybe, renderCollection } from "../../../misc";
 
 const styles = (theme: Theme) =>
   createStyles({
@@ -41,7 +41,9 @@ interface ProductListProps extends WithStyles<typeof styles> {
     productType: {
       name: string;
     };
-    thumbnailUrl: string;
+    thumbnail: {
+      url: string;
+    };
   }>;
   onAddProduct?();
   onNextPage?();
@@ -95,7 +97,9 @@ export const ProductList = withStyles(styles, { name: "ProductList" })(
             products,
             product => (
               <TableRow key={product ? product.id : "skeleton"}>
-                <TableCellAvatar thumbnail={product && product.thumbnailUrl} />
+                <TableCellAvatar
+                  thumbnail={product && maybe(() => product.thumbnail.url)}
+                />
                 <TableCell className={classes.textLeft}>
                   {product ? (
                     <span
diff --git a/saleor/static/dashboard-next/categories/fixtures.ts b/saleor/static/dashboard-next/categories/fixtures.ts
index 9fc71ce5c32..f7621bfa969 100644
--- a/saleor/static/dashboard-next/categories/fixtures.ts
+++ b/saleor/static/dashboard-next/categories/fixtures.ts
@@ -91,17 +91,14 @@ export const category: (
         cursor: "YXJyYXljb25uZWN0aW9uOjA=",
         node: {
           __typename: "Product",
-          availability: {
-            __typename: "ProductPricingInfo",
-            available: true
-          },
-          id: "UHJvZHVjdDoyMQ==",
-          name: "Gardner-Schultz",
-          price: {
+          basePrice: {
             __typename: "Money",
             amount: 83.3,
             currency: "USD"
           },
+          id: "UHJvZHVjdDoyMQ==",
+          isAvailable: true,
+          name: "Gardner-Schultz",
           productType: {
             __typename: "ProductType",
             id: "UHJvZHVjdFR5cGU6Mw==",
@@ -115,17 +112,14 @@ export const category: (
         cursor: "YXJyYXljb25uZWN0aW9uOjE=",
         node: {
           __typename: "Product",
-          availability: {
-            __typename: "ProductPricingInfo",
-            available: true
-          },
-          id: "UHJvZHVjdDoyMg==",
-          name: "James, Martinez and Murray",
-          price: {
+          basePrice: {
             __typename: "Money",
             amount: 68.27,
             currency: "USD"
           },
+          id: "UHJvZHVjdDoyMg==",
+          isAvailable: true,
+          name: "James, Martinez and Murray",
           productType: {
             __typename: "ProductType",
             id: "UHJvZHVjdFR5cGU6Mw==",
@@ -139,17 +133,14 @@ export const category: (
         cursor: "YXJyYXljb25uZWN0aW9uOjI=",
         node: {
           __typename: "Product",
-          availability: {
-            __typename: "ProductPricingInfo",
-            available: true
-          },
-          id: "UHJvZHVjdDoyMw==",
-          name: "Curtis, Joyce and Turner",
-          price: {
+          basePrice: {
             __typename: "Money",
             amount: 21.43,
             currency: "USD"
           },
+          id: "UHJvZHVjdDoyMw==",
+          isAvailable: true,
+          name: "Curtis, Joyce and Turner",
           productType: {
             __typename: "ProductType",
             id: "UHJvZHVjdFR5cGU6Mw==",
@@ -163,17 +154,14 @@ export const category: (
         cursor: "YXJyYXljb25uZWN0aW9uOjM=",
         node: {
           __typename: "Product",
-          availability: {
-            __typename: "ProductPricingInfo",
-            available: true
-          },
-          id: "UHJvZHVjdDoyNA==",
-          name: "Davis, Brown and Ray",
-          price: {
+          basePrice: {
             __typename: "Money",
             amount: 62.76,
             currency: "USD"
           },
+          id: "UHJvZHVjdDoyNA==",
+          isAvailable: true,
+          name: "Davis, Brown and Ray",
           productType: {
             __typename: "ProductType",
             id: "UHJvZHVjdFR5cGU6Mw==",
@@ -187,17 +175,14 @@ export const category: (
         cursor: "YXJyYXljb25uZWN0aW9uOjQ=",
         node: {
           __typename: "Product",
-          availability: {
-            __typename: "ProductPricingInfo",
-            available: true
-          },
-          id: "UHJvZHVjdDoyNQ==",
-          name: "Gallegos Ltd",
-          price: {
+          basePrice: {
             __typename: "Money",
             amount: 7.13,
             currency: "USD"
           },
+          id: "UHJvZHVjdDoyNQ==",
+          isAvailable: true,
+          name: "Gallegos Ltd",
           productType: {
             __typename: "ProductType",
             id: "UHJvZHVjdFR5cGU6Mw==",
@@ -211,17 +196,14 @@ export const category: (
         cursor: "YXJyYXljb25uZWN0aW9uOjU=",
         node: {
           __typename: "Product",
-          availability: {
-            __typename: "ProductPricingInfo",
-            available: true
-          },
-          id: "UHJvZHVjdDoyNg==",
-          name: "Franklin Inc",
-          price: {
+          basePrice: {
             __typename: "Money",
             amount: 48.82,
             currency: "USD"
           },
+          id: "UHJvZHVjdDoyNg==",
+          isAvailable: true,
+          name: "Franklin Inc",
           productType: {
             __typename: "ProductType",
             id: "UHJvZHVjdFR5cGU6Mw==",
@@ -235,17 +217,14 @@ export const category: (
         cursor: "YXJyYXljb25uZWN0aW9uOjY=",
         node: {
           __typename: "Product",
-          availability: {
-            __typename: "ProductPricingInfo",
-            available: true
-          },
-          id: "UHJvZHVjdDoyNw==",
-          name: "Williams-Taylor",
-          price: {
+          basePrice: {
             __typename: "Money",
             amount: 27.34,
             currency: "USD"
           },
+          id: "UHJvZHVjdDoyNw==",
+          isAvailable: true,
+          name: "Williams-Taylor",
           productType: {
             __typename: "ProductType",
             id: "UHJvZHVjdFR5cGU6Mw==",
@@ -259,17 +238,14 @@ export const category: (
         cursor: "YXJyYXljb25uZWN0aW9uOjc=",
         node: {
           __typename: "Product",
-          availability: {
-            __typename: "ProductPricingInfo",
-            available: true
-          },
-          id: "UHJvZHVjdDoyOA==",
-          name: "Riddle, Evans and Hicks",
-          price: {
+          basePrice: {
             __typename: "Money",
             amount: 75.42,
             currency: "USD"
           },
+          id: "UHJvZHVjdDoyOA==",
+          isAvailable: true,
+          name: "Riddle, Evans and Hicks",
           productType: {
             __typename: "ProductType",
             id: "UHJvZHVjdFR5cGU6Mw==",
@@ -283,17 +259,14 @@ export const category: (
         cursor: "YXJyYXljb25uZWN0aW9uOjg=",
         node: {
           __typename: "Product",
-          availability: {
-            __typename: "ProductPricingInfo",
-            available: true
-          },
-          id: "UHJvZHVjdDoyOQ==",
-          name: "Hebert-Sherman",
-          price: {
+          basePrice: {
             __typename: "Money",
             amount: 86.62,
             currency: "USD"
           },
+          id: "UHJvZHVjdDoyOQ==",
+          isAvailable: true,
+          name: "Hebert-Sherman",
           productType: {
             __typename: "ProductType",
             id: "UHJvZHVjdFR5cGU6Mw==",
@@ -307,17 +280,14 @@ export const category: (
         cursor: "YXJyYXljb25uZWN0aW9uOjk=",
         node: {
           __typename: "Product",
-          availability: {
-            __typename: "ProductPricingInfo",
-            available: true
-          },
-          id: "UHJvZHVjdDozMA==",
-          name: "Carter and Sons",
-          price: {
+          basePrice: {
             __typename: "Money",
             amount: 48.66,
             currency: "USD"
           },
+          id: "UHJvZHVjdDozMA==",
+          isAvailable: true,
+          name: "Carter and Sons",
           productType: {
             __typename: "ProductType",
             id: "UHJvZHVjdFR5cGU6Mw==",
diff --git a/saleor/static/dashboard-next/categories/queries.ts b/saleor/static/dashboard-next/categories/queries.ts
index 6d3fc045f43..273ff7dc290 100644
--- a/saleor/static/dashboard-next/categories/queries.ts
+++ b/saleor/static/dashboard-next/categories/queries.ts
@@ -100,16 +100,14 @@ export const categoryDetails = gql`
           node {
             id
             name
-            availability {
-              available
+            basePrice {
+              amount
+              currency
             }
+            isAvailable
             thumbnail {
               url
             }
-            price {
-              amount
-              currency
-            }
             productType {
               id
               name
diff --git a/saleor/static/dashboard-next/categories/types/CategoryDetails.ts b/saleor/static/dashboard-next/categories/types/CategoryDetails.ts
index 101a84c3ac0..5168b4606f5 100644
--- a/saleor/static/dashboard-next/categories/types/CategoryDetails.ts
+++ b/saleor/static/dashboard-next/categories/types/CategoryDetails.ts
@@ -53,9 +53,10 @@ export interface CategoryDetails_category_products_pageInfo {
   startCursor: string | null;
 }
 
-export interface CategoryDetails_category_products_edges_node_availability {
-  __typename: "ProductPricingInfo";
-  available: boolean | null;
+export interface CategoryDetails_category_products_edges_node_basePrice {
+  __typename: "Money";
+  amount: number;
+  currency: string;
 }
 
 export interface CategoryDetails_category_products_edges_node_thumbnail {
@@ -63,12 +64,6 @@ export interface CategoryDetails_category_products_edges_node_thumbnail {
   url: string;
 }
 
-export interface CategoryDetails_category_products_edges_node_price {
-  __typename: "Money";
-  amount: number;
-  currency: string;
-}
-
 export interface CategoryDetails_category_products_edges_node_productType {
   __typename: "ProductType";
   id: string;
@@ -79,9 +74,9 @@ export interface CategoryDetails_category_products_edges_node {
   __typename: "Product";
   id: string;
   name: string;
-  availability: CategoryDetails_category_products_edges_node_availability | null;
+  basePrice: CategoryDetails_category_products_edges_node_basePrice | null;
+  isAvailable: boolean | null;
   thumbnail: CategoryDetails_category_products_edges_node_thumbnail | null;
-  price: CategoryDetails_category_products_edges_node_price | null;
   productType: CategoryDetails_category_products_edges_node_productType;
 }
 
diff --git a/saleor/static/dashboard-next/collections/mutations.ts b/saleor/static/dashboard-next/collections/mutations.ts
index 8e72a2c327d..94623492f89 100644
--- a/saleor/static/dashboard-next/collections/mutations.ts
+++ b/saleor/static/dashboard-next/collections/mutations.ts
@@ -193,7 +193,9 @@ const unassignCollectionProduct = gql`
                 id
                 name
               }
-              thumbnailUrl
+              thumbnail {
+                url
+              }
             }
           }
           pageInfo {
diff --git a/saleor/static/dashboard-next/collections/types/UnassignCollectionProduct.ts b/saleor/static/dashboard-next/collections/types/UnassignCollectionProduct.ts
index 8501a0d0f31..d5bbfc65083 100644
--- a/saleor/static/dashboard-next/collections/types/UnassignCollectionProduct.ts
+++ b/saleor/static/dashboard-next/collections/types/UnassignCollectionProduct.ts
@@ -18,13 +18,18 @@ export interface UnassignCollectionProduct_collectionRemoveProducts_collection_p
   name: string;
 }
 
+export interface UnassignCollectionProduct_collectionRemoveProducts_collection_products_edges_node_thumbnail {
+  __typename: "Image";
+  url: string;
+}
+
 export interface UnassignCollectionProduct_collectionRemoveProducts_collection_products_edges_node {
   __typename: "Product";
   id: string;
   isPublished: boolean;
   name: string;
   productType: UnassignCollectionProduct_collectionRemoveProducts_collection_products_edges_node_productType;
-  thumbnailUrl: string | null;
+  thumbnail: UnassignCollectionProduct_collectionRemoveProducts_collection_products_edges_node_thumbnail | null;
 }
 
 export interface UnassignCollectionProduct_collectionRemoveProducts_collection_products_edges {
diff --git a/saleor/static/dashboard-next/components/AssignProductDialog/AssignProductDialog.tsx b/saleor/static/dashboard-next/components/AssignProductDialog/AssignProductDialog.tsx
index c0ea20a4a46..cf356868d46 100644
--- a/saleor/static/dashboard-next/components/AssignProductDialog/AssignProductDialog.tsx
+++ b/saleor/static/dashboard-next/components/AssignProductDialog/AssignProductDialog.tsx
@@ -21,6 +21,7 @@ import FormSpacer from "../../components/FormSpacer";
 import TableCellAvatar from "../../components/TableCellAvatar";
 import { SearchProducts_products_edges_node } from "../../containers/SearchProducts/types/SearchProducts";
 import i18n from "../../i18n";
+import { maybe } from "../../misc";
 import Checkbox from "../Checkbox";
 
 export interface FormData {
@@ -119,7 +120,7 @@ const AssignProductDialog = withStyles(styles, {
                         <TableRow key={product.id}>
                           <TableCellAvatar
                             className={classes.avatar}
-                            thumbnail={product.thumbnail.url}
+                            thumbnail={maybe(() => product.thumbnail.url)}
                           />
                           <TableCell className={classes.wideCell}>
                             {product.name}
diff --git a/saleor/static/dashboard-next/components/ProductList/ProductList.tsx b/saleor/static/dashboard-next/components/ProductList/ProductList.tsx
index 16b2c5cd1d0..8d8f36cfd9b 100644
--- a/saleor/static/dashboard-next/components/ProductList/ProductList.tsx
+++ b/saleor/static/dashboard-next/components/ProductList/ProductList.tsx
@@ -152,20 +152,16 @@ export const ProductList = withStyles(styles, { name: "ProductList" })(
                   )}
                 </TableCell>
                 <TableCell className={classes.colPublished}>
-                  {product &&
-                  product.availability &&
-                  product.availability.available !== undefined ? (
+                  {product && maybe(() => product.isAvailable !== undefined) ? (
                     <StatusLabel
                       label={
-                        product.availability.available
+                        product.isAvailable
                           ? i18n.t("Published", { context: "product status" })
                           : i18n.t("Not published", {
                               context: "product status"
                             })
                       }
-                      status={
-                        product.availability.available ? "success" : "error"
-                      }
+                      status={product.isAvailable ? "success" : "error"}
                     />
                   ) : (
                     <Skeleton />
@@ -173,10 +169,10 @@ export const ProductList = withStyles(styles, { name: "ProductList" })(
                 </TableCell>
                 <TableCell className={classes.colPrice}>
                   {product &&
-                  product.price &&
-                  product.price.amount !== undefined &&
-                  product.price.currency !== undefined ? (
-                    <Money money={product.price} />
+                  maybe(() => product.basePrice) &&
+                  maybe(() => product.basePrice.amount) !== undefined &&
+                  maybe(() => product.basePrice.currency) !== undefined ? (
+                    <Money money={product.basePrice} />
                   ) : (
                     <Skeleton />
                   )}
diff --git a/saleor/static/dashboard-next/home/fixtures.ts b/saleor/static/dashboard-next/home/fixtures.ts
index 45e436b23f8..16bb183f954 100644
--- a/saleor/static/dashboard-next/home/fixtures.ts
+++ b/saleor/static/dashboard-next/home/fixtures.ts
@@ -300,13 +300,13 @@ export const shop: (placeholderImage: string) => Home = (
           id: "UHJvZHVjdFZhcmlhbnQ6NDM=",
           product: {
             __typename: "Product",
-            id: "UHJvZHVjdDo4",
-            name: "Gardner-Martin",
-            price: {
+            basePrice: {
               __typename: "Money",
               amount: 37.65,
               currency: "USD"
             },
+            id: "UHJvZHVjdDo4",
+            name: "Gardner-Martin",
             thumbnail: {
               __typename: "Image",
               url: placeholderImage
diff --git a/saleor/static/dashboard-next/orders/components/OrderDraftDetailsProducts/OrderDraftDetailsProducts.tsx b/saleor/static/dashboard-next/orders/components/OrderDraftDetailsProducts/OrderDraftDetailsProducts.tsx
index 3fa542f587a..50735e8fbc9 100644
--- a/saleor/static/dashboard-next/orders/components/OrderDraftDetailsProducts/OrderDraftDetailsProducts.tsx
+++ b/saleor/static/dashboard-next/orders/components/OrderDraftDetailsProducts/OrderDraftDetailsProducts.tsx
@@ -92,7 +92,7 @@ const OrderDraftDetailsProducts = withStyles(styles, {
         ) : (
           renderCollection(lines, line => (
             <TableRow key={line ? line.id : "skeleton"}>
-              <TableCellAvatar thumbnail={maybe(() => line.thumbnailUrl)} />
+              <TableCellAvatar thumbnail={maybe(() => line.thumbnail.url)} />
               <TableCell>
                 {maybe(() => line.productName && line.productSku) ? (
                   <>
diff --git a/saleor/static/dashboard-next/orders/components/OrderFulfillment/OrderFulfillment.tsx b/saleor/static/dashboard-next/orders/components/OrderFulfillment/OrderFulfillment.tsx
index c0db42c40de..bc0962a4940 100644
--- a/saleor/static/dashboard-next/orders/components/OrderFulfillment/OrderFulfillment.tsx
+++ b/saleor/static/dashboard-next/orders/components/OrderFulfillment/OrderFulfillment.tsx
@@ -140,7 +140,7 @@ const OrderFulfillment = withStyles(styles, { name: "OrderFulfillment" })(
                 key={maybe(() => line.id)}
               >
                 <TableCellAvatar
-                  thumbnail={maybe(() => line.orderLine.thumbnailUrl)}
+                  thumbnail={maybe(() => line.orderLine.thumbnail.url)}
                 />
                 <TableCell>
                   {maybe(() => line.orderLine.productName) || <Skeleton />}
diff --git a/saleor/static/dashboard-next/orders/components/OrderFulfillmentDialog/OrderFulfillmentDialog.tsx b/saleor/static/dashboard-next/orders/components/OrderFulfillmentDialog/OrderFulfillmentDialog.tsx
index afc15909c3f..ceaec646a12 100644
--- a/saleor/static/dashboard-next/orders/components/OrderFulfillmentDialog/OrderFulfillmentDialog.tsx
+++ b/saleor/static/dashboard-next/orders/components/OrderFulfillmentDialog/OrderFulfillmentDialog.tsx
@@ -121,7 +121,9 @@ const OrderFulfillmentDialog = withStyles(styles, {
                       product.quantity - product.quantityFulfilled;
                     return (
                       <TableRow key={product.id}>
-                        <TableCellAvatar thumbnail={product.thumbnailUrl} />
+                        <TableCellAvatar
+                          thumbnail={maybe(() => product.thumbnail.url)}
+                        />
                         <TableCell>{product.productName}</TableCell>
                         <TableCell>{product.productSku}</TableCell>
                         <TableCell className={classes.quantityInputContainer}>
diff --git a/saleor/static/dashboard-next/orders/components/OrderUnfulfilledItems/OrderUnfulfilledItems.tsx b/saleor/static/dashboard-next/orders/components/OrderUnfulfilledItems/OrderUnfulfilledItems.tsx
index cca9aec8317..64a514bdd73 100644
--- a/saleor/static/dashboard-next/orders/components/OrderUnfulfilledItems/OrderUnfulfilledItems.tsx
+++ b/saleor/static/dashboard-next/orders/components/OrderUnfulfilledItems/OrderUnfulfilledItems.tsx
@@ -75,7 +75,7 @@ const OrderUnfulfilledItems = withStyles(styles, {
             hover={!!line}
             key={maybe(() => line.id)}
           >
-            <TableCellAvatar thumbnail={line.thumbnailUrl} />
+            <TableCellAvatar thumbnail={maybe(() => line.thumbnail.url)} />
             <TableCell>
               {maybe(() => line.productName) || <Skeleton />}
             </TableCell>
diff --git a/saleor/static/dashboard-next/orders/containers/OrderOperations.tsx b/saleor/static/dashboard-next/orders/containers/OrderOperations.tsx
index 9fb2135e16b..2a9297fcd36 100644
--- a/saleor/static/dashboard-next/orders/containers/OrderOperations.tsx
+++ b/saleor/static/dashboard-next/orders/containers/OrderOperations.tsx
@@ -48,11 +48,11 @@ import {
   OrderFulfillmentUpdateTracking,
   OrderFulfillmentUpdateTrackingVariables
 } from "../types/OrderFulfillmentUpdateTracking";
-import { OrderLineAdd, OrderLineAddVariables } from "../types/OrderLineAdd";
 import {
   OrderLineDelete,
   OrderLineDeleteVariables
 } from "../types/OrderLineDelete";
+import { OrderLinesAdd, OrderLinesAddVariables } from "../types/OrderLinesAdd";
 import {
   OrderLineUpdate,
   OrderLineUpdateVariables
@@ -71,75 +71,73 @@ import { OrderVoid, OrderVoidVariables } from "../types/OrderVoid";
 
 interface OrderOperationsProps {
   order: string;
-  children: (
-    props: {
-      orderAddNote: PartialMutationProviderOutput<
-        OrderAddNote,
-        OrderAddNoteVariables
-      >;
-      orderCancel: PartialMutationProviderOutput<
-        OrderCancel,
-        OrderCancelVariables
-      >;
-      orderCreateFulfillment: PartialMutationProviderOutput<
-        OrderCreateFulfillment,
-        OrderCreateFulfillmentVariables
-      >;
-      orderFulfillmentCancel: PartialMutationProviderOutput<
-        OrderFulfillmentCancel,
-        OrderFulfillmentCancelVariables
-      >;
-      orderFulfillmentUpdateTracking: PartialMutationProviderOutput<
-        OrderFulfillmentUpdateTracking,
-        OrderFulfillmentUpdateTrackingVariables
-      >;
-      orderPaymentCapture: PartialMutationProviderOutput<
-        OrderCapture,
-        OrderCaptureVariables
-      >;
-      orderPaymentRefund: PartialMutationProviderOutput<
-        OrderRefund,
-        OrderRefundVariables
-      >;
-      orderPaymentMarkAsPaid: PartialMutationProviderOutput<
-        OrderMarkAsPaid,
-        OrderMarkAsPaidVariables
-      >;
-      orderVoid: PartialMutationProviderOutput<OrderVoid, OrderVoidVariables>;
-      orderUpdate: PartialMutationProviderOutput<
-        OrderUpdate,
-        OrderUpdateVariables
-      >;
-      orderDraftCancel: PartialMutationProviderOutput<
-        OrderDraftCancel,
-        OrderDraftCancelVariables
-      >;
-      orderDraftFinalize: PartialMutationProviderOutput<
-        OrderDraftFinalize,
-        OrderDraftFinalizeVariables
-      >;
-      orderDraftUpdate: PartialMutationProviderOutput<
-        OrderDraftUpdate,
-        OrderDraftUpdateVariables
-      >;
-      orderShippingMethodUpdate: PartialMutationProviderOutput<
-        OrderShippingMethodUpdate,
-        OrderShippingMethodUpdateVariables
-      >;
-      orderLineDelete: PartialMutationProviderOutput<
-        OrderLineDelete,
-        OrderLineDeleteVariables
-      >;
-      orderLineAdd: PartialMutationProviderOutput<
-        OrderLineAdd,
-        OrderLineAddVariables
-      >;
-      orderLineUpdate: PartialMutationProviderOutput<
-        OrderLineUpdate,
-        OrderLineUpdateVariables
-      >;
-    }
-  ) => React.ReactNode;
+  children: (props: {
+    orderAddNote: PartialMutationProviderOutput<
+      OrderAddNote,
+      OrderAddNoteVariables
+    >;
+    orderCancel: PartialMutationProviderOutput<
+      OrderCancel,
+      OrderCancelVariables
+    >;
+    orderCreateFulfillment: PartialMutationProviderOutput<
+      OrderCreateFulfillment,
+      OrderCreateFulfillmentVariables
+    >;
+    orderFulfillmentCancel: PartialMutationProviderOutput<
+      OrderFulfillmentCancel,
+      OrderFulfillmentCancelVariables
+    >;
+    orderFulfillmentUpdateTracking: PartialMutationProviderOutput<
+      OrderFulfillmentUpdateTracking,
+      OrderFulfillmentUpdateTrackingVariables
+    >;
+    orderPaymentCapture: PartialMutationProviderOutput<
+      OrderCapture,
+      OrderCaptureVariables
+    >;
+    orderPaymentRefund: PartialMutationProviderOutput<
+      OrderRefund,
+      OrderRefundVariables
+    >;
+    orderPaymentMarkAsPaid: PartialMutationProviderOutput<
+      OrderMarkAsPaid,
+      OrderMarkAsPaidVariables
+    >;
+    orderVoid: PartialMutationProviderOutput<OrderVoid, OrderVoidVariables>;
+    orderUpdate: PartialMutationProviderOutput<
+      OrderUpdate,
+      OrderUpdateVariables
+    >;
+    orderDraftCancel: PartialMutationProviderOutput<
+      OrderDraftCancel,
+      OrderDraftCancelVariables
+    >;
+    orderDraftFinalize: PartialMutationProviderOutput<
+      OrderDraftFinalize,
+      OrderDraftFinalizeVariables
+    >;
+    orderDraftUpdate: PartialMutationProviderOutput<
+      OrderDraftUpdate,
+      OrderDraftUpdateVariables
+    >;
+    orderShippingMethodUpdate: PartialMutationProviderOutput<
+      OrderShippingMethodUpdate,
+      OrderShippingMethodUpdateVariables
+    >;
+    orderLineDelete: PartialMutationProviderOutput<
+      OrderLineDelete,
+      OrderLineDeleteVariables
+    >;
+    orderLinesAdd: PartialMutationProviderOutput<
+      OrderLinesAdd,
+      OrderLinesAddVariables
+    >;
+    orderLineUpdate: PartialMutationProviderOutput<
+      OrderLineUpdate,
+      OrderLineUpdateVariables
+    >;
+  }) => React.ReactNode;
   onOrderFulfillmentCancel: (data: OrderFulfillmentCancel) => void;
   onOrderFulfillmentCreate: (data: OrderCreateFulfillment) => void;
   onOrderFulfillmentUpdate: (data: OrderFulfillmentUpdateTracking) => void;
@@ -155,7 +153,7 @@ interface OrderOperationsProps {
   onDraftUpdate: (data: OrderDraftUpdate) => void;
   onShippingMethodUpdate: (data: OrderShippingMethodUpdate) => void;
   onOrderLineDelete: (data: OrderLineDelete) => void;
-  onOrderLineAdd: (data: OrderLineAdd) => void;
+  onOrderLinesAdd: (data: OrderLinesAdd) => void;
   onOrderLineUpdate: (data: OrderLineUpdate) => void;
 }
 
@@ -165,7 +163,7 @@ const OrderOperations: React.StatelessComponent<OrderOperationsProps> = ({
   onOrderFulfillmentCreate,
   onNoteAdd,
   onOrderCancel,
-  onOrderLineAdd,
+  onOrderLinesAdd,
   onOrderLineDelete,
   onOrderLineUpdate,
   onOrderVoid,
@@ -208,7 +206,7 @@ const OrderOperations: React.StatelessComponent<OrderOperationsProps> = ({
                                       >
                                         {(...deleteOrderLine) => (
                                           <TypedOrderLinesAddMutation
-                                            onCompleted={onOrderLineAdd}
+                                            onCompleted={onOrderLinesAdd}
                                           >
                                             {(...addOrderLine) => (
                                               <TypedOrderLineUpdateMutation
@@ -278,15 +276,15 @@ const OrderOperations: React.StatelessComponent<OrderOperationsProps> = ({
                                                                         orderFulfillmentUpdateTracking: getMutationProviderData(
                                                                           ...updateTrackingNumber
                                                                         ),
-                                                                        orderLineAdd: getMutationProviderData(
-                                                                          ...addOrderLine
-                                                                        ),
                                                                         orderLineDelete: getMutationProviderData(
                                                                           ...deleteOrderLine
                                                                         ),
                                                                         orderLineUpdate: getMutationProviderData(
                                                                           ...updateOrderLine
                                                                         ),
+                                                                        orderLinesAdd: getMutationProviderData(
+                                                                          ...addOrderLine
+                                                                        ),
                                                                         orderPaymentCapture: getMutationProviderData(
                                                                           ...paymentCapture
                                                                         ),
diff --git a/saleor/static/dashboard-next/orders/fixtures.ts b/saleor/static/dashboard-next/orders/fixtures.ts
index 56beb756b03..dbf3a30d055 100644
--- a/saleor/static/dashboard-next/orders/fixtures.ts
+++ b/saleor/static/dashboard-next/orders/fixtures.ts
@@ -833,7 +833,10 @@ export const order = (placeholder: string): OrderDetails_order => ({
             productSku: "5-1337",
             quantity: 2,
             quantityFulfilled: 2,
-            thumbnailUrl: placeholder,
+            thumbnail: {
+              __typename: "Image" as "Image",
+              url: placeholder
+            },
             unitPrice: {
               __typename: "TaxedMoney",
               gross: {
@@ -870,7 +873,10 @@ export const order = (placeholder: string): OrderDetails_order => ({
             productSku: "5-1337",
             quantity: 2,
             quantityFulfilled: 2,
-            thumbnailUrl: placeholder,
+            thumbnail: {
+              __typename: "Image" as "Image",
+              url: placeholder
+            },
             unitPrice: {
               __typename: "TaxedMoney",
               gross: {
@@ -902,7 +908,10 @@ export const order = (placeholder: string): OrderDetails_order => ({
       productSku: "59-1337",
       quantity: 3,
       quantityFulfilled: 0,
-      thumbnailUrl: placeholder,
+      thumbnail: {
+        __typename: "Image" as "Image",
+        url: placeholder
+      },
       unitPrice: {
         __typename: "TaxedMoney",
         gross: {
@@ -925,7 +934,10 @@ export const order = (placeholder: string): OrderDetails_order => ({
       productSku: "5-1337",
       quantity: 2,
       quantityFulfilled: 2,
-      thumbnailUrl: placeholder,
+      thumbnail: {
+        __typename: "Image" as "Image",
+        url: placeholder
+      },
       unitPrice: {
         __typename: "TaxedMoney",
         gross: {
@@ -1027,7 +1039,10 @@ export const draftOrder = (placeholder: string): OrderDetails_order => ({
       productSku: "58-1338",
       quantity: 2,
       quantityFulfilled: 0,
-      thumbnailUrl: placeholder,
+      thumbnail: {
+        __typename: "Image" as "Image",
+        url: placeholder
+      },
       unitPrice: {
         __typename: "TaxedMoney" as "TaxedMoney",
         gross: {
@@ -1050,7 +1065,10 @@ export const draftOrder = (placeholder: string): OrderDetails_order => ({
       productSku: "15-1337",
       quantity: 2,
       quantityFulfilled: 0,
-      thumbnailUrl: placeholder,
+      thumbnail: {
+        __typename: "Image" as "Image",
+        url: placeholder
+      },
       unitPrice: {
         __typename: "TaxedMoney" as "TaxedMoney",
         gross: {
diff --git a/saleor/static/dashboard-next/orders/queries.ts b/saleor/static/dashboard-next/orders/queries.ts
index c16a2564023..22316307014 100644
--- a/saleor/static/dashboard-next/orders/queries.ts
+++ b/saleor/static/dashboard-next/orders/queries.ts
@@ -67,7 +67,9 @@ export const fragmentOrderLine = gql`
         currency
       }
     }
-    thumbnailUrl
+    thumbnail {
+      url
+    }
   }
 `;
 
diff --git a/saleor/static/dashboard-next/orders/types/OrderCancel.ts b/saleor/static/dashboard-next/orders/types/OrderCancel.ts
index ce5e75c795c..4be781645ec 100644
--- a/saleor/static/dashboard-next/orders/types/OrderCancel.ts
+++ b/saleor/static/dashboard-next/orders/types/OrderCancel.ts
@@ -73,6 +73,11 @@ export interface OrderCancel_orderCancel_order_fulfillments_lines_orderLine_unit
   net: OrderCancel_orderCancel_order_fulfillments_lines_orderLine_unitPrice_net;
 }
 
+export interface OrderCancel_orderCancel_order_fulfillments_lines_orderLine_thumbnail {
+  __typename: "Image";
+  url: string;
+}
+
 export interface OrderCancel_orderCancel_order_fulfillments_lines_orderLine {
   __typename: "OrderLine";
   id: string;
@@ -82,7 +87,7 @@ export interface OrderCancel_orderCancel_order_fulfillments_lines_orderLine {
   quantity: number;
   quantityFulfilled: number;
   unitPrice: OrderCancel_orderCancel_order_fulfillments_lines_orderLine_unitPrice | null;
-  thumbnailUrl: string | null;
+  thumbnail: OrderCancel_orderCancel_order_fulfillments_lines_orderLine_thumbnail | null;
 }
 
 export interface OrderCancel_orderCancel_order_fulfillments_lines {
@@ -119,6 +124,11 @@ export interface OrderCancel_orderCancel_order_lines_unitPrice {
   net: OrderCancel_orderCancel_order_lines_unitPrice_net;
 }
 
+export interface OrderCancel_orderCancel_order_lines_thumbnail {
+  __typename: "Image";
+  url: string;
+}
+
 export interface OrderCancel_orderCancel_order_lines {
   __typename: "OrderLine";
   id: string;
@@ -128,7 +138,7 @@ export interface OrderCancel_orderCancel_order_lines {
   quantity: number;
   quantityFulfilled: number;
   unitPrice: OrderCancel_orderCancel_order_lines_unitPrice | null;
-  thumbnailUrl: string | null;
+  thumbnail: OrderCancel_orderCancel_order_lines_thumbnail | null;
 }
 
 export interface OrderCancel_orderCancel_order_shippingAddress_country {
diff --git a/saleor/static/dashboard-next/orders/types/OrderCapture.ts b/saleor/static/dashboard-next/orders/types/OrderCapture.ts
index 13a3f1ddedd..2c3bf0f51c1 100644
--- a/saleor/static/dashboard-next/orders/types/OrderCapture.ts
+++ b/saleor/static/dashboard-next/orders/types/OrderCapture.ts
@@ -73,6 +73,11 @@ export interface OrderCapture_orderCapture_order_fulfillments_lines_orderLine_un
   net: OrderCapture_orderCapture_order_fulfillments_lines_orderLine_unitPrice_net;
 }
 
+export interface OrderCapture_orderCapture_order_fulfillments_lines_orderLine_thumbnail {
+  __typename: "Image";
+  url: string;
+}
+
 export interface OrderCapture_orderCapture_order_fulfillments_lines_orderLine {
   __typename: "OrderLine";
   id: string;
@@ -82,7 +87,7 @@ export interface OrderCapture_orderCapture_order_fulfillments_lines_orderLine {
   quantity: number;
   quantityFulfilled: number;
   unitPrice: OrderCapture_orderCapture_order_fulfillments_lines_orderLine_unitPrice | null;
-  thumbnailUrl: string | null;
+  thumbnail: OrderCapture_orderCapture_order_fulfillments_lines_orderLine_thumbnail | null;
 }
 
 export interface OrderCapture_orderCapture_order_fulfillments_lines {
@@ -119,6 +124,11 @@ export interface OrderCapture_orderCapture_order_lines_unitPrice {
   net: OrderCapture_orderCapture_order_lines_unitPrice_net;
 }
 
+export interface OrderCapture_orderCapture_order_lines_thumbnail {
+  __typename: "Image";
+  url: string;
+}
+
 export interface OrderCapture_orderCapture_order_lines {
   __typename: "OrderLine";
   id: string;
@@ -128,7 +138,7 @@ export interface OrderCapture_orderCapture_order_lines {
   quantity: number;
   quantityFulfilled: number;
   unitPrice: OrderCapture_orderCapture_order_lines_unitPrice | null;
-  thumbnailUrl: string | null;
+  thumbnail: OrderCapture_orderCapture_order_lines_thumbnail | null;
 }
 
 export interface OrderCapture_orderCapture_order_shippingAddress_country {
diff --git a/saleor/static/dashboard-next/orders/types/OrderCreateFulfillment.ts b/saleor/static/dashboard-next/orders/types/OrderCreateFulfillment.ts
index 0f168755d60..0cba579432c 100644
--- a/saleor/static/dashboard-next/orders/types/OrderCreateFulfillment.ts
+++ b/saleor/static/dashboard-next/orders/types/OrderCreateFulfillment.ts
@@ -73,6 +73,11 @@ export interface OrderCreateFulfillment_orderFulfillmentCreate_order_fulfillment
   net: OrderCreateFulfillment_orderFulfillmentCreate_order_fulfillments_lines_orderLine_unitPrice_net;
 }
 
+export interface OrderCreateFulfillment_orderFulfillmentCreate_order_fulfillments_lines_orderLine_thumbnail {
+  __typename: "Image";
+  url: string;
+}
+
 export interface OrderCreateFulfillment_orderFulfillmentCreate_order_fulfillments_lines_orderLine {
   __typename: "OrderLine";
   id: string;
@@ -82,7 +87,7 @@ export interface OrderCreateFulfillment_orderFulfillmentCreate_order_fulfillment
   quantity: number;
   quantityFulfilled: number;
   unitPrice: OrderCreateFulfillment_orderFulfillmentCreate_order_fulfillments_lines_orderLine_unitPrice | null;
-  thumbnailUrl: string | null;
+  thumbnail: OrderCreateFulfillment_orderFulfillmentCreate_order_fulfillments_lines_orderLine_thumbnail | null;
 }
 
 export interface OrderCreateFulfillment_orderFulfillmentCreate_order_fulfillments_lines {
@@ -119,6 +124,11 @@ export interface OrderCreateFulfillment_orderFulfillmentCreate_order_lines_unitP
   net: OrderCreateFulfillment_orderFulfillmentCreate_order_lines_unitPrice_net;
 }
 
+export interface OrderCreateFulfillment_orderFulfillmentCreate_order_lines_thumbnail {
+  __typename: "Image";
+  url: string;
+}
+
 export interface OrderCreateFulfillment_orderFulfillmentCreate_order_lines {
   __typename: "OrderLine";
   id: string;
@@ -128,7 +138,7 @@ export interface OrderCreateFulfillment_orderFulfillmentCreate_order_lines {
   quantity: number;
   quantityFulfilled: number;
   unitPrice: OrderCreateFulfillment_orderFulfillmentCreate_order_lines_unitPrice | null;
-  thumbnailUrl: string | null;
+  thumbnail: OrderCreateFulfillment_orderFulfillmentCreate_order_lines_thumbnail | null;
 }
 
 export interface OrderCreateFulfillment_orderFulfillmentCreate_order_shippingAddress_country {
diff --git a/saleor/static/dashboard-next/orders/types/OrderDetails.ts b/saleor/static/dashboard-next/orders/types/OrderDetails.ts
index ffd1be33068..b6bb5538046 100644
--- a/saleor/static/dashboard-next/orders/types/OrderDetails.ts
+++ b/saleor/static/dashboard-next/orders/types/OrderDetails.ts
@@ -67,6 +67,11 @@ export interface OrderDetails_order_fulfillments_lines_orderLine_unitPrice {
   net: OrderDetails_order_fulfillments_lines_orderLine_unitPrice_net;
 }
 
+export interface OrderDetails_order_fulfillments_lines_orderLine_thumbnail {
+  __typename: "Image";
+  url: string;
+}
+
 export interface OrderDetails_order_fulfillments_lines_orderLine {
   __typename: "OrderLine";
   id: string;
@@ -76,7 +81,7 @@ export interface OrderDetails_order_fulfillments_lines_orderLine {
   quantity: number;
   quantityFulfilled: number;
   unitPrice: OrderDetails_order_fulfillments_lines_orderLine_unitPrice | null;
-  thumbnailUrl: string | null;
+  thumbnail: OrderDetails_order_fulfillments_lines_orderLine_thumbnail | null;
 }
 
 export interface OrderDetails_order_fulfillments_lines {
@@ -113,6 +118,11 @@ export interface OrderDetails_order_lines_unitPrice {
   net: OrderDetails_order_lines_unitPrice_net;
 }
 
+export interface OrderDetails_order_lines_thumbnail {
+  __typename: "Image";
+  url: string;
+}
+
 export interface OrderDetails_order_lines {
   __typename: "OrderLine";
   id: string;
@@ -122,7 +132,7 @@ export interface OrderDetails_order_lines {
   quantity: number;
   quantityFulfilled: number;
   unitPrice: OrderDetails_order_lines_unitPrice | null;
-  thumbnailUrl: string | null;
+  thumbnail: OrderDetails_order_lines_thumbnail | null;
 }
 
 export interface OrderDetails_order_shippingAddress_country {
diff --git a/saleor/static/dashboard-next/orders/types/OrderDetailsFragment.ts b/saleor/static/dashboard-next/orders/types/OrderDetailsFragment.ts
index 060ec800b96..fc2f5d3bad4 100644
--- a/saleor/static/dashboard-next/orders/types/OrderDetailsFragment.ts
+++ b/saleor/static/dashboard-next/orders/types/OrderDetailsFragment.ts
@@ -67,6 +67,11 @@ export interface OrderDetailsFragment_fulfillments_lines_orderLine_unitPrice {
   net: OrderDetailsFragment_fulfillments_lines_orderLine_unitPrice_net;
 }
 
+export interface OrderDetailsFragment_fulfillments_lines_orderLine_thumbnail {
+  __typename: "Image";
+  url: string;
+}
+
 export interface OrderDetailsFragment_fulfillments_lines_orderLine {
   __typename: "OrderLine";
   id: string;
@@ -76,7 +81,7 @@ export interface OrderDetailsFragment_fulfillments_lines_orderLine {
   quantity: number;
   quantityFulfilled: number;
   unitPrice: OrderDetailsFragment_fulfillments_lines_orderLine_unitPrice | null;
-  thumbnailUrl: string | null;
+  thumbnail: OrderDetailsFragment_fulfillments_lines_orderLine_thumbnail | null;
 }
 
 export interface OrderDetailsFragment_fulfillments_lines {
@@ -113,6 +118,11 @@ export interface OrderDetailsFragment_lines_unitPrice {
   net: OrderDetailsFragment_lines_unitPrice_net;
 }
 
+export interface OrderDetailsFragment_lines_thumbnail {
+  __typename: "Image";
+  url: string;
+}
+
 export interface OrderDetailsFragment_lines {
   __typename: "OrderLine";
   id: string;
@@ -122,7 +132,7 @@ export interface OrderDetailsFragment_lines {
   quantity: number;
   quantityFulfilled: number;
   unitPrice: OrderDetailsFragment_lines_unitPrice | null;
-  thumbnailUrl: string | null;
+  thumbnail: OrderDetailsFragment_lines_thumbnail | null;
 }
 
 export interface OrderDetailsFragment_shippingAddress_country {
diff --git a/saleor/static/dashboard-next/orders/types/OrderDraftCancel.ts b/saleor/static/dashboard-next/orders/types/OrderDraftCancel.ts
index b896500e534..675b8bac569 100644
--- a/saleor/static/dashboard-next/orders/types/OrderDraftCancel.ts
+++ b/saleor/static/dashboard-next/orders/types/OrderDraftCancel.ts
@@ -73,6 +73,11 @@ export interface OrderDraftCancel_draftOrderDelete_order_fulfillments_lines_orde
   net: OrderDraftCancel_draftOrderDelete_order_fulfillments_lines_orderLine_unitPrice_net;
 }
 
+export interface OrderDraftCancel_draftOrderDelete_order_fulfillments_lines_orderLine_thumbnail {
+  __typename: "Image";
+  url: string;
+}
+
 export interface OrderDraftCancel_draftOrderDelete_order_fulfillments_lines_orderLine {
   __typename: "OrderLine";
   id: string;
@@ -82,7 +87,7 @@ export interface OrderDraftCancel_draftOrderDelete_order_fulfillments_lines_orde
   quantity: number;
   quantityFulfilled: number;
   unitPrice: OrderDraftCancel_draftOrderDelete_order_fulfillments_lines_orderLine_unitPrice | null;
-  thumbnailUrl: string | null;
+  thumbnail: OrderDraftCancel_draftOrderDelete_order_fulfillments_lines_orderLine_thumbnail | null;
 }
 
 export interface OrderDraftCancel_draftOrderDelete_order_fulfillments_lines {
@@ -119,6 +124,11 @@ export interface OrderDraftCancel_draftOrderDelete_order_lines_unitPrice {
   net: OrderDraftCancel_draftOrderDelete_order_lines_unitPrice_net;
 }
 
+export interface OrderDraftCancel_draftOrderDelete_order_lines_thumbnail {
+  __typename: "Image";
+  url: string;
+}
+
 export interface OrderDraftCancel_draftOrderDelete_order_lines {
   __typename: "OrderLine";
   id: string;
@@ -128,7 +138,7 @@ export interface OrderDraftCancel_draftOrderDelete_order_lines {
   quantity: number;
   quantityFulfilled: number;
   unitPrice: OrderDraftCancel_draftOrderDelete_order_lines_unitPrice | null;
-  thumbnailUrl: string | null;
+  thumbnail: OrderDraftCancel_draftOrderDelete_order_lines_thumbnail | null;
 }
 
 export interface OrderDraftCancel_draftOrderDelete_order_shippingAddress_country {
diff --git a/saleor/static/dashboard-next/orders/types/OrderDraftFinalize.ts b/saleor/static/dashboard-next/orders/types/OrderDraftFinalize.ts
index cd8609774ab..5076ae026cf 100644
--- a/saleor/static/dashboard-next/orders/types/OrderDraftFinalize.ts
+++ b/saleor/static/dashboard-next/orders/types/OrderDraftFinalize.ts
@@ -73,6 +73,11 @@ export interface OrderDraftFinalize_draftOrderComplete_order_fulfillments_lines_
   net: OrderDraftFinalize_draftOrderComplete_order_fulfillments_lines_orderLine_unitPrice_net;
 }
 
+export interface OrderDraftFinalize_draftOrderComplete_order_fulfillments_lines_orderLine_thumbnail {
+  __typename: "Image";
+  url: string;
+}
+
 export interface OrderDraftFinalize_draftOrderComplete_order_fulfillments_lines_orderLine {
   __typename: "OrderLine";
   id: string;
@@ -82,7 +87,7 @@ export interface OrderDraftFinalize_draftOrderComplete_order_fulfillments_lines_
   quantity: number;
   quantityFulfilled: number;
   unitPrice: OrderDraftFinalize_draftOrderComplete_order_fulfillments_lines_orderLine_unitPrice | null;
-  thumbnailUrl: string | null;
+  thumbnail: OrderDraftFinalize_draftOrderComplete_order_fulfillments_lines_orderLine_thumbnail | null;
 }
 
 export interface OrderDraftFinalize_draftOrderComplete_order_fulfillments_lines {
@@ -119,6 +124,11 @@ export interface OrderDraftFinalize_draftOrderComplete_order_lines_unitPrice {
   net: OrderDraftFinalize_draftOrderComplete_order_lines_unitPrice_net;
 }
 
+export interface OrderDraftFinalize_draftOrderComplete_order_lines_thumbnail {
+  __typename: "Image";
+  url: string;
+}
+
 export interface OrderDraftFinalize_draftOrderComplete_order_lines {
   __typename: "OrderLine";
   id: string;
@@ -128,7 +138,7 @@ export interface OrderDraftFinalize_draftOrderComplete_order_lines {
   quantity: number;
   quantityFulfilled: number;
   unitPrice: OrderDraftFinalize_draftOrderComplete_order_lines_unitPrice | null;
-  thumbnailUrl: string | null;
+  thumbnail: OrderDraftFinalize_draftOrderComplete_order_lines_thumbnail | null;
 }
 
 export interface OrderDraftFinalize_draftOrderComplete_order_shippingAddress_country {
diff --git a/saleor/static/dashboard-next/orders/types/OrderDraftUpdate.ts b/saleor/static/dashboard-next/orders/types/OrderDraftUpdate.ts
index 272f46696f5..6d446e0fe46 100644
--- a/saleor/static/dashboard-next/orders/types/OrderDraftUpdate.ts
+++ b/saleor/static/dashboard-next/orders/types/OrderDraftUpdate.ts
@@ -73,6 +73,11 @@ export interface OrderDraftUpdate_draftOrderUpdate_order_fulfillments_lines_orde
   net: OrderDraftUpdate_draftOrderUpdate_order_fulfillments_lines_orderLine_unitPrice_net;
 }
 
+export interface OrderDraftUpdate_draftOrderUpdate_order_fulfillments_lines_orderLine_thumbnail {
+  __typename: "Image";
+  url: string;
+}
+
 export interface OrderDraftUpdate_draftOrderUpdate_order_fulfillments_lines_orderLine {
   __typename: "OrderLine";
   id: string;
@@ -82,7 +87,7 @@ export interface OrderDraftUpdate_draftOrderUpdate_order_fulfillments_lines_orde
   quantity: number;
   quantityFulfilled: number;
   unitPrice: OrderDraftUpdate_draftOrderUpdate_order_fulfillments_lines_orderLine_unitPrice | null;
-  thumbnailUrl: string | null;
+  thumbnail: OrderDraftUpdate_draftOrderUpdate_order_fulfillments_lines_orderLine_thumbnail | null;
 }
 
 export interface OrderDraftUpdate_draftOrderUpdate_order_fulfillments_lines {
@@ -119,6 +124,11 @@ export interface OrderDraftUpdate_draftOrderUpdate_order_lines_unitPrice {
   net: OrderDraftUpdate_draftOrderUpdate_order_lines_unitPrice_net;
 }
 
+export interface OrderDraftUpdate_draftOrderUpdate_order_lines_thumbnail {
+  __typename: "Image";
+  url: string;
+}
+
 export interface OrderDraftUpdate_draftOrderUpdate_order_lines {
   __typename: "OrderLine";
   id: string;
@@ -128,7 +138,7 @@ export interface OrderDraftUpdate_draftOrderUpdate_order_lines {
   quantity: number;
   quantityFulfilled: number;
   unitPrice: OrderDraftUpdate_draftOrderUpdate_order_lines_unitPrice | null;
-  thumbnailUrl: string | null;
+  thumbnail: OrderDraftUpdate_draftOrderUpdate_order_lines_thumbnail | null;
 }
 
 export interface OrderDraftUpdate_draftOrderUpdate_order_shippingAddress_country {
diff --git a/saleor/static/dashboard-next/orders/types/OrderFulfillmentCancel.ts b/saleor/static/dashboard-next/orders/types/OrderFulfillmentCancel.ts
index 95fa91da7b8..217ddda7bc6 100644
--- a/saleor/static/dashboard-next/orders/types/OrderFulfillmentCancel.ts
+++ b/saleor/static/dashboard-next/orders/types/OrderFulfillmentCancel.ts
@@ -73,6 +73,11 @@ export interface OrderFulfillmentCancel_orderFulfillmentCancel_order_fulfillment
   net: OrderFulfillmentCancel_orderFulfillmentCancel_order_fulfillments_lines_orderLine_unitPrice_net;
 }
 
+export interface OrderFulfillmentCancel_orderFulfillmentCancel_order_fulfillments_lines_orderLine_thumbnail {
+  __typename: "Image";
+  url: string;
+}
+
 export interface OrderFulfillmentCancel_orderFulfillmentCancel_order_fulfillments_lines_orderLine {
   __typename: "OrderLine";
   id: string;
@@ -82,7 +87,7 @@ export interface OrderFulfillmentCancel_orderFulfillmentCancel_order_fulfillment
   quantity: number;
   quantityFulfilled: number;
   unitPrice: OrderFulfillmentCancel_orderFulfillmentCancel_order_fulfillments_lines_orderLine_unitPrice | null;
-  thumbnailUrl: string | null;
+  thumbnail: OrderFulfillmentCancel_orderFulfillmentCancel_order_fulfillments_lines_orderLine_thumbnail | null;
 }
 
 export interface OrderFulfillmentCancel_orderFulfillmentCancel_order_fulfillments_lines {
@@ -119,6 +124,11 @@ export interface OrderFulfillmentCancel_orderFulfillmentCancel_order_lines_unitP
   net: OrderFulfillmentCancel_orderFulfillmentCancel_order_lines_unitPrice_net;
 }
 
+export interface OrderFulfillmentCancel_orderFulfillmentCancel_order_lines_thumbnail {
+  __typename: "Image";
+  url: string;
+}
+
 export interface OrderFulfillmentCancel_orderFulfillmentCancel_order_lines {
   __typename: "OrderLine";
   id: string;
@@ -128,7 +138,7 @@ export interface OrderFulfillmentCancel_orderFulfillmentCancel_order_lines {
   quantity: number;
   quantityFulfilled: number;
   unitPrice: OrderFulfillmentCancel_orderFulfillmentCancel_order_lines_unitPrice | null;
-  thumbnailUrl: string | null;
+  thumbnail: OrderFulfillmentCancel_orderFulfillmentCancel_order_lines_thumbnail | null;
 }
 
 export interface OrderFulfillmentCancel_orderFulfillmentCancel_order_shippingAddress_country {
diff --git a/saleor/static/dashboard-next/orders/types/OrderFulfillmentUpdateTracking.ts b/saleor/static/dashboard-next/orders/types/OrderFulfillmentUpdateTracking.ts
index 1ad75403be3..e1a912f15fe 100644
--- a/saleor/static/dashboard-next/orders/types/OrderFulfillmentUpdateTracking.ts
+++ b/saleor/static/dashboard-next/orders/types/OrderFulfillmentUpdateTracking.ts
@@ -73,6 +73,11 @@ export interface OrderFulfillmentUpdateTracking_orderFulfillmentUpdateTracking_o
   net: OrderFulfillmentUpdateTracking_orderFulfillmentUpdateTracking_order_fulfillments_lines_orderLine_unitPrice_net;
 }
 
+export interface OrderFulfillmentUpdateTracking_orderFulfillmentUpdateTracking_order_fulfillments_lines_orderLine_thumbnail {
+  __typename: "Image";
+  url: string;
+}
+
 export interface OrderFulfillmentUpdateTracking_orderFulfillmentUpdateTracking_order_fulfillments_lines_orderLine {
   __typename: "OrderLine";
   id: string;
@@ -82,7 +87,7 @@ export interface OrderFulfillmentUpdateTracking_orderFulfillmentUpdateTracking_o
   quantity: number;
   quantityFulfilled: number;
   unitPrice: OrderFulfillmentUpdateTracking_orderFulfillmentUpdateTracking_order_fulfillments_lines_orderLine_unitPrice | null;
-  thumbnailUrl: string | null;
+  thumbnail: OrderFulfillmentUpdateTracking_orderFulfillmentUpdateTracking_order_fulfillments_lines_orderLine_thumbnail | null;
 }
 
 export interface OrderFulfillmentUpdateTracking_orderFulfillmentUpdateTracking_order_fulfillments_lines {
@@ -119,6 +124,11 @@ export interface OrderFulfillmentUpdateTracking_orderFulfillmentUpdateTracking_o
   net: OrderFulfillmentUpdateTracking_orderFulfillmentUpdateTracking_order_lines_unitPrice_net;
 }
 
+export interface OrderFulfillmentUpdateTracking_orderFulfillmentUpdateTracking_order_lines_thumbnail {
+  __typename: "Image";
+  url: string;
+}
+
 export interface OrderFulfillmentUpdateTracking_orderFulfillmentUpdateTracking_order_lines {
   __typename: "OrderLine";
   id: string;
@@ -128,7 +138,7 @@ export interface OrderFulfillmentUpdateTracking_orderFulfillmentUpdateTracking_o
   quantity: number;
   quantityFulfilled: number;
   unitPrice: OrderFulfillmentUpdateTracking_orderFulfillmentUpdateTracking_order_lines_unitPrice | null;
-  thumbnailUrl: string | null;
+  thumbnail: OrderFulfillmentUpdateTracking_orderFulfillmentUpdateTracking_order_lines_thumbnail | null;
 }
 
 export interface OrderFulfillmentUpdateTracking_orderFulfillmentUpdateTracking_order_shippingAddress_country {
diff --git a/saleor/static/dashboard-next/orders/types/OrderLineAdd.ts b/saleor/static/dashboard-next/orders/types/OrderLineAdd.ts
deleted file mode 100644
index 7dbc3e915e9..00000000000
--- a/saleor/static/dashboard-next/orders/types/OrderLineAdd.ts
+++ /dev/null
@@ -1,270 +0,0 @@
-/* tslint:disable */
-// This file was automatically generated and should not be edited.
-
-import { OrderLineCreateInput, OrderEventsEmailsEnum, OrderEventsEnum, FulfillmentStatus, PaymentChargeStatusEnum, OrderStatus, OrderAction } from "./../../types/globalTypes";
-
-// ====================================================
-// GraphQL mutation operation: OrderLineAdd
-// ====================================================
-
-export interface OrderLineAdd_draftOrderLinesCreate_errors {
-  __typename: "Error";
-  field: string | null;
-  message: string | null;
-}
-
-export interface OrderLineAdd_draftOrderLinesCreate_order_billingAddress_country {
-  __typename: "CountryDisplay";
-  code: string;
-  country: string;
-}
-
-export interface OrderLineAdd_draftOrderLinesCreate_order_billingAddress {
-  __typename: "Address";
-  city: string;
-  cityArea: string;
-  companyName: string;
-  country: OrderLineAdd_draftOrderLinesCreate_order_billingAddress_country;
-  countryArea: string;
-  firstName: string;
-  id: string;
-  lastName: string;
-  phone: string | null;
-  postalCode: string;
-  streetAddress1: string;
-  streetAddress2: string;
-}
-
-export interface OrderLineAdd_draftOrderLinesCreate_order_events_user {
-  __typename: "User";
-  email: string;
-}
-
-export interface OrderLineAdd_draftOrderLinesCreate_order_events {
-  __typename: "OrderEvent";
-  id: string;
-  amount: number | null;
-  date: any | null;
-  email: string | null;
-  emailType: OrderEventsEmailsEnum | null;
-  message: string | null;
-  quantity: number | null;
-  type: OrderEventsEnum | null;
-  user: OrderLineAdd_draftOrderLinesCreate_order_events_user | null;
-}
-
-export interface OrderLineAdd_draftOrderLinesCreate_order_fulfillments_lines_orderLine_unitPrice_gross {
-  __typename: "Money";
-  amount: number;
-  currency: string;
-}
-
-export interface OrderLineAdd_draftOrderLinesCreate_order_fulfillments_lines_orderLine_unitPrice_net {
-  __typename: "Money";
-  amount: number;
-  currency: string;
-}
-
-export interface OrderLineAdd_draftOrderLinesCreate_order_fulfillments_lines_orderLine_unitPrice {
-  __typename: "TaxedMoney";
-  gross: OrderLineAdd_draftOrderLinesCreate_order_fulfillments_lines_orderLine_unitPrice_gross;
-  net: OrderLineAdd_draftOrderLinesCreate_order_fulfillments_lines_orderLine_unitPrice_net;
-}
-
-export interface OrderLineAdd_draftOrderLinesCreate_order_fulfillments_lines_orderLine {
-  __typename: "OrderLine";
-  id: string;
-  isShippingRequired: boolean;
-  productName: string;
-  productSku: string;
-  quantity: number;
-  quantityFulfilled: number;
-  unitPrice: OrderLineAdd_draftOrderLinesCreate_order_fulfillments_lines_orderLine_unitPrice | null;
-  thumbnailUrl: string | null;
-}
-
-export interface OrderLineAdd_draftOrderLinesCreate_order_fulfillments_lines {
-  __typename: "FulfillmentLine";
-  id: string;
-  quantity: number;
-  orderLine: OrderLineAdd_draftOrderLinesCreate_order_fulfillments_lines_orderLine | null;
-}
-
-export interface OrderLineAdd_draftOrderLinesCreate_order_fulfillments {
-  __typename: "Fulfillment";
-  id: string;
-  lines: (OrderLineAdd_draftOrderLinesCreate_order_fulfillments_lines | null)[] | null;
-  fulfillmentOrder: number;
-  status: FulfillmentStatus;
-  trackingNumber: string;
-}
-
-export interface OrderLineAdd_draftOrderLinesCreate_order_lines_unitPrice_gross {
-  __typename: "Money";
-  amount: number;
-  currency: string;
-}
-
-export interface OrderLineAdd_draftOrderLinesCreate_order_lines_unitPrice_net {
-  __typename: "Money";
-  amount: number;
-  currency: string;
-}
-
-export interface OrderLineAdd_draftOrderLinesCreate_order_lines_unitPrice {
-  __typename: "TaxedMoney";
-  gross: OrderLineAdd_draftOrderLinesCreate_order_lines_unitPrice_gross;
-  net: OrderLineAdd_draftOrderLinesCreate_order_lines_unitPrice_net;
-}
-
-export interface OrderLineAdd_draftOrderLinesCreate_order_lines {
-  __typename: "OrderLine";
-  id: string;
-  isShippingRequired: boolean;
-  productName: string;
-  productSku: string;
-  quantity: number;
-  quantityFulfilled: number;
-  unitPrice: OrderLineAdd_draftOrderLinesCreate_order_lines_unitPrice | null;
-  thumbnailUrl: string | null;
-}
-
-export interface OrderLineAdd_draftOrderLinesCreate_order_shippingAddress_country {
-  __typename: "CountryDisplay";
-  code: string;
-  country: string;
-}
-
-export interface OrderLineAdd_draftOrderLinesCreate_order_shippingAddress {
-  __typename: "Address";
-  city: string;
-  cityArea: string;
-  companyName: string;
-  country: OrderLineAdd_draftOrderLinesCreate_order_shippingAddress_country;
-  countryArea: string;
-  firstName: string;
-  id: string;
-  lastName: string;
-  phone: string | null;
-  postalCode: string;
-  streetAddress1: string;
-  streetAddress2: string;
-}
-
-export interface OrderLineAdd_draftOrderLinesCreate_order_shippingMethod {
-  __typename: "ShippingMethod";
-  id: string;
-}
-
-export interface OrderLineAdd_draftOrderLinesCreate_order_shippingPrice_gross {
-  __typename: "Money";
-  amount: number;
-  currency: string;
-}
-
-export interface OrderLineAdd_draftOrderLinesCreate_order_shippingPrice {
-  __typename: "TaxedMoney";
-  gross: OrderLineAdd_draftOrderLinesCreate_order_shippingPrice_gross;
-}
-
-export interface OrderLineAdd_draftOrderLinesCreate_order_subtotal_gross {
-  __typename: "Money";
-  amount: number;
-  currency: string;
-}
-
-export interface OrderLineAdd_draftOrderLinesCreate_order_subtotal {
-  __typename: "TaxedMoney";
-  gross: OrderLineAdd_draftOrderLinesCreate_order_subtotal_gross;
-}
-
-export interface OrderLineAdd_draftOrderLinesCreate_order_total_gross {
-  __typename: "Money";
-  amount: number;
-  currency: string;
-}
-
-export interface OrderLineAdd_draftOrderLinesCreate_order_total_tax {
-  __typename: "Money";
-  amount: number;
-  currency: string;
-}
-
-export interface OrderLineAdd_draftOrderLinesCreate_order_total {
-  __typename: "TaxedMoney";
-  gross: OrderLineAdd_draftOrderLinesCreate_order_total_gross;
-  tax: OrderLineAdd_draftOrderLinesCreate_order_total_tax;
-}
-
-export interface OrderLineAdd_draftOrderLinesCreate_order_totalAuthorized {
-  __typename: "Money";
-  amount: number;
-  currency: string;
-}
-
-export interface OrderLineAdd_draftOrderLinesCreate_order_totalCaptured {
-  __typename: "Money";
-  amount: number;
-  currency: string;
-}
-
-export interface OrderLineAdd_draftOrderLinesCreate_order_user {
-  __typename: "User";
-  id: string;
-  email: string;
-}
-
-export interface OrderLineAdd_draftOrderLinesCreate_order_availableShippingMethods_price {
-  __typename: "Money";
-  amount: number;
-  currency: string;
-}
-
-export interface OrderLineAdd_draftOrderLinesCreate_order_availableShippingMethods {
-  __typename: "ShippingMethod";
-  id: string;
-  name: string;
-  price: OrderLineAdd_draftOrderLinesCreate_order_availableShippingMethods_price | null;
-}
-
-export interface OrderLineAdd_draftOrderLinesCreate_order {
-  __typename: "Order";
-  id: string;
-  billingAddress: OrderLineAdd_draftOrderLinesCreate_order_billingAddress | null;
-  canFinalize: boolean;
-  created: any;
-  customerNote: string;
-  events: (OrderLineAdd_draftOrderLinesCreate_order_events | null)[] | null;
-  fulfillments: (OrderLineAdd_draftOrderLinesCreate_order_fulfillments | null)[];
-  lines: (OrderLineAdd_draftOrderLinesCreate_order_lines | null)[];
-  number: string | null;
-  paymentStatus: PaymentChargeStatusEnum | null;
-  shippingAddress: OrderLineAdd_draftOrderLinesCreate_order_shippingAddress | null;
-  shippingMethod: OrderLineAdd_draftOrderLinesCreate_order_shippingMethod | null;
-  shippingMethodName: string | null;
-  shippingPrice: OrderLineAdd_draftOrderLinesCreate_order_shippingPrice | null;
-  status: OrderStatus;
-  subtotal: OrderLineAdd_draftOrderLinesCreate_order_subtotal | null;
-  total: OrderLineAdd_draftOrderLinesCreate_order_total | null;
-  actions: (OrderAction | null)[];
-  totalAuthorized: OrderLineAdd_draftOrderLinesCreate_order_totalAuthorized | null;
-  totalCaptured: OrderLineAdd_draftOrderLinesCreate_order_totalCaptured | null;
-  user: OrderLineAdd_draftOrderLinesCreate_order_user | null;
-  userEmail: string | null;
-  availableShippingMethods: (OrderLineAdd_draftOrderLinesCreate_order_availableShippingMethods | null)[] | null;
-}
-
-export interface OrderLineAdd_draftOrderLinesCreate {
-  __typename: "DraftOrderLinesCreate";
-  errors: OrderLineAdd_draftOrderLinesCreate_errors[] | null;
-  order: OrderLineAdd_draftOrderLinesCreate_order;
-}
-
-export interface OrderLineAdd {
-  draftOrderLinesCreate: OrderLineAdd_draftOrderLinesCreate | null;
-}
-
-export interface OrderLineAddVariables {
-  id: string;
-  input: (OrderLineCreateInput | null)[];
-}
diff --git a/saleor/static/dashboard-next/orders/types/OrderLineDelete.ts b/saleor/static/dashboard-next/orders/types/OrderLineDelete.ts
index c9f2a840650..946439ad23c 100644
--- a/saleor/static/dashboard-next/orders/types/OrderLineDelete.ts
+++ b/saleor/static/dashboard-next/orders/types/OrderLineDelete.ts
@@ -73,6 +73,11 @@ export interface OrderLineDelete_draftOrderLineDelete_order_fulfillments_lines_o
   net: OrderLineDelete_draftOrderLineDelete_order_fulfillments_lines_orderLine_unitPrice_net;
 }
 
+export interface OrderLineDelete_draftOrderLineDelete_order_fulfillments_lines_orderLine_thumbnail {
+  __typename: "Image";
+  url: string;
+}
+
 export interface OrderLineDelete_draftOrderLineDelete_order_fulfillments_lines_orderLine {
   __typename: "OrderLine";
   id: string;
@@ -82,7 +87,7 @@ export interface OrderLineDelete_draftOrderLineDelete_order_fulfillments_lines_o
   quantity: number;
   quantityFulfilled: number;
   unitPrice: OrderLineDelete_draftOrderLineDelete_order_fulfillments_lines_orderLine_unitPrice | null;
-  thumbnailUrl: string | null;
+  thumbnail: OrderLineDelete_draftOrderLineDelete_order_fulfillments_lines_orderLine_thumbnail | null;
 }
 
 export interface OrderLineDelete_draftOrderLineDelete_order_fulfillments_lines {
@@ -119,6 +124,11 @@ export interface OrderLineDelete_draftOrderLineDelete_order_lines_unitPrice {
   net: OrderLineDelete_draftOrderLineDelete_order_lines_unitPrice_net;
 }
 
+export interface OrderLineDelete_draftOrderLineDelete_order_lines_thumbnail {
+  __typename: "Image";
+  url: string;
+}
+
 export interface OrderLineDelete_draftOrderLineDelete_order_lines {
   __typename: "OrderLine";
   id: string;
@@ -128,7 +138,7 @@ export interface OrderLineDelete_draftOrderLineDelete_order_lines {
   quantity: number;
   quantityFulfilled: number;
   unitPrice: OrderLineDelete_draftOrderLineDelete_order_lines_unitPrice | null;
-  thumbnailUrl: string | null;
+  thumbnail: OrderLineDelete_draftOrderLineDelete_order_lines_thumbnail | null;
 }
 
 export interface OrderLineDelete_draftOrderLineDelete_order_shippingAddress_country {
diff --git a/saleor/static/dashboard-next/orders/types/OrderLineFragment.ts b/saleor/static/dashboard-next/orders/types/OrderLineFragment.ts
index e2cbdb36970..725832671db 100644
--- a/saleor/static/dashboard-next/orders/types/OrderLineFragment.ts
+++ b/saleor/static/dashboard-next/orders/types/OrderLineFragment.ts
@@ -24,6 +24,11 @@ export interface OrderLineFragment_unitPrice {
   net: OrderLineFragment_unitPrice_net;
 }
 
+export interface OrderLineFragment_thumbnail {
+  __typename: "Image";
+  url: string;
+}
+
 export interface OrderLineFragment {
   __typename: "OrderLine";
   id: string;
@@ -33,5 +38,5 @@ export interface OrderLineFragment {
   quantity: number;
   quantityFulfilled: number;
   unitPrice: OrderLineFragment_unitPrice | null;
-  thumbnailUrl: string | null;
+  thumbnail: OrderLineFragment_thumbnail | null;
 }
diff --git a/saleor/static/dashboard-next/orders/types/OrderLineUpdate.ts b/saleor/static/dashboard-next/orders/types/OrderLineUpdate.ts
index c1c624eae85..a511163ad61 100644
--- a/saleor/static/dashboard-next/orders/types/OrderLineUpdate.ts
+++ b/saleor/static/dashboard-next/orders/types/OrderLineUpdate.ts
@@ -73,6 +73,11 @@ export interface OrderLineUpdate_draftOrderLineUpdate_order_fulfillments_lines_o
   net: OrderLineUpdate_draftOrderLineUpdate_order_fulfillments_lines_orderLine_unitPrice_net;
 }
 
+export interface OrderLineUpdate_draftOrderLineUpdate_order_fulfillments_lines_orderLine_thumbnail {
+  __typename: "Image";
+  url: string;
+}
+
 export interface OrderLineUpdate_draftOrderLineUpdate_order_fulfillments_lines_orderLine {
   __typename: "OrderLine";
   id: string;
@@ -82,7 +87,7 @@ export interface OrderLineUpdate_draftOrderLineUpdate_order_fulfillments_lines_o
   quantity: number;
   quantityFulfilled: number;
   unitPrice: OrderLineUpdate_draftOrderLineUpdate_order_fulfillments_lines_orderLine_unitPrice | null;
-  thumbnailUrl: string | null;
+  thumbnail: OrderLineUpdate_draftOrderLineUpdate_order_fulfillments_lines_orderLine_thumbnail | null;
 }
 
 export interface OrderLineUpdate_draftOrderLineUpdate_order_fulfillments_lines {
@@ -119,6 +124,11 @@ export interface OrderLineUpdate_draftOrderLineUpdate_order_lines_unitPrice {
   net: OrderLineUpdate_draftOrderLineUpdate_order_lines_unitPrice_net;
 }
 
+export interface OrderLineUpdate_draftOrderLineUpdate_order_lines_thumbnail {
+  __typename: "Image";
+  url: string;
+}
+
 export interface OrderLineUpdate_draftOrderLineUpdate_order_lines {
   __typename: "OrderLine";
   id: string;
@@ -128,7 +138,7 @@ export interface OrderLineUpdate_draftOrderLineUpdate_order_lines {
   quantity: number;
   quantityFulfilled: number;
   unitPrice: OrderLineUpdate_draftOrderLineUpdate_order_lines_unitPrice | null;
-  thumbnailUrl: string | null;
+  thumbnail: OrderLineUpdate_draftOrderLineUpdate_order_lines_thumbnail | null;
 }
 
 export interface OrderLineUpdate_draftOrderLineUpdate_order_shippingAddress_country {
diff --git a/saleor/static/dashboard-next/orders/types/OrderLinesAdd.ts b/saleor/static/dashboard-next/orders/types/OrderLinesAdd.ts
index c53cb745bc9..76301199037 100644
--- a/saleor/static/dashboard-next/orders/types/OrderLinesAdd.ts
+++ b/saleor/static/dashboard-next/orders/types/OrderLinesAdd.ts
@@ -73,6 +73,11 @@ export interface OrderLinesAdd_draftOrderLinesCreate_order_fulfillments_lines_or
   net: OrderLinesAdd_draftOrderLinesCreate_order_fulfillments_lines_orderLine_unitPrice_net;
 }
 
+export interface OrderLinesAdd_draftOrderLinesCreate_order_fulfillments_lines_orderLine_thumbnail {
+  __typename: "Image";
+  url: string;
+}
+
 export interface OrderLinesAdd_draftOrderLinesCreate_order_fulfillments_lines_orderLine {
   __typename: "OrderLine";
   id: string;
@@ -82,7 +87,7 @@ export interface OrderLinesAdd_draftOrderLinesCreate_order_fulfillments_lines_or
   quantity: number;
   quantityFulfilled: number;
   unitPrice: OrderLinesAdd_draftOrderLinesCreate_order_fulfillments_lines_orderLine_unitPrice | null;
-  thumbnailUrl: string | null;
+  thumbnail: OrderLinesAdd_draftOrderLinesCreate_order_fulfillments_lines_orderLine_thumbnail | null;
 }
 
 export interface OrderLinesAdd_draftOrderLinesCreate_order_fulfillments_lines {
@@ -119,6 +124,11 @@ export interface OrderLinesAdd_draftOrderLinesCreate_order_lines_unitPrice {
   net: OrderLinesAdd_draftOrderLinesCreate_order_lines_unitPrice_net;
 }
 
+export interface OrderLinesAdd_draftOrderLinesCreate_order_lines_thumbnail {
+  __typename: "Image";
+  url: string;
+}
+
 export interface OrderLinesAdd_draftOrderLinesCreate_order_lines {
   __typename: "OrderLine";
   id: string;
@@ -128,7 +138,7 @@ export interface OrderLinesAdd_draftOrderLinesCreate_order_lines {
   quantity: number;
   quantityFulfilled: number;
   unitPrice: OrderLinesAdd_draftOrderLinesCreate_order_lines_unitPrice | null;
-  thumbnailUrl: string | null;
+  thumbnail: OrderLinesAdd_draftOrderLinesCreate_order_lines_thumbnail | null;
 }
 
 export interface OrderLinesAdd_draftOrderLinesCreate_order_shippingAddress_country {
diff --git a/saleor/static/dashboard-next/orders/types/OrderMarkAsPaid.ts b/saleor/static/dashboard-next/orders/types/OrderMarkAsPaid.ts
index f7accee2b1e..821ed8d3976 100644
--- a/saleor/static/dashboard-next/orders/types/OrderMarkAsPaid.ts
+++ b/saleor/static/dashboard-next/orders/types/OrderMarkAsPaid.ts
@@ -73,6 +73,11 @@ export interface OrderMarkAsPaid_orderMarkAsPaid_order_fulfillments_lines_orderL
   net: OrderMarkAsPaid_orderMarkAsPaid_order_fulfillments_lines_orderLine_unitPrice_net;
 }
 
+export interface OrderMarkAsPaid_orderMarkAsPaid_order_fulfillments_lines_orderLine_thumbnail {
+  __typename: "Image";
+  url: string;
+}
+
 export interface OrderMarkAsPaid_orderMarkAsPaid_order_fulfillments_lines_orderLine {
   __typename: "OrderLine";
   id: string;
@@ -82,7 +87,7 @@ export interface OrderMarkAsPaid_orderMarkAsPaid_order_fulfillments_lines_orderL
   quantity: number;
   quantityFulfilled: number;
   unitPrice: OrderMarkAsPaid_orderMarkAsPaid_order_fulfillments_lines_orderLine_unitPrice | null;
-  thumbnailUrl: string | null;
+  thumbnail: OrderMarkAsPaid_orderMarkAsPaid_order_fulfillments_lines_orderLine_thumbnail | null;
 }
 
 export interface OrderMarkAsPaid_orderMarkAsPaid_order_fulfillments_lines {
@@ -119,6 +124,11 @@ export interface OrderMarkAsPaid_orderMarkAsPaid_order_lines_unitPrice {
   net: OrderMarkAsPaid_orderMarkAsPaid_order_lines_unitPrice_net;
 }
 
+export interface OrderMarkAsPaid_orderMarkAsPaid_order_lines_thumbnail {
+  __typename: "Image";
+  url: string;
+}
+
 export interface OrderMarkAsPaid_orderMarkAsPaid_order_lines {
   __typename: "OrderLine";
   id: string;
@@ -128,7 +138,7 @@ export interface OrderMarkAsPaid_orderMarkAsPaid_order_lines {
   quantity: number;
   quantityFulfilled: number;
   unitPrice: OrderMarkAsPaid_orderMarkAsPaid_order_lines_unitPrice | null;
-  thumbnailUrl: string | null;
+  thumbnail: OrderMarkAsPaid_orderMarkAsPaid_order_lines_thumbnail | null;
 }
 
 export interface OrderMarkAsPaid_orderMarkAsPaid_order_shippingAddress_country {
diff --git a/saleor/static/dashboard-next/orders/types/OrderRefund.ts b/saleor/static/dashboard-next/orders/types/OrderRefund.ts
index 36a4a52d175..5fedbe1a9d9 100644
--- a/saleor/static/dashboard-next/orders/types/OrderRefund.ts
+++ b/saleor/static/dashboard-next/orders/types/OrderRefund.ts
@@ -73,6 +73,11 @@ export interface OrderRefund_orderRefund_order_fulfillments_lines_orderLine_unit
   net: OrderRefund_orderRefund_order_fulfillments_lines_orderLine_unitPrice_net;
 }
 
+export interface OrderRefund_orderRefund_order_fulfillments_lines_orderLine_thumbnail {
+  __typename: "Image";
+  url: string;
+}
+
 export interface OrderRefund_orderRefund_order_fulfillments_lines_orderLine {
   __typename: "OrderLine";
   id: string;
@@ -82,7 +87,7 @@ export interface OrderRefund_orderRefund_order_fulfillments_lines_orderLine {
   quantity: number;
   quantityFulfilled: number;
   unitPrice: OrderRefund_orderRefund_order_fulfillments_lines_orderLine_unitPrice | null;
-  thumbnailUrl: string | null;
+  thumbnail: OrderRefund_orderRefund_order_fulfillments_lines_orderLine_thumbnail | null;
 }
 
 export interface OrderRefund_orderRefund_order_fulfillments_lines {
@@ -119,6 +124,11 @@ export interface OrderRefund_orderRefund_order_lines_unitPrice {
   net: OrderRefund_orderRefund_order_lines_unitPrice_net;
 }
 
+export interface OrderRefund_orderRefund_order_lines_thumbnail {
+  __typename: "Image";
+  url: string;
+}
+
 export interface OrderRefund_orderRefund_order_lines {
   __typename: "OrderLine";
   id: string;
@@ -128,7 +138,7 @@ export interface OrderRefund_orderRefund_order_lines {
   quantity: number;
   quantityFulfilled: number;
   unitPrice: OrderRefund_orderRefund_order_lines_unitPrice | null;
-  thumbnailUrl: string | null;
+  thumbnail: OrderRefund_orderRefund_order_lines_thumbnail | null;
 }
 
 export interface OrderRefund_orderRefund_order_shippingAddress_country {
diff --git a/saleor/static/dashboard-next/orders/types/OrderVoid.ts b/saleor/static/dashboard-next/orders/types/OrderVoid.ts
index 18cfe9e9056..1d3e76026a1 100644
--- a/saleor/static/dashboard-next/orders/types/OrderVoid.ts
+++ b/saleor/static/dashboard-next/orders/types/OrderVoid.ts
@@ -73,6 +73,11 @@ export interface OrderVoid_orderVoid_order_fulfillments_lines_orderLine_unitPric
   net: OrderVoid_orderVoid_order_fulfillments_lines_orderLine_unitPrice_net;
 }
 
+export interface OrderVoid_orderVoid_order_fulfillments_lines_orderLine_thumbnail {
+  __typename: "Image";
+  url: string;
+}
+
 export interface OrderVoid_orderVoid_order_fulfillments_lines_orderLine {
   __typename: "OrderLine";
   id: string;
@@ -82,7 +87,7 @@ export interface OrderVoid_orderVoid_order_fulfillments_lines_orderLine {
   quantity: number;
   quantityFulfilled: number;
   unitPrice: OrderVoid_orderVoid_order_fulfillments_lines_orderLine_unitPrice | null;
-  thumbnailUrl: string | null;
+  thumbnail: OrderVoid_orderVoid_order_fulfillments_lines_orderLine_thumbnail | null;
 }
 
 export interface OrderVoid_orderVoid_order_fulfillments_lines {
@@ -119,6 +124,11 @@ export interface OrderVoid_orderVoid_order_lines_unitPrice {
   net: OrderVoid_orderVoid_order_lines_unitPrice_net;
 }
 
+export interface OrderVoid_orderVoid_order_lines_thumbnail {
+  __typename: "Image";
+  url: string;
+}
+
 export interface OrderVoid_orderVoid_order_lines {
   __typename: "OrderLine";
   id: string;
@@ -128,7 +138,7 @@ export interface OrderVoid_orderVoid_order_lines {
   quantity: number;
   quantityFulfilled: number;
   unitPrice: OrderVoid_orderVoid_order_lines_unitPrice | null;
-  thumbnailUrl: string | null;
+  thumbnail: OrderVoid_orderVoid_order_lines_thumbnail | null;
 }
 
 export interface OrderVoid_orderVoid_order_shippingAddress_country {
diff --git a/saleor/static/dashboard-next/orders/views/OrderDetails/OrderDetailsMessages.tsx b/saleor/static/dashboard-next/orders/views/OrderDetails/OrderDetailsMessages.tsx
index b16878346ed..4ab768709a2 100644
--- a/saleor/static/dashboard-next/orders/views/OrderDetails/OrderDetailsMessages.tsx
+++ b/saleor/static/dashboard-next/orders/views/OrderDetails/OrderDetailsMessages.tsx
@@ -13,8 +13,8 @@ import { OrderDraftFinalize } from "../../types/OrderDraftFinalize";
 import { OrderDraftUpdate } from "../../types/OrderDraftUpdate";
 import { OrderFulfillmentCancel } from "../../types/OrderFulfillmentCancel";
 import { OrderFulfillmentUpdateTracking } from "../../types/OrderFulfillmentUpdateTracking";
-import { OrderLineAdd } from "../../types/OrderLineAdd";
 import { OrderLineDelete } from "../../types/OrderLineDelete";
+import { OrderLinesAdd } from "../../types/OrderLinesAdd";
 import { OrderLineUpdate } from "../../types/OrderLineUpdate";
 import { OrderMarkAsPaid } from "../../types/OrderMarkAsPaid";
 import { OrderRefund } from "../../types/OrderRefund";
@@ -35,7 +35,7 @@ interface OrderDetailsMessages {
     handleOrderFulfillmentUpdate: (
       data: OrderFulfillmentUpdateTracking
     ) => void;
-    handleOrderLineAdd: (data: OrderLineAdd) => void;
+    handleOrderLinesAdd: (data: OrderLinesAdd) => void;
     handleOrderLineDelete: (data: OrderLineDelete) => void;
     handleOrderLineUpdate: (data: OrderLineUpdate) => void;
     handleOrderMarkAsPaid: (data: OrderMarkAsPaid) => void;
@@ -210,7 +210,7 @@ export const OrderDetailsMessages: React.StatelessComponent<
       });
     }
   };
-  const handleOrderLineAdd = (data: OrderLineAdd) => {
+  const handleOrderLinesAdd = (data: OrderLinesAdd) => {
     if (!maybe(() => data.draftOrderLinesCreate.errors.length)) {
       pushMessage({
         text: i18n.t("Order line added", {
@@ -301,9 +301,9 @@ export const OrderDetailsMessages: React.StatelessComponent<
     handleOrderFulfillmentCancel,
     handleOrderFulfillmentCreate,
     handleOrderFulfillmentUpdate,
-    handleOrderLineAdd,
     handleOrderLineDelete,
     handleOrderLineUpdate,
+    handleOrderLinesAdd,
     handleOrderMarkAsPaid,
     handleOrderVoid,
     handlePaymentCapture,
diff --git a/saleor/static/dashboard-next/orders/views/OrderDetails/index.tsx b/saleor/static/dashboard-next/orders/views/OrderDetails/index.tsx
index 81a3c99a3fb..63f3a4b5666 100644
--- a/saleor/static/dashboard-next/orders/views/OrderDetails/index.tsx
+++ b/saleor/static/dashboard-next/orders/views/OrderDetails/index.tsx
@@ -112,7 +112,7 @@ export const OrderDetails: React.StatelessComponent<OrderDetailsProps> = ({
                       orderMessages.handleShippingMethodUpdate
                     }
                     onOrderLineDelete={orderMessages.handleOrderLineDelete}
-                    onOrderLineAdd={orderMessages.handleOrderLineAdd}
+                    onOrderLinesAdd={orderMessages.handleOrderLinesAdd}
                     onOrderLineUpdate={orderMessages.handleOrderLineUpdate}
                     onOrderFulfillmentCancel={
                       orderMessages.handleOrderFulfillmentCancel
@@ -129,7 +129,7 @@ export const OrderDetails: React.StatelessComponent<OrderDetailsProps> = ({
                       orderCancel,
                       orderCreateFulfillment,
                       orderDraftUpdate,
-                      orderLineAdd,
+                      orderLinesAdd,
                       orderLineDelete,
                       orderLineUpdate,
                       orderPaymentCapture,
@@ -544,11 +544,11 @@ export const OrderDetails: React.StatelessComponent<OrderDetailsProps> = ({
                                   return (
                                     <OrderProductAddDialog
                                       confirmButtonState={getMutationState(
-                                        orderLineAdd.opts.called,
-                                        orderLineAdd.opts.loading,
+                                        orderLinesAdd.opts.called,
+                                        orderLinesAdd.opts.loading,
                                         maybe(
                                           () =>
-                                            orderLineAdd.opts.data
+                                            orderLinesAdd.opts.data
                                               .draftOrderLinesCreate.errors
                                         )
                                       )}
@@ -568,7 +568,7 @@ export const OrderDetails: React.StatelessComponent<OrderDetailsProps> = ({
                                       onFetch={variantSearch}
                                       onFetchMore={fetchMore}
                                       onSubmit={formData =>
-                                        orderLineAdd.mutate({
+                                        orderLinesAdd.mutate({
                                           id,
                                           input: formData.variants.map(
                                             variant => ({
diff --git a/saleor/static/dashboard-next/pages/components/PageAvailability/PageAvailability.tsx b/saleor/static/dashboard-next/pages/components/PageAvailability/PageAvailability.tsx
index 328aa25ce54..6df2b32f6a1 100644
--- a/saleor/static/dashboard-next/pages/components/PageAvailability/PageAvailability.tsx
+++ b/saleor/static/dashboard-next/pages/components/PageAvailability/PageAvailability.tsx
@@ -15,13 +15,14 @@ import { FormData } from "../PageDetailsPage";
 export interface PageAvailabilityProps {
   data: FormData;
   disabled: boolean;
-  errors: Partial<Record<"availableOn", string>>;
+  errors: Partial<Record<"publicationDate", string>>;
   onChange: (event: React.ChangeEvent<any>, cb?: () => void) => void;
 }
 
 function isAvailable(data: FormData): boolean {
   return (
-    (data.availableOn === "" || data.availableOn === null) && data.isVisible
+    (data.publicationDate === "" || data.publicationDate === null) &&
+    data.isPublished
   );
 }
 
@@ -40,16 +41,16 @@ const PageAvailability: React.StatelessComponent<PageAvailabilityProps> = ({
             checked={isAvailable(data)}
             disabled={disabled}
             label={
-              data.isVisible && !data.availableOn ? (
+              data.isPublished && !data.publicationDate ? (
                 i18n.t("Published")
               ) : (
                 <>
                   {i18n.t("Hidden")}
-                  {data.availableOn && (
+                  {data.publicationDate && (
                     <Typography variant="caption">
                       {i18n.t("Will become visible on {{ date }}", {
                         context: "page",
-                        date: moment(data.availableOn)
+                        date: moment(data.publicationDate)
                           .locale(locale)
                           .format("ll")
                       })}
@@ -58,7 +59,7 @@ const PageAvailability: React.StatelessComponent<PageAvailabilityProps> = ({
                 </>
               )
             }
-            name={"isVisible" as keyof FormData}
+            name={"isPublished" as keyof FormData}
             onChange={event =>
               onChange(
                 event,
@@ -66,7 +67,7 @@ const PageAvailability: React.StatelessComponent<PageAvailabilityProps> = ({
                   event.target.value &&
                   onChange({
                     target: {
-                      name: "availableOn",
+                      name: "publicationDate",
                       value: ""
                     }
                   } as any)
@@ -78,13 +79,13 @@ const PageAvailability: React.StatelessComponent<PageAvailabilityProps> = ({
               <FormSpacer />
               <TextField
                 disabled={disabled}
-                error={!!errors.availableOn}
+                error={!!errors.publicationDate}
                 fullWidth
-                helperText={errors.availableOn}
+                helperText={errors.publicationDate}
                 label={i18n.t("Publish page on")}
-                name={"availableOn" as keyof FormData}
+                name={"publicationDate" as keyof FormData}
                 type="date"
-                value={data.availableOn}
+                value={data.publicationDate}
                 onChange={onChange}
               />
             </>
diff --git a/saleor/static/dashboard-next/pages/components/PageDetailsPage/PageDetailsPage.tsx b/saleor/static/dashboard-next/pages/components/PageDetailsPage/PageDetailsPage.tsx
index 3e0629b8aed..8c5ad497365 100644
--- a/saleor/static/dashboard-next/pages/components/PageDetailsPage/PageDetailsPage.tsx
+++ b/saleor/static/dashboard-next/pages/components/PageDetailsPage/PageDetailsPage.tsx
@@ -24,9 +24,9 @@ import PageInfo from "../PageInfo";
 import PageSlug from "../PageSlug";
 
 export interface FormData {
-  availableOn: string;
   content: RawDraftContentState;
-  isVisible: boolean;
+  isPublished: boolean;
+  publicationDate: string;
   seoDescription: string;
   seoTitle: string;
   slug: string;
@@ -53,12 +53,12 @@ const PageDetailsPage: React.StatelessComponent<PageDetailsPageProps> = ({
   onSubmit
 }) => {
   const initialForm: FormData = {
-    availableOn: maybe(() => page.availableOn, ""),
     content: maybe(
       () => JSON.parse(page.contentJson),
       convertToRaw(ContentState.createFromText(""))
     ),
-    isVisible: maybe(() => page.isVisible, false),
+    isPublished: maybe(() => page.isPublished, false),
+    publicationDate: maybe(() => page.publicationDate, ""),
     seoDescription: maybe(() => page.seoDescription || "", ""),
     seoTitle: maybe(() => page.seoTitle || "", ""),
     slug: maybe(() => page.slug, ""),
diff --git a/saleor/static/dashboard-next/pages/components/PageList/PageList.tsx b/saleor/static/dashboard-next/pages/components/PageList/PageList.tsx
index c930e3c1dcf..a4bb4a23db8 100644
--- a/saleor/static/dashboard-next/pages/components/PageList/PageList.tsx
+++ b/saleor/static/dashboard-next/pages/components/PageList/PageList.tsx
@@ -122,11 +122,11 @@ const PageList = withStyles(styles, { name: "PageList" })(
                       () => (
                         <StatusLabel
                           label={
-                            page.isVisible
+                            page.isPublished
                               ? i18n.t("Published")
                               : i18n.t("Not Published")
                           }
-                          status={page.isVisible ? "success" : "error"}
+                          status={page.isPublished ? "success" : "error"}
                         />
                       ),
                       <Skeleton />
diff --git a/saleor/static/dashboard-next/pages/fixtures.ts b/saleor/static/dashboard-next/pages/fixtures.ts
index 62eefb6b492..86739b16c7b 100644
--- a/saleor/static/dashboard-next/pages/fixtures.ts
+++ b/saleor/static/dashboard-next/pages/fixtures.ts
@@ -6,38 +6,38 @@ export const pageList: PageList_pages_edges_node[] = [
   {
     __typename: "Page",
     id: "Jzx123sEt==",
-    isVisible: true,
+    isPublished: true,
     slug: "about",
     title: "About"
   },
   {
     __typename: "Page",
     id: "Jzx123sEx==",
-    isVisible: false,
+    isPublished: false,
     slug: "about",
     title: "About"
   },
   {
     __typename: "Page",
     id: "Jzx123sEu==",
-    isVisible: true,
+    isPublished: true,
     slug: "about",
     title: "About"
   },
   {
     __typename: "Page",
     id: "Jzx123sEm==",
-    isVisible: true,
+    isPublished: true,
     slug: "about",
     title: "About"
   }
 ];
 export const page: PageDetails_page = {
   __typename: "Page",
-  availableOn: "",
   contentJson: JSON.stringify(content),
   id: "Kzx152sEm==",
-  isVisible: false,
+  isPublished: false,
+  publicationDate: "",
   seoDescription: "About",
   seoTitle: "About",
   slug: "about",
diff --git a/saleor/static/dashboard-next/pages/queries.ts b/saleor/static/dashboard-next/pages/queries.ts
index abd6928568e..8990a6267c9 100644
--- a/saleor/static/dashboard-next/pages/queries.ts
+++ b/saleor/static/dashboard-next/pages/queries.ts
@@ -9,7 +9,7 @@ export const pageFragment = gql`
     id
     title
     slug
-    isVisible
+    isPublished
   }
 `;
 
@@ -20,7 +20,7 @@ export const pageDetailsFragment = gql`
     contentJson
     seoTitle
     seoDescription
-    availableOn
+    publicationDate
   }
 `;
 
diff --git a/saleor/static/dashboard-next/pages/types/PageCreate.ts b/saleor/static/dashboard-next/pages/types/PageCreate.ts
index cb1b07b18da..b8736776119 100644
--- a/saleor/static/dashboard-next/pages/types/PageCreate.ts
+++ b/saleor/static/dashboard-next/pages/types/PageCreate.ts
@@ -19,11 +19,11 @@ export interface PageCreate_pageCreate_page {
   id: string;
   title: string;
   slug: string;
-  isVisible: boolean | null;
+  isPublished: boolean;
   contentJson: any;
   seoTitle: string | null;
   seoDescription: string | null;
-  availableOn: any | null;
+  publicationDate: any | null;
 }
 
 export interface PageCreate_pageCreate {
diff --git a/saleor/static/dashboard-next/pages/types/PageDetails.ts b/saleor/static/dashboard-next/pages/types/PageDetails.ts
index 54a9f6854cf..ffc94dd3ac2 100644
--- a/saleor/static/dashboard-next/pages/types/PageDetails.ts
+++ b/saleor/static/dashboard-next/pages/types/PageDetails.ts
@@ -11,11 +11,11 @@ export interface PageDetails_page {
   id: string;
   title: string;
   slug: string;
-  isVisible: boolean | null;
+  isPublished: boolean;
   contentJson: any;
   seoTitle: string | null;
   seoDescription: string | null;
-  availableOn: any | null;
+  publicationDate: any | null;
 }
 
 export interface PageDetails {
diff --git a/saleor/static/dashboard-next/pages/types/PageDetailsFragment.ts b/saleor/static/dashboard-next/pages/types/PageDetailsFragment.ts
index 7b98ac58df6..1b1e48c9246 100644
--- a/saleor/static/dashboard-next/pages/types/PageDetailsFragment.ts
+++ b/saleor/static/dashboard-next/pages/types/PageDetailsFragment.ts
@@ -11,9 +11,9 @@ export interface PageDetailsFragment {
   id: string;
   title: string;
   slug: string;
-  isVisible: boolean | null;
+  isPublished: boolean;
   contentJson: any;
   seoTitle: string | null;
   seoDescription: string | null;
-  availableOn: any | null;
+  publicationDate: any | null;
 }
diff --git a/saleor/static/dashboard-next/pages/types/PageFragment.ts b/saleor/static/dashboard-next/pages/types/PageFragment.ts
index 32eaa5a8fec..c10ca711246 100644
--- a/saleor/static/dashboard-next/pages/types/PageFragment.ts
+++ b/saleor/static/dashboard-next/pages/types/PageFragment.ts
@@ -11,5 +11,5 @@ export interface PageFragment {
   id: string;
   title: string;
   slug: string;
-  isVisible: boolean | null;
+  isPublished: boolean;
 }
diff --git a/saleor/static/dashboard-next/pages/types/PageList.ts b/saleor/static/dashboard-next/pages/types/PageList.ts
index d9f7841e62e..df8718b7bd9 100644
--- a/saleor/static/dashboard-next/pages/types/PageList.ts
+++ b/saleor/static/dashboard-next/pages/types/PageList.ts
@@ -11,7 +11,7 @@ export interface PageList_pages_edges_node {
   id: string;
   title: string;
   slug: string;
-  isVisible: boolean | null;
+  isPublished: boolean;
 }
 
 export interface PageList_pages_edges {
diff --git a/saleor/static/dashboard-next/pages/types/PageUpdate.ts b/saleor/static/dashboard-next/pages/types/PageUpdate.ts
index c411a4ec929..853a0a34ca4 100644
--- a/saleor/static/dashboard-next/pages/types/PageUpdate.ts
+++ b/saleor/static/dashboard-next/pages/types/PageUpdate.ts
@@ -19,11 +19,11 @@ export interface PageUpdate_pageUpdate_page {
   id: string;
   title: string;
   slug: string;
-  isVisible: boolean | null;
+  isPublished: boolean;
   contentJson: any;
   seoTitle: string | null;
   seoDescription: string | null;
-  availableOn: any | null;
+  publicationDate: any | null;
 }
 
 export interface PageUpdate_pageUpdate {
diff --git a/saleor/static/dashboard-next/pages/views/PageCreate.tsx b/saleor/static/dashboard-next/pages/views/PageCreate.tsx
index e198fd257df..dc3507ec68b 100644
--- a/saleor/static/dashboard-next/pages/views/PageCreate.tsx
+++ b/saleor/static/dashboard-next/pages/views/PageCreate.tsx
@@ -53,16 +53,16 @@ export const PageCreate: React.StatelessComponent<PageCreateProps> = () => {
                   variables: {
                     input: {
                       contentJson: JSON.stringify(formData.content),
-                      isPublished: formData.isVisible
+                      isPublished: formData.isPublished
                         ? true
-                        : formData.availableOn === ""
+                        : formData.publicationDate === ""
                         ? false
                         : true,
-                      publicationDate: formData.isVisible
+                      publicationDate: formData.isPublished
                         ? null
-                        : formData.availableOn === ""
+                        : formData.publicationDate === ""
                         ? null
-                        : formData.availableOn,
+                        : formData.publicationDate,
                       seo: {
                         description: formData.seoDescription,
                         title: formData.seoTitle
diff --git a/saleor/static/dashboard-next/pages/views/PageDetails.tsx b/saleor/static/dashboard-next/pages/views/PageDetails.tsx
index 286e44704b2..cc5625733a4 100644
--- a/saleor/static/dashboard-next/pages/views/PageDetails.tsx
+++ b/saleor/static/dashboard-next/pages/views/PageDetails.tsx
@@ -21,16 +21,16 @@ export interface PageDetailsProps {
 
 const createPageInput = (data: FormData): PageInput => ({
   contentJson: JSON.stringify(data.content),
-  isPublished: data.isVisible
+  isPublished: data.isPublished
     ? true
-    : data.availableOn === "" || data.availableOn === null
+    : data.publicationDate === "" || data.publicationDate === null
     ? false
     : true,
-  publicationDate: data.isVisible
+  publicationDate: data.isPublished
     ? null
-    : data.availableOn === ""
+    : data.publicationDate === ""
     ? null
-    : data.availableOn,
+    : data.publicationDate,
   seo: {
     description: data.seoDescription,
     title: data.seoTitle
diff --git a/saleor/static/dashboard-next/products/components/ProductCreatePage/ProductCreatePage.tsx b/saleor/static/dashboard-next/products/components/ProductCreatePage/ProductCreatePage.tsx
index fc4744c74ec..75a78bdac17 100644
--- a/saleor/static/dashboard-next/products/components/ProductCreatePage/ProductCreatePage.tsx
+++ b/saleor/static/dashboard-next/products/components/ProductCreatePage/ProductCreatePage.tsx
@@ -30,13 +30,13 @@ export interface FormData {
     value: string;
   }>;
   available: boolean;
+  basePrice: number;
   publicationDate: string;
   category: ChoiceType;
   chargeTaxes: boolean;
   collections: ChoiceType[];
   description: RawDraftContentState;
   name: string;
-  price: number;
   productType: {
     label: string;
     value: {
@@ -98,6 +98,7 @@ export const ProductCreatePage: React.StatelessComponent<
   const initialData: FormData = {
     attributes: [],
     available: false,
+    basePrice: 0,
     category: {
       label: "",
       value: ""
@@ -106,7 +107,6 @@ export const ProductCreatePage: React.StatelessComponent<
     collections: [],
     description: {} as any,
     name: "",
-    price: 0,
     productType: {
       label: "",
       value: {
diff --git a/saleor/static/dashboard-next/products/components/ProductPricing/ProductPricing.tsx b/saleor/static/dashboard-next/products/components/ProductPricing/ProductPricing.tsx
index b1eb0e3d830..e08345c99f6 100644
--- a/saleor/static/dashboard-next/products/components/ProductPricing/ProductPricing.tsx
+++ b/saleor/static/dashboard-next/products/components/ProductPricing/ProductPricing.tsx
@@ -26,7 +26,7 @@ interface ProductPricingProps extends WithStyles<typeof styles> {
   currency?: string;
   data: {
     chargeTaxes: boolean;
-    price: number;
+    basePrice: number;
   };
   disabled: boolean;
   onChange: (event: React.ChangeEvent<any>) => void;
@@ -49,8 +49,8 @@ const ProductPricing = withStyles(styles, { name: "ProductPricing" })(
           <PriceField
             disabled={disabled}
             label={i18n.t("Price")}
-            name="price"
-            value={data.price}
+            name="basePrice"
+            value={data.basePrice}
             currencySymbol={currency}
             onChange={onChange}
           />
diff --git a/saleor/static/dashboard-next/products/components/ProductUpdatePage/ProductUpdatePage.tsx b/saleor/static/dashboard-next/products/components/ProductUpdatePage/ProductUpdatePage.tsx
index f0ac0c15e04..fcb630bc85b 100644
--- a/saleor/static/dashboard-next/products/components/ProductUpdatePage/ProductUpdatePage.tsx
+++ b/saleor/static/dashboard-next/products/components/ProductUpdatePage/ProductUpdatePage.tsx
@@ -74,12 +74,12 @@ export interface FormData {
     value: string;
   }>;
   available: boolean;
+  basePrice: number;
   category: ChoiceType | null;
   chargeTaxes: boolean;
   collections: ChoiceType[];
   description: RawDraftContentState;
   name: string;
-  price: number;
   productType: {
     label: string;
     value: {
@@ -138,6 +138,7 @@ export const ProductUpdate: React.StatelessComponent<ProductUpdateProps> = ({
       []
     ),
     available: maybe(() => product.isPublished, false),
+    basePrice: maybe(() => product.basePrice.amount),
     category: maybe(() => ({
       label: product.category.name,
       value: product.category.id
@@ -151,7 +152,6 @@ export const ProductUpdate: React.StatelessComponent<ProductUpdateProps> = ({
       : [],
     description: maybe(() => JSON.parse(product.descriptionJson)),
     name: maybe(() => product.name),
-    price: maybe(() => product.price.amount),
     productType: maybe(() => ({
       label: product.productType.name,
       value: {
@@ -194,7 +194,7 @@ export const ProductUpdate: React.StatelessComponent<ProductUpdateProps> = ({
         }))
       : [];
   const currency =
-    product && product.price ? product.price.currency : undefined;
+    product && product.basePrice ? product.basePrice.currency : undefined;
   const hasVariants =
     product && product.productType && product.productType.hasVariants;
 
@@ -240,7 +240,7 @@ export const ProductUpdate: React.StatelessComponent<ProductUpdateProps> = ({
                   <ProductVariants
                     disabled={disabled}
                     variants={variants}
-                    fallbackPrice={product ? product.price : undefined}
+                    fallbackPrice={product ? product.basePrice : undefined}
                     onAttributesEdit={onAttributesEdit}
                     onRowClick={onVariantShow}
                     onVariantAdd={onVariantAdd}
diff --git a/saleor/static/dashboard-next/products/fixtures.ts b/saleor/static/dashboard-next/products/fixtures.ts
index 016b1868a61..2fc48bc955a 100644
--- a/saleor/static/dashboard-next/products/fixtures.ts
+++ b/saleor/static/dashboard-next/products/fixtures.ts
@@ -90,38 +90,11 @@ export const product: (
       }
     }
   ],
-  availability: {
-    __typename: "ProductPricingInfo",
-    available: false,
-    priceRange: {
-      __typename: "TaxedMoneyRange",
-      start: {
-        __typename: "TaxedMoney",
-        gross: {
-          __typename: "Money",
-          amount: 12.3,
-          currency: "USD"
-        },
-        net: {
-          __typename: "Money",
-          amount: 10,
-          currency: "USD"
-        }
-      },
-      stop: {
-        __typename: "TaxedMoney",
-        gross: {
-          __typename: "Money",
-          amount: 24.6,
-          currency: "USD"
-        },
-        net: {
-          __typename: "Money",
-          amount: 20,
-          currency: "USD"
-        }
-      }
-    }
+  basePrice: {
+    __typename: "Money",
+    amount: 339.39,
+    currency: "NZD",
+    localized: "339.39 NZD"
   },
   category: { __typename: "Category", id: "Q2F0ZWdvcnk6MQ==", name: "Apparel" },
   chargeTaxes: true,
@@ -171,15 +144,42 @@ export const product: (
       url: placeholderImage
     }
   ],
+  isAvailable: false,
   isFeatured: false,
   isPublished: true,
   margin: { __typename: "Margin", start: 2, stop: 7 },
   name: "Ergonomic Plastic Bacon",
-  price: {
-    __typename: "Money",
-    amount: 339.39,
-    currency: "NZD",
-    localized: "339.39 NZD"
+  pricing: {
+    __typename: "ProductPricingInfo",
+    priceRange: {
+      __typename: "TaxedMoneyRange",
+      start: {
+        __typename: "TaxedMoney",
+        gross: {
+          __typename: "Money",
+          amount: 12.3,
+          currency: "USD"
+        },
+        net: {
+          __typename: "Money",
+          amount: 10,
+          currency: "USD"
+        }
+      },
+      stop: {
+        __typename: "TaxedMoney",
+        gross: {
+          __typename: "Money",
+          amount: 24.6,
+          currency: "USD"
+        },
+        net: {
+          __typename: "Money",
+          amount: 20,
+          currency: "USD"
+        }
+      }
+    }
   },
   productType: {
     __typename: "ProductType",
@@ -406,7 +406,7 @@ export const products = (placeholderImage: string) => [
         }
       }
     ],
-    availability: { available: true },
+    basePrice: { amount: 274.99389477595827, currency: "XAG" },
     category: { id: "Q2F0ZWdvcnk6MQ==", name: "Apparel" },
     collections: {
       edges: [{ node: { id: "Q29sbGVjdGlvbjoy", name: "Winter sale" } }]
@@ -426,11 +426,11 @@ export const products = (placeholderImage: string) => [
         }
       ]
     },
+    isAvailable: true,
     isFeatured: false,
     isPublished: false,
     margin: { start: 6, stop: 18 },
     name: "Gorgeous Frozen Chips",
-    price: { amount: 274.99389477595827, currency: "XAG" },
     productType: {
       hasVariants: true,
       id: "pt41284",
@@ -567,7 +567,7 @@ export const products = (placeholderImage: string) => [
         }
       }
     ],
-    availability: { available: true },
+    basePrice: { amount: 432.2991706153576, currency: "ZWL" },
     category: { id: "Q2F0ZWdvcnk6MQ==", name: "Apparel" },
     collections: {
       edges: [{ node: { id: "Q29sbGVjdGlvbjoy", name: "Winter sale" } }]
@@ -587,11 +587,11 @@ export const products = (placeholderImage: string) => [
         }
       ]
     },
+    isAvailable: true,
     isFeatured: false,
     isPublished: true,
     margin: { start: 4, stop: 19 },
     name: "Handcrafted Wooden Towels",
-    price: { amount: 432.2991706153576, currency: "ZWL" },
     productType: { hasVariants: false, id: "pt29020", name: "Future" },
     publicationDate: null,
     purchaseCost: {
@@ -764,7 +764,7 @@ export const products = (placeholderImage: string) => [
         }
       }
     ],
-    availability: { available: false },
+    basePrice: { amount: 688.3543328975433, currency: "XDR" },
     category: { id: "Q2F0ZWdvcnk6MQ==", name: "Apparel" },
     collections: {
       edges: [{ node: { id: "Q29sbGVjdGlvbjoy", name: "Winter sale" } }]
@@ -784,11 +784,11 @@ export const products = (placeholderImage: string) => [
         }
       ]
     },
+    isAvailable: false,
     isFeatured: false,
     isPublished: true,
     margin: { start: 3, stop: 18 },
     name: "Handcrafted Metal Cheese",
-    price: { amount: 688.3543328975433, currency: "XDR" },
     productType: { hasVariants: true, id: "pt23508", name: "SMS" },
     publicationDate: null,
     purchaseCost: {
@@ -972,7 +972,7 @@ export const products = (placeholderImage: string) => [
         value: { id: "ptav60428", name: "HDD", slug: "HDD", sortOrder: 3 }
       }
     ],
-    availability: { available: false },
+    basePrice: { amount: 540.3817687240911, currency: "SLL" },
     category: { id: "Q2F0ZWdvcnk6MQ==", name: "Apparel" },
     collections: {
       edges: [{ node: { id: "Q29sbGVjdGlvbjoy", name: "Winter sale" } }]
@@ -992,11 +992,11 @@ export const products = (placeholderImage: string) => [
         }
       ]
     },
+    isAvailable: false,
     isFeatured: true,
     isPublished: true,
     margin: { start: 4, stop: 19 },
     name: "Refined Rubber Keyboard",
-    price: { amount: 540.3817687240911, currency: "SLL" },
     productType: { hasVariants: false, id: "pt20625", name: "Virtual" },
     publicationDate: null,
     purchaseCost: {
@@ -1189,7 +1189,7 @@ export const products = (placeholderImage: string) => [
         value: { id: "ptav52878", name: "Burgs", slug: "Burgs", sortOrder: 0 }
       }
     ],
-    availability: { available: true },
+    basePrice: { amount: 4.359138839276078, currency: "AMD" },
     category: { id: "Q2F0ZWdvcnk6MQ==", name: "Apparel" },
     collections: {
       edges: [{ node: { id: "Q29sbGVjdGlvbjoy", name: "Winter sale" } }]
@@ -1209,11 +1209,11 @@ export const products = (placeholderImage: string) => [
         }
       ]
     },
+    isAvailable: true,
     isFeatured: false,
     isPublished: false,
     margin: { start: 6, stop: 17 },
     name: "Gorgeous Metal Gloves",
-    price: { amount: 4.359138839276078, currency: "AMD" },
     productType: { hasVariants: true, id: "pt91547", name: "Vermont" },
     publicationDate: null,
     purchaseCost: {
@@ -1445,7 +1445,7 @@ export const products = (placeholderImage: string) => [
         }
       }
     ],
-    availability: { available: false },
+    basePrice: { amount: 538.0974149450597, currency: "GMD" },
     category: { id: "Q2F0ZWdvcnk6MQ==", name: "Apparel" },
     collections: {
       edges: [{ node: { id: "Q29sbGVjdGlvbjoy", name: "Winter sale" } }]
@@ -1465,11 +1465,11 @@ export const products = (placeholderImage: string) => [
         }
       ]
     },
+    isAvailable: false,
     isFeatured: false,
     isPublished: false,
     margin: { start: 1, stop: 15 },
     name: "Small Cotton Shirt",
-    price: { amount: 538.0974149450597, currency: "GMD" },
     productType: { hasVariants: false, id: "pt69941", name: "Gorgeous" },
     publicationDate: null,
     purchaseCost: {
@@ -1640,7 +1640,7 @@ export const products = (placeholderImage: string) => [
         value: { id: "ptav70505", name: "Avon", slug: "Avon", sortOrder: 0 }
       }
     ],
-    availability: { available: false },
+    basePrice: { amount: 56.90596710694962, currency: "CVE" },
     category: { id: "Q2F0ZWdvcnk6MQ==", name: "Apparel" },
     collections: {
       edges: [{ node: { id: "Q29sbGVjdGlvbjoy", name: "Winter sale" } }]
@@ -1660,11 +1660,11 @@ export const products = (placeholderImage: string) => [
         }
       ]
     },
+    isAvailable: false,
     isFeatured: false,
     isPublished: false,
     margin: { start: 0, stop: 4 },
     name: "Fantastic Cotton Tuna",
-    price: { amount: 56.90596710694962, currency: "CVE" },
     productType: { hasVariants: true, id: "pt41677", name: "TCP" },
     publicationDate: null,
     purchaseCost: {
@@ -1749,7 +1749,7 @@ export const products = (placeholderImage: string) => [
         value: { id: "ptav98940", name: "silver", slug: "silver", sortOrder: 0 }
       }
     ],
-    availability: { available: false },
+    basePrice: { amount: 981.0598640464501, currency: "XAG" },
     category: { id: "Q2F0ZWdvcnk6MQ==", name: "Apparel" },
     collections: {
       edges: [{ node: { id: "Q29sbGVjdGlvbjoy", name: "Winter sale" } }]
@@ -1769,11 +1769,11 @@ export const products = (placeholderImage: string) => [
         }
       ]
     },
+    isAvailable: false,
     isFeatured: false,
     isPublished: true,
     margin: { start: 0, stop: 18 },
     name: "Tasty Steel Pants",
-    price: { amount: 981.0598640464501, currency: "XAG" },
     productType: { hasVariants: true, id: "pt93233", name: "Buckinghamshire" },
     publicationDate: null,
     purchaseCost: {
@@ -1956,7 +1956,7 @@ export const products = (placeholderImage: string) => [
         value: { id: "ptav77181", name: "orchid", slug: "orchid", sortOrder: 1 }
       }
     ],
-    availability: { available: true },
+    basePrice: { amount: 449.93166054829857, currency: "WST" },
     category: { id: "Q2F0ZWdvcnk6MQ==", name: "Apparel" },
     collections: {
       edges: [{ node: { id: "Q29sbGVjdGlvbjoy", name: "Winter sale" } }]
@@ -1976,11 +1976,11 @@ export const products = (placeholderImage: string) => [
         }
       ]
     },
+    isAvailable: true,
     isFeatured: false,
     isPublished: true,
     margin: { start: 0, stop: 11 },
     name: "Ergonomic Cotton Shoes",
-    price: { amount: 449.93166054829857, currency: "WST" },
     productType: { hasVariants: true, id: "pt53386", name: "Jewelery" },
     publicationDate: null,
     purchaseCost: {
@@ -2088,7 +2088,7 @@ export const products = (placeholderImage: string) => [
         }
       }
     ],
-    availability: { available: false },
+    basePrice: { amount: 590.5928694420302, currency: "MGA" },
     category: { id: "Q2F0ZWdvcnk6MQ==", name: "Apparel" },
     collections: {
       edges: [{ node: { id: "Q29sbGVjdGlvbjoy", name: "Winter sale" } }]
@@ -2108,11 +2108,11 @@ export const products = (placeholderImage: string) => [
         }
       ]
     },
+    isAvailable: false,
     isFeatured: false,
     isPublished: true,
     margin: { start: 4, stop: 17 },
     name: "Unbranded Steel Tuna",
-    price: { amount: 590.5928694420302, currency: "MGA" },
     productType: { hasVariants: true, id: "pt48315", name: "Agent" },
     publicationDate: null,
     purchaseCost: {
diff --git a/saleor/static/dashboard-next/products/mutations.ts b/saleor/static/dashboard-next/products/mutations.ts
index a2e5b0c9fd5..b2147184190 100644
--- a/saleor/static/dashboard-next/products/mutations.ts
+++ b/saleor/static/dashboard-next/products/mutations.ts
@@ -123,7 +123,7 @@ export const productUpdateMutation = gql`
     $descriptionJson: JSONString
     $isPublished: Boolean!
     $name: String
-    $price: Decimal
+    $basePrice: Decimal
   ) {
     productUpdate(
       id: $id
@@ -136,7 +136,7 @@ export const productUpdateMutation = gql`
         descriptionJson: $descriptionJson
         isPublished: $isPublished
         name: $name
-        price: $price
+        price: $basePrice
       }
     ) {
       errors {
@@ -167,7 +167,7 @@ export const simpleProductUpdateMutation = gql`
     $descriptionJson: JSONString
     $isPublished: Boolean!
     $name: String
-    $price: Decimal
+    $basePrice: Decimal
     $productVariantId: ID!
     $productVariantInput: ProductVariantInput!
   ) {
@@ -182,7 +182,7 @@ export const simpleProductUpdateMutation = gql`
         descriptionJson: $descriptionJson
         isPublished: $isPublished
         name: $name
-        price: $price
+        basePrice: $basePrice
       }
     ) {
       errors {
@@ -220,7 +220,7 @@ export const productCreateMutation = gql`
     $descriptionJson: JSONString
     $isPublished: Boolean!
     $name: String!
-    $price: Decimal
+    $basePrice: Decimal
     $productType: ID!
     $sku: String
     $stockQuantity: Int
@@ -235,7 +235,7 @@ export const productCreateMutation = gql`
         descriptionJson: $descriptionJson
         isPublished: $isPublished
         name: $name
-        price: $price
+        basePrice: $basePrice
         productType: $productType
         sku: $sku
         quantity: $stockQuantity
diff --git a/saleor/static/dashboard-next/products/queries.ts b/saleor/static/dashboard-next/products/queries.ts
index c5b41927e70..dc493de09eb 100644
--- a/saleor/static/dashboard-next/products/queries.ts
+++ b/saleor/static/dashboard-next/products/queries.ts
@@ -52,10 +52,8 @@ export const productFragment = gql`
     thumbnail {
       url
     }
-    availability {
-      available
-    }
-    price {
+    isAvailable
+    basePrice {
       ...Money
     }
     productType {
@@ -81,7 +79,7 @@ export const productFragmentDetails = gql`
       id
       name
     }
-    price {
+    basePrice {
       ...Money
     }
     margin {
@@ -96,6 +94,7 @@ export const productFragmentDetails = gql`
         ...Money
       }
     }
+    isAvailable
     isPublished
     chargeTaxes
     publicationDate
@@ -115,8 +114,7 @@ export const productFragmentDetails = gql`
         slug
       }
     }
-    availability {
-      available
+    pricing {
       priceRange {
         start {
           net {
diff --git a/saleor/static/dashboard-next/products/types/Product.ts b/saleor/static/dashboard-next/products/types/Product.ts
index 9797b91e990..31fc98e7646 100644
--- a/saleor/static/dashboard-next/products/types/Product.ts
+++ b/saleor/static/dashboard-next/products/types/Product.ts
@@ -18,7 +18,7 @@ export interface Product_collections {
   name: string;
 }
 
-export interface Product_price {
+export interface Product_basePrice {
   __typename: "Money";
   amount: number;
   currency: string;
@@ -75,38 +75,37 @@ export interface Product_attributes {
   value: Product_attributes_value;
 }
 
-export interface Product_availability_priceRange_start_net {
+export interface Product_pricing_priceRange_start_net {
   __typename: "Money";
   amount: number;
   currency: string;
 }
 
-export interface Product_availability_priceRange_start {
+export interface Product_pricing_priceRange_start {
   __typename: "TaxedMoney";
-  net: Product_availability_priceRange_start_net;
+  net: Product_pricing_priceRange_start_net;
 }
 
-export interface Product_availability_priceRange_stop_net {
+export interface Product_pricing_priceRange_stop_net {
   __typename: "Money";
   amount: number;
   currency: string;
 }
 
-export interface Product_availability_priceRange_stop {
+export interface Product_pricing_priceRange_stop {
   __typename: "TaxedMoney";
-  net: Product_availability_priceRange_stop_net;
+  net: Product_pricing_priceRange_stop_net;
 }
 
-export interface Product_availability_priceRange {
+export interface Product_pricing_priceRange {
   __typename: "TaxedMoneyRange";
-  start: Product_availability_priceRange_start | null;
-  stop: Product_availability_priceRange_stop | null;
+  start: Product_pricing_priceRange_start | null;
+  stop: Product_pricing_priceRange_stop | null;
 }
 
-export interface Product_availability {
+export interface Product_pricing {
   __typename: "ProductPricingInfo";
-  available: boolean | null;
-  priceRange: Product_availability_priceRange | null;
+  priceRange: Product_pricing_priceRange | null;
 }
 
 export interface Product_images {
@@ -151,14 +150,15 @@ export interface Product {
   seoDescription: string | null;
   category: Product_category;
   collections: (Product_collections | null)[] | null;
-  price: Product_price | null;
+  basePrice: Product_basePrice | null;
   margin: Product_margin | null;
   purchaseCost: Product_purchaseCost | null;
+  isAvailable: boolean | null;
   isPublished: boolean;
   chargeTaxes: boolean;
   publicationDate: any | null;
   attributes: Product_attributes[];
-  availability: Product_availability | null;
+  pricing: Product_pricing | null;
   images: (Product_images | null)[] | null;
   variants: (Product_variants | null)[] | null;
   productType: Product_productType;
diff --git a/saleor/static/dashboard-next/products/types/ProductCreate.ts b/saleor/static/dashboard-next/products/types/ProductCreate.ts
index a8e9bb0283b..01aa7534a9f 100644
--- a/saleor/static/dashboard-next/products/types/ProductCreate.ts
+++ b/saleor/static/dashboard-next/products/types/ProductCreate.ts
@@ -26,7 +26,7 @@ export interface ProductCreate_productCreate_product_collections {
   name: string;
 }
 
-export interface ProductCreate_productCreate_product_price {
+export interface ProductCreate_productCreate_product_basePrice {
   __typename: "Money";
   amount: number;
   currency: string;
@@ -83,38 +83,37 @@ export interface ProductCreate_productCreate_product_attributes {
   value: ProductCreate_productCreate_product_attributes_value;
 }
 
-export interface ProductCreate_productCreate_product_availability_priceRange_start_net {
+export interface ProductCreate_productCreate_product_pricing_priceRange_start_net {
   __typename: "Money";
   amount: number;
   currency: string;
 }
 
-export interface ProductCreate_productCreate_product_availability_priceRange_start {
+export interface ProductCreate_productCreate_product_pricing_priceRange_start {
   __typename: "TaxedMoney";
-  net: ProductCreate_productCreate_product_availability_priceRange_start_net;
+  net: ProductCreate_productCreate_product_pricing_priceRange_start_net;
 }
 
-export interface ProductCreate_productCreate_product_availability_priceRange_stop_net {
+export interface ProductCreate_productCreate_product_pricing_priceRange_stop_net {
   __typename: "Money";
   amount: number;
   currency: string;
 }
 
-export interface ProductCreate_productCreate_product_availability_priceRange_stop {
+export interface ProductCreate_productCreate_product_pricing_priceRange_stop {
   __typename: "TaxedMoney";
-  net: ProductCreate_productCreate_product_availability_priceRange_stop_net;
+  net: ProductCreate_productCreate_product_pricing_priceRange_stop_net;
 }
 
-export interface ProductCreate_productCreate_product_availability_priceRange {
+export interface ProductCreate_productCreate_product_pricing_priceRange {
   __typename: "TaxedMoneyRange";
-  start: ProductCreate_productCreate_product_availability_priceRange_start | null;
-  stop: ProductCreate_productCreate_product_availability_priceRange_stop | null;
+  start: ProductCreate_productCreate_product_pricing_priceRange_start | null;
+  stop: ProductCreate_productCreate_product_pricing_priceRange_stop | null;
 }
 
-export interface ProductCreate_productCreate_product_availability {
+export interface ProductCreate_productCreate_product_pricing {
   __typename: "ProductPricingInfo";
-  available: boolean | null;
-  priceRange: ProductCreate_productCreate_product_availability_priceRange | null;
+  priceRange: ProductCreate_productCreate_product_pricing_priceRange | null;
 }
 
 export interface ProductCreate_productCreate_product_images {
@@ -159,14 +158,15 @@ export interface ProductCreate_productCreate_product {
   seoDescription: string | null;
   category: ProductCreate_productCreate_product_category;
   collections: (ProductCreate_productCreate_product_collections | null)[] | null;
-  price: ProductCreate_productCreate_product_price | null;
+  basePrice: ProductCreate_productCreate_product_basePrice | null;
   margin: ProductCreate_productCreate_product_margin | null;
   purchaseCost: ProductCreate_productCreate_product_purchaseCost | null;
+  isAvailable: boolean | null;
   isPublished: boolean;
   chargeTaxes: boolean;
   publicationDate: any | null;
   attributes: ProductCreate_productCreate_product_attributes[];
-  availability: ProductCreate_productCreate_product_availability | null;
+  pricing: ProductCreate_productCreate_product_pricing | null;
   images: (ProductCreate_productCreate_product_images | null)[] | null;
   variants: (ProductCreate_productCreate_product_variants | null)[] | null;
   productType: ProductCreate_productCreate_product_productType;
@@ -192,7 +192,7 @@ export interface ProductCreateVariables {
   descriptionJson?: any | null;
   isPublished: boolean;
   name: string;
-  price?: any | null;
+  basePrice?: any | null;
   productType: string;
   sku?: string | null;
   stockQuantity?: number | null;
diff --git a/saleor/static/dashboard-next/products/types/ProductDetails.ts b/saleor/static/dashboard-next/products/types/ProductDetails.ts
index 1623b5985a2..5e9d925f07d 100644
--- a/saleor/static/dashboard-next/products/types/ProductDetails.ts
+++ b/saleor/static/dashboard-next/products/types/ProductDetails.ts
@@ -18,7 +18,7 @@ export interface ProductDetails_product_collections {
   name: string;
 }
 
-export interface ProductDetails_product_price {
+export interface ProductDetails_product_basePrice {
   __typename: "Money";
   amount: number;
   currency: string;
@@ -75,38 +75,37 @@ export interface ProductDetails_product_attributes {
   value: ProductDetails_product_attributes_value;
 }
 
-export interface ProductDetails_product_availability_priceRange_start_net {
+export interface ProductDetails_product_pricing_priceRange_start_net {
   __typename: "Money";
   amount: number;
   currency: string;
 }
 
-export interface ProductDetails_product_availability_priceRange_start {
+export interface ProductDetails_product_pricing_priceRange_start {
   __typename: "TaxedMoney";
-  net: ProductDetails_product_availability_priceRange_start_net;
+  net: ProductDetails_product_pricing_priceRange_start_net;
 }
 
-export interface ProductDetails_product_availability_priceRange_stop_net {
+export interface ProductDetails_product_pricing_priceRange_stop_net {
   __typename: "Money";
   amount: number;
   currency: string;
 }
 
-export interface ProductDetails_product_availability_priceRange_stop {
+export interface ProductDetails_product_pricing_priceRange_stop {
   __typename: "TaxedMoney";
-  net: ProductDetails_product_availability_priceRange_stop_net;
+  net: ProductDetails_product_pricing_priceRange_stop_net;
 }
 
-export interface ProductDetails_product_availability_priceRange {
+export interface ProductDetails_product_pricing_priceRange {
   __typename: "TaxedMoneyRange";
-  start: ProductDetails_product_availability_priceRange_start | null;
-  stop: ProductDetails_product_availability_priceRange_stop | null;
+  start: ProductDetails_product_pricing_priceRange_start | null;
+  stop: ProductDetails_product_pricing_priceRange_stop | null;
 }
 
-export interface ProductDetails_product_availability {
+export interface ProductDetails_product_pricing {
   __typename: "ProductPricingInfo";
-  available: boolean | null;
-  priceRange: ProductDetails_product_availability_priceRange | null;
+  priceRange: ProductDetails_product_pricing_priceRange | null;
 }
 
 export interface ProductDetails_product_images {
@@ -151,14 +150,15 @@ export interface ProductDetails_product {
   seoDescription: string | null;
   category: ProductDetails_product_category;
   collections: (ProductDetails_product_collections | null)[] | null;
-  price: ProductDetails_product_price | null;
+  basePrice: ProductDetails_product_basePrice | null;
   margin: ProductDetails_product_margin | null;
   purchaseCost: ProductDetails_product_purchaseCost | null;
+  isAvailable: boolean | null;
   isPublished: boolean;
   chargeTaxes: boolean;
   publicationDate: any | null;
   attributes: ProductDetails_product_attributes[];
-  availability: ProductDetails_product_availability | null;
+  pricing: ProductDetails_product_pricing | null;
   images: (ProductDetails_product_images | null)[] | null;
   variants: (ProductDetails_product_variants | null)[] | null;
   productType: ProductDetails_product_productType;
diff --git a/saleor/static/dashboard-next/products/types/ProductFragment.ts b/saleor/static/dashboard-next/products/types/ProductFragment.ts
index b831bfed3ce..7187a97910c 100644
--- a/saleor/static/dashboard-next/products/types/ProductFragment.ts
+++ b/saleor/static/dashboard-next/products/types/ProductFragment.ts
@@ -11,12 +11,7 @@ export interface ProductFragment_thumbnail {
   url: string;
 }
 
-export interface ProductFragment_availability {
-  __typename: "ProductPricingInfo";
-  available: boolean | null;
-}
-
-export interface ProductFragment_price {
+export interface ProductFragment_basePrice {
   __typename: "Money";
   amount: number;
   currency: string;
@@ -33,7 +28,7 @@ export interface ProductFragment {
   id: string;
   name: string;
   thumbnail: ProductFragment_thumbnail | null;
-  availability: ProductFragment_availability | null;
-  price: ProductFragment_price | null;
+  isAvailable: boolean | null;
+  basePrice: ProductFragment_basePrice | null;
   productType: ProductFragment_productType;
 }
diff --git a/saleor/static/dashboard-next/products/types/ProductImageCreate.ts b/saleor/static/dashboard-next/products/types/ProductImageCreate.ts
index f751ed83f51..ef31824514e 100644
--- a/saleor/static/dashboard-next/products/types/ProductImageCreate.ts
+++ b/saleor/static/dashboard-next/products/types/ProductImageCreate.ts
@@ -24,7 +24,7 @@ export interface ProductImageCreate_productImageCreate_product_collections {
   name: string;
 }
 
-export interface ProductImageCreate_productImageCreate_product_price {
+export interface ProductImageCreate_productImageCreate_product_basePrice {
   __typename: "Money";
   amount: number;
   currency: string;
@@ -81,38 +81,37 @@ export interface ProductImageCreate_productImageCreate_product_attributes {
   value: ProductImageCreate_productImageCreate_product_attributes_value;
 }
 
-export interface ProductImageCreate_productImageCreate_product_availability_priceRange_start_net {
+export interface ProductImageCreate_productImageCreate_product_pricing_priceRange_start_net {
   __typename: "Money";
   amount: number;
   currency: string;
 }
 
-export interface ProductImageCreate_productImageCreate_product_availability_priceRange_start {
+export interface ProductImageCreate_productImageCreate_product_pricing_priceRange_start {
   __typename: "TaxedMoney";
-  net: ProductImageCreate_productImageCreate_product_availability_priceRange_start_net;
+  net: ProductImageCreate_productImageCreate_product_pricing_priceRange_start_net;
 }
 
-export interface ProductImageCreate_productImageCreate_product_availability_priceRange_stop_net {
+export interface ProductImageCreate_productImageCreate_product_pricing_priceRange_stop_net {
   __typename: "Money";
   amount: number;
   currency: string;
 }
 
-export interface ProductImageCreate_productImageCreate_product_availability_priceRange_stop {
+export interface ProductImageCreate_productImageCreate_product_pricing_priceRange_stop {
   __typename: "TaxedMoney";
-  net: ProductImageCreate_productImageCreate_product_availability_priceRange_stop_net;
+  net: ProductImageCreate_productImageCreate_product_pricing_priceRange_stop_net;
 }
 
-export interface ProductImageCreate_productImageCreate_product_availability_priceRange {
+export interface ProductImageCreate_productImageCreate_product_pricing_priceRange {
   __typename: "TaxedMoneyRange";
-  start: ProductImageCreate_productImageCreate_product_availability_priceRange_start | null;
-  stop: ProductImageCreate_productImageCreate_product_availability_priceRange_stop | null;
+  start: ProductImageCreate_productImageCreate_product_pricing_priceRange_start | null;
+  stop: ProductImageCreate_productImageCreate_product_pricing_priceRange_stop | null;
 }
 
-export interface ProductImageCreate_productImageCreate_product_availability {
+export interface ProductImageCreate_productImageCreate_product_pricing {
   __typename: "ProductPricingInfo";
-  available: boolean | null;
-  priceRange: ProductImageCreate_productImageCreate_product_availability_priceRange | null;
+  priceRange: ProductImageCreate_productImageCreate_product_pricing_priceRange | null;
 }
 
 export interface ProductImageCreate_productImageCreate_product_images {
@@ -157,14 +156,15 @@ export interface ProductImageCreate_productImageCreate_product {
   seoDescription: string | null;
   category: ProductImageCreate_productImageCreate_product_category;
   collections: (ProductImageCreate_productImageCreate_product_collections | null)[] | null;
-  price: ProductImageCreate_productImageCreate_product_price | null;
+  basePrice: ProductImageCreate_productImageCreate_product_basePrice | null;
   margin: ProductImageCreate_productImageCreate_product_margin | null;
   purchaseCost: ProductImageCreate_productImageCreate_product_purchaseCost | null;
+  isAvailable: boolean | null;
   isPublished: boolean;
   chargeTaxes: boolean;
   publicationDate: any | null;
   attributes: ProductImageCreate_productImageCreate_product_attributes[];
-  availability: ProductImageCreate_productImageCreate_product_availability | null;
+  pricing: ProductImageCreate_productImageCreate_product_pricing | null;
   images: (ProductImageCreate_productImageCreate_product_images | null)[] | null;
   variants: (ProductImageCreate_productImageCreate_product_variants | null)[] | null;
   productType: ProductImageCreate_productImageCreate_product_productType;
diff --git a/saleor/static/dashboard-next/products/types/ProductImageUpdate.ts b/saleor/static/dashboard-next/products/types/ProductImageUpdate.ts
index 734eaf0fdd8..8baeb5b198c 100644
--- a/saleor/static/dashboard-next/products/types/ProductImageUpdate.ts
+++ b/saleor/static/dashboard-next/products/types/ProductImageUpdate.ts
@@ -24,7 +24,7 @@ export interface ProductImageUpdate_productImageUpdate_product_collections {
   name: string;
 }
 
-export interface ProductImageUpdate_productImageUpdate_product_price {
+export interface ProductImageUpdate_productImageUpdate_product_basePrice {
   __typename: "Money";
   amount: number;
   currency: string;
@@ -81,38 +81,37 @@ export interface ProductImageUpdate_productImageUpdate_product_attributes {
   value: ProductImageUpdate_productImageUpdate_product_attributes_value;
 }
 
-export interface ProductImageUpdate_productImageUpdate_product_availability_priceRange_start_net {
+export interface ProductImageUpdate_productImageUpdate_product_pricing_priceRange_start_net {
   __typename: "Money";
   amount: number;
   currency: string;
 }
 
-export interface ProductImageUpdate_productImageUpdate_product_availability_priceRange_start {
+export interface ProductImageUpdate_productImageUpdate_product_pricing_priceRange_start {
   __typename: "TaxedMoney";
-  net: ProductImageUpdate_productImageUpdate_product_availability_priceRange_start_net;
+  net: ProductImageUpdate_productImageUpdate_product_pricing_priceRange_start_net;
 }
 
-export interface ProductImageUpdate_productImageUpdate_product_availability_priceRange_stop_net {
+export interface ProductImageUpdate_productImageUpdate_product_pricing_priceRange_stop_net {
   __typename: "Money";
   amount: number;
   currency: string;
 }
 
-export interface ProductImageUpdate_productImageUpdate_product_availability_priceRange_stop {
+export interface ProductImageUpdate_productImageUpdate_product_pricing_priceRange_stop {
   __typename: "TaxedMoney";
-  net: ProductImageUpdate_productImageUpdate_product_availability_priceRange_stop_net;
+  net: ProductImageUpdate_productImageUpdate_product_pricing_priceRange_stop_net;
 }
 
-export interface ProductImageUpdate_productImageUpdate_product_availability_priceRange {
+export interface ProductImageUpdate_productImageUpdate_product_pricing_priceRange {
   __typename: "TaxedMoneyRange";
-  start: ProductImageUpdate_productImageUpdate_product_availability_priceRange_start | null;
-  stop: ProductImageUpdate_productImageUpdate_product_availability_priceRange_stop | null;
+  start: ProductImageUpdate_productImageUpdate_product_pricing_priceRange_start | null;
+  stop: ProductImageUpdate_productImageUpdate_product_pricing_priceRange_stop | null;
 }
 
-export interface ProductImageUpdate_productImageUpdate_product_availability {
+export interface ProductImageUpdate_productImageUpdate_product_pricing {
   __typename: "ProductPricingInfo";
-  available: boolean | null;
-  priceRange: ProductImageUpdate_productImageUpdate_product_availability_priceRange | null;
+  priceRange: ProductImageUpdate_productImageUpdate_product_pricing_priceRange | null;
 }
 
 export interface ProductImageUpdate_productImageUpdate_product_images {
@@ -157,14 +156,15 @@ export interface ProductImageUpdate_productImageUpdate_product {
   seoDescription: string | null;
   category: ProductImageUpdate_productImageUpdate_product_category;
   collections: (ProductImageUpdate_productImageUpdate_product_collections | null)[] | null;
-  price: ProductImageUpdate_productImageUpdate_product_price | null;
+  basePrice: ProductImageUpdate_productImageUpdate_product_basePrice | null;
   margin: ProductImageUpdate_productImageUpdate_product_margin | null;
   purchaseCost: ProductImageUpdate_productImageUpdate_product_purchaseCost | null;
+  isAvailable: boolean | null;
   isPublished: boolean;
   chargeTaxes: boolean;
   publicationDate: any | null;
   attributes: ProductImageUpdate_productImageUpdate_product_attributes[];
-  availability: ProductImageUpdate_productImageUpdate_product_availability | null;
+  pricing: ProductImageUpdate_productImageUpdate_product_pricing | null;
   images: (ProductImageUpdate_productImageUpdate_product_images | null)[] | null;
   variants: (ProductImageUpdate_productImageUpdate_product_variants | null)[] | null;
   productType: ProductImageUpdate_productImageUpdate_product_productType;
diff --git a/saleor/static/dashboard-next/products/types/ProductList.ts b/saleor/static/dashboard-next/products/types/ProductList.ts
index cfb7cd582a0..ddeebc551e6 100644
--- a/saleor/static/dashboard-next/products/types/ProductList.ts
+++ b/saleor/static/dashboard-next/products/types/ProductList.ts
@@ -13,12 +13,7 @@ export interface ProductList_products_edges_node_thumbnail {
   url: string;
 }
 
-export interface ProductList_products_edges_node_availability {
-  __typename: "ProductPricingInfo";
-  available: boolean | null;
-}
-
-export interface ProductList_products_edges_node_price {
+export interface ProductList_products_edges_node_basePrice {
   __typename: "Money";
   amount: number;
   currency: string;
@@ -35,8 +30,8 @@ export interface ProductList_products_edges_node {
   id: string;
   name: string;
   thumbnail: ProductList_products_edges_node_thumbnail | null;
-  availability: ProductList_products_edges_node_availability | null;
-  price: ProductList_products_edges_node_price | null;
+  isAvailable: boolean | null;
+  basePrice: ProductList_products_edges_node_basePrice | null;
   productType: ProductList_products_edges_node_productType;
 }
 
diff --git a/saleor/static/dashboard-next/products/types/ProductUpdate.ts b/saleor/static/dashboard-next/products/types/ProductUpdate.ts
index 615a089ef4f..860e6040fc1 100644
--- a/saleor/static/dashboard-next/products/types/ProductUpdate.ts
+++ b/saleor/static/dashboard-next/products/types/ProductUpdate.ts
@@ -26,7 +26,7 @@ export interface ProductUpdate_productUpdate_product_collections {
   name: string;
 }
 
-export interface ProductUpdate_productUpdate_product_price {
+export interface ProductUpdate_productUpdate_product_basePrice {
   __typename: "Money";
   amount: number;
   currency: string;
@@ -83,38 +83,37 @@ export interface ProductUpdate_productUpdate_product_attributes {
   value: ProductUpdate_productUpdate_product_attributes_value;
 }
 
-export interface ProductUpdate_productUpdate_product_availability_priceRange_start_net {
+export interface ProductUpdate_productUpdate_product_pricing_priceRange_start_net {
   __typename: "Money";
   amount: number;
   currency: string;
 }
 
-export interface ProductUpdate_productUpdate_product_availability_priceRange_start {
+export interface ProductUpdate_productUpdate_product_pricing_priceRange_start {
   __typename: "TaxedMoney";
-  net: ProductUpdate_productUpdate_product_availability_priceRange_start_net;
+  net: ProductUpdate_productUpdate_product_pricing_priceRange_start_net;
 }
 
-export interface ProductUpdate_productUpdate_product_availability_priceRange_stop_net {
+export interface ProductUpdate_productUpdate_product_pricing_priceRange_stop_net {
   __typename: "Money";
   amount: number;
   currency: string;
 }
 
-export interface ProductUpdate_productUpdate_product_availability_priceRange_stop {
+export interface ProductUpdate_productUpdate_product_pricing_priceRange_stop {
   __typename: "TaxedMoney";
-  net: ProductUpdate_productUpdate_product_availability_priceRange_stop_net;
+  net: ProductUpdate_productUpdate_product_pricing_priceRange_stop_net;
 }
 
-export interface ProductUpdate_productUpdate_product_availability_priceRange {
+export interface ProductUpdate_productUpdate_product_pricing_priceRange {
   __typename: "TaxedMoneyRange";
-  start: ProductUpdate_productUpdate_product_availability_priceRange_start | null;
-  stop: ProductUpdate_productUpdate_product_availability_priceRange_stop | null;
+  start: ProductUpdate_productUpdate_product_pricing_priceRange_start | null;
+  stop: ProductUpdate_productUpdate_product_pricing_priceRange_stop | null;
 }
 
-export interface ProductUpdate_productUpdate_product_availability {
+export interface ProductUpdate_productUpdate_product_pricing {
   __typename: "ProductPricingInfo";
-  available: boolean | null;
-  priceRange: ProductUpdate_productUpdate_product_availability_priceRange | null;
+  priceRange: ProductUpdate_productUpdate_product_pricing_priceRange | null;
 }
 
 export interface ProductUpdate_productUpdate_product_images {
@@ -159,14 +158,15 @@ export interface ProductUpdate_productUpdate_product {
   seoDescription: string | null;
   category: ProductUpdate_productUpdate_product_category;
   collections: (ProductUpdate_productUpdate_product_collections | null)[] | null;
-  price: ProductUpdate_productUpdate_product_price | null;
+  basePrice: ProductUpdate_productUpdate_product_basePrice | null;
   margin: ProductUpdate_productUpdate_product_margin | null;
   purchaseCost: ProductUpdate_productUpdate_product_purchaseCost | null;
+  isAvailable: boolean | null;
   isPublished: boolean;
   chargeTaxes: boolean;
   publicationDate: any | null;
   attributes: ProductUpdate_productUpdate_product_attributes[];
-  availability: ProductUpdate_productUpdate_product_availability | null;
+  pricing: ProductUpdate_productUpdate_product_pricing | null;
   images: (ProductUpdate_productUpdate_product_images | null)[] | null;
   variants: (ProductUpdate_productUpdate_product_variants | null)[] | null;
   productType: ProductUpdate_productUpdate_product_productType;
@@ -193,5 +193,5 @@ export interface ProductUpdateVariables {
   descriptionJson?: any | null;
   isPublished: boolean;
   name?: string | null;
-  price?: any | null;
+  basePrice?: any | null;
 }
diff --git a/saleor/static/dashboard-next/products/types/SimpleProductUpdate.ts b/saleor/static/dashboard-next/products/types/SimpleProductUpdate.ts
index 99e9d6e5f49..18d803a5df4 100644
--- a/saleor/static/dashboard-next/products/types/SimpleProductUpdate.ts
+++ b/saleor/static/dashboard-next/products/types/SimpleProductUpdate.ts
@@ -26,7 +26,7 @@ export interface SimpleProductUpdate_productUpdate_product_collections {
   name: string;
 }
 
-export interface SimpleProductUpdate_productUpdate_product_price {
+export interface SimpleProductUpdate_productUpdate_product_basePrice {
   __typename: "Money";
   amount: number;
   currency: string;
@@ -83,38 +83,37 @@ export interface SimpleProductUpdate_productUpdate_product_attributes {
   value: SimpleProductUpdate_productUpdate_product_attributes_value;
 }
 
-export interface SimpleProductUpdate_productUpdate_product_availability_priceRange_start_net {
+export interface SimpleProductUpdate_productUpdate_product_pricing_priceRange_start_net {
   __typename: "Money";
   amount: number;
   currency: string;
 }
 
-export interface SimpleProductUpdate_productUpdate_product_availability_priceRange_start {
+export interface SimpleProductUpdate_productUpdate_product_pricing_priceRange_start {
   __typename: "TaxedMoney";
-  net: SimpleProductUpdate_productUpdate_product_availability_priceRange_start_net;
+  net: SimpleProductUpdate_productUpdate_product_pricing_priceRange_start_net;
 }
 
-export interface SimpleProductUpdate_productUpdate_product_availability_priceRange_stop_net {
+export interface SimpleProductUpdate_productUpdate_product_pricing_priceRange_stop_net {
   __typename: "Money";
   amount: number;
   currency: string;
 }
 
-export interface SimpleProductUpdate_productUpdate_product_availability_priceRange_stop {
+export interface SimpleProductUpdate_productUpdate_product_pricing_priceRange_stop {
   __typename: "TaxedMoney";
-  net: SimpleProductUpdate_productUpdate_product_availability_priceRange_stop_net;
+  net: SimpleProductUpdate_productUpdate_product_pricing_priceRange_stop_net;
 }
 
-export interface SimpleProductUpdate_productUpdate_product_availability_priceRange {
+export interface SimpleProductUpdate_productUpdate_product_pricing_priceRange {
   __typename: "TaxedMoneyRange";
-  start: SimpleProductUpdate_productUpdate_product_availability_priceRange_start | null;
-  stop: SimpleProductUpdate_productUpdate_product_availability_priceRange_stop | null;
+  start: SimpleProductUpdate_productUpdate_product_pricing_priceRange_start | null;
+  stop: SimpleProductUpdate_productUpdate_product_pricing_priceRange_stop | null;
 }
 
-export interface SimpleProductUpdate_productUpdate_product_availability {
+export interface SimpleProductUpdate_productUpdate_product_pricing {
   __typename: "ProductPricingInfo";
-  available: boolean | null;
-  priceRange: SimpleProductUpdate_productUpdate_product_availability_priceRange | null;
+  priceRange: SimpleProductUpdate_productUpdate_product_pricing_priceRange | null;
 }
 
 export interface SimpleProductUpdate_productUpdate_product_images {
@@ -159,14 +158,15 @@ export interface SimpleProductUpdate_productUpdate_product {
   seoDescription: string | null;
   category: SimpleProductUpdate_productUpdate_product_category;
   collections: (SimpleProductUpdate_productUpdate_product_collections | null)[] | null;
-  price: SimpleProductUpdate_productUpdate_product_price | null;
+  basePrice: SimpleProductUpdate_productUpdate_product_basePrice | null;
   margin: SimpleProductUpdate_productUpdate_product_margin | null;
   purchaseCost: SimpleProductUpdate_productUpdate_product_purchaseCost | null;
+  isAvailable: boolean | null;
   isPublished: boolean;
   chargeTaxes: boolean;
   publicationDate: any | null;
   attributes: SimpleProductUpdate_productUpdate_product_attributes[];
-  availability: SimpleProductUpdate_productUpdate_product_availability | null;
+  pricing: SimpleProductUpdate_productUpdate_product_pricing | null;
   images: (SimpleProductUpdate_productUpdate_product_images | null)[] | null;
   variants: (SimpleProductUpdate_productUpdate_product_variants | null)[] | null;
   productType: SimpleProductUpdate_productUpdate_product_productType;
@@ -302,7 +302,7 @@ export interface SimpleProductUpdateVariables {
   descriptionJson?: any | null;
   isPublished: boolean;
   name?: string | null;
-  price?: any | null;
+  basePrice?: any | null;
   productVariantId: string;
   productVariantInput: ProductVariantInput;
 }
diff --git a/saleor/static/dashboard-next/products/views/ProductCreate.tsx b/saleor/static/dashboard-next/products/views/ProductCreate.tsx
index 6e0a2f293a0..be64632c980 100644
--- a/saleor/static/dashboard-next/products/views/ProductCreate.tsx
+++ b/saleor/static/dashboard-next/products/views/ProductCreate.tsx
@@ -58,6 +58,7 @@ export const ProductUpdate: React.StatelessComponent<
                         productCreate({
                           variables: {
                             attributes: formData.attributes,
+                            basePrice: decimal(formData.basePrice),
                             category: formData.category.value,
                             chargeTaxes: formData.chargeTaxes,
                             collections: formData.collections.map(
@@ -68,7 +69,6 @@ export const ProductUpdate: React.StatelessComponent<
                             ),
                             isPublished: formData.available,
                             name: formData.name,
-                            price: decimal(formData.price),
                             productType: formData.productType.value.id,
                             publicationDate:
                               formData.publicationDate !== ""
diff --git a/saleor/static/dashboard-next/products/views/ProductUpdate.tsx b/saleor/static/dashboard-next/products/views/ProductUpdate.tsx
index fbbb9c7e49f..78e12bac779 100644
--- a/saleor/static/dashboard-next/products/views/ProductUpdate.tsx
+++ b/saleor/static/dashboard-next/products/views/ProductUpdate.tsx
@@ -124,6 +124,7 @@ export const ProductUpdate: React.StatelessComponent<ProductUpdateProps> = ({
                           if (product.productType.hasVariants) {
                             updateProduct.mutate({
                               attributes: data.attributes,
+                              basePrice: decimal(data.basePrice),
                               category: data.category.value,
                               chargeTaxes: data.chargeTaxes,
                               collections: data.collections.map(
@@ -133,7 +134,6 @@ export const ProductUpdate: React.StatelessComponent<ProductUpdateProps> = ({
                               id: product.id,
                               isPublished: data.available,
                               name: data.name,
-                              price: decimal(data.price),
                               publicationDate:
                                 data.publicationDate !== ""
                                   ? data.publicationDate
@@ -142,6 +142,7 @@ export const ProductUpdate: React.StatelessComponent<ProductUpdateProps> = ({
                           } else {
                             updateSimpleProduct.mutate({
                               attributes: data.attributes,
+                              basePrice: decimal(data.basePrice),
                               category: data.category.value,
                               chargeTaxes: data.chargeTaxes,
                               collections: data.collections.map(
@@ -151,7 +152,6 @@ export const ProductUpdate: React.StatelessComponent<ProductUpdateProps> = ({
                               id: product.id,
                               isPublished: data.available,
                               name: data.name,
-                              price: decimal(data.price),
                               productVariantId: product.variants[0].id,
                               productVariantInput: {
                                 quantity: data.stockQuantity,
diff --git a/saleor/static/dashboard-next/storybook/stories/categories/CategoryProducts.tsx b/saleor/static/dashboard-next/storybook/stories/categories/CategoryProducts.tsx
index fbd54afceaa..500e7ebb89d 100644
--- a/saleor/static/dashboard-next/storybook/stories/categories/CategoryProducts.tsx
+++ b/saleor/static/dashboard-next/storybook/stories/categories/CategoryProducts.tsx
@@ -13,7 +13,9 @@ const products = [
       id: "1",
       name: "T-Shirt"
     },
-    thumbnailUrl: placeholder
+    thumbnail: {
+      url: placeholder
+    }
   },
   {
     id: "UHJvZHVjdDoy",
@@ -22,7 +24,9 @@ const products = [
       id: "1",
       name: "T-Shirt"
     },
-    thumbnailUrl: placeholder
+    thumbnail: {
+      url: placeholder
+    }
   },
   {
     id: "UHJvZHVjdDoz",
@@ -31,7 +35,9 @@ const products = [
       id: "1",
       name: "T-Shirt"
     },
-    thumbnailUrl: placeholder
+    thumbnail: {
+      url: placeholder
+    }
   },
   {
     id: "UHJvZHVjdDoa",
@@ -40,7 +46,9 @@ const products = [
       id: "1",
       name: "T-Shirt"
     },
-    thumbnailUrl: placeholder
+    thumbnail: {
+      url: placeholder
+    }
   }
 ];
 
diff --git a/saleor/static/dashboard-next/storybook/stories/pages/PageDetailsPage.tsx b/saleor/static/dashboard-next/storybook/stories/pages/PageDetailsPage.tsx
index 33df9c96c13..eba481ff700 100644
--- a/saleor/static/dashboard-next/storybook/stories/pages/PageDetailsPage.tsx
+++ b/saleor/static/dashboard-next/storybook/stories/pages/PageDetailsPage.tsx
@@ -32,8 +32,8 @@ storiesOf("Views / Pages / Page details", module)
         "title",
         "slug",
         "content",
-        "availableOn",
-        "isVisible",
+        "publicationDate",
+        "isPublished",
         "seoDescription",
         "seoTitle"
       ] as Array<keyof FormData>).map(formError)}


Code review comments:
diff_hunk: @@ -95,7 +97,9 @@ export const ProductList = withStyles(styles, { name: "ProductList" })(
             products,
             product => (
               <TableRow key={product ? product.id : "skeleton"}>
-                <TableCellAvatar thumbnail={product && product.thumbnailUrl} />
+                <TableCellAvatar
+                  thumbnail={product && maybe(() => product.thumbnail.url)}
path: saleor/static/dashboard-next/categories/components/CategoryProducts/CategoryProducts.tsx
text: @user1:
No need to put `product &&` here, maybe handles full path