Skip to content

Commit

Permalink
Merge pull request #4557 from mirumee/add-slug-to-product
Browse files Browse the repository at this point in the history
Add slug field to ProductType
  • Loading branch information
maarcingebala committed Jul 30, 2019
2 parents cbfafe9 + 2777a6b commit 216fbbd
Show file tree
Hide file tree
Showing 3 changed files with 9 additions and 0 deletions.
6 changes: 6 additions & 0 deletions saleor/graphql/product/types/products.py
Original file line number Diff line number Diff line change
Expand Up @@ -446,6 +446,8 @@ class Product(CountableDjangoObjectType, MetadataObjectType):
resolver=resolve_translation,
)

slug = graphene.String(required=True, description="The slug of a product.")

class Meta:
description = """Represents an individual item for sale in the
storefront."""
Expand Down Expand Up @@ -605,6 +607,10 @@ def resolve_private_meta(root, _info):
def resolve_meta(root, _info):
return resolve_meta(root, _info)

@staticmethod
def resolve_slug(root: models.Product, *_args):
return root.get_slug()


class ProductType(CountableDjangoObjectType, MetadataObjectType):
products = gql_optimizer.field(
Expand Down
1 change: 1 addition & 0 deletions saleor/graphql/schema.graphql
Original file line number Diff line number Diff line change
Expand Up @@ -2327,6 +2327,7 @@ type Product implements Node {
collections: [Collection]
availableOn: Date @deprecated(reason: "availableOn is deprecated, use publicationDate instead")
translation(languageCode: LanguageCodeEnum!): ProductTranslation
slug: String!
}

type ProductBulkDelete {
Expand Down
2 changes: 2 additions & 0 deletions tests/api/test_product.py
Original file line number Diff line number Diff line change
Expand Up @@ -135,6 +135,7 @@ def test_product_query(staff_api_client, product, permission_manage_products):
id
name
url
slug
thumbnailUrl
thumbnail{
url
Expand Down Expand Up @@ -195,6 +196,7 @@ def test_product_query(staff_api_client, product, permission_manage_products):
product_data = product_edges_data[0]["node"]
assert product_data["name"] == product.name
assert product_data["url"] == product.get_absolute_url()
assert product_data["slug"] == product.get_slug()
gross = product_data["pricing"]["priceRange"]["start"]["gross"]
assert float(gross["amount"]) == float(product.price.amount)
from saleor.product.utils.costs import get_product_costs_data
Expand Down

0 comments on commit 216fbbd

Please sign in to comment.