Fix(UI): Product Permutations page saving.
This commit is contained in:
539
app.log.3
539
app.log.3
@@ -1,153 +1,125 @@
|
||||
user:
|
||||
id_user: 1
|
||||
id_user_auth0: auth0|6582b95c895d09a70ba10fef
|
||||
firstname: Teddy
|
||||
surname: Middleton-Smith
|
||||
email: edward.middletonsmith@gmail.com
|
||||
is_email_verified: False
|
||||
is_super_user: True
|
||||
id_currency_default: None
|
||||
id_region_default: None
|
||||
is_included_VAT_default: True
|
||||
can_admin_store: True
|
||||
can_admin_user: True
|
||||
|
||||
User.from_json
|
||||
json: {'can_admin_store': True, 'can_admin_user': True, 'email': 'edward.middletonsmith@gmail.com', 'firstname': 'Teddy', 'id_currency_default': None, 'id_region_default': None, 'id_user': 1, 'id_user_auth0': 'auth0|6582b95c895d09a70ba10fef', 'is_email_verified': False, 'is_included_VAT_default': True, 'is_super_user': True, 'surname': 'Middleton-Smith'}
|
||||
user:
|
||||
id_user: 1
|
||||
id_user_auth0: auth0|6582b95c895d09a70ba10fef
|
||||
firstname: Teddy
|
||||
surname: Middleton-Smith
|
||||
email: edward.middletonsmith@gmail.com
|
||||
is_email_verified: False
|
||||
is_super_user: True
|
||||
id_currency_default: None
|
||||
id_region_default: None
|
||||
is_included_VAT_default: True
|
||||
can_admin_store: True
|
||||
can_admin_user: True
|
||||
|
||||
argument_dict: {'a_id_user': 1, 'a_id_user_auth0': 'auth0|6582b95c895d09a70ba10fef', 'get_all_user': False, 'get_inactive_user': False, 'ids_user': 1, 'ids_user_auth0': '', 'a_debug': 0}
|
||||
executing p_get_many_user
|
||||
DataStore_Base.db_procedure_execute
|
||||
proc_string: CALL p_get_many_user(:a_id_user, :a_id_user_auth0, :get_all_user, :get_inactive_user, :ids_user, :ids_user_auth0, :a_debug)
|
||||
args: {'a_id_user': 1, 'a_id_user_auth0': 'auth0|6582b95c895d09a70ba10fef', 'get_all_user': False, 'get_inactive_user': False, 'ids_user': 1, 'ids_user_auth0': '', 'a_debug': 0}
|
||||
result: <sqlalchemy.engine.cursor.CursorResult object at 0x0000026B6897A660>
|
||||
data received
|
||||
raw users: ((1, 'auth0|6582b95c895d09a70ba10fef', 'Teddy', 'Middleton-Smith', 'edward.middletonsmith@gmail.com', b'\x00', None, None, b'\x01', b'\x01', b'\x01', b'\x01', b'\x00'),)
|
||||
raw errors: ()
|
||||
new result set: ()
|
||||
model_view_base init end - model.user:
|
||||
id_user: 1
|
||||
id_user_auth0: auth0|6582b95c895d09a70ba10fef
|
||||
firstname: Teddy
|
||||
surname: Middleton-Smith
|
||||
email: edward.middletonsmith@gmail.com
|
||||
is_email_verified: False
|
||||
is_super_user: True
|
||||
id_currency_default: None
|
||||
id_region_default: None
|
||||
is_included_VAT_default: True
|
||||
can_admin_store: True
|
||||
can_admin_user: True
|
||||
|
||||
form question: <class 'wtforms.fields.simple.BooleanField'>
|
||||
bool interpretted: False
|
||||
form question: <class 'wtforms.fields.simple.BooleanField'>
|
||||
get_inactive:False
|
||||
type form: <class 'forms.store.product_permutation.Filters_Product_Permutation'>
|
||||
DataStore_Base.get_user_session
|
||||
User.from_json
|
||||
json: {'can_admin_store': True, 'can_admin_user': True, 'email': 'edward.middletonsmith@gmail.com', 'firstname': 'Teddy', 'id_currency_default': None, 'id_region_default': None, 'id_user': 1, 'id_user_auth0': 'auth0|6582b95c895d09a70ba10fef', 'is_email_verified': False, 'is_included_VAT_default': True, 'is_super_user': True, 'surname': 'Middleton-Smith'}
|
||||
user:
|
||||
id_user: 1
|
||||
id_user_auth0: auth0|6582b95c895d09a70ba10fef
|
||||
firstname: Teddy
|
||||
surname: Middleton-Smith
|
||||
email: edward.middletonsmith@gmail.com
|
||||
is_email_verified: False
|
||||
is_super_user: True
|
||||
id_currency_default: None
|
||||
id_region_default: None
|
||||
is_included_VAT_default: True
|
||||
can_admin_store: True
|
||||
can_admin_user: True
|
||||
|
||||
User.from_json
|
||||
json: {'can_admin_store': True, 'can_admin_user': True, 'email': 'edward.middletonsmith@gmail.com', 'firstname': 'Teddy', 'id_currency_default': None, 'id_region_default': None, 'id_user': 1, 'id_user_auth0': 'auth0|6582b95c895d09a70ba10fef', 'is_email_verified': False, 'is_included_VAT_default': True, 'is_super_user': True, 'surname': 'Middleton-Smith'}
|
||||
user:
|
||||
id_user: 1
|
||||
id_user_auth0: auth0|6582b95c895d09a70ba10fef
|
||||
firstname: Teddy
|
||||
surname: Middleton-Smith
|
||||
email: edward.middletonsmith@gmail.com
|
||||
is_email_verified: False
|
||||
is_super_user: True
|
||||
id_currency_default: None
|
||||
id_region_default: None
|
||||
is_included_VAT_default: True
|
||||
can_admin_store: True
|
||||
can_admin_user: True
|
||||
|
||||
argument_dict: {'a_id_user': 1, 'a_id_user_auth0': 'auth0|6582b95c895d09a70ba10fef', 'get_all_user': False, 'get_inactive_user': False, 'ids_user': 1, 'ids_user_auth0': '', 'a_debug': 0}
|
||||
executing p_get_many_user
|
||||
DataStore_Base.db_procedure_execute
|
||||
proc_string: CALL p_get_many_user(:a_id_user, :a_id_user_auth0, :get_all_user, :get_inactive_user, :ids_user, :ids_user_auth0, :a_debug)
|
||||
args: {'a_id_user': 1, 'a_id_user_auth0': 'auth0|6582b95c895d09a70ba10fef', 'get_all_user': False, 'get_inactive_user': False, 'ids_user': 1, 'ids_user_auth0': '', 'a_debug': 0}
|
||||
result: <sqlalchemy.engine.cursor.CursorResult object at 0x0000026B6897B0E0>
|
||||
data received
|
||||
raw users: ((1, 'auth0|6582b95c895d09a70ba10fef', 'Teddy', 'Middleton-Smith', 'edward.middletonsmith@gmail.com', b'\x00', None, None, b'\x01', b'\x01', b'\x01', b'\x01', b'\x00'),)
|
||||
raw errors: ()
|
||||
new result set: ()
|
||||
argument_dict: {'a_id_user': 1, 'a_get_all_product_category': True, 'a_get_inactive_product_category': False, 'a_ids_product_category': '', 'a_get_all_product': True, 'a_get_inactive_product': False, 'a_ids_product': '', 'a_get_all_permutation': True, 'a_get_inactive_permutation': False, 'a_ids_permutation': '', 'a_get_all_image': False, 'a_get_inactive_image': False, 'a_ids_image': '', 'a_get_products_quantity_stock_below_min': False, 'a_debug': 0}
|
||||
executing p_shop_get_many_product
|
||||
DataStore_Base.db_procedure_execute
|
||||
proc_string: CALL p_shop_get_many_product(:a_id_user, :a_get_all_product_category, :a_get_inactive_product_category, :a_ids_product_category, :a_get_all_product, :a_get_inactive_product, :a_ids_product, :a_get_all_permutation, :a_get_inactive_permutation, :a_ids_permutation, :a_get_all_image, :a_get_inactive_image, :a_ids_image, :a_get_products_quantity_stock_below_min, :a_debug)
|
||||
args: {'a_id_user': 1, 'a_get_all_product_category': True, 'a_get_inactive_product_category': False, 'a_ids_product_category': '', 'a_get_all_product': True, 'a_get_inactive_product': False, 'a_ids_product': '', 'a_get_all_permutation': True, 'a_get_inactive_permutation': False, 'a_ids_permutation': '', 'a_get_all_image': False, 'a_get_inactive_image': False, 'a_ids_image': '', 'a_get_products_quantity_stock_below_min': False, 'a_debug': 0}
|
||||
result: <sqlalchemy.engine.cursor.CursorResult object at 0x0000026B6897B0E0>
|
||||
data received
|
||||
initial category_list: categories: []
|
||||
raw categories: ((4, 'CHOCOLATE', 'Chocolates and sweets', 'Confectionery', 1, 'View', 1, b'\x01', None, None, None),)
|
||||
new_category:
|
||||
id: 4
|
||||
code: CHOCOLATE
|
||||
name: Chocolates and sweets
|
||||
description: Confectionery
|
||||
get many category_list: categories: [
|
||||
id: 1
|
||||
code: ASS
|
||||
name: Assistive Devices
|
||||
description: Braille product line and other assistive devices
|
||||
access_level: View
|
||||
display_order: 1
|
||||
active: True
|
||||
products: []
|
||||
|
||||
category-loaded category_list: categories: [
|
||||
id: 4
|
||||
code: CHOCOLATE
|
||||
name: Chocolates and sweets
|
||||
description: Confectionery
|
||||
access_level: View
|
||||
display_order: 1
|
||||
active: True
|
||||
products: []
|
||||
]
|
||||
raw products: ((6, 4, 'Digestives', b'\x01', 1, 'View', b'\x01', 1, None, None, None),)
|
||||
row: (6, 4, 'Digestives', b'\x01', 1, 'View', b'\x01', 1, None, None, None)
|
||||
new_product: Product
|
||||
id_product: 6
|
||||
id_category: 4
|
||||
name: Digestives
|
||||
active: False
|
||||
products: [Product
|
||||
id_product: 1
|
||||
id_category: 1
|
||||
name: Braille Keyboard Translator
|
||||
display_order: 1
|
||||
can_view: False
|
||||
can_edit: False
|
||||
can_admin: False
|
||||
has_variations: True
|
||||
permutations: []
|
||||
variation trees: []
|
||||
active: True
|
||||
permutations: [Product_Permutation
|
||||
id_permutation: 1
|
||||
id_product: 1
|
||||
id_category: 1
|
||||
description: Good Red
|
||||
cost_local_VAT_excl: 5.0
|
||||
cost_local_VAT_incl: 6.0
|
||||
currency_cost:
|
||||
id: 1
|
||||
name: None
|
||||
code: GBP
|
||||
symbol: £
|
||||
factor from GBP: None
|
||||
display_order: None
|
||||
active: None
|
||||
|
||||
raw errors: ()
|
||||
product with id:6 has variations
|
||||
new result set: ()
|
||||
get many category_list: categories: [
|
||||
latency_manufacture: 14
|
||||
id_unit_measurement_quantity: 1
|
||||
symbol_unit_measurement_quantity: m
|
||||
symbol_is_suffix_not_prefix_unit_measurement_quantity: True
|
||||
name_singular_unit_measurement_quantity: metre
|
||||
name_plural_unit_measurement_quantity: metres
|
||||
count_unit_measurement_per_quantity_step: 1.0
|
||||
quantity_min: 3.0
|
||||
quantity_max: 99.0
|
||||
quantity_stock: 1.0
|
||||
is_subscription: False
|
||||
id_unit_measurement_interval_recurrence: None
|
||||
symbol_unit_measurement_interval_recurrence: None
|
||||
symbol_is_suffix_not_prefix_unit_measurement_interval_recurrence: False
|
||||
name_singular_unit_measurement_interval_recurrence: None
|
||||
name_plural_unit_measurement_interval_recurrence: None
|
||||
count_interval_recurrence: None
|
||||
id_stripe_product: None
|
||||
does_expire_faster_once_unsealed: False
|
||||
id_unit_measurement_interval_expiration_unsealed: None
|
||||
symbol_unit_measurement_interval_expiration_unsealed: None
|
||||
symbol_is_suffix_not_prefix_unit_measurement_interval_expiration_unsealed: False
|
||||
name_singular_unit_measurement_interval_expiration_unsealed: None
|
||||
name_plural_unit_measurement_interval_expiration_unsealed: None
|
||||
count_interval_expiration_unsealed: None
|
||||
has_variations: True
|
||||
csv_id_pairs_variation: None
|
||||
can_view: False
|
||||
can_edit: False
|
||||
can_admin: False
|
||||
variation tree: <business_objects.store.product_variation_tree.Product_Variation_Tree object at 0x000001E40EB73F50>
|
||||
images: []
|
||||
delivery_options: []
|
||||
prices: []
|
||||
, Product_Permutation
|
||||
id_permutation: 2
|
||||
id_product: 1
|
||||
id_category: 1
|
||||
description: Good Blue
|
||||
cost_local_VAT_excl: 6.0
|
||||
cost_local_VAT_incl: 7.2
|
||||
currency_cost:
|
||||
id: 1
|
||||
name: None
|
||||
code: GBP
|
||||
symbol: £
|
||||
factor from GBP: None
|
||||
display_order: None
|
||||
active: None
|
||||
|
||||
latency_manufacture: 14
|
||||
id_unit_measurement_quantity: 1
|
||||
symbol_unit_measurement_quantity: m
|
||||
symbol_is_suffix_not_prefix_unit_measurement_quantity: True
|
||||
name_singular_unit_measurement_quantity: metre
|
||||
name_plural_unit_measurement_quantity: metres
|
||||
count_unit_measurement_per_quantity_step: 1.0
|
||||
quantity_min: 3.0
|
||||
quantity_max: 99.0
|
||||
quantity_stock: 1.0
|
||||
is_subscription: False
|
||||
id_unit_measurement_interval_recurrence: None
|
||||
symbol_unit_measurement_interval_recurrence: None
|
||||
symbol_is_suffix_not_prefix_unit_measurement_interval_recurrence: False
|
||||
name_singular_unit_measurement_interval_recurrence: None
|
||||
name_plural_unit_measurement_interval_recurrence: None
|
||||
count_interval_recurrence: None
|
||||
id_stripe_product: None
|
||||
does_expire_faster_once_unsealed: False
|
||||
id_unit_measurement_interval_expiration_unsealed: None
|
||||
symbol_unit_measurement_interval_expiration_unsealed: None
|
||||
symbol_is_suffix_not_prefix_unit_measurement_interval_expiration_unsealed: False
|
||||
name_singular_unit_measurement_interval_expiration_unsealed: None
|
||||
name_plural_unit_measurement_interval_expiration_unsealed: None
|
||||
count_interval_expiration_unsealed: None
|
||||
has_variations: True
|
||||
csv_id_pairs_variation: None
|
||||
can_view: False
|
||||
can_edit: False
|
||||
can_admin: False
|
||||
variation tree: <business_objects.store.product_variation_tree.Product_Variation_Tree object at 0x000001E40EB73E30>
|
||||
images: []
|
||||
delivery_options: []
|
||||
prices: []
|
||||
]
|
||||
variation trees: [<business_objects.store.product_variation_tree.Product_Variation_Tree object at 0x000001E40EB73F50>, <business_objects.store.product_variation_tree.Product_Variation_Tree object at 0x000001E40EB73E30>]
|
||||
active: False
|
||||
]
|
||||
,
|
||||
id: 4
|
||||
code: CHOCOLATE
|
||||
name: Chocolates and sweets
|
||||
@@ -168,21 +140,270 @@ get many category_list: categories: [
|
||||
variation trees: []
|
||||
active: True
|
||||
]
|
||||
]
|
||||
DataStore_Base.get_user_session
|
||||
User.from_json
|
||||
json: {'can_admin_store': True, 'can_admin_user': True, 'email': 'edward.middletonsmith@gmail.com', 'firstname': 'Teddy', 'id_currency_default': None, 'id_region_default': None, 'id_user': 1, 'id_user_auth0': 'auth0|6582b95c895d09a70ba10fef', 'is_email_verified': False, 'is_included_VAT_default': True, 'is_super_user': True, 'surname': 'Middleton-Smith'}
|
||||
user:
|
||||
id_user: 1
|
||||
id_user_auth0: auth0|6582b95c895d09a70ba10fef
|
||||
firstname: Teddy
|
||||
surname: Middleton-Smith
|
||||
email: edward.middletonsmith@gmail.com
|
||||
is_email_verified: False
|
||||
is_super_user: True
|
||||
id_currency_default: None
|
||||
id_region_default: None
|
||||
is_included_VAT_default: True
|
||||
can_admin_store: True
|
||||
can_admin_user: True
|
||||
,
|
||||
id: 3
|
||||
code: TECH
|
||||
name: Technology
|
||||
description: Technological devices
|
||||
access_level: View
|
||||
display_order: 2
|
||||
active: False
|
||||
products: [Product
|
||||
id_product: 3
|
||||
id_category: 3
|
||||
name: Phone
|
||||
display_order: 2
|
||||
can_view: False
|
||||
can_edit: False
|
||||
can_admin: False
|
||||
has_variations: False
|
||||
permutations: [Product_Permutation
|
||||
id_permutation: 4
|
||||
id_product: 3
|
||||
id_category: 3
|
||||
description: Phone describes good
|
||||
cost_local_VAT_excl: 10.0
|
||||
cost_local_VAT_incl: 12.0
|
||||
currency_cost:
|
||||
id: 1
|
||||
name: None
|
||||
code: GBP
|
||||
symbol: £
|
||||
factor from GBP: None
|
||||
display_order: None
|
||||
active: None
|
||||
|
||||
latency_manufacture: 14
|
||||
id_unit_measurement_quantity: 1
|
||||
symbol_unit_measurement_quantity: m
|
||||
symbol_is_suffix_not_prefix_unit_measurement_quantity: True
|
||||
name_singular_unit_measurement_quantity: metre
|
||||
name_plural_unit_measurement_quantity: metres
|
||||
count_unit_measurement_per_quantity_step: 1.0
|
||||
quantity_min: 2.0
|
||||
quantity_max: 99.0
|
||||
quantity_stock: 1.0
|
||||
is_subscription: False
|
||||
id_unit_measurement_interval_recurrence: None
|
||||
symbol_unit_measurement_interval_recurrence: None
|
||||
symbol_is_suffix_not_prefix_unit_measurement_interval_recurrence: False
|
||||
name_singular_unit_measurement_interval_recurrence: None
|
||||
name_plural_unit_measurement_interval_recurrence: None
|
||||
count_interval_recurrence: None
|
||||
id_stripe_product: None
|
||||
does_expire_faster_once_unsealed: False
|
||||
id_unit_measurement_interval_expiration_unsealed: None
|
||||
symbol_unit_measurement_interval_expiration_unsealed: None
|
||||
symbol_is_suffix_not_prefix_unit_measurement_interval_expiration_unsealed: False
|
||||
name_singular_unit_measurement_interval_expiration_unsealed: None
|
||||
name_plural_unit_measurement_interval_expiration_unsealed: None
|
||||
count_interval_expiration_unsealed: None
|
||||
has_variations: False
|
||||
csv_id_pairs_variation: None
|
||||
can_view: False
|
||||
can_edit: False
|
||||
can_admin: False
|
||||
variation tree: None
|
||||
images: []
|
||||
delivery_options: []
|
||||
prices: []
|
||||
]
|
||||
variation trees: []
|
||||
active: False
|
||||
, Product
|
||||
id_product: 4
|
||||
id_category: 3
|
||||
name: Laptop
|
||||
display_order: 2
|
||||
can_view: False
|
||||
can_edit: False
|
||||
can_admin: False
|
||||
has_variations: False
|
||||
permutations: [Product_Permutation
|
||||
id_permutation: 5
|
||||
id_product: 4
|
||||
id_category: 3
|
||||
description: Laptop describes good
|
||||
cost_local_VAT_excl: 10.0
|
||||
cost_local_VAT_incl: 12.0
|
||||
currency_cost:
|
||||
id: 1
|
||||
name: None
|
||||
code: GBP
|
||||
symbol: £
|
||||
factor from GBP: None
|
||||
display_order: None
|
||||
active: None
|
||||
|
||||
latency_manufacture: 14
|
||||
id_unit_measurement_quantity: 1
|
||||
symbol_unit_measurement_quantity: m
|
||||
symbol_is_suffix_not_prefix_unit_measurement_quantity: True
|
||||
name_singular_unit_measurement_quantity: metre
|
||||
name_plural_unit_measurement_quantity: metres
|
||||
count_unit_measurement_per_quantity_step: 1.0
|
||||
quantity_min: 2.0
|
||||
quantity_max: 99.0
|
||||
quantity_stock: 1.0
|
||||
is_subscription: False
|
||||
id_unit_measurement_interval_recurrence: None
|
||||
symbol_unit_measurement_interval_recurrence: None
|
||||
symbol_is_suffix_not_prefix_unit_measurement_interval_recurrence: False
|
||||
name_singular_unit_measurement_interval_recurrence: None
|
||||
name_plural_unit_measurement_interval_recurrence: None
|
||||
count_interval_recurrence: None
|
||||
id_stripe_product: None
|
||||
does_expire_faster_once_unsealed: False
|
||||
id_unit_measurement_interval_expiration_unsealed: None
|
||||
symbol_unit_measurement_interval_expiration_unsealed: None
|
||||
symbol_is_suffix_not_prefix_unit_measurement_interval_expiration_unsealed: False
|
||||
name_singular_unit_measurement_interval_expiration_unsealed: None
|
||||
name_plural_unit_measurement_interval_expiration_unsealed: None
|
||||
count_interval_expiration_unsealed: None
|
||||
has_variations: False
|
||||
csv_id_pairs_variation: None
|
||||
can_view: False
|
||||
can_edit: False
|
||||
can_admin: False
|
||||
variation tree: None
|
||||
images: []
|
||||
delivery_options: []
|
||||
prices: []
|
||||
]
|
||||
variation trees: []
|
||||
active: False
|
||||
, Product
|
||||
id_product: 5
|
||||
id_category: 3
|
||||
name: Smart Watch
|
||||
display_order: 2
|
||||
can_view: False
|
||||
can_edit: False
|
||||
can_admin: False
|
||||
has_variations: False
|
||||
permutations: [Product_Permutation
|
||||
id_permutation: 6
|
||||
id_product: 5
|
||||
id_category: 3
|
||||
description: Smart watch describes good
|
||||
cost_local_VAT_excl: 10.0
|
||||
cost_local_VAT_incl: 12.0
|
||||
currency_cost:
|
||||
id: 1
|
||||
name: None
|
||||
code: GBP
|
||||
symbol: £
|
||||
factor from GBP: None
|
||||
display_order: None
|
||||
active: None
|
||||
|
||||
latency_manufacture: 14
|
||||
id_unit_measurement_quantity: 1
|
||||
symbol_unit_measurement_quantity: m
|
||||
symbol_is_suffix_not_prefix_unit_measurement_quantity: True
|
||||
name_singular_unit_measurement_quantity: metre
|
||||
name_plural_unit_measurement_quantity: metres
|
||||
count_unit_measurement_per_quantity_step: 1.0
|
||||
quantity_min: 2.0
|
||||
quantity_max: 99.0
|
||||
quantity_stock: 1.0
|
||||
is_subscription: False
|
||||
id_unit_measurement_interval_recurrence: None
|
||||
symbol_unit_measurement_interval_recurrence: None
|
||||
symbol_is_suffix_not_prefix_unit_measurement_interval_recurrence: False
|
||||
name_singular_unit_measurement_interval_recurrence: None
|
||||
name_plural_unit_measurement_interval_recurrence: None
|
||||
count_interval_recurrence: None
|
||||
id_stripe_product: None
|
||||
does_expire_faster_once_unsealed: False
|
||||
id_unit_measurement_interval_expiration_unsealed: None
|
||||
symbol_unit_measurement_interval_expiration_unsealed: None
|
||||
symbol_is_suffix_not_prefix_unit_measurement_interval_expiration_unsealed: False
|
||||
name_singular_unit_measurement_interval_expiration_unsealed: None
|
||||
name_plural_unit_measurement_interval_expiration_unsealed: None
|
||||
count_interval_expiration_unsealed: None
|
||||
has_variations: False
|
||||
csv_id_pairs_variation: None
|
||||
can_view: False
|
||||
can_edit: False
|
||||
can_admin: False
|
||||
variation tree: None
|
||||
images: []
|
||||
delivery_options: []
|
||||
prices: []
|
||||
]
|
||||
variation trees: []
|
||||
active: False
|
||||
]
|
||||
,
|
||||
id: 2
|
||||
code: MISC
|
||||
name: Miscellaneous
|
||||
description: Not category allocated products
|
||||
access_level: View
|
||||
display_order: 99
|
||||
active: False
|
||||
products: [Product
|
||||
id_product: 2
|
||||
id_category: 2
|
||||
name: Test product 1
|
||||
display_order: 99
|
||||
can_view: False
|
||||
can_edit: False
|
||||
can_admin: False
|
||||
has_variations: False
|
||||
permutations: [Product_Permutation
|
||||
id_permutation: 3
|
||||
id_product: 2
|
||||
id_category: 2
|
||||
description: Test product describes good
|
||||
cost_local_VAT_excl: 10.0
|
||||
cost_local_VAT_incl: 12.0
|
||||
currency_cost:
|
||||
id: 1
|
||||
name: None
|
||||
code: GBP
|
||||
symbol: £
|
||||
factor from GBP: None
|
||||
display_order: None
|
||||
active: None
|
||||
|
||||
latency_manufacture: 14
|
||||
id_unit_measurement_quantity: 1
|
||||
symbol_unit_measurement_quantity: m
|
||||
symbol_is_suffix_not_prefix_unit_measurement_quantity: True
|
||||
name_singular_unit_measurement_quantity: metre
|
||||
name_plural_unit_measurement_quantity: metres
|
||||
count_unit_measurement_per_quantity_step: 1.0
|
||||
quantity_min: 2.0
|
||||
quantity_max: 99.0
|
||||
quantity_stock: 1.0
|
||||
is_subscription: False
|
||||
id_unit_measurement_interval_recurrence: None
|
||||
symbol_unit_measurement_interval_recurrence: None
|
||||
symbol_is_suffix_not_prefix_unit_measurement_interval_recurrence: False
|
||||
name_singular_unit_measurement_interval_recurrence: None
|
||||
name_plural_unit_measurement_interval_recurrence: None
|
||||
count_interval_recurrence: None
|
||||
id_stripe_product: None
|
||||
does_expire_faster_once_unsealed: False
|
||||
id_unit_measurement_interval_expiration_unsealed: None
|
||||
symbol_unit_measurement_interval_expiration_unsealed: None
|
||||
symbol_is_suffix_not_prefix_unit_measurement_interval_expiration_unsealed: False
|
||||
name_singular_unit_measurement_interval_expiration_unsealed: None
|
||||
name_plural_unit_measurement_interval_expiration_unsealed: None
|
||||
count_interval_expiration_unsealed: None
|
||||
has_variations: False
|
||||
csv_id_pairs_variation: None
|
||||
can_view: False
|
||||
can_edit: False
|
||||
can_admin: False
|
||||
variation tree: None
|
||||
images: []
|
||||
delivery_options: []
|
||||
prices: []
|
||||
]
|
||||
variation trees: []
|
||||
active: False
|
||||
]
|
||||
]
|
||||
|
||||
Reference in New Issue
Block a user