shopline-sdk-python 0.1.0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- shopline_sdk/__init__.py +17 -0
- shopline_sdk/apis/__init__.py +0 -0
- shopline_sdk/apis/addon_products/__init__.py +0 -0
- shopline_sdk/apis/addon_products/bulk_update_addon_product_quantity_by_sku.py +72 -0
- shopline_sdk/apis/addon_products/create_addon_product.py +69 -0
- shopline_sdk/apis/addon_products/get_addon_product.py +42 -0
- shopline_sdk/apis/addon_products/get_addon_product_stocks.py +66 -0
- shopline_sdk/apis/addon_products/get_addon_products.py +84 -0
- shopline_sdk/apis/addon_products/search_addon_products.py +113 -0
- shopline_sdk/apis/addon_products/update_addon_product.py +54 -0
- shopline_sdk/apis/addon_products/update_addon_product_quantity.py +96 -0
- shopline_sdk/apis/addon_products/update_addon_product_stock.py +86 -0
- shopline_sdk/apis/affiliate_campaigns/__init__.py +0 -0
- shopline_sdk/apis/affiliate_campaigns/create_affiliate_campaign.py +109 -0
- shopline_sdk/apis/affiliate_campaigns/delete_affiliate_campaign.py +44 -0
- shopline_sdk/apis/affiliate_campaigns/export_affiliate_campaign_report_to_partner.py +60 -0
- shopline_sdk/apis/affiliate_campaigns/get_affiliate_campaign.py +59 -0
- shopline_sdk/apis/affiliate_campaigns/get_affiliate_campaign_orders.py +75 -0
- shopline_sdk/apis/affiliate_campaigns/get_affiliate_campaign_summary.py +49 -0
- shopline_sdk/apis/affiliate_campaigns/get_affiliate_campaigns.py +84 -0
- shopline_sdk/apis/affiliate_campaigns/get_products_sales_ranking_of_campaign.py +73 -0
- shopline_sdk/apis/affiliate_campaigns/update_affiliate_campaign.py +96 -0
- shopline_sdk/apis/agents/__init__.py +0 -0
- shopline_sdk/apis/agents/get_agent.py +59 -0
- shopline_sdk/apis/agents/get_agents.py +77 -0
- shopline_sdk/apis/bulk_operations/__init__.py +0 -0
- shopline_sdk/apis/bulk_operations/get_a_bulk_operation.py +43 -0
- shopline_sdk/apis/bulk_operations/get_bulk_operations.py +57 -0
- shopline_sdk/apis/cart_item_app_metafields/__init__.py +0 -0
- shopline_sdk/apis/cart_item_app_metafields/bulk_create_app_metafield.py +52 -0
- shopline_sdk/apis/cart_item_app_metafields/bulk_delete_app_metafield.py +61 -0
- shopline_sdk/apis/cart_item_app_metafields/bulk_update_app_metafield.py +62 -0
- shopline_sdk/apis/cart_item_app_metafields/get_app_metafields_attached_to_cart_items_of_specific_cart.py +61 -0
- shopline_sdk/apis/cart_item_metafields/__init__.py +0 -0
- shopline_sdk/apis/cart_item_metafields/bulk_create_metafield.py +52 -0
- shopline_sdk/apis/cart_item_metafields/bulk_delete_metafield.py +62 -0
- shopline_sdk/apis/cart_item_metafields/bulk_update_metafield.py +62 -0
- shopline_sdk/apis/cart_item_metafields/get_metafields_attached_to_cart_items_of_specific_cart.py +62 -0
- shopline_sdk/apis/carts/__init__.py +0 -0
- shopline_sdk/apis/carts/bulk_add_items_to_cart.py +80 -0
- shopline_sdk/apis/carts/bulk_delete_cart_items.py +59 -0
- shopline_sdk/apis/carts/bulk_patch_cart_items.py +61 -0
- shopline_sdk/apis/carts/get_cart.py +63 -0
- shopline_sdk/apis/carts/get_cart_id.py +74 -0
- shopline_sdk/apis/categories/__init__.py +0 -0
- shopline_sdk/apis/categories/bulk_assign.py +75 -0
- shopline_sdk/apis/categories/bulk_update_category_product_sorting.py +84 -0
- shopline_sdk/apis/categories/create_category.py +62 -0
- shopline_sdk/apis/categories/delete_category.py +62 -0
- shopline_sdk/apis/categories/get_categories.py +104 -0
- shopline_sdk/apis/categories/get_category.py +76 -0
- shopline_sdk/apis/categories/update_category.py +70 -0
- shopline_sdk/apis/channels/__init__.py +0 -0
- shopline_sdk/apis/channels/create_product_channel_price.py +45 -0
- shopline_sdk/apis/channels/get_channel.py +76 -0
- shopline_sdk/apis/channels/get_channels.py +83 -0
- shopline_sdk/apis/channels/get_product_channel_price.py +75 -0
- shopline_sdk/apis/channels/update_product_channel_price.py +45 -0
- shopline_sdk/apis/conversations/__init__.py +0 -0
- shopline_sdk/apis/conversations/create_order_message.py +91 -0
- shopline_sdk/apis/conversations/create_return_order_message.py +90 -0
- shopline_sdk/apis/conversations/create_shop_message.py +81 -0
- shopline_sdk/apis/conversations/get_conversations.py +76 -0
- shopline_sdk/apis/conversations/get_messages.py +76 -0
- shopline_sdk/apis/custom_fields/__init__.py +0 -0
- shopline_sdk/apis/custom_fields/get_custom_fields.py +42 -0
- shopline_sdk/apis/customer_app_metafields/__init__.py +0 -0
- shopline_sdk/apis/customer_app_metafields/create_specific_app_metafield.py +44 -0
- shopline_sdk/apis/customer_app_metafields/delete_specific_app_metafield.py +42 -0
- shopline_sdk/apis/customer_app_metafields/get_app_metafields_attached_to_specific_customer.py +61 -0
- shopline_sdk/apis/customer_app_metafields/get_specific_app_metafield.py +41 -0
- shopline_sdk/apis/customer_app_metafields/update_specific_app_metafield.py +44 -0
- shopline_sdk/apis/customer_group_children/__init__.py +0 -0
- shopline_sdk/apis/customer_group_children/get_children_group_of_the_customer_group.py +89 -0
- shopline_sdk/apis/customer_groups/__init__.py +0 -0
- shopline_sdk/apis/customer_groups/get_customer_group.py +65 -0
- shopline_sdk/apis/customer_groups/get_customer_groups.py +108 -0
- shopline_sdk/apis/customer_groups/get_customer_ids_of_the_specific_customer_group.py +84 -0
- shopline_sdk/apis/customer_groups/search_customer_groups.py +92 -0
- shopline_sdk/apis/customer_metafields/__init__.py +0 -0
- shopline_sdk/apis/customer_metafields/create_specific_metafield.py +44 -0
- shopline_sdk/apis/customer_metafields/delete_specific_metafield.py +42 -0
- shopline_sdk/apis/customer_metafields/get_metafields_attached_to_specific_customer.py +62 -0
- shopline_sdk/apis/customer_metafields/get_specific_metafield.py +41 -0
- shopline_sdk/apis/customer_metafields/update_specific_metafield.py +44 -0
- shopline_sdk/apis/customers/__init__.py +0 -0
- shopline_sdk/apis/customers/add_or_remove_customer_tags.py +93 -0
- shopline_sdk/apis/customers/create_customer.py +87 -0
- shopline_sdk/apis/customers/delete_customer.py +62 -0
- shopline_sdk/apis/customers/get_customer.py +94 -0
- shopline_sdk/apis/customers/get_customer_member_points_history.py +92 -0
- shopline_sdk/apis/customers/get_customer_store_credit_history.py +98 -0
- shopline_sdk/apis/customers/get_customers.py +127 -0
- shopline_sdk/apis/customers/get_line_customer.py +67 -0
- shopline_sdk/apis/customers/getcustomers_smembershipinfo.py +93 -0
- shopline_sdk/apis/customers/search_customers.py +216 -0
- shopline_sdk/apis/customers/update_customer.py +87 -0
- shopline_sdk/apis/customers/update_customer_member_points.py +113 -0
- shopline_sdk/apis/customers/update_customer_store_credits.py +172 -0
- shopline_sdk/apis/customers/update_customer_subscriptions.py +64 -0
- shopline_sdk/apis/customers/update_customer_tags.py +88 -0
- shopline_sdk/apis/delivery_options/__init__.py +0 -0
- shopline_sdk/apis/delivery_options/get_delivery_config.py +52 -0
- shopline_sdk/apis/delivery_options/get_delivery_option.py +42 -0
- shopline_sdk/apis/delivery_options/get_delivery_options.py +65 -0
- shopline_sdk/apis/delivery_options/get_delivery_time_slots.py +64 -0
- shopline_sdk/apis/delivery_options/updatedeliveryoption_sstoreinformation.py +67 -0
- shopline_sdk/apis/event_trackers/__init__.py +0 -0
- shopline_sdk/apis/event_trackers/create_an_event_tracker.py +83 -0
- shopline_sdk/apis/event_trackers/delete_an_event_tracker.py +57 -0
- shopline_sdk/apis/event_trackers/get_an_event_tracker.py +64 -0
- shopline_sdk/apis/event_trackers/get_event_trackers.py +97 -0
- shopline_sdk/apis/event_trackers/update_event_tracker.py +91 -0
- shopline_sdk/apis/flash_price_campaigns/__init__.py +0 -0
- shopline_sdk/apis/flash_price_campaigns/create_flash_price_campaign.py +45 -0
- shopline_sdk/apis/flash_price_campaigns/delete_flash_price_campaign.py +44 -0
- shopline_sdk/apis/flash_price_campaigns/get_a_flash_price_campaign.py +43 -0
- shopline_sdk/apis/flash_price_campaigns/get_flash_price_campaigns.py +72 -0
- shopline_sdk/apis/flash_price_campaigns/update_flash_price_campaign.py +46 -0
- shopline_sdk/apis/gifts/__init__.py +0 -0
- shopline_sdk/apis/gifts/bulk_update_quantity_by_sku.py +106 -0
- shopline_sdk/apis/gifts/create_gift.py +57 -0
- shopline_sdk/apis/gifts/get_gift_stocks.py +66 -0
- shopline_sdk/apis/gifts/get_gifts.py +86 -0
- shopline_sdk/apis/gifts/search_gifts.py +110 -0
- shopline_sdk/apis/gifts/update_gift.py +54 -0
- shopline_sdk/apis/gifts/update_gift_quantity.py +100 -0
- shopline_sdk/apis/gifts/update_gift_stock.py +86 -0
- shopline_sdk/apis/layouts/__init__.py +0 -0
- shopline_sdk/apis/layouts/get_layouts_sections.py +77 -0
- shopline_sdk/apis/medias/__init__.py +0 -0
- shopline_sdk/apis/medias/create_image.py +52 -0
- shopline_sdk/apis/member_point_rules/__init__.py +0 -0
- shopline_sdk/apis/member_point_rules/get_member_point_rules.py +55 -0
- shopline_sdk/apis/member_points/__init__.py +0 -0
- shopline_sdk/apis/member_points/bulk_update_member_points.py +87 -0
- shopline_sdk/apis/membership_tiers/__init__.py +0 -0
- shopline_sdk/apis/membership_tiers/get_customer_membership_tier_history.py +84 -0
- shopline_sdk/apis/membership_tiers/get_membership_tiers.py +65 -0
- shopline_sdk/apis/merchant_app_metafields/__init__.py +0 -0
- shopline_sdk/apis/merchant_app_metafields/get_app_metafields_attached_to_current_merchant.py +61 -0
- shopline_sdk/apis/merchant_metafields/__init__.py +0 -0
- shopline_sdk/apis/merchant_metafields/get_metafields_attached_to_current_merchant.py +62 -0
- shopline_sdk/apis/merchants/__init__.py +0 -0
- shopline_sdk/apis/merchants/generatemerchant_sexpresscartlink.py +66 -0
- shopline_sdk/apis/merchants/get_merchant.py +56 -0
- shopline_sdk/apis/merchants/get_merchants.py +46 -0
- shopline_sdk/apis/metafield_definitions/__init__.py +0 -0
- shopline_sdk/apis/metafield_definitions/create_specific_metafield_definition.py +44 -0
- shopline_sdk/apis/metafield_definitions/get_an_array_of_metafield_definitions.py +45 -0
- shopline_sdk/apis/metafield_definitions/get_specific_metafield_definition.py +41 -0
- shopline_sdk/apis/multipass_linking/__init__.py +0 -0
- shopline_sdk/apis/multipass_linking/delete_multipass_linking_for_customer.py +61 -0
- shopline_sdk/apis/multipass_linking/get_active_multipass_linkings.py +67 -0
- shopline_sdk/apis/multipass_linking/update_multipass_linking_for_customer.py +69 -0
- shopline_sdk/apis/multipass_secret/__init__.py +0 -0
- shopline_sdk/apis/multipass_secret/create_multipass_secret.py +41 -0
- shopline_sdk/apis/multipass_secret/get_multipass_secret.py +50 -0
- shopline_sdk/apis/order_app_metafields/__init__.py +0 -0
- shopline_sdk/apis/order_app_metafields/get_app_metafields_attached_to_specific_order.py +61 -0
- shopline_sdk/apis/order_deliveries/__init__.py +0 -0
- shopline_sdk/apis/order_deliveries/get_order_delivery.py +43 -0
- shopline_sdk/apis/order_deliveries/update_order_delivery.py +63 -0
- shopline_sdk/apis/order_item_app_metafields/__init__.py +0 -0
- shopline_sdk/apis/order_item_app_metafields/get_app_metafields_attached_to_order_items_of_specific_order.py +61 -0
- shopline_sdk/apis/order_item_metafields/__init__.py +0 -0
- shopline_sdk/apis/order_item_metafields/get_metafields_attached_to_order_items_of_specific_order.py +62 -0
- shopline_sdk/apis/order_metafields/__init__.py +0 -0
- shopline_sdk/apis/order_metafields/get_metafields_attached_to_specific_order.py +62 -0
- shopline_sdk/apis/orders/__init__.py +0 -0
- shopline_sdk/apis/orders/bulk_execute_shipment.py +70 -0
- shopline_sdk/apis/orders/cancel_order.py +70 -0
- shopline_sdk/apis/orders/create_archived_orders_report.py +72 -0
- shopline_sdk/apis/orders/create_order.py +90 -0
- shopline_sdk/apis/orders/execute_shipment.py +63 -0
- shopline_sdk/apis/orders/get_all_orders_tags.py +54 -0
- shopline_sdk/apis/orders/get_order.py +78 -0
- shopline_sdk/apis/orders/get_order_action_logs.py +62 -0
- shopline_sdk/apis/orders/get_order_labels_of_delivery.py +94 -0
- shopline_sdk/apis/orders/get_order_transaction_by_order_ids.py +58 -0
- shopline_sdk/apis/orders/get_orders.py +111 -0
- shopline_sdk/apis/orders/search_orders.py +339 -0
- shopline_sdk/apis/orders/split_order.py +84 -0
- shopline_sdk/apis/orders/update_order.py +123 -0
- shopline_sdk/apis/orders/update_order_delivery_status.py +88 -0
- shopline_sdk/apis/orders/update_order_payment_status.py +92 -0
- shopline_sdk/apis/orders/update_order_status.py +94 -0
- shopline_sdk/apis/orders/update_order_tags.py +91 -0
- shopline_sdk/apis/payments/__init__.py +0 -0
- shopline_sdk/apis/payments/get_payment.py +59 -0
- shopline_sdk/apis/payments/get_payments.py +88 -0
- shopline_sdk/apis/product_app_metafields/__init__.py +0 -0
- shopline_sdk/apis/product_app_metafields/get_app_metafields_attached_to_specific_product.py +61 -0
- shopline_sdk/apis/product_metafields/__init__.py +0 -0
- shopline_sdk/apis/product_metafields/get_metafields_attached_to_specific_product.py +62 -0
- shopline_sdk/apis/product_review_comments/__init__.py +0 -0
- shopline_sdk/apis/product_review_comments/bulk_create_product_review_comments.py +66 -0
- shopline_sdk/apis/product_review_comments/bulk_delete_product_review_comments.py +46 -0
- shopline_sdk/apis/product_review_comments/bulk_update_product_review_comments.py +64 -0
- shopline_sdk/apis/product_review_comments/create_product_review_comments.py +45 -0
- shopline_sdk/apis/product_review_comments/delete_product_review_comment.py +37 -0
- shopline_sdk/apis/product_review_comments/get_product_review_comment.py +42 -0
- shopline_sdk/apis/product_review_comments/get_product_review_comments.py +91 -0
- shopline_sdk/apis/product_review_comments/update_product_review_comment.py +45 -0
- shopline_sdk/apis/product_subscriptions/__init__.py +0 -0
- shopline_sdk/apis/product_subscriptions/get_a_list_of_product_subscriptions.py +71 -0
- shopline_sdk/apis/product_subscriptions/get_product_subscription.py +42 -0
- shopline_sdk/apis/products/__init__.py +0 -0
- shopline_sdk/apis/products/add_product_images.py +84 -0
- shopline_sdk/apis/products/batch_update_current_product_labels.py +73 -0
- shopline_sdk/apis/products/bulk_delete_product.py +77 -0
- shopline_sdk/apis/products/bulk_update_stock.py +81 -0
- shopline_sdk/apis/products/bulkpublish_unpublishproductinonlinestore.py +64 -0
- shopline_sdk/apis/products/bulkpublish_unpublishproductinretailstore.py +64 -0
- shopline_sdk/apis/products/create_product.py +54 -0
- shopline_sdk/apis/products/create_product_variation.py +70 -0
- shopline_sdk/apis/products/delete_product.py +70 -0
- shopline_sdk/apis/products/delete_product_images.py +54 -0
- shopline_sdk/apis/products/delete_product_variation.py +70 -0
- shopline_sdk/apis/products/get_locked_inventory_count.py +53 -0
- shopline_sdk/apis/products/get_product.py +79 -0
- shopline_sdk/apis/products/get_product_stocks.py +66 -0
- shopline_sdk/apis/products/get_products.py +112 -0
- shopline_sdk/apis/products/search_products.py +58 -0
- shopline_sdk/apis/products/update_current_product_tags.py +80 -0
- shopline_sdk/apis/products/update_product.py +54 -0
- shopline_sdk/apis/products/update_product_price.py +94 -0
- shopline_sdk/apis/products/update_product_quantity.py +102 -0
- shopline_sdk/apis/products/update_product_variation.py +46 -0
- shopline_sdk/apis/products/update_product_variation_price.py +92 -0
- shopline_sdk/apis/products/update_product_variation_quantity.py +111 -0
- shopline_sdk/apis/products/update_quantity_by_sku.py +114 -0
- shopline_sdk/apis/products/update_stock.py +89 -0
- shopline_sdk/apis/promotions/__init__.py +0 -0
- shopline_sdk/apis/promotions/create_promotion.py +45 -0
- shopline_sdk/apis/promotions/delete_promotion.py +44 -0
- shopline_sdk/apis/promotions/get_customer_coupon_promotions.py +61 -0
- shopline_sdk/apis/promotions/get_customer_promotions.py +63 -0
- shopline_sdk/apis/promotions/get_promotion.py +60 -0
- shopline_sdk/apis/promotions/get_promotions.py +106 -0
- shopline_sdk/apis/promotions/search_promotions.py +108 -0
- shopline_sdk/apis/promotions/update_promotion.py +54 -0
- shopline_sdk/apis/purchase_orders/__init__.py +0 -0
- shopline_sdk/apis/purchase_orders/create_child_purchase_order.py +66 -0
- shopline_sdk/apis/purchase_orders/create_purchase_order.py +66 -0
- shopline_sdk/apis/purchase_orders/delete_the_specified_purchase_orders.py +60 -0
- shopline_sdk/apis/purchase_orders/get_purchase_orders.py +89 -0
- shopline_sdk/apis/purchase_orders/get_the_specified_purchase_order.py +59 -0
- shopline_sdk/apis/purchase_orders/update_purchase_order.py +66 -0
- shopline_sdk/apis/return_orders/__init__.py +0 -0
- shopline_sdk/apis/return_orders/create_return_order.py +62 -0
- shopline_sdk/apis/return_orders/get_return_order.py +42 -0
- shopline_sdk/apis/return_orders/get_return_orders.py +95 -0
- shopline_sdk/apis/return_orders/update_return_order.py +70 -0
- shopline_sdk/apis/sales/__init__.py +0 -0
- shopline_sdk/apis/sales/create_sale_products.py +78 -0
- shopline_sdk/apis/sales/delete_sale_products.py +44 -0
- shopline_sdk/apis/sales/get_sale_comments.py +77 -0
- shopline_sdk/apis/sales/get_sale_customers.py +69 -0
- shopline_sdk/apis/sales/get_sale_products.py +74 -0
- shopline_sdk/apis/sales/update_sale_product_status.py +71 -0
- shopline_sdk/apis/sales/update_sale_products.py +78 -0
- shopline_sdk/apis/settings/__init__.py +0 -0
- shopline_sdk/apis/settings/get_checkout_setting.py +51 -0
- shopline_sdk/apis/settings/get_domains_setting.py +51 -0
- shopline_sdk/apis/settings/get_layouts_draft_setting.py +59 -0
- shopline_sdk/apis/settings/get_layouts_setting.py +59 -0
- shopline_sdk/apis/settings/get_orders_setting.py +51 -0
- shopline_sdk/apis/settings/get_payments_setting.py +51 -0
- shopline_sdk/apis/settings/get_pos_setting.py +51 -0
- shopline_sdk/apis/settings/get_product_review_setting.py +51 -0
- shopline_sdk/apis/settings/get_products_setting.py +51 -0
- shopline_sdk/apis/settings/get_promotions_setting.py +51 -0
- shopline_sdk/apis/settings/get_setting.py +42 -0
- shopline_sdk/apis/settings/get_shop_setting.py +51 -0
- shopline_sdk/apis/settings/get_tax_setting.py +51 -0
- shopline_sdk/apis/settings/get_theme_draft_setting.py +59 -0
- shopline_sdk/apis/settings/get_theme_setting.py +59 -0
- shopline_sdk/apis/settings/get_third_party_ads_setting.py +42 -0
- shopline_sdk/apis/settings/get_users_setting.py +65 -0
- shopline_sdk/apis/settings/publish_layouts_setting.py +73 -0
- shopline_sdk/apis/settings/publish_theme_setting.py +59 -0
- shopline_sdk/apis/settings/save_layouts_draft_setting.py +67 -0
- shopline_sdk/apis/settings/save_theme_setting.py +59 -0
- shopline_sdk/apis/settings/update_domains_setting.py +85 -0
- shopline_sdk/apis/staffs/__init__.py +0 -0
- shopline_sdk/apis/staffs/get_all_staff.py +62 -0
- shopline_sdk/apis/staffs/get_staff.py +59 -0
- shopline_sdk/apis/staffs/get_staff_permissions.py +62 -0
- shopline_sdk/apis/store_credits/__init__.py +0 -0
- shopline_sdk/apis/store_credits/bulk_update_store_credits.py +90 -0
- shopline_sdk/apis/store_credits/get_store_credits.py +87 -0
- shopline_sdk/apis/storefront_oauth_applications/__init__.py +0 -0
- shopline_sdk/apis/storefront_oauth_applications/create_storefront_o_auth_application.py +52 -0
- shopline_sdk/apis/storefront_oauth_applications/delete_storefront_oauth_application_by_id.py +47 -0
- shopline_sdk/apis/storefront_oauth_applications/get_storefront_o_auth_application.py +41 -0
- shopline_sdk/apis/storefront_oauth_applications/get_storefront_o_auth_application_by_id.py +50 -0
- shopline_sdk/apis/storefront_tokens/__init__.py +0 -0
- shopline_sdk/apis/storefront_tokens/create_storefront_token.py +60 -0
- shopline_sdk/apis/storefront_tokens/delete_storefront_token_by_id.py +54 -0
- shopline_sdk/apis/storefront_tokens/get_storefront_token_by_id.py +51 -0
- shopline_sdk/apis/storefront_tokens/list_all_storefront_tokens.py +46 -0
- shopline_sdk/apis/taxes/__init__.py +0 -0
- shopline_sdk/apis/taxes/get_taxes.py +65 -0
- shopline_sdk/apis/themes/__init__.py +0 -0
- shopline_sdk/apis/themes/get_theme_by_theme_key.py +63 -0
- shopline_sdk/apis/themes/getthethemesectionsbytheme_key.py +76 -0
- shopline_sdk/apis/token/__init__.py +0 -0
- shopline_sdk/apis/token/get_token_info.py +44 -0
- shopline_sdk/apis/user_coupons/__init__.py +0 -0
- shopline_sdk/apis/user_coupons/claim_user_coupon.py +45 -0
- shopline_sdk/apis/user_coupons/create_user_coupon.py +40 -0
- shopline_sdk/apis/user_coupons/get_user_coupons.py +55 -0
- shopline_sdk/apis/user_coupons/get_user_coupons_with_cursor.py +57 -0
- shopline_sdk/apis/user_coupons/redeem_user_coupon.py +45 -0
- shopline_sdk/apis/warehouses/__init__.py +0 -0
- shopline_sdk/apis/warehouses/get_warehouses.py +92 -0
- shopline_sdk/apis/webhooks/__init__.py +0 -0
- shopline_sdk/apis/webhooks/create_webhook.py +45 -0
- shopline_sdk/apis/webhooks/delete_webhook.py +37 -0
- shopline_sdk/apis/webhooks/get_webhook.py +42 -0
- shopline_sdk/apis/webhooks/get_webhooks.py +59 -0
- shopline_sdk/apis/webhooks/update_webhook.py +45 -0
- shopline_sdk/apis/wish_list_items/__init__.py +0 -0
- shopline_sdk/apis/wish_list_items/create_wish_list_item.py +68 -0
- shopline_sdk/apis/wish_list_items/delete_wish_list_item.py +89 -0
- shopline_sdk/apis/wish_list_items/get_wish_list_items.py +88 -0
- shopline_sdk/client.py +15 -0
- shopline_sdk/exceptions.py +48 -0
- shopline_sdk/helper.py +84 -0
- shopline_sdk/models/__init__.py +610 -0
- shopline_sdk/models/addon_product.py +50 -0
- shopline_sdk/models/addon_products.py +14 -0
- shopline_sdk/models/addon_products_cursor_based.py +15 -0
- shopline_sdk/models/address_node.py +27 -0
- shopline_sdk/models/address_nodes.py +20 -0
- shopline_sdk/models/address_preference.py +46 -0
- shopline_sdk/models/address_preference_layout_data.py +15 -0
- shopline_sdk/models/address_preferences.py +16 -0
- shopline_sdk/models/affiliate.py +32 -0
- shopline_sdk/models/affiliate_campaign.py +53 -0
- shopline_sdk/models/affiliate_campaign_order.py +75 -0
- shopline_sdk/models/affiliate_campaign_orders.py +16 -0
- shopline_sdk/models/affiliate_campaigns.py +20 -0
- shopline_sdk/models/agent.py +20 -0
- shopline_sdk/models/agent_work_log.py +30 -0
- shopline_sdk/models/agent_work_logs.py +12 -0
- shopline_sdk/models/agents.py +14 -0
- shopline_sdk/models/analytics.py +12 -0
- shopline_sdk/models/app_metafield_value.py +26 -0
- shopline_sdk/models/app_setting.py +9 -0
- shopline_sdk/models/bad_request_error.py +14 -0
- shopline_sdk/models/bearer_auth.py +9 -0
- shopline_sdk/models/bulk_delete_metafield_body.py +15 -0
- shopline_sdk/models/bulk_update_app_metafield_body.py +16 -0
- shopline_sdk/models/bulk_update_metafield_body.py +17 -0
- shopline_sdk/models/campaign_product.py +18 -0
- shopline_sdk/models/cart.py +128 -0
- shopline_sdk/models/cart_delivery.py +24 -0
- shopline_sdk/models/cart_item.py +51 -0
- shopline_sdk/models/cart_product.py +83 -0
- shopline_sdk/models/cart_product_variation.py +36 -0
- shopline_sdk/models/cart_promotion.py +19 -0
- shopline_sdk/models/categories.py +14 -0
- shopline_sdk/models/categories_cursor_based.py +15 -0
- shopline_sdk/models/category.py +45 -0
- shopline_sdk/models/category_layout.py +23 -0
- shopline_sdk/models/change_payment_method_response.py +14 -0
- shopline_sdk/models/channel.py +49 -0
- shopline_sdk/models/channel_param.py +11 -0
- shopline_sdk/models/channels.py +14 -0
- shopline_sdk/models/checkout_setting.py +37 -0
- shopline_sdk/models/corporate_info.py +34 -0
- shopline_sdk/models/coupon_item.py +53 -0
- shopline_sdk/models/create_agent_body.py +17 -0
- shopline_sdk/models/create_agent_work_log_request_body.py +18 -0
- shopline_sdk/models/create_app_metafield_body.py +15 -0
- shopline_sdk/models/create_bulk_operation_body.py +22 -0
- shopline_sdk/models/create_category_body.py +27 -0
- shopline_sdk/models/create_channel_price_body.py +21 -0
- shopline_sdk/models/create_customer_body.py +63 -0
- shopline_sdk/models/create_customer_group_activity_body.py +24 -0
- shopline_sdk/models/create_delivery_option_body.py +38 -0
- shopline_sdk/models/create_event_tracker_body.py +23 -0
- shopline_sdk/models/create_flash_price_campaign_body.py +22 -0
- shopline_sdk/models/create_metafield_body.py +16 -0
- shopline_sdk/models/create_metafield_definition_body.py +18 -0
- shopline_sdk/models/create_page_body.py +25 -0
- shopline_sdk/models/create_product_body.py +84 -0
- shopline_sdk/models/create_product_feed_setting_body.py +31 -0
- shopline_sdk/models/create_product_review_comment_body.py +21 -0
- shopline_sdk/models/create_product_variation_body.py +13 -0
- shopline_sdk/models/create_promotion_body.py +56 -0
- shopline_sdk/models/create_return_order_body.py +49 -0
- shopline_sdk/models/create_sub_res_app_metafield_body.py +16 -0
- shopline_sdk/models/create_sub_res_metafield_body.py +17 -0
- shopline_sdk/models/create_user_coupon_body.py +18 -0
- shopline_sdk/models/create_webhook_body.py +14 -0
- shopline_sdk/models/create_wish_list_item_body.py +27 -0
- shopline_sdk/models/cursor_based_paginatable.py +12 -0
- shopline_sdk/models/custom_field.py +18 -0
- shopline_sdk/models/customer.py +200 -0
- shopline_sdk/models/customer_coupon_promotions.py +12 -0
- shopline_sdk/models/customer_group.py +33 -0
- shopline_sdk/models/customer_group_activity.py +28 -0
- shopline_sdk/models/customer_groups.py +14 -0
- shopline_sdk/models/customer_promotion.py +54 -0
- shopline_sdk/models/customer_viewed_categories.py +14 -0
- shopline_sdk/models/customer_viewed_category.py +14 -0
- shopline_sdk/models/customer_viewed_product.py +14 -0
- shopline_sdk/models/customer_viewed_products.py +14 -0
- shopline_sdk/models/delivery_option.py +74 -0
- shopline_sdk/models/delivery_rate.py +17 -0
- shopline_sdk/models/delivery_time_slot.py +27 -0
- shopline_sdk/models/domains_setting.py +13 -0
- shopline_sdk/models/domains_setting_webmaster.py +20 -0
- shopline_sdk/models/end_date_param.py +10 -0
- shopline_sdk/models/entity_render_error.py +11 -0
- shopline_sdk/models/event_tracker.py +35 -0
- shopline_sdk/models/event_trackers.py +14 -0
- shopline_sdk/models/extend_promotion.py +25 -0
- shopline_sdk/models/facebook_business_extension_domains_entity.py +16 -0
- shopline_sdk/models/filter_tag.py +14 -0
- shopline_sdk/models/flash_price_campaign.py +39 -0
- shopline_sdk/models/flash_price_campaigns.py +16 -0
- shopline_sdk/models/forbidden_error.py +14 -0
- shopline_sdk/models/gift.py +54 -0
- shopline_sdk/models/gifts.py +14 -0
- shopline_sdk/models/gifts_cursor_based.py +15 -0
- shopline_sdk/models/global_section.py +12 -0
- shopline_sdk/models/global_section_settings.py +27 -0
- shopline_sdk/models/gross_amount_analytics.py +28 -0
- shopline_sdk/models/gross_orders_analytics.py +29 -0
- shopline_sdk/models/individual_info.py +14 -0
- shopline_sdk/models/interval_param.py +11 -0
- shopline_sdk/models/invoice.py +17 -0
- shopline_sdk/models/is_real_time_param.py +10 -0
- shopline_sdk/models/job.py +48 -0
- shopline_sdk/models/jobs.py +14 -0
- shopline_sdk/models/layout_sections.py +12 -0
- shopline_sdk/models/layouts_setting.py +14 -0
- shopline_sdk/models/limit_exceeded_error.py +14 -0
- shopline_sdk/models/link.py +39 -0
- shopline_sdk/models/lock_inventory.py +9 -0
- shopline_sdk/models/lock_inventory_count.py +14 -0
- shopline_sdk/models/max_applicable_member_point.py +16 -0
- shopline_sdk/models/media.py +16 -0
- shopline_sdk/models/media_upload_error.py +10 -0
- shopline_sdk/models/member_point.py +28 -0
- shopline_sdk/models/member_point_fulfillment.py +23 -0
- shopline_sdk/models/member_point_rule.py +40 -0
- shopline_sdk/models/member_point_rules.py +12 -0
- shopline_sdk/models/member_points.py +14 -0
- shopline_sdk/models/member_registration_analytics.py +29 -0
- shopline_sdk/models/membership_info.py +56 -0
- shopline_sdk/models/membership_tier.py +26 -0
- shopline_sdk/models/membership_tier_action_log.py +19 -0
- shopline_sdk/models/membership_tier_action_logs.py +14 -0
- shopline_sdk/models/membership_tier_rule.py +53 -0
- shopline_sdk/models/merchant.py +78 -0
- shopline_sdk/models/merchant_kyc.py +24 -0
- shopline_sdk/models/merchant_tax.py +50 -0
- shopline_sdk/models/metafield_definition.py +28 -0
- shopline_sdk/models/metafield_value.py +28 -0
- shopline_sdk/models/money.py +13 -0
- shopline_sdk/models/multipass_linking.py +22 -0
- shopline_sdk/models/multipass_linkings.py +16 -0
- shopline_sdk/models/multipass_secret.py +20 -0
- shopline_sdk/models/net_amount_analytics.py +28 -0
- shopline_sdk/models/net_orders_analytics.py +29 -0
- shopline_sdk/models/not_found_error.py +12 -0
- shopline_sdk/models/order.py +218 -0
- shopline_sdk/models/order_action_log.py +16 -0
- shopline_sdk/models/order_action_logs.py +12 -0
- shopline_sdk/models/order_agent.py +16 -0
- shopline_sdk/models/order_campaign_item.py +27 -0
- shopline_sdk/models/order_comment.py +28 -0
- shopline_sdk/models/order_conversation.py +39 -0
- shopline_sdk/models/order_conversations.py +14 -0
- shopline_sdk/models/order_conversations_message.py +32 -0
- shopline_sdk/models/order_conversations_messages.py +16 -0
- shopline_sdk/models/order_customer_info.py +24 -0
- shopline_sdk/models/order_delivery.py +57 -0
- shopline_sdk/models/order_delivery_address.py +37 -0
- shopline_sdk/models/order_delivery_data.py +28 -0
- shopline_sdk/models/order_inspect_item.py +18 -0
- shopline_sdk/models/order_invoice.py +32 -0
- shopline_sdk/models/order_item.py +93 -0
- shopline_sdk/models/order_payment.py +38 -0
- shopline_sdk/models/order_promotion_item.py +24 -0
- shopline_sdk/models/order_source.py +16 -0
- shopline_sdk/models/order_tag.py +10 -0
- shopline_sdk/models/order_transaction.py +32 -0
- shopline_sdk/models/orders_setting.py +25 -0
- shopline_sdk/models/page.py +49 -0
- shopline_sdk/models/page_block_settings.py +12 -0
- shopline_sdk/models/page_section.py +14 -0
- shopline_sdk/models/page_section_schema.py +37 -0
- shopline_sdk/models/page_section_settings.py +29 -0
- shopline_sdk/models/page_sections.py +12 -0
- shopline_sdk/models/paginatable.py +16 -0
- shopline_sdk/models/pagination.py +12 -0
- shopline_sdk/models/payment.py +33 -0
- shopline_sdk/models/payment_config_data.py +14 -0
- shopline_sdk/models/payment_fee_item.py +31 -0
- shopline_sdk/models/payment_settlement.py +47 -0
- shopline_sdk/models/payments_setting.py +17 -0
- shopline_sdk/models/pos_payment.py +19 -0
- shopline_sdk/models/pos_setting.py +15 -0
- shopline_sdk/models/price_detail.py +15 -0
- shopline_sdk/models/price_set.py +29 -0
- shopline_sdk/models/price_sets.py +12 -0
- shopline_sdk/models/product.py +201 -0
- shopline_sdk/models/product_feed_setting.py +45 -0
- shopline_sdk/models/product_feed_settings.py +14 -0
- shopline_sdk/models/product_ids_param.py +10 -0
- shopline_sdk/models/product_price_tier.py +26 -0
- shopline_sdk/models/product_related_theme_settings.py +23 -0
- shopline_sdk/models/product_revenue.py +26 -0
- shopline_sdk/models/product_revenues.py +14 -0
- shopline_sdk/models/product_review.py +28 -0
- shopline_sdk/models/product_review_comment.py +31 -0
- shopline_sdk/models/product_review_comments.py +14 -0
- shopline_sdk/models/product_review_comments_cursor_based.py +15 -0
- shopline_sdk/models/product_review_setting.py +32 -0
- shopline_sdk/models/product_reviews.py +14 -0
- shopline_sdk/models/product_stock.py +34 -0
- shopline_sdk/models/product_subscription.py +34 -0
- shopline_sdk/models/product_variation.py +56 -0
- shopline_sdk/models/products_cursor_based.py +17 -0
- shopline_sdk/models/products_setting.py +28 -0
- shopline_sdk/models/promotion.py +104 -0
- shopline_sdk/models/promotion_condition.py +27 -0
- shopline_sdk/models/promotion_excluded_hints.py +16 -0
- shopline_sdk/models/promotions_setting.py +28 -0
- shopline_sdk/models/purchase_order.py +63 -0
- shopline_sdk/models/purchase_order_item.py +66 -0
- shopline_sdk/models/purchase_orders.py +14 -0
- shopline_sdk/models/quantity_update_not_allowed_error.py +14 -0
- shopline_sdk/models/retail_status.py +11 -0
- shopline_sdk/models/return_order.py +75 -0
- shopline_sdk/models/return_order_delivery.py +26 -0
- shopline_sdk/models/return_order_delivery_address.py +37 -0
- shopline_sdk/models/return_order_delivery_data.py +28 -0
- shopline_sdk/models/return_order_item.py +33 -0
- shopline_sdk/models/return_order_payment.py +28 -0
- shopline_sdk/models/return_order_promotion_item.py +22 -0
- shopline_sdk/models/return_order_ref_data.py +10 -0
- shopline_sdk/models/return_orders.py +14 -0
- shopline_sdk/models/sale_comment.py +30 -0
- shopline_sdk/models/sale_customer.py +31 -0
- shopline_sdk/models/sale_product.py +21 -0
- shopline_sdk/models/save_draft_body.py +25 -0
- shopline_sdk/models/sc_conversation.py +31 -0
- shopline_sdk/models/sc_conversations.py +14 -0
- shopline_sdk/models/sc_conversations_message.py +30 -0
- shopline_sdk/models/sc_conversations_messages.py +16 -0
- shopline_sdk/models/search_products_body.py +71 -0
- shopline_sdk/models/server_error.py +12 -0
- shopline_sdk/models/service_unavailable_error.py +12 -0
- shopline_sdk/models/settings.py +30 -0
- shopline_sdk/models/settlement_terminal_list.py +9 -0
- shopline_sdk/models/shop_conversation.py +31 -0
- shopline_sdk/models/shop_conversations.py +14 -0
- shopline_sdk/models/shop_conversations_message.py +30 -0
- shopline_sdk/models/shop_conversations_messages.py +16 -0
- shopline_sdk/models/shop_crm_setting.py +24 -0
- shopline_sdk/models/shop_setting.py +10 -0
- shopline_sdk/models/staff.py +61 -0
- shopline_sdk/models/staff_performance.py +9 -0
- shopline_sdk/models/start_date_param.py +10 -0
- shopline_sdk/models/status.py +11 -0
- shopline_sdk/models/stock.py +12 -0
- shopline_sdk/models/store_credit.py +50 -0
- shopline_sdk/models/store_credit_fulfillment.py +27 -0
- shopline_sdk/models/storefront_o_auth_application.py +18 -0
- shopline_sdk/models/storefront_o_auth_applications.py +12 -0
- shopline_sdk/models/storefront_token.py +26 -0
- shopline_sdk/models/storefront_token_merchant.py +17 -0
- shopline_sdk/models/storefront_token_staff.py +15 -0
- shopline_sdk/models/storefront_tokens.py +12 -0
- shopline_sdk/models/supplier.py +24 -0
- shopline_sdk/models/tag.py +16 -0
- shopline_sdk/models/taggable.py +9 -0
- shopline_sdk/models/tax.py +57 -0
- shopline_sdk/models/tax_info.py +22 -0
- shopline_sdk/models/tax_region.py +20 -0
- shopline_sdk/models/tax_setting.py +10 -0
- shopline_sdk/models/theme.py +44 -0
- shopline_sdk/models/theme_schema.py +19 -0
- shopline_sdk/models/theme_setting.py +16 -0
- shopline_sdk/models/third_party_ads_setting.py +38 -0
- shopline_sdk/models/token_scopes.py +10 -0
- shopline_sdk/models/top_products_analytics.py +19 -0
- shopline_sdk/models/top_products_analytics_record.py +30 -0
- shopline_sdk/models/top_products_analytics_record_variation.py +34 -0
- shopline_sdk/models/total_sessions_analytics.py +35 -0
- shopline_sdk/models/total_views_analytics.py +29 -0
- shopline_sdk/models/transaction.py +65 -0
- shopline_sdk/models/translatable.py +28 -0
- shopline_sdk/models/translatable_array.py +28 -0
- shopline_sdk/models/unauthorized_error.py +14 -0
- shopline_sdk/models/unprocessable_entity_error.py +16 -0
- shopline_sdk/models/update_addon_product_body.py +36 -0
- shopline_sdk/models/update_agent_body.py +15 -0
- shopline_sdk/models/update_app_metafield_body.py +14 -0
- shopline_sdk/models/update_category_body.py +28 -0
- shopline_sdk/models/update_channel_price_body.py +21 -0
- shopline_sdk/models/update_customer_body.py +62 -0
- shopline_sdk/models/update_customer_group_activity_body.py +22 -0
- shopline_sdk/models/update_event_tracker_body.py +27 -0
- shopline_sdk/models/update_flash_price_campaign_body.py +22 -0
- shopline_sdk/models/update_gift_body.py +20 -0
- shopline_sdk/models/update_lock_inventory_body.py +21 -0
- shopline_sdk/models/update_metafield_body.py +14 -0
- shopline_sdk/models/update_product_body.py +66 -0
- shopline_sdk/models/update_product_feed_setting_body.py +27 -0
- shopline_sdk/models/update_product_review_comment_body.py +18 -0
- shopline_sdk/models/update_product_variation_body.py +34 -0
- shopline_sdk/models/update_promotion_body.py +71 -0
- shopline_sdk/models/update_return_order_body.py +17 -0
- shopline_sdk/models/update_webhook_body.py +14 -0
- shopline_sdk/models/user_coupon.py +12 -0
- shopline_sdk/models/user_coupons.py +14 -0
- shopline_sdk/models/user_credit_rule.py +40 -0
- shopline_sdk/models/users_setting.py +83 -0
- shopline_sdk/models/utm_data.py +20 -0
- shopline_sdk/models/warehouse.py +14 -0
- shopline_sdk/models/warehouses_cursor_based.py +17 -0
- shopline_sdk/models/webhook.py +23 -0
- shopline_sdk/models/webhooks.py +14 -0
- shopline_sdk/models/wish_list_item.py +41 -0
- shopline_sdk/models/wish_list_items.py +15 -0
- shopline_sdk_python-0.1.0.dist-info/METADATA +265 -0
- shopline_sdk_python-0.1.0.dist-info/RECORD +638 -0
- shopline_sdk_python-0.1.0.dist-info/WHEEL +5 -0
- shopline_sdk_python-0.1.0.dist-info/licenses/LICENSE +674 -0
- shopline_sdk_python-0.1.0.dist-info/top_level.txt +1 -0
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
from typing import Any, Dict, List, Optional, Union
|
|
2
|
+
import aiohttp
|
|
3
|
+
from pydantic import BaseModel, ValidationError, Field
|
|
4
|
+
from typing_extensions import Literal
|
|
5
|
+
|
|
6
|
+
# 导入异常类
|
|
7
|
+
from ...exceptions import ShoplineAPIError
|
|
8
|
+
|
|
9
|
+
# 导入需要的模型
|
|
10
|
+
from ...models.product import Product
|
|
11
|
+
from ...models.server_error import ServerError
|
|
12
|
+
from ...models.unprocessable_entity_error import UnprocessableEntityError
|
|
13
|
+
|
|
14
|
+
class Request(BaseModel):
|
|
15
|
+
"""请求体模型"""
|
|
16
|
+
bulk_data: Optional[List[Any]] = None
|
|
17
|
+
"""Product, Product Variation's ID and warehouse ID,
|
|
18
|
+
商品、商品規格、贈品或加購品的商品貨號"""
|
|
19
|
+
is_replace: bool
|
|
20
|
+
"""Whether replacing the original quantity
|
|
21
|
+
是否取代原本數量
|
|
22
|
+
|
|
23
|
+
true: replace the product's quantity with the number you provided
|
|
24
|
+
取代原本數量
|
|
25
|
+
|
|
26
|
+
false: increase/decrease the quantity with the number you provided
|
|
27
|
+
增加/減少數量"""
|
|
28
|
+
|
|
29
|
+
class Response(BaseModel):
|
|
30
|
+
"""响应体模型"""
|
|
31
|
+
errors: Optional[List[Any]] = None
|
|
32
|
+
|
|
33
|
+
async def call(
|
|
34
|
+
session: aiohttp.ClientSession, request: Optional[Request] = None
|
|
35
|
+
) -> Response:
|
|
36
|
+
"""
|
|
37
|
+
Bulk Update Stock
|
|
38
|
+
|
|
39
|
+
To update the mutiple product's stock with its ID
|
|
40
|
+
使用多個商品 ID 更新商品在各個倉庫的庫存
|
|
41
|
+
|
|
42
|
+
Path: PUT /products/bulk_update_stocks
|
|
43
|
+
"""
|
|
44
|
+
# 构建请求 URL
|
|
45
|
+
url = "products/bulk_update_stocks"
|
|
46
|
+
|
|
47
|
+
# 构建请求头
|
|
48
|
+
headers = {"Content-Type": "application/json"}
|
|
49
|
+
|
|
50
|
+
# 构建请求体
|
|
51
|
+
json_data = request.model_dump(exclude_none=True) if request else None
|
|
52
|
+
|
|
53
|
+
# 发起 HTTP 请求
|
|
54
|
+
async with session.put(
|
|
55
|
+
url, json=json_data, headers=headers
|
|
56
|
+
) as response:
|
|
57
|
+
if response.status >= 400:
|
|
58
|
+
error_data = await response.json()
|
|
59
|
+
if response.status == 422:
|
|
60
|
+
error_model = UnprocessableEntityError(**error_data)
|
|
61
|
+
raise ShoplineAPIError(
|
|
62
|
+
status_code=422,
|
|
63
|
+
error=error_model,
|
|
64
|
+
**error_data
|
|
65
|
+
)
|
|
66
|
+
if response.status == 500:
|
|
67
|
+
error_model = ServerError(**error_data)
|
|
68
|
+
raise ShoplineAPIError(
|
|
69
|
+
status_code=500,
|
|
70
|
+
error=error_model,
|
|
71
|
+
**error_data
|
|
72
|
+
)
|
|
73
|
+
# 默认错误处理
|
|
74
|
+
raise ShoplineAPIError(
|
|
75
|
+
status_code=response.status,
|
|
76
|
+
**error_data
|
|
77
|
+
)
|
|
78
|
+
response_data = await response.json()
|
|
79
|
+
|
|
80
|
+
# 验证并返回响应数据
|
|
81
|
+
return Response(**response_data)
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
from typing import Any, Dict, List, Optional, Union
|
|
2
|
+
import aiohttp
|
|
3
|
+
from pydantic import BaseModel, ValidationError, Field
|
|
4
|
+
from typing_extensions import Literal
|
|
5
|
+
|
|
6
|
+
# 导入异常类
|
|
7
|
+
from ...exceptions import ShoplineAPIError
|
|
8
|
+
|
|
9
|
+
# 导入需要的模型
|
|
10
|
+
from ...models.status import status
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
class ProductsItem(BaseModel):
|
|
14
|
+
"""Item model for products"""
|
|
15
|
+
id: Optional[str] = None
|
|
16
|
+
"""The id of the product that will be published/unpublished.
|
|
17
|
+
Max delete 100 products at a time.
|
|
18
|
+
需要上架/下架的商品id,每次最多只能上架/下架100個商品。"""
|
|
19
|
+
status: Optional[status] = None
|
|
20
|
+
|
|
21
|
+
class Request(BaseModel):
|
|
22
|
+
"""请求体模型"""
|
|
23
|
+
products: Optional[List[ProductsItem]] = None
|
|
24
|
+
|
|
25
|
+
class Response(BaseModel):
|
|
26
|
+
"""响应体模型"""
|
|
27
|
+
updated_product_ids: Optional[List[str]] = None
|
|
28
|
+
errors: Optional[List[Dict[str, Any]]] = None
|
|
29
|
+
|
|
30
|
+
async def call(
|
|
31
|
+
session: aiohttp.ClientSession, request: Optional[Request] = None
|
|
32
|
+
) -> Response:
|
|
33
|
+
"""
|
|
34
|
+
Bulk Publish/Unpublish Product in Online Store
|
|
35
|
+
|
|
36
|
+
To bulk publish/unpublish products in Online Store.
|
|
37
|
+
在網店批量上架/下架商品。
|
|
38
|
+
|
|
39
|
+
Path: PUT /products/status/bulk
|
|
40
|
+
"""
|
|
41
|
+
# 构建请求 URL
|
|
42
|
+
url = "products/status/bulk"
|
|
43
|
+
|
|
44
|
+
# 构建请求头
|
|
45
|
+
headers = {"Content-Type": "application/json"}
|
|
46
|
+
|
|
47
|
+
# 构建请求体
|
|
48
|
+
json_data = request.model_dump(exclude_none=True) if request else None
|
|
49
|
+
|
|
50
|
+
# 发起 HTTP 请求
|
|
51
|
+
async with session.put(
|
|
52
|
+
url, json=json_data, headers=headers
|
|
53
|
+
) as response:
|
|
54
|
+
if response.status >= 400:
|
|
55
|
+
error_data = await response.json()
|
|
56
|
+
# 默认错误处理
|
|
57
|
+
raise ShoplineAPIError(
|
|
58
|
+
status_code=response.status,
|
|
59
|
+
**error_data
|
|
60
|
+
)
|
|
61
|
+
response_data = await response.json()
|
|
62
|
+
|
|
63
|
+
# 验证并返回响应数据
|
|
64
|
+
return Response(**response_data)
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
from typing import Any, Dict, List, Optional, Union
|
|
2
|
+
import aiohttp
|
|
3
|
+
from pydantic import BaseModel, ValidationError, Field
|
|
4
|
+
from typing_extensions import Literal
|
|
5
|
+
|
|
6
|
+
# 导入异常类
|
|
7
|
+
from ...exceptions import ShoplineAPIError
|
|
8
|
+
|
|
9
|
+
# 导入需要的模型
|
|
10
|
+
from ...models.retail_status import retail_status
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
class ProductsItem(BaseModel):
|
|
14
|
+
"""Item model for products"""
|
|
15
|
+
id: Optional[str] = None
|
|
16
|
+
"""The id of the product that will be published/unpublished.
|
|
17
|
+
Max delete 100 products at a time.
|
|
18
|
+
需要上架/下架的商品id,每次最多只能上架/下架100個商品。"""
|
|
19
|
+
retail_status: Optional[retail_status] = None
|
|
20
|
+
|
|
21
|
+
class Request(BaseModel):
|
|
22
|
+
"""请求体模型"""
|
|
23
|
+
products: Optional[List[ProductsItem]] = None
|
|
24
|
+
|
|
25
|
+
class Response(BaseModel):
|
|
26
|
+
"""响应体模型"""
|
|
27
|
+
updated_product_ids: Optional[List[str]] = None
|
|
28
|
+
errors: Optional[List[Dict[str, Any]]] = None
|
|
29
|
+
|
|
30
|
+
async def call(
|
|
31
|
+
session: aiohttp.ClientSession, request: Optional[Request] = None
|
|
32
|
+
) -> Response:
|
|
33
|
+
"""
|
|
34
|
+
Bulk Publish/Unpublish Product in Retail Store
|
|
35
|
+
|
|
36
|
+
To bulk publish/unpublish products in Retail Store.
|
|
37
|
+
在實體店批量上架/下架商品。
|
|
38
|
+
|
|
39
|
+
Path: PUT /products/retail_status/bulk
|
|
40
|
+
"""
|
|
41
|
+
# 构建请求 URL
|
|
42
|
+
url = "products/retail_status/bulk"
|
|
43
|
+
|
|
44
|
+
# 构建请求头
|
|
45
|
+
headers = {"Content-Type": "application/json"}
|
|
46
|
+
|
|
47
|
+
# 构建请求体
|
|
48
|
+
json_data = request.model_dump(exclude_none=True) if request else None
|
|
49
|
+
|
|
50
|
+
# 发起 HTTP 请求
|
|
51
|
+
async with session.put(
|
|
52
|
+
url, json=json_data, headers=headers
|
|
53
|
+
) as response:
|
|
54
|
+
if response.status >= 400:
|
|
55
|
+
error_data = await response.json()
|
|
56
|
+
# 默认错误处理
|
|
57
|
+
raise ShoplineAPIError(
|
|
58
|
+
status_code=response.status,
|
|
59
|
+
**error_data
|
|
60
|
+
)
|
|
61
|
+
response_data = await response.json()
|
|
62
|
+
|
|
63
|
+
# 验证并返回响应数据
|
|
64
|
+
return Response(**response_data)
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
from typing import Any, Dict, List, Optional, Union
|
|
2
|
+
import aiohttp
|
|
3
|
+
from pydantic import BaseModel, ValidationError, Field
|
|
4
|
+
from typing_extensions import Literal
|
|
5
|
+
|
|
6
|
+
# 导入异常类
|
|
7
|
+
from ...exceptions import ShoplineAPIError
|
|
8
|
+
|
|
9
|
+
# 导入需要的模型
|
|
10
|
+
from ...models.product import Product
|
|
11
|
+
from ...models.server_error import ServerError
|
|
12
|
+
|
|
13
|
+
async def call(
|
|
14
|
+
session: aiohttp.ClientSession, data: Optional[Dict[str, Any]] = None
|
|
15
|
+
) -> Product:
|
|
16
|
+
"""
|
|
17
|
+
Create Product
|
|
18
|
+
|
|
19
|
+
To create new products with open API
|
|
20
|
+
透過open API創建新商品
|
|
21
|
+
|
|
22
|
+
Path: POST /products
|
|
23
|
+
"""
|
|
24
|
+
# 构建请求 URL
|
|
25
|
+
url = "products"
|
|
26
|
+
|
|
27
|
+
# 构建请求头
|
|
28
|
+
headers = {"Content-Type": "application/json"}
|
|
29
|
+
|
|
30
|
+
# 构建请求体
|
|
31
|
+
json_data = data if data else None
|
|
32
|
+
|
|
33
|
+
# 发起 HTTP 请求
|
|
34
|
+
async with session.post(
|
|
35
|
+
url, json=json_data, headers=headers
|
|
36
|
+
) as response:
|
|
37
|
+
if response.status >= 400:
|
|
38
|
+
error_data = await response.json()
|
|
39
|
+
if response.status == 500:
|
|
40
|
+
error_model = ServerError(**error_data)
|
|
41
|
+
raise ShoplineAPIError(
|
|
42
|
+
status_code=500,
|
|
43
|
+
error=error_model,
|
|
44
|
+
**error_data
|
|
45
|
+
)
|
|
46
|
+
# 默认错误处理
|
|
47
|
+
raise ShoplineAPIError(
|
|
48
|
+
status_code=response.status,
|
|
49
|
+
**error_data
|
|
50
|
+
)
|
|
51
|
+
response_data = await response.json()
|
|
52
|
+
|
|
53
|
+
# 验证并返回响应数据
|
|
54
|
+
return Product(**response_data)
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
from typing import Any, Dict, List, Optional, Union
|
|
2
|
+
import aiohttp
|
|
3
|
+
from pydantic import BaseModel, ValidationError, Field
|
|
4
|
+
from typing_extensions import Literal
|
|
5
|
+
|
|
6
|
+
# 导入异常类
|
|
7
|
+
from ...exceptions import ShoplineAPIError
|
|
8
|
+
|
|
9
|
+
# 导入需要的模型
|
|
10
|
+
from ...models.not_found_error import NotFoundError
|
|
11
|
+
from ...models.product import Product
|
|
12
|
+
from ...models.server_error import ServerError
|
|
13
|
+
from ...models.unprocessable_entity_error import UnprocessableEntityError
|
|
14
|
+
|
|
15
|
+
async def call(
|
|
16
|
+
session: aiohttp.ClientSession, product_id: str, data: Optional[Dict[str, Any]] = None
|
|
17
|
+
) -> Product:
|
|
18
|
+
"""
|
|
19
|
+
Create Product Variation
|
|
20
|
+
|
|
21
|
+
Add a variation product under an existing main product.
|
|
22
|
+
在現有主商品之下新增規格商品
|
|
23
|
+
|
|
24
|
+
Path: POST /products/{product_id}/variations
|
|
25
|
+
"""
|
|
26
|
+
# 构建请求 URL
|
|
27
|
+
url = f"products/{product_id}/variations"
|
|
28
|
+
|
|
29
|
+
# 构建请求头
|
|
30
|
+
headers = {"Content-Type": "application/json"}
|
|
31
|
+
|
|
32
|
+
# 构建请求体
|
|
33
|
+
json_data = data if data else None
|
|
34
|
+
|
|
35
|
+
# 发起 HTTP 请求
|
|
36
|
+
async with session.post(
|
|
37
|
+
url, json=json_data, headers=headers
|
|
38
|
+
) as response:
|
|
39
|
+
if response.status >= 400:
|
|
40
|
+
error_data = await response.json()
|
|
41
|
+
if response.status == 404:
|
|
42
|
+
error_model = NotFoundError(**error_data)
|
|
43
|
+
raise ShoplineAPIError(
|
|
44
|
+
status_code=404,
|
|
45
|
+
error=error_model,
|
|
46
|
+
**error_data
|
|
47
|
+
)
|
|
48
|
+
if response.status == 422:
|
|
49
|
+
error_model = UnprocessableEntityError(**error_data)
|
|
50
|
+
raise ShoplineAPIError(
|
|
51
|
+
status_code=422,
|
|
52
|
+
error=error_model,
|
|
53
|
+
**error_data
|
|
54
|
+
)
|
|
55
|
+
if response.status == 500:
|
|
56
|
+
error_model = ServerError(**error_data)
|
|
57
|
+
raise ShoplineAPIError(
|
|
58
|
+
status_code=500,
|
|
59
|
+
error=error_model,
|
|
60
|
+
**error_data
|
|
61
|
+
)
|
|
62
|
+
# 默认错误处理
|
|
63
|
+
raise ShoplineAPIError(
|
|
64
|
+
status_code=response.status,
|
|
65
|
+
**error_data
|
|
66
|
+
)
|
|
67
|
+
response_data = await response.json()
|
|
68
|
+
|
|
69
|
+
# 验证并返回响应数据
|
|
70
|
+
return Product(**response_data)
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
from typing import Any, Dict, List, Optional, Union
|
|
2
|
+
import aiohttp
|
|
3
|
+
from pydantic import BaseModel, ValidationError, Field
|
|
4
|
+
from typing_extensions import Literal
|
|
5
|
+
|
|
6
|
+
# 导入异常类
|
|
7
|
+
from ...exceptions import ShoplineAPIError
|
|
8
|
+
|
|
9
|
+
# 导入需要的模型
|
|
10
|
+
from ...models.not_found_error import NotFoundError
|
|
11
|
+
from ...models.server_error import ServerError
|
|
12
|
+
from ...models.unprocessable_entity_error import UnprocessableEntityError
|
|
13
|
+
|
|
14
|
+
class Response(BaseModel):
|
|
15
|
+
"""响应体模型"""
|
|
16
|
+
result: Optional[str] = None
|
|
17
|
+
|
|
18
|
+
async def call(
|
|
19
|
+
session: aiohttp.ClientSession, id: str
|
|
20
|
+
) -> Response:
|
|
21
|
+
"""
|
|
22
|
+
Delete Product
|
|
23
|
+
|
|
24
|
+
To delete a product with open API
|
|
25
|
+
透過Open API刪除商品
|
|
26
|
+
|
|
27
|
+
Path: DELETE /products/{id}
|
|
28
|
+
"""
|
|
29
|
+
# 构建请求 URL
|
|
30
|
+
url = f"products/{id}"
|
|
31
|
+
|
|
32
|
+
# 构建请求头
|
|
33
|
+
headers = {"Content-Type": "application/json"}
|
|
34
|
+
|
|
35
|
+
# 发起 HTTP 请求
|
|
36
|
+
async with session.delete(
|
|
37
|
+
url, headers=headers
|
|
38
|
+
) as response:
|
|
39
|
+
if response.status >= 400:
|
|
40
|
+
error_data = await response.json()
|
|
41
|
+
if response.status == 404:
|
|
42
|
+
error_model = NotFoundError(**error_data)
|
|
43
|
+
raise ShoplineAPIError(
|
|
44
|
+
status_code=404,
|
|
45
|
+
error=error_model,
|
|
46
|
+
**error_data
|
|
47
|
+
)
|
|
48
|
+
if response.status == 422:
|
|
49
|
+
error_model = UnprocessableEntityError(**error_data)
|
|
50
|
+
raise ShoplineAPIError(
|
|
51
|
+
status_code=422,
|
|
52
|
+
error=error_model,
|
|
53
|
+
**error_data
|
|
54
|
+
)
|
|
55
|
+
if response.status == 500:
|
|
56
|
+
error_model = ServerError(**error_data)
|
|
57
|
+
raise ShoplineAPIError(
|
|
58
|
+
status_code=500,
|
|
59
|
+
error=error_model,
|
|
60
|
+
**error_data
|
|
61
|
+
)
|
|
62
|
+
# 默认错误处理
|
|
63
|
+
raise ShoplineAPIError(
|
|
64
|
+
status_code=response.status,
|
|
65
|
+
**error_data
|
|
66
|
+
)
|
|
67
|
+
response_data = await response.json()
|
|
68
|
+
|
|
69
|
+
# 验证并返回响应数据
|
|
70
|
+
return Response(**response_data)
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
from typing import Any, Dict, List, Optional, Union
|
|
2
|
+
import aiohttp
|
|
3
|
+
from pydantic import BaseModel, ValidationError, Field
|
|
4
|
+
from typing_extensions import Literal
|
|
5
|
+
|
|
6
|
+
# 导入异常类
|
|
7
|
+
from ...exceptions import ShoplineAPIError
|
|
8
|
+
|
|
9
|
+
class Request(BaseModel):
|
|
10
|
+
"""请求体模型"""
|
|
11
|
+
media_ids: Optional[List[str]] = None
|
|
12
|
+
"""Ids of the Images
|
|
13
|
+
需要被刪除圖片的IDs"""
|
|
14
|
+
|
|
15
|
+
class Response(BaseModel):
|
|
16
|
+
"""响应体模型"""
|
|
17
|
+
result: Optional[str] = None
|
|
18
|
+
|
|
19
|
+
async def call(
|
|
20
|
+
session: aiohttp.ClientSession, id: str, request: Optional[Request] = None
|
|
21
|
+
) -> Response:
|
|
22
|
+
"""
|
|
23
|
+
Delete Product Images
|
|
24
|
+
|
|
25
|
+
To delete product images with open API
|
|
26
|
+
透過open API刪除主商品圖片/商品資訊圖片
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
Path: DELETE /products/{id}/delete_images
|
|
30
|
+
"""
|
|
31
|
+
# 构建请求 URL
|
|
32
|
+
url = f"products/{id}/delete_images"
|
|
33
|
+
|
|
34
|
+
# 构建请求头
|
|
35
|
+
headers = {"Content-Type": "application/json"}
|
|
36
|
+
|
|
37
|
+
# 构建请求体
|
|
38
|
+
json_data = request.model_dump(exclude_none=True) if request else None
|
|
39
|
+
|
|
40
|
+
# 发起 HTTP 请求
|
|
41
|
+
async with session.delete(
|
|
42
|
+
url, json=json_data, headers=headers
|
|
43
|
+
) as response:
|
|
44
|
+
if response.status >= 400:
|
|
45
|
+
error_data = await response.json()
|
|
46
|
+
# 默认错误处理
|
|
47
|
+
raise ShoplineAPIError(
|
|
48
|
+
status_code=response.status,
|
|
49
|
+
**error_data
|
|
50
|
+
)
|
|
51
|
+
response_data = await response.json()
|
|
52
|
+
|
|
53
|
+
# 验证并返回响应数据
|
|
54
|
+
return Response(**response_data)
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
from typing import Any, Dict, List, Optional, Union
|
|
2
|
+
import aiohttp
|
|
3
|
+
from pydantic import BaseModel, ValidationError, Field
|
|
4
|
+
from typing_extensions import Literal
|
|
5
|
+
|
|
6
|
+
# 导入异常类
|
|
7
|
+
from ...exceptions import ShoplineAPIError
|
|
8
|
+
|
|
9
|
+
# 导入需要的模型
|
|
10
|
+
from ...models.bad_request_error import BadRequestError
|
|
11
|
+
from ...models.not_found_error import NotFoundError
|
|
12
|
+
from ...models.server_error import ServerError
|
|
13
|
+
|
|
14
|
+
class Response(BaseModel):
|
|
15
|
+
"""响应体模型"""
|
|
16
|
+
message: Optional[str] = None
|
|
17
|
+
|
|
18
|
+
async def call(
|
|
19
|
+
session: aiohttp.ClientSession, product_id: str, id: str
|
|
20
|
+
) -> Response:
|
|
21
|
+
"""
|
|
22
|
+
Delete Product Variation
|
|
23
|
+
|
|
24
|
+
To delete a product variation with open API
|
|
25
|
+
透過Open API刪除規格商品
|
|
26
|
+
|
|
27
|
+
Path: DELETE /products/{product_id}/variations/{id}
|
|
28
|
+
"""
|
|
29
|
+
# 构建请求 URL
|
|
30
|
+
url = f"products/{product_id}/variations/{id}"
|
|
31
|
+
|
|
32
|
+
# 构建请求头
|
|
33
|
+
headers = {"Content-Type": "application/json"}
|
|
34
|
+
|
|
35
|
+
# 发起 HTTP 请求
|
|
36
|
+
async with session.delete(
|
|
37
|
+
url, headers=headers
|
|
38
|
+
) as response:
|
|
39
|
+
if response.status >= 400:
|
|
40
|
+
error_data = await response.json()
|
|
41
|
+
if response.status == 400:
|
|
42
|
+
error_model = BadRequestError(**error_data)
|
|
43
|
+
raise ShoplineAPIError(
|
|
44
|
+
status_code=400,
|
|
45
|
+
error=error_model,
|
|
46
|
+
**error_data
|
|
47
|
+
)
|
|
48
|
+
if response.status == 404:
|
|
49
|
+
error_model = NotFoundError(**error_data)
|
|
50
|
+
raise ShoplineAPIError(
|
|
51
|
+
status_code=404,
|
|
52
|
+
error=error_model,
|
|
53
|
+
**error_data
|
|
54
|
+
)
|
|
55
|
+
if response.status == 500:
|
|
56
|
+
error_model = ServerError(**error_data)
|
|
57
|
+
raise ShoplineAPIError(
|
|
58
|
+
status_code=500,
|
|
59
|
+
error=error_model,
|
|
60
|
+
**error_data
|
|
61
|
+
)
|
|
62
|
+
# 默认错误处理
|
|
63
|
+
raise ShoplineAPIError(
|
|
64
|
+
status_code=response.status,
|
|
65
|
+
**error_data
|
|
66
|
+
)
|
|
67
|
+
response_data = await response.json()
|
|
68
|
+
|
|
69
|
+
# 验证并返回响应数据
|
|
70
|
+
return Response(**response_data)
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
from typing import Any, Dict, List, Optional, Union
|
|
2
|
+
import aiohttp
|
|
3
|
+
from pydantic import BaseModel, ValidationError, Field
|
|
4
|
+
from typing_extensions import Literal
|
|
5
|
+
|
|
6
|
+
# 导入异常类
|
|
7
|
+
from ...exceptions import ShoplineAPIError
|
|
8
|
+
|
|
9
|
+
class Request(BaseModel):
|
|
10
|
+
"""请求体模型"""
|
|
11
|
+
product_ids: Optional[List[Any]] = None
|
|
12
|
+
"""Product IDs
|
|
13
|
+
商品ID
|
|
14
|
+
(Max: 1000)"""
|
|
15
|
+
|
|
16
|
+
class Response(BaseModel):
|
|
17
|
+
"""响应体模型"""
|
|
18
|
+
items: Optional[List[Any]] = None
|
|
19
|
+
|
|
20
|
+
async def call(
|
|
21
|
+
session: aiohttp.ClientSession, request: Optional[Request] = None
|
|
22
|
+
) -> Response:
|
|
23
|
+
"""
|
|
24
|
+
Get Locked Inventory Count
|
|
25
|
+
|
|
26
|
+
Get Locked Inventory Count
|
|
27
|
+
取得直播保留庫存數字
|
|
28
|
+
|
|
29
|
+
Path: POST /products/locked_inventory_count
|
|
30
|
+
"""
|
|
31
|
+
# 构建请求 URL
|
|
32
|
+
url = "products/locked_inventory_count"
|
|
33
|
+
|
|
34
|
+
# 构建请求头
|
|
35
|
+
headers = {"Content-Type": "application/json"}
|
|
36
|
+
|
|
37
|
+
# 构建请求体
|
|
38
|
+
json_data = request.model_dump(exclude_none=True) if request else None
|
|
39
|
+
|
|
40
|
+
# 发起 HTTP 请求
|
|
41
|
+
async with session.post(
|
|
42
|
+
url, json=json_data, headers=headers
|
|
43
|
+
) as response:
|
|
44
|
+
if response.status >= 400:
|
|
45
|
+
error_data = await response.json()
|
|
46
|
+
raise ShoplineAPIError(
|
|
47
|
+
status_code=response.status,
|
|
48
|
+
**error_data
|
|
49
|
+
)
|
|
50
|
+
response_data = await response.json()
|
|
51
|
+
|
|
52
|
+
# 验证并返回响应数据
|
|
53
|
+
return Response(**response_data)
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
from typing import Any, Dict, List, Optional, Union
|
|
2
|
+
import aiohttp
|
|
3
|
+
from pydantic import BaseModel, ValidationError, Field
|
|
4
|
+
from typing_extensions import Literal
|
|
5
|
+
|
|
6
|
+
# 导入异常类
|
|
7
|
+
from ...exceptions import ShoplineAPIError
|
|
8
|
+
|
|
9
|
+
# 导入需要的模型
|
|
10
|
+
from ...models.not_found_error import NotFoundError
|
|
11
|
+
from ...models.product import Product
|
|
12
|
+
from ...models.server_error import ServerError
|
|
13
|
+
|
|
14
|
+
class Request(BaseModel):
|
|
15
|
+
"""查询参数模型"""
|
|
16
|
+
fields: Optional[List[str]] = None
|
|
17
|
+
"""Could only show certain parameters in the response
|
|
18
|
+
結果只顯示哪些參數"""
|
|
19
|
+
excludes: Optional[List[str]] = None
|
|
20
|
+
"""Could exclude certain parameters in the response
|
|
21
|
+
結果要排除哪些參數"""
|
|
22
|
+
include_fields: Optional[List[Literal['labels']]] = None
|
|
23
|
+
"""Provide additional attributes in the response
|
|
24
|
+
結果添加哪些參數"""
|
|
25
|
+
|
|
26
|
+
async def call(
|
|
27
|
+
session: aiohttp.ClientSession, id: str, request: Optional[Request] = None
|
|
28
|
+
) -> Product:
|
|
29
|
+
"""
|
|
30
|
+
Get Product
|
|
31
|
+
|
|
32
|
+
To get detailed information for a specific product with its ID
|
|
33
|
+
使用商品ID獲取特定一個商品的詳細資料
|
|
34
|
+
|
|
35
|
+
Path: GET /products/{id}
|
|
36
|
+
"""
|
|
37
|
+
# 构建请求 URL
|
|
38
|
+
url = f"products/{id}"
|
|
39
|
+
|
|
40
|
+
# 构建查询参数
|
|
41
|
+
params = {}
|
|
42
|
+
if request:
|
|
43
|
+
request_dict = request.model_dump(exclude_none=True)
|
|
44
|
+
for key, value in request_dict.items():
|
|
45
|
+
if value is not None:
|
|
46
|
+
params[key] = value
|
|
47
|
+
|
|
48
|
+
# 构建请求头
|
|
49
|
+
headers = {"Content-Type": "application/json"}
|
|
50
|
+
|
|
51
|
+
# 发起 HTTP 请求
|
|
52
|
+
async with session.get(
|
|
53
|
+
url, params=params, headers=headers
|
|
54
|
+
) as response:
|
|
55
|
+
if response.status >= 400:
|
|
56
|
+
error_data = await response.json()
|
|
57
|
+
if response.status == 404:
|
|
58
|
+
error_model = NotFoundError(**error_data)
|
|
59
|
+
raise ShoplineAPIError(
|
|
60
|
+
status_code=404,
|
|
61
|
+
error=error_model,
|
|
62
|
+
**error_data
|
|
63
|
+
)
|
|
64
|
+
if response.status == 500:
|
|
65
|
+
error_model = ServerError(**error_data)
|
|
66
|
+
raise ShoplineAPIError(
|
|
67
|
+
status_code=500,
|
|
68
|
+
error=error_model,
|
|
69
|
+
**error_data
|
|
70
|
+
)
|
|
71
|
+
# 默认错误处理
|
|
72
|
+
raise ShoplineAPIError(
|
|
73
|
+
status_code=response.status,
|
|
74
|
+
**error_data
|
|
75
|
+
)
|
|
76
|
+
response_data = await response.json()
|
|
77
|
+
|
|
78
|
+
# 验证并返回响应数据
|
|
79
|
+
return Product(**response_data)
|